GithubHelp home page GithubHelp logo

hanmeh / mader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mit-acl/mader

0.0 0.0 0.0 119.68 MB

Trajectory Planner in Multi-Agent and Dynamic Environments

License: BSD 3-Clause "New" or "Revised" License

Shell 0.07% CMake 0.55% C++ 64.63% Mathematica 31.67% MATLAB 0.99% AMPL 0.36% Python 1.74%

mader's Introduction

MADER: Trajectory Planner in Multi-Agent and Dynamic Environments

Single-Agent Multi-Agent
MADER: Trajectory Planner in Multi-Agent and Dynamic Environments MADER: Trajectory Planner in Multi-Agent and Dynamic Environments
MADER: Trajectory Planner in Multi-Agent and Dynamic Environments MADER: Trajectory Planner in Multi-Agent and Dynamic Environments

Citation

When using MADER, please cite MADER: Trajectory Planner in Multi-Agent and Dynamic Environments (pdf, video):

@article{tordesillas2020mader,
  title={{MADER}: Trajectory Planner in Multi-Agent and Dynamic Environments},
  author={Tordesillas, Jesus and How, Jonathan P},
  journal={arXiv preprint arXiv:2010.11061},
  year={2020}
}

General Setup

MADER has been tested with

  • Ubuntu 16.04/ROS Kinetic
  • Ubuntu 18.04/ROS Melodic

The backend optimizer can be either Gurobi (recommended, used by default) or NLOPT (discouraged):

Then simply run this commands:

cd ~/ && mkdir ws && cd ws && mkdir src && cd src
git clone https://github.com/mit-acl/mader.git
cd ..
#bash bash mader/install_nlopt.sh      #ONLY if you are going to use NLOPT, it'll install NLopt v2.6.2
bash mader/install_and_compile.sh      

The script install_and_compile.sh will install CGAL v4.12.4, GLPK and other ROS packages (check the script for details). It will also compile the repo. This bash script assumes that you already have ROS installed in your machine.

Running Simulations

Single-agent

roslaunch mader single_agent_simulation.launch

Now you can press G (or click the option 2D Nav Goal on the top bar of RVIZ) and click any goal for the drone.

To run many single-agent simulations in different random environments, you can go to the scripts folder and execute python run_many_sims_single_agent.py.

Multi-agent

Note: For a high number of agents, the performance of MADER improves with the number of CPUs available in your computer.

Open four terminals and run these commands:

roslaunch mader mader_general.launch type_of_environment:="dynamic_forest"
roslaunch mader many_drones.launch action:=start
roslaunch mader many_drones.launch action:=mader
roslaunch mader many_drones.launch action:=send_goal

(if you want to modify the drone radius, you can do so in mader.yaml). For the tables shown in the paper, the parameters (drone radius, max vel,...) used are also detailed in the corresponding section of the paper

Octopus Search

You can run the octopus search with a dynamic obstacle by simply running

roslaunch mader octopus_search.launch

And you should obtain this:

(note that the octopus search has some randomness in it, so you may obtain a different result each time you run it).

Issues when installing Gurobi:

If you find the error:

“gurobi_continuous.cpp:(.text.startup+0x74): undefined reference to
`GRBModel::set(GRB_StringAttr, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)'”

The solution is:

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

Credits:

This package uses some C++ classes from the DecompROS repo (included in the thirdparty folder).


Approval for release: This code was approved for release by The Boeing Company in December 2020.

mader's People

Contributors

jtorde 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.