Skip to content

Sharva45/Buggerbot-gz_sim-based-simulation

Repository files navigation

Buggerbot — Gazebo Sim (gz-sim) Based Simulation

Buggerbot in Gazebo Simulation Buggerbot Buggerbot

A complete ROS 2 Humble + Gazebo Harmonic simulation of Buggerbot — a differential drive wheeled robot — with a full URDF/SDF model, LiDAR/Camera/IMU sensor suite, keyboard teleoperation, and Nav2 autonomous navigation.

Designed and Created in Solidworks, imported the urdf file and used it for Simulation in Gazebo Harmonic.

Bugggerbot because it had lot of bugs in the first version!

This project can be upgraded. This is the most basic version that i have published.


Table of Contents


✨ Features

  • Differential Drive — Two-wheeled robot with full wheel odometry
  • URDF / SDF Model — Parameterized robot description with meshes and inertial properties
  • Sensor Suite — LiDAR, RGB Camera, and IMU publishing to standard ROS 2 topics
  • Teleoperation — Keyboard-based manual control
  • Nav2 Navigation — Autonomous waypoint navigation with costmaps and path planning
  • Gazebo Harmonic — Modern gz-sim with high-fidelity physics and rendering

Demo

Gazebo Simulation RViz2 Navigation
sim rviz

Mapping

Navigation


Prerequisites

Dependency Version
OS Ubuntu 22.04
ROS 2 Humble Hawksbill
Gazebo Sim Harmonic
ros_gz bridge Humble-compatible
Nav2 Latest for Humble
# Install Gazebo Harmonic
sudo apt-get install gz-harmonic

# Install ROS dependencies
sudo apt install ros-humble-ros-gz \
                 ros-humble-nav2-bringup \
                 ros-humble-navigation2 \
                 ros-humble-teleop-twist-keyboard \
                 ros-humble-robot-state-publisher \
                 ros-humble-joint-state-publisher

Installation

# 1. Create workspace
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src

# 2. Clone the repo
git clone https://github.com/Sharva45/Buggerbot-gz_sim-based-simulation.git

# 3. Install dependencies
cd ~/ros2_ws
rosdep update && rosdep install --from-paths src --ignore-src -r -y

# 4. Build
colcon build --symlink-install

# 5. Source
source install/setup.bash

⚠️ Update the structure above to match your actual directory layout.


Usage

Source your workspace before running anything:

source ~/ros2_ws/install/setup.bash

1. Launch Simulation

ros2 launch bugger gz_simulator_launch.py

2. Teleoperation

ros2 run teleop_twist_keyboard teleop_twist_keyboard \
  --ros-args -r /cmd_vel:=<YOUR_CMD_VEL_TOPIC>

3. Autonomous Navigation (Nav2)

ros2 launch bugger navigation.launch.py

Buggerbot in Gazebo Simulation


📡 Sensor Topics

Sensor Topic Message Type
LiDAR /scan sensor_msgs/LaserScan
Camera /camera/image sensor_msgs/Image
IMU /imu sensor_msgs/Imu
Odometry /odom nav_msgs/Odometry
Cmd Vel /cmd_vel geometry_msgs/Twist

Run ros2 topic list after launching to confirm your actual topic names.


Contributing

This is an open source project — you are free to use, modify, and build upon it!

All contributions are welcome, whether it's bug fixes, new features, better docs, or new worlds and maps.

  1. Fork the repository
  2. Create your branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -m 'Add your feature'
  4. Push to your branch: git push origin feature/your-feature
  5. Open a Pull Request

Found a bug or have an idea? Open an issue — feedback of any kind is appreciated.


License

This project is licensed under the MIT License — see the LICENSE file for details.

You are free to use this project for personal, academic, or commercial purposes.


Built with ❤️ using ROS 2 Humble & Gazebo Harmonic  |  Open Source & Free to Use

About

Autonomous Mobile Robot Simulation using Solidworks, ROS2 and Gazebo Harmonic

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages