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
- Backlog: View the Backlog Spreadsheet
- Sprint Plan: View the Sprint Plan Document
- Collaborative SLAM with
SLAM Toolbox - Real-time map merging and stitching
- Frontier-based exploration
- Map saving and post-processing
- Modular waypoint-driven execution
- XML-defined behavior trees
- YAML-based zone configuration
- BT-based navigation, recovery, and control actions
- Dynamic environment mapping
- Obstacle avoidance with path re-planning
- Multi-robot RViz visualization support
.
βββ 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- Ubuntu 22.04
- ROS2 Humble
- Nav2, SLAM Toolbox
- BehaviorTree.CPP v3
- Isaac Sim (optional for sim testing)
# 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.bashros2 launch frontier_explorer complete.launch.xmlSave 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/mapMerge maps:
python3 map_merger/merge_maps.py- Launch simulation or real robots
- Run Isaac Sim nav setup (if applicable):
ros2 launch carter_navigation multiple_robot_carter_navigation_hospital.launch.py- Run BT-based autonomy:
ros2 launch tb3_autonomy autonomy.launch.py- Monitor:
ros2 topic echo /carter1/amcl_pose
ros2 topic echo /carter1/behavior_tree_loglocation1: [-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]Defined in: bt_xml/tree.xml
Can include actions like navigate_to_pose, spin, wait, etc.
colcon test --packages-select frontier_explorer
lcov --directory build/frontier_explorer --capture --output-file coverage.info| 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 |
- Map alignment may require manual tweaking
- Large-scale environments might cause transform lookup failures
- Isaac Sim compatibility may depend on version
- Enhance map merging accuracy using ICP/Graph SLAM
- Extend to 3D mapping and perception
- Develop robust inter-robot coordination logic
- Abhishek Avhad
- Kashif Ansari
- Piyush Goenka
This project is licensed under the MIT License β see the LICENSE file for details.




