An autonomous robot capable of self-exploring unknown environments and performing systematic room cleaning.
| Feature | Status | Description |
|---|---|---|
| Simulation | ✅ Done | Robot model & physics in Gazebo Harmonic. |
| Mapping | ✅ Done | SLAM Toolbox integration. |
| Navigation | ✅ Done | Nav2 Stack (Path Planning & Obstacle Avoidance). |
| Auto Mapping | ✅ Done | Frontier Exploration (OpenCV based). |
| Auto Cleaning | 🚧 In Progress | Room Segmentation & Zigzag Plan (Code Logic Ready). |
- Refine Coverage Path Planning algorithm.
- Add 3D Vision support.
- Implement Docking & Auto-Charging.
View the robot model and sensor configuration.
ros2 launch r2d2_description display.launch.py📂 About this:
- Package:
r2d2_description - File:
urdf/cleaner_robot.urdf.xacro - Details: Defines the robot chassis, wheels, lidar, and camera joints.
Drive the robot manually to create a map of the house.
ros2 launch r2d2_navigation mapping.launch.py📂 About this:
- Package:
r2d2_navigation - Tech: Uses
slam_toolbox(Async Mode). - Goal: Generates a 2D Occupancy Grid map of the environment.
Give the robot a "Goal Pose" in RViz, and it will drive there automatically.
ros2 launch r2d2_navigation navigation.launch.py📂 About this:
- Package:
r2d2_navigation - Tech: Nav2 Stack (AMCL + MPPI Controller).
- Details: Uses
nav2_params.yamlto configure costmaps and behavior trees.
The robot explores the unknown house by itself until the map is complete.
# 1. Launch Complete Autonomy Stack
ros2 launch r2d2_autonomy autonomy.launch.py
# OR (If simulation is already running)
# 2. Run Frontier Explorer Node
ros2 run r2d2_autonomy frontier_explorer📂 About this:
- Package:
r2d2_autonomy - Code:
frontier_explorer.py - Logic: Uses OpenCV to find "frontiers" (edges between known & unknown space) and sends Nav2 goals to them.
The robot systematically cleans the mapped house room-by-room.
ros2 launch r2d2_autonomy cleaning.launch.py(Demo GIF Coming Soon)
📂 About this:
- Package:
r2d2_autonomy - Code:
coverage_planner.py - Logic:
- Segment Map: Breaks map into Rooms.
- Zigzag Path: Generates a Boustrophedon path to cover every inch.
# 1. Clone
mkdir -p ~/dev_ws/src
cd ~/dev_ws/src
git clone https://github.com/Ojas-Thombare/R2-D2-Autonomous-Cleaning-Robot.git
# 2. Install
cd ~/dev_ws
rosdep install --from-paths src --ignore-src -r -y
# 3. Build provided packages
colcon build --packages-select r2d2_description r2d2_gazebo r2d2_navigation r2d2_autonomy
# 4. Source
source install/setup.bash


