GithubHelp home page GithubHelp logo

lxjlu / asap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cydxyyj/asap

0.0 0.0 0.0 21.4 MB

Asynchronous Spatial Allocation Protocol for Heterogeneous Multi-Agent Trajectory Planning

Python 87.42% CMake 12.58%

asap's Introduction

ASAP: Asynchronous Spatial Allocation Protocol for Heterogeneous Multi-Agent Trajectory Planning

video: https://www.youtube.com/watch?v=qTtVinPomfs

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 protocol named as ASAP (Asynchronous Spatial Allocation Protocol). 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 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 deve/setup.bash

Setup With Conda

If you install acados and rospkg in a specific conda enviroment, 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 tarets:
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.

asap's People

Contributors

cydxyyj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.