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
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