All Projects → mit-acl → mader

mit-acl / mader

Licence: BSD-3-Clause license
Trajectory Planner in Multi-Agent and Dynamic Environments

Programming Languages

C++
36643 projects - #6 most used programming language
Mathematica
289 projects
python
139335 projects - #7 most used programming language
matlab
3953 projects
CMake
9771 projects
AMPL
153 projects
shell
77523 projects

Projects that are alternatives of or similar to mader

robot
Functions and classes for gradient-based robot motion planning, written in Ivy.
Stars: ✭ 29 (-88.49%)
Mutual labels:  path-planning, trajectory-optimization
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (-58.73%)
Mutual labels:  optimization, ros
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (-86.11%)
Mutual labels:  path-planning, ros
car-racing
A toolkit for testing control and planning algorithm for car racing.
Stars: ✭ 30 (-88.1%)
Mutual labels:  trajectory-optimization, obstacle-avoidance
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-58.33%)
Mutual labels:  optimization, ros
Ifopt
An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt)
Stars: ✭ 372 (+47.62%)
Mutual labels:  optimization, ros
toy code
No description or website provided.
Stars: ✭ 78 (-69.05%)
Mutual labels:  optimization, ros
scikit-robot
A Flexible Framework for Robot Control in Python
Stars: ✭ 70 (-72.22%)
Mutual labels:  path-planning, ros
Awesome Robotics
A curated list of awesome links and software libraries that are useful for robots.
Stars: ✭ 478 (+89.68%)
Mutual labels:  optimization, ros
Spot mini mini
Dynamics and Domain Randomized Gait Modulation with Bezier Curves for Sim-to-Real Legged Locomotion.
Stars: ✭ 426 (+69.05%)
Mutual labels:  optimization, ros
Autoware.ai
Open-source software for self-driving vehicles
Stars: ✭ 5,044 (+1901.59%)
Mutual labels:  planner, ros
IterativeLQR.jl
A Julia package for constrained iterative LQR (iLQR)
Stars: ✭ 15 (-94.05%)
Mutual labels:  optimization, trajectory-optimization
aruco
Aruco marker detector and pose estimation for AR and Robotics with ROS support
Stars: ✭ 93 (-63.1%)
Mutual labels:  ros
hybrid planning experiments
Sampler + Optimizing Motion Planning Demonstrations
Stars: ✭ 23 (-90.87%)
Mutual labels:  ros
segment global planner
A ROS global planner plugin for segments tracking
Stars: ✭ 31 (-87.7%)
Mutual labels:  ros
mysql tuning-cookbook
Chef cookbook to create MySQL configuraiton files better suited for your system.
Stars: ✭ 23 (-90.87%)
Mutual labels:  optimization
handsfree
HandsFree Open Source Robot Project
Stars: ✭ 139 (-44.84%)
Mutual labels:  ros
structural-imbalance
Demo for analyzing the structural imbalance on a signed social network.
Stars: ✭ 22 (-91.27%)
Mutual labels:  optimization
ur5controller
OpenRAVE Controller Plugin for UR5 (Universal Robots UR5) Robot
Stars: ✭ 21 (-91.67%)
Mutual labels:  ros
Turtlebot Navigation
This project was completed on May 15, 2015. The goal of the project was to implement software system for frontier based exploration and navigation for turtlebot-like robots.
Stars: ✭ 28 (-88.89%)
Mutual labels:  ros

MADER: Trajectory Planner in Multi-Agent and Dynamic Environments

Accepted for publication in the IEEE Transactions on Robotics (T-RO)

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={IEEE Transactions on Robotics},
  year={2021},
  publisher={IEEE}
}

General Setup

MADER has been tested with

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

The backend optimizer is Gurobi. Please install the Gurobi Optimizer, and test your installation typing gurobi.sh in the terminal. Have a look at this section if you have any issues.

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 src/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).

Note

We strongly recommend the use of Gurobi as the backend optimizer. Alternatively, you can use NLOPT by setting USE_GUROBI to OFF in the CMakeList.txt, and then running bash src/mader/install_nlopt.sh before running bash src/mader/install_and_compile.sh.


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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].