TurtleBot 3

My own mobile robot platform for tinkering

The TurtleBot 3 is a compact, differential-drive mobile robot built around a Raspberry Pi and the OpenCR control board. I bought one back in 2018 when I first started getting into robotics, and it’s been my go-to platform for tinkering ever since.

A bit like adult LEGO, it gives you something to explore at every level: mechanical assembly, firmware on the OpenCR, and the full software stack running on top of ROS. The time-lapse below shows the initial assembly.


Tinkering and customization

Beyond running the classical navigation algorithms available in ROS (mapping, localization, path planning, all the usual suspects), the TurtleBot 3 is easy to extend. Over the years I added an ultrasonic range sensor and a Raspberry Pi camera to play with additional sensing modalities.

Left: customized chassis. Right: added ultrasonic sensor and Raspberry Pi camera.

Testing the SparkFun OTOS

The latest addition has been the SparkFun OTOS (Optical Tracking Odometry Sensor), which combines a laser-based optical flow sensor with an IMU and runs sensor fusion onboard to output a pose estimate directly. It’s a neat little board, and a low-effort way to add an extra odometry source to a small robot.

Left: 3D-printed OTOS mount. Right: sensor installed on the robot.

With this extra sensor on board, the TurtleBot 3 becomes a handy testbed for comparing different odometry sources (wheel encoders, IMU integration, optical tracking) and evaluating sensor fusion strategies. A useful little platform for quickly trying out sensors and algorithms before committing to deploying them on a larger, more expensive robot.

State estimation comparison across different odometry sources.