← All projects

JetBot

2023 · NVIDIA Jetson Nano 2GB · Python · Jupyter · Docker · 3D printing

A small AI robot built from JetBot, NVIDIA’s open-source robot design, which runs on an NVIDIA Jetson Nano.

I built it from scratch rather than buying a kit: I 3D-printed the body myself and sourced every part separately, from Cytron in Malaysia, SGBotic in Singapore and AliExpress. SGBotic supplied the Adafruit DC Motor + Stepper FeatherWing that drives the motors, and the I2C adapter for the OLED display.

I worked through the first three of JetBot’s examples: basic motion, teleoperation (driving it remotely) and collision avoidance, where the robot learns from camera images of free and blocked paths so it can steer around obstacles on its own. I trained that model both on the Jetson Nano itself and on my gaming PC’s NVIDIA graphics card, which was, as you’d expect, faster. I stopped before road following and object following, because the Jetson Nano 2GB developer kit I used couldn’t handle them.

The examples are Jupyter notebooks that run on the robot and open in a browser. JetBot was my first time using Jupyter, and running code a cell at a time while watching the robot respond made it a fun way to learn.

What the build taught me:

  • The small parts are the hard parts: finding the right screws to bolt the board onto the 3D-printed body took longer than printing it.
  • The 2GB kit needs its own image: JetBot has a system image built specifically for the Jetson Nano 2GB, and working that out was the first real hurdle.
  • Docker, properly: JetBot’s software runs in Docker containers, so I had to learn Docker properly. It has paid off since, in my software work and in learning ROS.

The RPLIDAR sensor in the photos is a later experiment: I’m testing whether I can integrate it for my next project.