lis-epfl / multi_agent_pkgs

Multi-agent motion planning packages (HDSM method)
MIT License
13 stars 1 forks source link
aerial-robotics motion-planning multiagent-planning obstacle-avoidance

Multi-Agent Planning Packages

The code for the paper "High-Speed Motion Planning for Aerial Swarms in Unknown and Cluttered Environments", by Charbel Toumieh and Dario Floreano: (pdf, video).

The packages have been tested on Ubuntu 22.04, ROS2 Humble. The simulations have been run on Intel i9-13900K CPU and NVidia RTX 4090 GPU.

This project is continuously under development.

10 agents circular exchange (forest) 10 agents traversing forest / wall / forest
circular exchange linear navigation
10 agents traversing loops Hardware experiments on nano-drones (Crazyflie)
loops hardware

To get started you can skip to Getting Started. This repo contains the following packages:

At the end of this documentation you can find:

Getting Started

Install gurobi

Download gurobi 10.0.* from this link. Follow the installation instructions in this link. Finally, install the license by going to this link, creating a license and installing it (instructions on how to install it are shown when you create it).

Then, build gurobi and copy the library:

cd /opt/gurobi1002/linux64/src/build  #Note that the name of the folder gurobi1002 changes according to the Gurobi version
sudo make
sudo cp libgurobi_c++.a ../../lib/

Create and build workspace

Create a ROS2 workspace and clone the repo inside the src folder of the workspace (or simply clone it inside an existing workspace), then build it:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/lis-epfl/multi_agent_pkgs
cd ..
colcon build --symlink-install --packages-select jps3d decomp_util convex_decomp_util path_finding_util voxel_grid_util decomp_ros_msgs decomp_ros_utils 
source install/setup.bash
colcon build --symlink-install --packages-select env_builder_msgs env_builder mapping_util multi_agent_planner_msgs multi_agent_planner

Running the simulation

To switch between a known and unknown envrionment, you can set the variable free_grid in the launch file to true and false respectively.

Multiple agents in a circular configuration

Launch rviz2 in a terminal (if you didn't build decomp_ros_util due to OGRE conflicts, the polyhedra will not appear).

cd ~/ros2_ws
. install/setup.bash
rviz2 -d ~/ros2_ws/src/multi_agent_pkgs/multi_agent_planner/rviz/rviz_config_multi.rviz

Launch the environment in another window (if you want an empty environement replace env_builder.launch.py with env_builder_empty.launch.py):

cd ~/ros2_ws
. install/setup.bash
ros2 launch env_builder env_builder.launch.py

Launch the agents in another window. If you want each agent to run in a different terminal, uncomment the prefix=['xterm -fa default -fs 10 -hold -e'] line in the launch file:

cd ~/ros2_ws
. install/setup.bash
ros2 launch multi_agent_planner multi_agent_planner_circle.launch.py

Multiple agents going through forest + wall + forest

Launch rviz2 in a terminal (if you didn't build decomp_ros_util due to OGRE conflicts, the polyhedra will not appear).

cd ~/ros2_ws
. install/setup.bash
rviz2 -d ~/ros2_ws/src/multi_agent_pkgs/multi_agent_planner/rviz/rviz_config_multi.rviz

Launch the environment in another window:

cd ~/ros2_ws
. install/setup.bash
ros2 launch env_builder env_builder.launch.py

Launch the agents in another window. If you want each agent to run in a different terminal, uncomment the prefix=['xterm -fa default -fs 10 -hold -e'] line in the launch file:

cd ~/ros2_ws
. install/setup.bash
ros2 launch multi_agent_planner multi_agent_planner_long.launch.py

Improvements

These are the potential structural improvements:

These are the potential parametric improvements:

These are the potential future features under development:

References

[1] Toumieh, C. and Lambert, A., 2022. Voxel-grid based convex decomposition of 3d space for safe corridor generation. Journal of Intelligent & Robotic Systems, 105(4), p.87.

[2] Toumieh, C. and Lambert, A., 2022. Shape-aware Safe Corridors Generation using Voxel Grids. arXiv preprint arXiv:2208.06111

[3] Liu, S., Watterson, M., Mohta, K., Sun, K., Bhattacharya, S., Taylor, C.J. and Kumar, V., 2017. Planning dynamically feasible trajectories for quadrotors using safe flight corridors in 3-d complex environments. IEEE Robotics and Automation Letters, 2(3), pp.1688-1695.

Citation

@misc{toumieh2024highspeed,
      title={High-Speed Motion Planning for Aerial Swarms in Unknown and Cluttered Environments},
      author={Charbel Toumieh and Dario Floreano},
      year={2024},
      eprint={2402.19033},
      archivePrefix={arXiv},
      primaryClass={cs.RO}
}