Giter VIP home page Giter VIP logo

optimalbeziertrajectorygeneration's Introduction

NOTICE

This library has been migrated to https://github.com/caslabuiowa/BeBOT.

BezierTrajectory

The purpose of this repository is to build a library that can be used to generate optimal trajectories, states and control inputs for autonomous vehicles using Bernstein polynomials.

This project has three main parts: Bezier curve library, Optimal control solver, and results plotting.

Bezier Curve Library

Bezier curves are parametric curves which use Bernstein polynomials as a polynomial basis. They possess many useful properties which can exploited for motion planning [1]. The Bezier Curve Library implements such properties together with computationally efficient algorithms to compute the max/min of a Bezier curve, the distance between Bezier curves, etc.

Optimal Control solver

By applying a desired cost function and constraints, the optimal trajectories for vehicles can be computed. The optimizer being used is the SciPy function minimize. The specific algorithm being used is "SLSQP".

Displaying Results

Once the optimal trajectories have been generated, the results are displayed to the user. This is important when debugging trajectories and further improving the code. When used on a robot, it is advised that the engineer supress any plots being produced.

Important Notes

Due to a bug in previous version of the Scipy package, it is important that you use version 1.2.0 or higher. In earlier versions, the minimizing routine would return successfully even if the constraints to the problem were not met.

Acknowledgements

This research is funded by ONR.

References

[1] Farouki, Rida T. "The Bernstein polynomial basis: A centennial retrospective." Computer Aided Geometric Design 29.6 (2012): 379-419.

[2] Venanzio Cichella, Isaac Kaminer, Claire Walton, Naira Hovakimyan, and Antonio Pascoal. "Bernstein approximation of optimal control problems." arXiv preprint arXiv:1812.06132 (2018).

[3] Venanzio Cichella, Isaac Kaminer, Claire Walton, and Naira Hovakimyan. "Optimal motion planning for differentially flat systems using Bernstein approximation." IEEE Control Systems Letters 2, no. 1 (2018): 181-186.

optimalbeziertrajectorygeneration's People

Contributors

venanziocichella avatar magicbycalvin 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.