Skip to content

Latest commit

 

History

History
104 lines (73 loc) · 4.42 KB

File metadata and controls

104 lines (73 loc) · 4.42 KB

Table of Contents

This demonstration showcases how to:

  • Call the frontier exploration service to start an exploration mission
  • The robot will use the frontier discovery service alongside the exploration algorithm and fully explore the reachable areas of the warehouse
  • Frontiers are selected randomly, which is the most simple selection baseline

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_exploration_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 exploration service and start the mission
ros2 service call /robot_1/frontier_exploration/start_mission
  • 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.
  • The robot should start its behavior tree action regarding frontier exploration ExploreFrontierAction.cpp
    • The frontier tree in this demonstration has only one action
  • Next, it will select a random frontier, navigate towards it with the Nav2 stack, and update the pose graph with the Slam Toolbox
  • See the video bellow on what to expect

YouTube Video

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: