Giter Site home page Giter Site logo

lxjlu / lsc_dr_planner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from qwerty35/lsc_dr_planner

0.0 0.0 0.0 15.01 MB

Online deadlock-free multi-agent trajectory planner using linear safe corridor (LSC)

License: MIT License

C++ 74.83% C 24.34% MATLAB 0.66% CMake 0.17%

lsc_dr_planner's Introduction

lsc_dr_planner

This package presents a decentralized deadlock-free multi-agent trajectory planning algorithm in obstacle-dense environments. The details about this algorithm can be found at the following links.

  • Authors: Jungwon Park, Inkyu Jang, and H. Jin Kim from LARR, Seoul National University
  • Paper: Extended version (NOTE: this version includes the detailed proof that omitted in the ICRA version)
  • Video: Youtube

alt text

1. Install

This work is implemented based on C++17. Tested in the ROS Melodic, Ubuntu 18.04

(1) Install ROS Melodic for Ubuntu 18.04 or ROS Noetic for Ubuntu 20.04 (See http://wiki.ros.org/ROS/Installation, desktop-full version is recommended)

(2) Install CPLEX (https://www.ibm.com/products/ilog-cplex-optimization-studio)

(3) Set ROS distro

  • ROS Melodic
export ROS_DISTRO=melodic
  • ROS Noetic
export ROS_DISTRO=noetic

(4) Install dependancies and clone packages

sudo apt-get install ros-$ROS_DISTRO-octomap
sudo apt-get install ros-$ROS_DISTRO-octomap-*
sudo apt-get install ros-$ROS_DISTRO-dynamic-edt-3d
cd ~/catkin_ws/src
git clone https://github.com/qwerty35/lsc_dr_planner.git

(5) Before building packages, check CMAKELIST that CPLEX_PREFIX_DIR is indicating the intallation location. For instance, if CPLEX is installed in /opt/ibm/ILOG/CPLEX_Studio201, then CPLEX_PREFIX_DIR should be:

set(CPLEX_PREFIX_DIR /opt/ibm/ILOG/CPLEX_Studio201)

(6) Build packages

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

2. Demo

  • Run single mission
source ~/catkin_ws/devel/setup.bash
roslaunch lsc_dr_planner simulation.launch
  • Run simulation in the random forest sequentially
source ~/catkin_ws/devel/setup.bash
roslaunch lsc_dr_planner test_all_forest.launch
  • Run simulation in the sparse maze sequentially
source ~/catkin_ws/devel/setup.bash
roslaunch lsc_dr_planner test_all_maze_sparse.launch
  • Run simulation in the dense maze sequentially
source ~/catkin_ws/devel/setup.bash
roslaunch lsc_dr_planner test_all_maze_dense.launch

The simulation result will be saved at lsc_dr_planner/log.

3. Configuration

You can configure the simulation setting at the launch, mission files.

  • launch/simulation.launch: Mission, octomap, parameters for algorithm
  • missions/*.json: Start, goal, dynamical limits of the agent, map size

See the comments in the launch/simulation.launch and missions/readme.txt file for more details

Note: If you want to generate the mission file automatically, then use the matlab script in matlab/mission_generator

4. Acknowledgment

This work is implemented based on the following packages.

(1) PIBT (https://github.com/Kei18/mapf-IR)

(2) rapidjson (https://rapidjson.org/)

(3) openGJK (https://www.mattiamontanari.com/opengjk/)

(4) convhull_3d (https://github.com/leomccormack/convhull_3d)

lsc_dr_planner's People

Contributors

qwerty35 avatar qwerty3535 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.