Bumperbot is an open-source 3D printed self-driving robot powered by ROS 2. Its simple design and low cost make it an excellent learning platform, featured in the following online courses:
- Self Driving and ROS 2 - Learn by Doing! Odometry & Control
- Self Driving and ROS 2 - Learn by Doing! Map & Localization
- ๐
bumperbot_bringup
: Contains launch files that starts all the functionalities of the real or simulated robot. - ๐ฎ
bumperbot_controller
: Contains the ROS 2 Control configuration and Hardware interface with the real robot. - ๐
bumperbot_cpp_examples
: Contains ROS 2 templates for developing with C++. - ๐
bumperbot_description
: Contains the URDF description of the robot and its Gazebo simulation. - ๐
bumperbot_firmware
: Contains the Arduino code for actuating the motors of the real robot. - ๐
bumperbot_hardware
: Contains the CAD model of the robot along with the STL files for 3D printing the robot. - ๐
bumperbot_localization
: Contains the Odometry calculation using the robot_localization package and the Global Localization configuration and launch files for Nav2 AMCL. - ๐บ๏ธ
bumperbot_mapping
: Contains an implementation of the Mapping with known poses algorithm and the SLAM Toolbox configuration and launch files - ๐ง
bumperbot_msgs
: Contains the definition of new ROS 2 message interfaces. - ๐
bumperbot_py_examples
: Contains ROS 2 templates for developing with Python. - โ๏ธ
bumperbot_utils
: Contains some utilities and tools.
This robot and its simulation can be used with an Ubuntu 22.04 machine running ROS 2 Humble or and Ubuntu 24.04 machine running ROS 2 Jazzy.
- Install Ubuntu 24.04 or Ubuntu 22.04 on your PC or in a Virtual Machine.
- Install ROS 2 Jazzy if you are on Ubuntu 24.04. Otherwise, install ROS 2 Humble if you are on Ubuntu 22.04
- Install ROS 2 missing libraries. Some libraries that are used in this project are not in the standard ROS 2 package. Install them with:
- Install VS Code and Arduino IDE on your PC in order to build and load the Arduino code on the device
- Install Python and C++ addistional libraries
sudo apt-get update && sudo apt-get install -y \
libserial-dev \
python3-pip
pip install pyserial
- Create a Workspace
mkdir -p bumperbot/src
- Clone this repo
cd bumperbot_ws/src
git clone https://github.com/AntoBrandi/Bumper-Bot.git
- Install the dependencies
cd ..
rosdep install --from-paths src --ignore-src -i -y
- Build the workspace
colcon build
- Source the ROS Workspace (Use this command in a separate terminal from the one you used to build the workspace)
. install/setup.bash
- Launch all the functionalities for the simulated robot
ros2 launch bumperbot_bringup simulated_robot.launch.py
-
Connect the Arduino actuating your robot to your PC and load the robot_control.ino script using the Arduino IDE.
-
Launch all the functionalities for the real robot
ros2 launch bumperbot_bringup real_robot.launch.py
github_1.mp4
github_2.mp4
github_3.mp4
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Please refer to CONTRIBUTING doc.
Antonio Brandi - LinkedIn - antonio.brandi@outlook.it
Other Projects: https://github.com/AntoBrandi