Evolution suggests there are two main strategies for survival: generalization and specialization. The DonkeyCar is a general project that supports many types of single board computers (SBC) and many RC cars. Let's also look at a more specialized project: the new Nvidia Jetson Jetracer project.
Many of my readers know that I have been involved in co-founding the AI Racing League last year. The AI Racing League’s charter is to support equity and innovation in the teaching of Artificial Intelligence to youth (and a few adults). We use a mentoring based model inspired by the CoderDojo teaching system.
For our hardware, we have selected the Nivida Jetson Nano Single Board Computer (SBC) and 1/16th scale RC race cars such as the Exceed Magnet. This means we can put together a car built around open systems for around $300 USD. Our designs are based on the DonkeyCar platform that also leverages the popular and lower cost Raspberry Pi.
The DonkeyCar platform can also run on a variety of hardware including smaller cars that use DC hobby motors. These smaller cars are ideal for a classroom where a small 12x12 foot track is all you need to get familiar with machine-learning. So the DonkeyCar platform is clearly a general system for many different educational settings. And many of these events celebrate the diversity and creativity of bring-your-own car gatherings that are constantly pushing the bounds of innovation.
But what if we want to have specific events where many of the participants have the exact same hardware? How might we design a different system that is highly customized to a single hardware platform? Here is one option: the new JetRacer software from Nvidia that is built around the Jetson Nano single-board computer.
The JetRacer is a newer software system that started to be viable just a few months ago. The JetRacer allows you to combine an RC car with the Nividia Nano to build a small autonomous car that will drive itself around a track. Unlike the DonkeyCar that uses mostly Tensorflow and command-line Python programs, the JetRacer uses the Pytroch and Jupiter Notebooks. A comparison of the two options is shown in Table 1.
You can see that there are different approaches and there is still room for innovative projects. Although there are only two developers that contributed to the JetRacer project, there still may be insights we can gain from their approaches. The use of PyTorch also allows their system to leverage a more dynamic and perhaps lightweight model then Tensorflow. This might be whey they chose PyTorch.
In summary, I think that many of the innovative approaches of the JetRacer project have merit. The use of Jupyter Notebooks to actually control the car is interesting to help people get closer to the system and make it easier to do more on the car without needing a GPU server. I think we should keep an eye on this project and encourage new ways of building our AI training events.