This repository is based on the Self-Driving and ROS 2: Learn by Doing! course available on Udemy. Special thanks to the course creator for their excellent content and guidance, which inspired this project.
The Differential Self-Driving Robot (BumperBot) project is ideal for those passionate about robotics and interested in developing a self-driving robot using ROS 2. It includes:
- Odometry: Real-time position and orientation tracking.
- Control: Precise motion control for differential drive.
- Obstacle Avoidance: Implementing reactive navigation.
- Autonomous Navigation: Path planning and goal-oriented movement.
This project is designed to provide hands-on learning and practical experience with ROS 2 and autonomous robotics.
You can decide whether to build the real robot or experiment with the simulated one in Gazebo. Most of the lessons and code will work the same in both environments.
You don't need prior knowledge of ROS 2 or self-driving concepts. However, a basic understanding of programming in Python or C++ is required.
Prepare your PC by:
- Installing Ubuntu 22.04 on your PC or in a virtual machine. Download Ubuntu 22.04.
- Installing ROS Humble or ROS Iron.
- Installing required ROS 2 packages:
sudo apt-get update && sudo apt-get install -y \
ros-humble-navigation2 \
ros-humble-gazebo-ros \
ros-humble-ros2-control \
ros-humble-gazebo-ros2-control \
ros-humble-joint-state-publisher-gui \
ros-humble-joy \
ros-humble-joy-teleop \
ros-humble-tf-transformations-
Clone the repository:
git clone https://github.com/pepperumo/Differential_self_driving_Robot_bumperbot.git cd Differential_self_driving_Robot_bumperbot -
Build the workspace:
colcon build source install/setup.bash
Start the Gazebo simulation environment:
ros2 launch bumperbot_description gazebo.launch.pyLaunch the node responsible for robot control:
ros2 run bumperbot_control control_nodeOpen RViz for real-time visualization:
ros2 launch bumperbot_visualization rviz.launch.pyContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a pull request.
Special thanks to the creators of the Udemy course Self-Driving and ROS 2: Learn by Doing for inspiration and guidance.