Skip to content

A tutorial on vehicle steering, path following control, planning, and localisation.

License

Notifications You must be signed in to change notification settings

christianausb/vehicleControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A tutorial on vehicle control

Binder

-- upcoming --

Tutorial on: Vehicle path following and control

Bildschirmfoto 2022-03-26 um 15 40 41Bildschirmfoto 2022-03-26 um 15 41 41

This project considers example implementations and demonstrations for several aspects of car-like vehicle control, motion/path planning, e.g., for autonomous driving purposes. The examples are implemented using model-based programming for dynamic systems in Python Openrtdynamics. Some modules are also exported to Simulink S-functions via automatic code generation.

Some theoretical details are described in Path Tracking Control for Urban Autonomous Driving, Klauer et al., IFAC-WC 2020.

Topics include (to be further defined)

Further, this projects implements a path tracking module that can be used to track the projection of the vehicle position on a given path (the paths are dynamically extensible to enable endless driving). It allows to sample data like position, heading, and curvature from the path. Further, it allows to calculate the lateral distance to the path. This module is available (via generated c++ S-functions from Python) for controller design or simulation in Matlab/Simulink. You might consider the notebook on code generation for more information. Simulink examples are given in the folder
sfunctions.

Example tracks

Paths are encoded as arrays of position, heading, and curvature over a distance parameter. For example, tracks generated by the path optimization by TUM can be used directly:

https://github.com/TUMFTM/global_racetrajectory_optimization.

Requirements

  • openrtdynamics2 (modelling of dynamic systems): $ pip install openrtdynamics2
  • emscripten (https://emscripten.org/), the compiler command 'emcc' is needed to compile the autogenerated c++ code for the HTML-based demonstrations into WASM-binaries.
  • casadi (a framework for optimization) $ pip install casadi
  • GTSAM (a framework for factor graphs) $ pip install gtsam

Run the HTML-based examples

Start a http-server to be able to access the *.html files, e.g.:

python3 -m http.server

About

A tutorial on vehicle steering, path following control, planning, and localisation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published