My small differential drive robot

Google Photos
My little diff drive robot

Google Photos

Google Photos
Battery pack and encoder drive

Google Photos
Close up

I thought I’d just post these pics and a short description. I’ll add more commentary later.

I’m running ROS2 galactic with Ubuntu 20.04.
The camera will show an image in rviz2. The TOF sensor will show a point cloud in rviz2. I’ve run the nav2 stack, mapped a room and had it follow a path.
I really like using ROS2. I can drive it around with a joystick or the keyboard.
Shoutout to Josh for the inspiration and well done videos!


More information here:

Parts list:
Jetson Nano B01
Waveshare Wireless-AC8265 module for Nano
Adafruit Feather M4 Express (Arduino)
IMX219 Camera
DC Motor + Stepper FeatherWing Add-on
BEMONOC 25GA370 DC Encoder Metal Gearmotor
Slamtec RPLIDAR A1M8
SparkFun 9DoF IMU Breakout-ICM-20948
SparkFun Qwiic ToF Imager -VL53L5CX
INIU Power Bank, LED Display 10000mAh Portable Charger
HDMI Dummy Plug (for Nomachine remote access)

The chassis is 3D printed with PLA. I have a Qidi X-MAX printer that I really like.

The wheels are 3D printed and I use rubber bands as the tires.

I use the Arduino to handle the motor PID functions and other details like battery level.
I looked into ROS for Arduino but it seemed easier to write a simple communications driver and a ROS node.

Future plans:
The Nano is a great little device but I’ll probably swap it for a Jetson Xavier I have that runs a lot faster with the same form factor. Since the Xavier needs more power I’ll need to redo the battery configuration.

Ubuntu 22.04? ROS2 Humble? I wish Nvidia would officially support these releases in Jetpack.

Visual SLAM with two cameras
Use the TOF sensor to help with object/boundary detection


Nice robot! I really like the compact size.


Thanks, I’m probably on the third chassis configuration. 3D printing makes it easy to keep adding on. :slightly_smiling_face:

Nice, I like it! How have you found the VL53L5CX? I’ve been curious to try one of that family of chips to see what they’re like as a replacement for ultrasonic etc.

A common complaint! I haven’t had to do much with Jetsons but when I have I just use Docker. It’s a bit of a pain but once you get it going it can make the whole process a bit smoother.

I’ve heard this complaint a LOT so I think I’ll probably do a video on it at some point.

Thanks Josh. I like how Sparkfun makes it easy to daisy chain the little sensor boards. I’ve only gotten so far as to run a node and display a pointcloud in rviz. I followed Lou Amadio’s tutorial to get started.

I am looking through some of your projects ros_arduino bridge, serial_motor_demo as I need a better way to have ROS talk to the Arduino that controls the motors.

I also finally swapped the Jetson Nano for a Jetson Xavier and NAV2 runs much better!

I would love to see a video on Docker. I know docker basics but it still feels easier to run everything natively without containers. Perhaps more study is what’s really needed for me. :slight_smile:

Nice! Yeah Docker can be a bit confusing, I don’t use it as much as I should and am only just starting to get a bit more fluent with it due to this same problem at work (client has a Jetson but needs to run new stuff on it).

And at home I’ve been using it the “wrong” way like a VM, where I keep a container “alive” and just start/stop it as needed.