Jetson - Self-Driving Toy Car (Part: 1)
Car Assembly

To build a self-driving toy car, we need hardware that would allow us to control the car’s motion. More specifically, we need to be able to control its latitude (steering) and longitude (throttle) motion.

There are a bunch of options to start with. I recommend checking nvidia’s suggestions, donkey car docs or waveshare AI kit.

I used the last option and I can recommend it, as it provides an easy way to assemble necessary hardware and control a car’s throttle with a DC motor and a car’s steering with a servo motor.

(source: author)

Sensors

After building a car that can move, we need to make it able to sense the environment. There are multiple ways of doing that, but the most straightforward approach in the context of autonomous vehicles is to use a wide-angle front-facing camera.

In the future, we could extend our sensor suite with sonar, lidar, or another camera, but as for now, let’s focus on a single wide-angle camera with 160° FOV.

Brain

Having our car being able to move and see, we need to bridge the gap between the hardware that we already built, and the software that we are going to build next.

In order to do that, we need a single-board computer (SBC). We are going to use NVIDIA’s Jetson Nano with quad-core ARM CPU, 4GB of RAM, and most importantly 128 CUDA cores GPU that would allow us to run neural networks in real-time.

Track

Finally, we need a track for our car. My solution for that is a simple gym mat and some wooden bricks. Such an approach is a cheap, easy, and most importantly, flexible way of building a car track. The necessity of building a track every time from scratch forces to make it slightly differently every time, which impedes overfitting during the training phase. Also, with small wooden bricks possibilities of track configurations are almost limitless.

(source: author)

AI Autopilot

We humans often underestimate the complexity of things that we need to do every day, and driving a car is one such example. Considering a simple case of going from point A to point B, for us humans, it would be something relatively simple. We could do it almost without paying explicit attention to the driving task itself.

Somehow, we would ‘automatically know’, that to drive we would have to

keep the car on the road keep the distance from other cars and obstacles look out for pedestrians look out for signs obey traffic rules go in the right direction etc.

These are just simplified examples of tasks that need to be taken care of in order to safely drive and a fully complete list would be much longer than the above one.
['Greg Surma']
['Self Driving Cars', 'Robotics', 'Machine Learning', 'Artificial Intelligence', 'Programming']