GithubHelp home page GithubHelp logo

jo1990 / carnd-mpc-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from udacity/carnd-mpc-project

0.0 1.0 0.0 2.78 MB

CarND Term 2 Model Predictive Control (MPC) Project

License: MIT License

CMake 1.84% Shell 0.18% Ruby 0.12% C++ 83.02% C 2.03% Cuda 1.14% Fortran 11.48% Python 0.08% JavaScript 0.07% CSS 0.05%

carnd-mpc-project's Introduction

CarND-Controls-MPC

Self-Driving Car Engineer Nanodegree Program


MPC Controll

MPC -> Model Predictive Control

MPC is an advanced method of process control that is used to control a process while satisfying a set of constraints.

Model Implementation :

Goal :

The goal of Model Predictive Control is to optimize the control inputs: [δ,a]. An optimizer will tune these inputs until a low cost vector of control inputs is found.

State Vector :

x, y : Car's position.

psi : Car's heading direction.

v : Car's velocity cte : Cross-track error.

epsi : Orientation error

Latency Handling :

There was a latency of 100 ms introduced , to handle this , the actual data were shifted 100 ms before passing it to the MPC module "state vector " to help reduce the effect of the latency.

Equations :

MPC attempts to approximate a continuous reference trajectory by means of discrete paths between actuations. Larger values of dt result in less frequent actuations, which makes it harder to accurately approximate a continuous reference trajectory. This is sometimes called "discretization error".

N, dt, and T are hyperparameters you will need to tune for each model predictive controller.

dt is set to small value because it define the time between each step , so it need to predict accurate.

Larger N will cause the simulator to run slower .

At the end duration of trajectory T is defined by the dt and N.

Note : The cost function parameters were tuned by try-and-error .

carnd-mpc-project's People

Contributors

domluna avatar baumanab avatar mvirgo avatar jo1990 avatar ianboyanzhang avatar swwelch avatar awbrown90 avatar

Watchers

James Cloos 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.