Giter Site home page Giter Site logo

bilevel-planner's Introduction

Bilevel Planner

by researchers from the Intelligent Motion Lab at Duke University

Overview

This package is a stand-alone implementation of our UAV trajectory generator. It is able to generate optimal (minimizing jerk/snap and traversal time) trajectories in real-time. For example, trajectories for flying through a gazebo in a forest is shown below:

Flying through a gazebo

Usage

System Requirements

This package only requires a C++ complier and a Python interpretor. We have tested it on macOS High Sierra and Ubuntu 16.04.

License for Mosek

This implementation relies on Mosek, a commercial QP solver that provides free license for educational purpose. One can obtain a free personal academic license from here, and place it inside a folder name "mosek" in the home directory.

Dependencies

C++: Please make sure that the following C++ packages are installed, which means that they can be found through CMake's find_package command.

  • Pybind11. A package that allows people to call C++ code from Python.
  • Boost. There is no required minimum version, but the lowest version we have tested upon is 1.58.
  • Eigen3. A C++ linear algebra library.

Python: Please make sure that the following Python packages are installed.

# Install Mosek
pip install -f https://download.mosek.com/stable/wheel/index.html Mosek --user # skip --user for a system-wide installation
# Install other packages
pip install numpy, scipy, matplotlib, tabulate --user # skip --user for a system-wide installation

Step by step walkthrough

  • Please make sure that all the C++ and Python dependencies are installed.
  • Please make sure that a license for Mosek is installed.
  • Download this repo
git clone https://github.com/OxDuke/Bilevel-Planner.git
  • Complie C++ code
cd Bilevel-Planner
mkdir build
cd build
cmake ..
make
  • Run an example
cd ..
python spatialSolver.py 58
  • At this stage, you should see several figures popping up and some results printed in the terminal:

Terminal screenshot

  • Run more examples: There are 100 examples included in the "dataset/" directory. If you want to run the i-th (i = 1, ..., 100) example, run:
python spatialSolver.py i

Theory

The theory of this planner is described in the paper:
Fast UAV Trajectory Optimization using BilevelOptimization with Analytical Gradients

More

  • To get the most of our software, we recommend using Sqopt to solve the QP. Unfortunately, Sqopt is not available as a free software, it comes along with SNOPT. If you have a copy of Sqopt and are interested in using it as the QP solver, please contact us.

Contact

If you any problems with this package or the paper, feel free to report an issue or contact us.

bilevel-planner's People

Contributors

paperstiger avatar oxduke 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.