Skip to content

kashifansaricodes/Multi-Robot-Autonomous-Robot-System

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🚧 Warehouse Autonomous Map Merging and Navigation System [Code: MuRoMM]

CI/CD codecov License

Screenshot from 2024-11-25 18-22-57
Screenshot from 2024-12-03 22-12-22


🧠 Project Overview

An integrated multi-robot autonomous system using ROS2 Humble and Nav2, that combines:

  • Main Branch consists:

  • πŸ€– Multi-Robot Mapping and Merging using SLAM and Frontier Exploration

  • BT Branch consists:

  • 🌳 Behavior Tree-based Sequential Navigation for collaborative warehouse tasks


πŸ“Έ Visual Demonstrations

πŸ”· Map Merging (Fetched from individual robots)

Screenshot from 2025-03-30 21-49-41


πŸ”· Behavior Tree Navigation (Testing over the merged map)

Screenshot from 2025-03-30 21-49-22


πŸŽ₯ Video Demonstrations



🌳 Groot2 BT chart


BT in Groot2


πŸ”‘ Key Features

πŸ—ΊοΈ Multi-Robot Mapping

  • Collaborative SLAM with SLAM Toolbox
  • Real-time map merging and stitching
  • Frontier-based exploration
  • Map saving and post-processing

🌳 Behavior Tree Navigation

  • Modular waypoint-driven execution
  • XML-defined behavior trees
  • YAML-based zone configuration
  • BT-based navigation, recovery, and control actions

🚧 Real-Time Capabilities

  • Dynamic environment mapping
  • Obstacle avoidance with path re-planning
  • Multi-robot RViz visualization support

πŸ“ Project Structure

.
β”œβ”€β”€ frontier_explorer/     # Mapping and merging package
β”œβ”€β”€ tb3_autonomy/          # BT-based autonomy system
β”œβ”€β”€ map_merger/            # Scripts to merge saved maps
β”œβ”€β”€ bt_xml/                # Behavior tree definitions
β”œβ”€β”€ config/                # Parameters and waypoints
β”œβ”€β”€ launch/                # All ROS2 launch files

βš™οΈ Installation

Requirements

  • Ubuntu 22.04
  • ROS2 Humble
  • Nav2, SLAM Toolbox
  • BehaviorTree.CPP v3
  • Isaac Sim (optional for sim testing)

Setup

# Create workspace
mkdir -p ~/warehouse_ws/src && cd ~/warehouse_ws/src

# Clone
git clone https://github.com/Abhishek260101/Warehouse-Autonomous-Robot-System.git

# Install dependencies
cd ~/warehouse_ws
rosdep install --from-paths src --ignore-src -r -y

# Build
colcon build
source install/setup.bash

πŸš€ Usage

πŸ—ΊοΈ Launch Multi-Robot Mapping & Merging

ros2 launch frontier_explorer complete.launch.xml

Save maps:

ros2 run nav2_map_server map_saver_cli -f carter1_map --ros-args -r map:=/carter1/map
ros2 run nav2_map_server map_saver_cli -f carter2_map --ros-args -r map:=/carter2/map

Merge maps:

python3 map_merger/merge_maps.py

🌳 Launch Behavior Tree Navigation

  1. Launch simulation or real robots
  2. Run Isaac Sim nav setup (if applicable):
ros2 launch carter_navigation multiple_robot_carter_navigation_hospital.launch.py
  1. Run BT-based autonomy:
ros2 launch tb3_autonomy autonomy.launch.py
  1. Monitor:
ros2 topic echo /carter1/amcl_pose
ros2 topic echo /carter1/behavior_tree_log

πŸ”§ Configuration

πŸ“ Waypoints (YAML)

location1: [-10.5779, 0.8917, 1.6376]
location2: [-10.1595, 11.2462, -3.1379]
location3: [-10.5338, 1.2766, -1.3744]
location4: [-1.7408, 2.1688, -1.0472]

🌳 Behavior Tree (XML)

Defined in: bt_xml/tree.xml
Can include actions like navigate_to_pose, spin, wait, etc.


πŸ§ͺ Testing & Coverage

colcon test --packages-select frontier_explorer
lcov --directory build/frontier_explorer --capture --output-file coverage.info

πŸ› οΈ Troubleshooting

Problem Solution
TF timeout Increase transform timeout in config files
Nav2 failures Verify server is active, check transforms and action interfaces
SLAM drift Adjust SLAM Toolbox tuning parameters
BT gets stuck Check /behavior_tree_log and action server availability

🧩 Known Issues

  • Map alignment may require manual tweaking
  • Large-scale environments might cause transform lookup failures
  • Isaac Sim compatibility may depend on version

πŸ”­ Future Work

  • Enhance map merging accuracy using ICP/Graph SLAM
  • Extend to 3D mapping and perception
  • Develop robust inter-robot coordination logic

πŸ‘₯ Contributors

  • Abhishek Avhad
  • Kashif Ansari
  • Piyush Goenka

πŸ“œ License

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



About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 78.1%
  • Python 16.7%
  • CMake 5.2%