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.
The source code for this project can be found in this GitHub repository.
Helpful resources to bring your own robots into ROS are:
- Understand ROS Concepts
- Follow ROS Tutorials such as Using ROS on your custom Robot
- Robot Operating System (ROS) for Absolute Beginners from Apress by Lentin Joseph
- Programming Robots with ROS A Practical Introduction to the Robot Operating System from O’Reilly Media
- Mastering ROS for Robotics Programming Second Edition from Packt
- Elements of Robotics Robots and Their Applications from Springer