Giter Site home page Giter Site logo

constrained_ilqr's Introduction

CILQR

Implements a Constrained Iterative LQR controller for an Autonomous Vehicle.
Implemented an iterative Linear Quadratic Regulator (iLQR) algorithm that incorporates constraints in the environment for on-road autonomous motion planning. Since iLQR is based on the theory of dynamic programming, it does not inherently take constraints like obstacles, actuator limits, etc into account. Therefore a Constrained Iterative Linear Quadratic Regulator [1] [2] (CILQR) algorithm is used, which solves constrained optimal control problem in nonlinear systems efficiently. The algorithm is then deployed in an autonomous driving simulator, which will also be used for validation of the project.

Here are the results in a self-developed Python Simulator
Two different behaviors are shown depending on the cost of deviating from the reference trajectory and deviating from the desired speed.
In this first GIF, there is a high cost for deviating from the reference trajectory and hence the ego-vehicle(in red) stays close to the reference path (red line) and does not overtake the NPC vehicle (in green)
In this second GIF, there is a high cost for deviating from the desired velocity and hence the ego-vehicle( in red) deviates from the reference path (red line), maintains its desired speed and overtakes the NPC vehicle (in green)
References

  1. Jianyu Chen, Wei Zhan, and Masayoshi Tomizuka. Constrained iterative lqr for on-road autonomous driving motion planning. In 2017 IEEE 20th International Conference on Intelligent Transportation Systems (ITSC), pages 1โ€“7. IEEE, 2017.
  2. Jianyu Chen, Wei Zhan, and Masayoshi Tomizuka. Autonomous driving motion planning with constrained iterative lqr. IEEE Transactions on Intelligent Vehicles, 4(2):244โ€“254, 2019.

Contributors: Prateek Parmeshwar, Karmesh Yadav

constrained_ilqr's People

Contributors

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