Mobile Robot

I wanted to improve my skill with ROS, so I decided to build a little mobile robot from scratch instead of programming a ready-made robot platform. My goal with this robot is to autonomously navigate using SLAM and then ultimately act as a base for more ambitious future projects.

I was inspired by the design of the TurtleBot3 robot which consists of multiple layers. This sort of design allows for easy additions of new sensors or other components, which I thought to be useful for a learning tool.

This is a two-wheeled differential drive robot powered by two geared DC motors. The motors are controlled using a cheap L298n H-bridge module hooked up to an Arduino Uno which interfaces with a Jetson Nano. The Arduino controls the wheel speed with a PID controller using encoders mounted on the motors as feedback. The Jetson sends the desired wheel speeds to the Arduino based on the computed path using the onboard sensors. As of right now, there is only a camera (a little Pi Cam at the front) and a lidar sensor (an RPLidar on top) mounted to the robot, but I plan on adding a gyro to the mix soon. The drive system (motors, motor driver, arduino) is powered by a 3S LiPO battery and the Jetson is powered by a USB battery bank.

The robot is now fully assembled, the drive system has been tested with manual speed prompts, individual sensors have been tested, and I am currently working on the navigation side of things.