Hands On With Nvidia’s JetBot AI-Powered DIY Robot
The Nvidia JetBot is a well-specified DIY robot design based on the company’s tiny Jetson Nano computer. Once built, the JetBot is a completely standalone system that runs Linux with a full AI development environment included. We’ve already covered the Jetson Nano, but suffice it to say it packs quite a punch for a $100 computer you can hold in your palm. After being impressed by the demo units running around at Nvidia’s GTC this spring, of course, we had to see for ourselves just what the JetBot could do.
Assembling a JetBot Takes Some Legwork
The JetBot isn’t a self-contained kit; instead, Nvidia provides a comprehensive list of what you’ll need to create one, including part numbers and sources. The extra parts needed price out to about $150 in addition to the cost of the Jetson Nano, though that doesn’t include the cost of the two 3D-printed components. Importantly, some of the items may not be in stock at any given time, and others might require sourcing from a different vendor. Adafruit advertises a $35 kit that includes some of the more unusual parts, but it is out of stock at the time of this writing. Sparkfun is promising a $275 complete kit for an in-house design that is based on the original JetBot BOM, but it isn’t available yet (their site says they expect to have it in stock by July). No matter how you get all the parts together, you’ll also need to do some soldering in addition to assembly.
JetBot Includes a Complete AI Development Environment
Once you have your JetBot assembled, you’ll need to connect a keyboard, mouse, and display to connect it to your Wi-Fi network. After that, you can use it remotely. Once you’ve booted into Ubuntu using the pre-built system image, Nvidia provides an excellent set of Jupyter IPython notebooks to lead you through driving, programming, and teaching your JetBot. Helpfully, the system image already includes a running Jupyter server, so you can simply connect to it on port 8888 and get started. For the most part, my other computers found the JetBot by name (which defaults to jetbot), but conveniently the IP address is also displayed on the unit’s picoLED.
The Notebook directory on the JetBot includes a few well-documented demonstration projects. They include notebooks for programming your robot to move, reading and using images from the camera, autonomous collision avoidance, and object following. You can follow along by simply executing notebook cells as instructed, or dive deeper by tweaking the provided code or adding some of your own. You can also experiment by using different AI engines and models besides the defaults in the notebooks. The JetBot really is an entire AI-ready computer in a tiny package.
Training Your JetBot to Avoid Obstacles
You can train your collision avoidance model either on the JetBot itself or on a desktop or cloud GPU. The training process makes use of a pre-trained copy of AlexNet, which is why you can get away with only a couple hundred additional test images instead of needing millions. Training involves labeling frames from the JetBot’s camera either “Free” or “Blocked” using a widget in the iPython notebook. This process is best done either with a mobile device you can hold while you position the robot or with a willing friend or family member. Nvidia recommends at least 100 each of Free and Blocked examples to have a fairly robust program. I started with 60 of each in a fairly well-defined area, which was enough to make the robot quite successful, as shown in this video:
For this video, I used the pre-trained AlexNet model aided by an additional 120 images (60 blocked and 60 free) that I captured with the JetBot. In the 90 seconds of the clip, it deals well with almost all the variations in lighting and obstacles, although a shadow fools it once. The labeled images taught it that it was okay to move onto the thin blue floormat, but not the thicker red carpet. Later on (not shown) it eventually did have trouble when approaching the window blinds at an odd angle while on the blue mat. I’m fairly sure that some additional training images would address that.
How the JetBot Compares With DJI’s RoboMaster S1 Battling Robot
While Nvidia’s JetBot and DJI’s RoboMaster S1 are similarly priced and both aim to help you learn AI and robotics, the two products are very different. For starters, the RoboMaster S1 is closer to turnkey, as all the pieces are included along with assembly instructions. For the JetBot, you need to do your own sourcing and spend about $200 plus shipping in addition to $100 for a Nano, and assembly is a little trickier, but the wiki for the project is well-constructed and puts it within reach of even modest DIYers. So it is less expensive than the $500 RoboMaster S1, but not dramatically so.
When it comes to AI, the RoboMaster S1 has a limited array of capabilities built-in. You can tweak them, and build custom programs around them, but it doesn’t have a general purpose AI development environment. In contrast, the JetBot system image includes a full-on AI development environment and the GPU horsepower needed to train models, not just run them. In fact, although you can start with the included pre-trained model for obstacle avoidance, you’re encouraged to train your own as a first step. Of course, the JetBot isn’t anywhere close to being battle-ready.
Is the JetBot for You?
There are plenty of programmable robots on the market, including some that can make use of pre-trained neural networks. For me, the biggest feature that sets the JetBot apart is that it is capable of being fully self-contained. You can log in to it, load or program a neural network model (or for that matter run just about any kind of code), train your model, and see it in action — all without a host computer, cross-compiling, or dealing with an embedded programming environment.
On the flip side, if you are more interested in battle scenarios, or simply fiddling with PID-based control systems, the RoboMaster S1 is a great choice. It may also be a better gift option, since everything comes in the box, instead of needing to source a long list of components on your own.
- Hands On With Nvidia’s New Jetson Nano
- How to Build a Network Video Recorder With an Nvidia Jetson Nano
- Hands On With DJI’s New RoboMaster S1 Battling Robot