Skip to content
/ ASAP Public

Asynchronous Spatial Allocation Protocol for Heterogeneous Multi-Agent Trajectory Planning

Notifications You must be signed in to change notification settings

CYDXYYJ/ASAP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASAP: Asynchronous Spatial-Temporal Allocation Planning Method for Heterogeneous Multi-Agent Systems

video (Youtube): https://youtu.be/au3fhqbySOE or Bilibili: https://b23.tv/8ywUSl3

paper: https://arxiv.org/abs/2309.07431

Function

In this package, we provide a multi-agent trajectory planning method for heterogeneous system. The inter-agent communication is based on ROS and do not any synchronization. We achieve this by an inter-agent allocation named as ASTA (Asynchronous Spatial-Temproal Allocation). The following figures will illustrate its performance.

16 heterogeneous agents exchange their positions

 

 

8 Ackman cars exchang lateral positions

 

 

Unsignalized intersection

 

 

Quick Start

Install Denpendency

  1. Install ROS following https://www.ros.org/
  2. Install some python packages:
pip install rospkg==1.4.0 numpy scipy

Here, we only support python3

  1. Install ACADOS and its Python interface as this link (https://docs.acados.org/)

  2. Install tmux as follows:

sudo apt-get install tmux

General Setup

Setup the project as follows:

git clone https://github.com/CYDXYYJ/ASAP.git
cd ASAP
catkin_make
source devel/setup.bash

Setup With Conda

If you install acados and rospkg in a specific conda envirogment, you need to uncomment the following code in ./src/planner/scripts/launch.py.

os.system('tmux send-keys -t '+session_name+':0.'+str(i) +' "conda activate $conda-env-name$" C-m')

Additionally, the $conda-env-name$ above should be replaced by your conda enviroment name.

Run It

  1. Open the visualization panel:
roslaunch visual vis.launch
  1. Start the planner:
python3 src/planner/scripts/launch.py
  1. Publish the targets:
python3 src/planner/scripts/publish.py

Others

Controlled Objects

Here, we deine more than 7 kinds of controlled objects which can be found under ASAP/src/planner/scripts/Dynamic/ Commenly, we classify these objects into three category which are car for bicycle model, unicycle for unicycle model and omnidirection for omnidirectional model. The specific object is defined under coresponding three folder. For example, a mini-ackman car is defined at ASAP/src/planner/scripts/Dynamic/Car/Mini_ack.

About

Asynchronous Spatial Allocation Protocol for Heterogeneous Multi-Agent Trajectory Planning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published