Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository

Repository Summary

Description Explore_lite port to ROS2
Checkout URI https://github.com/robo-friends/m-explore-ros2.git
VCS Type git
VCS Version main
Last Updated 2025-07-24
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
explore_lite 1.0.0
multirobot_map_merge 1.0.0

README

m-explore ROS2 port

ROS2 package port for multi-robot autonomous exploration of m-explore. Currently tested on Eloquent, Dashing, Foxy, and Galactic distros.

Contents

  1. Autonomous exploration
  2. Multirobot map merge

Autonomous exploration

Simulation with a TB3 robot

https://user-images.githubusercontent.com/8033598/128805356-be90a880-16c6-4fc9-8f54-e3302873dc8c.mp4

On a JetBot with realsense cameras

https://user-images.githubusercontent.com/18732666/128493567-6841dde0-2250-4d81-9bcb-8b216e0fb34d.mp4

Installing

No binaries yet.

Building

Build as a standard colcon package. There are no special dependencies needed (use rosdep to resolve dependencies in ROS).

RUNNING

To run with a params file just run it with

ros2 run explore_lite explore --ros-args --params-file <path_to_ros_ws>/m-explore-ros2/explore/config/params.yaml

Running the explore demo with TB3

Install nav2 and tb3 simulation. You can follow the tutorial.

Then just run the nav2 stack with slam:

export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/${ROS_DISTRO}/share/turtlebot3_gazebo/models
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True

And run this package with

ros2 launch explore_lite explore.launch.py

You can open rviz2 and add the exploration frontiers marker (topic is explore/frontiers) to see the algorithm working and the frontier chosen to explore.

Additional features

Stop/Resume exploration

By default the exploration node will start right away the frontier-based exploration algorithm. Alternatively, you can stop the exploration by publishing to a False to explore/resume topic. This will stop the exploration and the robot will stop moving. You can resume the exploration by publishing to True to explore/resume.

Returning to initial pose

The robot will return to its initial pose after exploration if you want by defining the parameter return_to_init to True when launching the node.

TB3 troubleshooting (with foxy)

If you have trouble with TB3 in simulation, as we did, add these extra steps for configuring it.

source /opt/ros/${ROS_DISTRO}/setup.bash
export TURTLEBOT3_MODEL=waffle
sudo rm -rf /opt/ros/${ROS_DISTRO}/share/turtlebot3_simulations
sudo git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations /opt/ros/${ROS_DISTRO}/share/turtlebot3_simulations
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/${ROS_DISTRO}/share/turtlebot3_simulations/turtlebot3_gazebo/models

Then you’ll be able to run it.


Multirobot map merge

This package works with known and unknown initial poses of the robots. It merges the maps of the robots and publishes the merged map. Some results in simulation are shown below.

Known initial poses

This modality gives normally the best results. The original ROS1 code only supports slam_gmapping type of maps for the merge. The following shows the result with that.

https://user-images.githubusercontent.com/8033598/144522712-c31fb4bb-bb5a-4859-b3e1-8ad665f80696.mp4

We also support using slam_toolbox in a yet experimental branch. The following demo shows the map merging using the currently supported and most used ROS2-SLAM library.

https://user-images.githubusercontent.com/8033598/170846935-cfae9f3f-5edd-43ea-b993-7b3ba1db921b.mp4

Unknown initial poses

It works better if the robots start very close (< 3 meters) to each other so their relative positions can be calculated properly.

File truncated at 100 lines see the full file

Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository

Repo symbol

m-explore-ros2 repository