Skip to content

Jinqiang/SMMR-Explore

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

SMMR-Explore

The released 1.0 Version of SMMR-Explore, the supporting open-sourced software package of the paper "SMMR-Explore: SubMap-based Multi-Robot Exploration System with Multi-robot and Multi-target Potential Field Explorer" submitted to ICRA 2021.

Our video is released at Youtube(english version) and Bilibili(Chinese Version). Note that videos of all experiments also get released on Youtube Channel.

Features:

  • Only submaps get shared among robots, reducing the communication overhead.
  • place Recognition (PR), Relative pose estimation (RelPose) and map merge methods only based on submaps.
  • Fast Multi-robot Multi-target Potential Field (MMPF) exploration method, increasing exploration efficiency with less travel cost than Rapidly Random Tree (RRT).

Platform

  • Multiple cars with nvidia jetson nano board and Lidar sensor.
  • ubuntu 18.04 (bash)
  • ROS melodic

Dependency

Cartographer

Cartographer is a 2D/3D map-building method. It provides the submaps' and the trajectories' information when building the map.

We slightly modified the original Cartographer to make it applicable to multi-robot SLAM and exploration.

Please refer to Cartographer-for-SMMR to install the modified Cartographer to carto_catkin_ws

and

source /PATH/TO/CARTO_CATKIN_WS/devel_isolated/setup.bash

Pytorch for PointNetVLAD

official_installation_guide

pip install torch torchvision

The Pretrained PointNetVLAD

  • gem.pth NN model for place recognition, should be placed in "src/m-explore/map_merge/include/weights/"
  • model_test.ckpt NN model of 2D PointNetVLAD, should be placed in "src/smmr_explore_wrapper/scripts/"
  • (for simulation) gazebo, especially gazebo-ros

Note: please contact author to get model files or download model at download link with password as 058o. The model files are also available at TsinghuaCloud.

Turtlebot3 Description and Simulation

(robot model for simulation)

sudo apt install ros-melodic-turtlebot3*
sudo apt install ros-melodic-bfl
pip install future
sudo apt install ros-melodic-teb-local-planner

Ready to run Exploration in Gazebo?

Installation

download the repo and then run

catkin_make
source <repo_path>/devel/setup.bash
  • Template
{env_size}      = 'small' or 'large'
{number_robots} = 'single' or 'two' or 'three'
{method}        = 'rrt' or 'mmpf'
{suffix}        = 'robot' or 'robots' (be 'robot' when number_robots != 'single')
roslaunch turtlebot3sim {env_size}_env_{number_robots}_{suffix} .launch
roslaunch turtlebot3sim {number_robots}_{suffix} .launch
roslaunch {method} {number_robots}_{method}_node.launch

Specifically:

BaseLine: Rapidly Random Tree (RRT)

  • Small Environment -- Single Robot
roslaunch turtlebot3sim small_env_single_robot.launch
roslaunch turtlebot3sim single_robot.launch
roslaunch rrt single_rrt_node.launch
  • Small Environment -- Two Robots
roslaunch turtlebot3sim small_env_two_robots.launch 
roslaunch turtlebot3sim two_robots.launch
roslaunch rrt two_rrt_node.launch 
  • Small Environment -- Three Robots
roslaunch turtlebot3sim small_env_three_robots.launch 
roslaunch turtlebot3sim three_robots.launch
roslaunch rrt three_rrt_node.launch 
  • Large Environment -- Single Robot
roslaunch turtlebot3sim Large_env_single_robot.launch
roslaunch turtlebot3sim single_robot.launch
roslaunch rrt single_rrt_node.launch
  • Large Environment -- Two Robots
roslaunch turtlebot3sim Large_env_two_robots.launch 
roslaunch turtlebot3sim two_robots.launch
roslaunch rrt two_rrt_node.launch 
  • Large Environment -- Three Robots
roslaunch turtlebot3sim Large_env_three_robots.launch 
roslaunch turtlebot3sim three_robots.launch
roslaunch rrt three_rrt_node.launch 

Multi-robot Multi-target Potential Field (MMPF)

  • Small Environment -- Single Robot
roslaunch turtlebot3sim small_env_single_robot.launch
roslaunch turtlebot3sim single_robot.launch
roslaunch mmpf single_mmpf_node.launch
  • Small Environment -- Two Robots
roslaunch turtlebot3sim small_env_two_robots.launch 
roslaunch turtlebot3sim two_robots.launch
roslaunch mmpf two_mmpf_node.launch 
  • Small Environment -- Three Robots
roslaunch turtlebot3sim small_env_three_robots.launch 
roslaunch turtlebot3sim three_robots.launch
roslaunch mmpf three_mmpf_node.launch 
  • Large Environment -- Single Robot
roslaunch turtlebot3sim Large_env_single_robot.launch
roslaunch turtlebot3sim single_robot.launch
roslaunch mmpf single_mmpf_node.launch
  • Large Environment -- Two Robots
roslaunch turtlebot3sim Large_env_two_robots.launch 
roslaunch turtlebot3sim two_robots.launch
roslaunch mmpf two_mmpf_node.launch 
  • Large Environment -- Three Robots
roslaunch turtlebot3sim Large_env_three_robots.launch 
roslaunch turtlebot3sim three_robots.launch
roslaunch mmpf three_mmpf_node.launch 

Start Exploration

For all the cases, choose "Publish Point" button in the rviz and then click anywhere in the map to start the exploration.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 75.4%
  • Python 12.0%
  • CMake 9.6%
  • Lua 2.5%
  • MATLAB 0.5%