Skip to content

ballonballon/gmm_map_python

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MR-GMMapping

This is the open-source project MR-GMMapping, a communication efficient Multi-Robot GMM-based Mapping system.

The related paper "MR-GMMapping: Communication Efficient Multi-Robot Mapping System via Gaussian Mixture Model" is submitted to the IEEE Robotics and Automation Letters (RA-L) with the 2022 International Conference on Robotics and Automation(ICRA 2022).

The video demo is resleased at bilibili (Chinese Youtube) and Youtube

Platform

  • Multi-robots with NVIDIA Jetson TX2, Intel RealSense T265, and depth camera D435i
  • ubuntu 18.04 (bash)
  • ROS melodic
  • python2

Dependency

Pytorch for Place Recognition

pip install torch torchvision

Pre-trained model is available here Then change the regarding path of model13.ckpt in MapBuilderNode.py.

Python-PCL

Useful reference here.

GTSAM

git clone https://bitbucket.org/gtborg/gtsam.git
mkdir build
cd build
cmake .. -DGTSAM_INSTALL_CYTHON_TOOLBOX=on
make check
make install
cd cython
sudo python setup.py install

Other dependency

sudo apt install ros-melodic-tf2-ros
pip install autolab_core
pip install sklearn
pip install future
pip install transforms3d
pip install pygraph

For ROS libraries, you can use apt install ros-melodic-(missing library) to install the missing libraries.

Datasets

The ROS bags of the multi-robot simulators can be downloaded here.

You can also use the keyboard to control the robots in the Gazebo simulator by running

roslaunch turtlebot3sim small_env_two_robots.launch 
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

Usage Example

Installation

download the repo and then put it in your ros package

catkin_make
source <repo_path>/devel/setup.bash

Single Robot Map Building

roslaunch gmm_map_python visualgmm_realsence.launch

Multi-robot Relative Pose Estimation

roslaunch gmm_map_python visualgmm_realsence_2robot.launch

If you want to run this system with your simulator, there are three params need to adjust for better performance:

  • match_thr: small match_thr reduce the probability of scene mismatch。
  • fitness_thr: smaller fitness_thr leads to a better global map accuracy after the first map merging.
  • new_self_submap_count: adjust according to the camera parameters. Larger new_self_submap_count is better for place recognition, but will bring longer mapping delay.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 75.2%
  • CMake 10.1%
  • C++ 7.4%
  • Lua 7.3%