EITracker

AI-based self driving terrestrial vehicle.

In the Autumn of 2019 I took part into a hackathon in Rome about self driving vehicles. The hackathon proposed the same challenge to every team, composed of 4 participants and 1 mentor from the organizing company, Leonardo S.P.A.

My Roles

Designed the frame for the car (using a sheet of PVC and a cutter).
Designed the circuit to power the motors, the sensors, and the brain of the car (a Raspberry Pi model 3A+).
Implemented the algorithms to send commands to the motors, to move the car.

Challenge

The task for this hackathon was to build a self driving car that could follow a path, inside a tunnel, recognize the people inside it and deploy medikits (small plastic cubes) for them. The whole circuit had to be completed in less than five minutes, from start to finish, and it was forbidden to interact with the car in any way; the car had to be fully autonomous from startup to end. Inside the tunnel, there were a total of 8 people to rescue; obstacles were also present, and also road signage that could resemble the appeareance of people (e.g. Men at work sign). Thus, the car had to distinguish between the actual people (printed figures standing in the tunnel) from signage.
Finally, each team had a fixed budget of "Leocoins" to buy the components/algorithms for their car; the prices in the market followed the rules of classical economy, so high supply and low demand meant cheaper components and vice versa. Additionally, the supply was not unlimited, so only a certain amount of component was available for purchase (e.g. there were just 4 pre-built frames for the cars for 8 teams).

Final Evaluation

Each team was evaluated with the following parameters:

  • Time to complete: the lower the better, but lower than 5 minutes.
  • Accuracy: number of medikits correctly deployed.
  • Cost efficiency: cost of the finished product, the lower the better.
  • Implementation design: how the solution was ideated and built.

Approach

Since for the hackathon we only had around 30 hours and one member of our team never showed up, we decided to divide our group into two sub-groups of 2 people, to split and parallelize the workload. I worked with the mentor on the frame and the circuit, while my other two teammates worked on the AI algorithms. So, while Bruno and Giulio were working on the algorithms, I worked with Paolo to protoype and built the frame.

Sketch of the car frame
Sketch of the car frame.
Car frame with some components
Frame built and some of the car components.

The final circuit was composed of:

  • 4 motors
  • 2 L298N H Bridge
  • RaspberryPi 3A+
  • RaspberryPi camera
  • Logic converter from 5V to 3.3V
  • Battery pack ~9V
Completed circuit mounted on the frame
Completed circuit mounted on the frame.

The AI algorithm developed was based on YOLO (You Only Look Once (opens in a new tab)); it acquired a picture of the scene seen by the car through the RaspberryPi camera, then analyzed it to find the people to rescue.
Figures below demonstrate how the algorithm worked and how the tunnel was built.

Original image
Before the analysis of the scene.
Analysis results
Results of the analysis performed by YOLO.

We decided to write the algorithms and the interfacing with the components in python; in this way, integrating the two pieces of software was rather quick and easy.

Results

In the end, our car was not able to compete in the final test; even though the algorithms and the circuit were working together, we discovered that the processing power of the Raspberry PI alone was not enough to complete the circuit fast enough. Given the huge time and budget constrain, we were not able to properly test our solution (testing on the circuit had a cost as well, and a team could only reserve a certain amount of 15min slots), so we did not discover this flaw until the end. Additionally, the plastic used to build the frame (that was give to us by the organizers at the beginning) was not strong enough to support the components and the vibration of the motors; as a result, all the teams that could not buy the pre-made frame (so including us) were not able to assemble a car.
However, I believe that as a team we were able to work together quite efficiently even though we had just met; I learnt a lot about how to integrate different components in modern circuits and many hardware techniques to adapt the voltage and the current to meet the requirements.

Team: EITeam

Our team, from left to right: Bruno, Paolo, Giulio, and me.

EITeam
EITeam.