El Toro Grande: Self-Driving Car Using Machine Learning

Background Context

The author was an American high schooler who attended the International Autonomous Robot Racing Challenge in Waterloo, Canada. He participated as a single-man team, and this project was made for the competition. The basic purpose of the project was to build an autonomous robot vehicle. The resulting machine could perform self-driving under simulated environment.

Components

The project utilized the concept of machine learning to perform self-driving after training from previous data. It also used sensors to implement obstacle avoidance.

The mechanisms of the robot vehicle are relatively simple. It used a simple toy car frame as the base, with 4 wheels. The vehicle ran with steering control. The author built the payload platform by 3D-printing on top of the car frame. The vehicle was driven by the output from the RPI 3.

The computational part was more complicated. The author used Nvidia cloud computing server and previous driving data collected from real vehicles to train a 3-layer CNN network beforehand. The robot was equipped with an RPI 3, which was used to do vision, control, and network computation, and an Arduino UNO for sensing data collection. There were 4 ultra-sonic sensors, one on each side of the vehicle, to collect environmental data and perform robot localization and obstacle avoidance. The data was collected by the Arduino and then sent to the RPI 3 through Pyserial. There was a camera facing forward to capture image data and transmit to RPI 3. The RPI 3 utilized the image data to perform road and sign recognition. The RPI 3 then input the real-time information to the pre-trained CNN network to generate the behavior of the vehicle and eventually perform autonomous driving.

Performance

According to the author, the robot vehicle performed well. As a single-man team, he got the 9th place in the international competition.

Conclusion

This project is a cheap implementation of an autonomous driving vehicle and it was perfectly functional. The materials are cheap and relatively easy to build. In addition, since the environment is simplified, no powerful computing devices and expensive sensors are required. It is a good start for people who are new to the area and want to know more about how autonomous driving works. In real traffic environment, both mechanics and computational parts will be much more complicated. But it’s a cool project to extend the sight. The real world is too complex and it’s hard to take all the factors in our consideration. I believe it is good to start step by step, simplify the environment and implement the method. Then gradually extend the project to eventually work in a real environment.

See here for the performance video.

Click here for the detailed presentation by the author.