Skip to content

Abhishek260101/Warehouse-Autonomous-Robot-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MULTI-ROBOT MAP MERGING [Code: MuRoMM]

CICD Workflow status codecovLicense

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

Screenshot from 2024-12-03 22-12-22

Resources

Overview

This project implements a multi-robot mapping system using ROS2 Humble that enables two carter robots to explore and map an environment collaboratively. The system combines individual SLAM-generated maps from each robot to create a unified, comprehensive map of the environment.

Key Features

  • Frontier-based exploration algorithm for autonomous navigation
  • Automatic map expansion and alignment
  • Real-time map merging
  • Multi-robot coordination
  • Visualizations using RViz2

Dependencies

  • ROS2 Humble
  • Ubuntu 22.04
  • C++17 or higher
  • OpenCV 4.5+
  • Nav2
  • SLAM Toolbox
  • tf2_ros

Required ROS2 Packages

sudo apt update
sudo apt install ros-humble-turtlebot3
sudo apt install ros-humble-slam-toolbox
sudo apt install ros-humble-nav2*
sudo apt install ros-humble-tf2-ros

Installation

Build from Source

# Create a ROS2 workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

# Clone the repository
git clone https://github.com/Abhishek260101/Warehouse-Atonomous-Robot-System.git

# Install dependencies
sudo rosdep init  # if not initialized before
rosdep update
rosdep install --from-paths src --ignore-src -r -y

# Build the package
cd ~/ros2_ws
colcon build --symlink-install

# Source the workspace
source install/setup.bash

Usage

Launch the System

  1. Start the robots and their core functionalities:
ros2 launch frontier_explorer complete.launch.xml
  1. Rviz Visualization
# For carter1
ros2 run rviz2 rviz2 --ros-args -r /tf:=/carter1/tf -r /tf_static:=/carter1/tf_static

# In another terminal for carter2
ros2 run rviz2 rviz2 --ros-args -r /tf:=/carter2/tf -r /tf_static:=/carter2/tf_static
  1. To save maps generated by SLAM Toolbox, you can use the map_saver_cli tool from nav2_map_server package.
# For carter1's map
ros2 run nav2_map_server map_saver_cli -f carter1_map --ros-args -r map:=/carter1/map

# For carter2's map
ros2 run nav2_map_server map_saver_cli -f carter2_map --ros-args -r map:=/carter2/map
  1. To merge the map save the maps in workspace root and run the map_merger.py script from the map_merger folder

Project Structure

src/frontier_explorer/
├── CMakeLists.txt
├── config
│   └── slam_toolbox_config.yaml
├── include
│   └── frontier_explorer
│       └── frontier_explorer.hpp
├── launch
│   ├── complete.launch.xml
│   └── slam.launch.xml
├── package.xml
├── src
│   ├── frontier_explorer.cpp
│   └── main.cpp
└── test
    └── frontier_explorer_test.cpp

Testing & Coverage

colcon build --packages-select frontier_explorer
colcon test --packages-select frontier_explorer --event-handlers console_direct+

lcov --directory build/frontier_explorer --capture --output-file coverage.info
lcov --remove coverage.info '/opt/*' '/usr/*' '*/test/*' --output-file coverage.filtered
genhtml coverage.filtered --output-directory coverage_report

Contributing

  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

License

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

Team

  • Abhishek Avhad
  • Kashif Ansari
  • Piyush Goenka

Known Issues

  • Map alignment may need manual adjustment in certain scenarios
  • Frontier detection sensitivity might need tuning based on environment
  • Transform lookups may timeout in large environments

Future Work

  • Implementation of more sophisticated map merging algorithms
  • Integration with 3D mapping capabilities
  • Enhanced multi-robot coordination strategies

Acknowledgments

  • ROS2 Community
  • NVidia community

Troubleshooting

Common issues and solutions:

  1. Transform timeout errors:
    • Increase transform timeout in parameter files
  2. Navigation issues:
    • Check Nav2 parameters
    • Verify map resolution
  3. SLAM issues:
    • Adjust SLAM Toolbox parameters
    • Check sensor data

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •