This project provides guidance on how to build an autonomous two wheel differential drive robot. The robot is equipped with a Raspberry Pi 4 B running ROS Noetic middleware on Ubuntu Mate 20.04. With a motor driver and two actuators it can drive autonomously to a desired location while sensing its environment using sensors, such as a camera and an ultrasonic ranger to avoid obstacles. Speed sensors combined with an inertial measurement unit (IMU) are used for localization. The project is split into multiple parts, to adress the following main aspects of the robot.

  • Part list and the theory behind the parts.
  • Assembly of the robot platform and the components.
  • Raspberry Pi 4 B setup using ROS Noetic, which will be the brain of the robot.
  • Modeling the Robot in Blender and URDF to simulate it in Gazebo.
  • ROS packages and nodes:
    • Hardware drivers to interact with the hardware components
    • High level nodes for perception, navigation, localization and control.
  • System integration: combining the components.

The menu on the left shows this outline again.

Source Code

The source code for this project can be found in this GitHub repository.

References

Helpful resources to bring your own robots into ROS are:

Leave a comment