Skip to content

pepperumo/Differential_self_driving_Robot_bumperbot

Repository files navigation

Differential Self-Driving Robot (BumperBot)

LinkedIn Udemy

Table of Contents

About the Project

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.

Getting Started

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.

Prerequisites

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:

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

Installation

  1. Clone the repository:

    git clone https://github.com/pepperumo/Differential_self_driving_Robot_bumperbot.git
    cd Differential_self_driving_Robot_bumperbot
  2. Build the workspace:

    colcon build
    source install/setup.bash

Usage

Launch the Simulation

Start the Gazebo simulation environment:

ros2 launch bumperbot_description gazebo.launch.py

Run the Control Node

Launch the node responsible for robot control:

ros2 run bumperbot_control control_node

Visualize in RViz

Open RViz for real-time visualization:

ros2 launch bumperbot_visualization rviz.launch.py

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a pull request.

Acknowledgments

Special thanks to the creators of the Udemy course Self-Driving and ROS 2: Learn by Doing for inspiration and guidance.

About

This project focuses on building and controlling a differential drive robot using ROS 2. It covers odometry, navigation, and autonomous control, providing a hands-on approach to self-driving robot development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors