Skip to content

Latest commit

 

History

History
126 lines (87 loc) · 4.83 KB

File metadata and controls

126 lines (87 loc) · 4.83 KB

Table of Contents

This demonstration showcases how to:

  • Call the frontier discovery service to generate clusters or center of masses with a classic frontier exploration method
  • Send goals to the robot in RViz2 and generate new frontiers from the updated map
  • Provide insights on how this is integrated with Nav2 and the SlamToolbox

Before running the demonstrations, follow the instructions in our setup guide to properly configure your environment.

Once your environment is ready, follow these steps to set up the project:

  1. Clone the repository:
    Download the project files to your computer.
git clone https://github.com/multirobotplayground/Jazzy-Multi-Robot-Sandbox.git
cd Jazzy-Multi-Robot-Sandbox
  1. Initialize submodules:
    Some dependencies are included as submodules. This command fetches them.
git submodule update --init --remote
  1. Source ROS 2 environment:
    Make sure your terminal session is using the correct ROS 2 distribution (here, jazzy).
source /opt/ros/jazzy/setup.bash
  1. Build the workspace:
    Compile all packages in the repository.
colcon build
  1. Source the workspace:
    Update your environment so ROS 2 can find the newly built packages.
source install/setup.bash

After completing these steps, your workspace will be ready to run the multi-robot simulations and integrations described in this guide.

  • Run the simulation through the frontier_discovery_launch.py launch file. It is going to spawn a Husky robot with Nav2, slam-toolbox, and a frontier discovery node.

    • If everything runs correctly, you should see the following scene.

  • Call the frontier discovery service
ros2 service call /robot_1/frontier_clusters_discovery/compute frontier_msgs/srv/Frontiers
  • The system will compute the frontier cells, clusters, and center of masses. This process is done this way due to performance issues if compared to others that iterate over the map cells with quadratic complexity.
  • If the service run appropriately, you should see the following on RViz2.
  • The magenta lines represent frontier cells, whereas the blue boxes are the frontier center of masses from two different cell clusters.

  • Set a Nav2 goal in the following RViz2 button.

  • The robot must navigate towards the location, avoiding obstacles, and uncovering new areas of the warehouse as follows.

  • Call the frontier discovery service again to discover new center of masses.
ros2 service call /robot_1/frontier_clusters_discovery/compute frontier_msgs/srv/Frontiers
  • You should see the new frontiers and their centroids as follows.

Support Open Source mobile robots projects for search and rescue in natural disasters, which is my main motivation. Your donation will make a huge difference!

Donate Donate

All content from this repository is released under a modified GPLv3 license.

Author/Maintainer:

emails: