Skip to main content

CommonRoad Velocity Planner

The commonroad velocity planner implements several velocity profile planners for generating global reference trajectories (mission planning) used for guiding local planners, such as the commonroad-reative-planner. It uses a reference path, for example generated by the commonroad-route-planner, and assigns each point a reference trajectory. If provided, the planner also aims at keeping the speed limit of each lanelet. We provide both a planner based on convex optimization as well as one based on the race line generation based on bang-bang-control.

The linear program planner is based on the work of Shimizu et al. [1,2] and the default solver is CLARABEL [2], although GUROBI [3] is also supported. We use cvxpy [4] as an interface to various solvers. Our linear program planner minimizes the jerk and, thus, is rather conservative and tailored towards riding comfort

The velocity profile planner using bang-bang-control is based on the work of Velenis and Triotras [6] with adaptations to on-road driving. Nonetheless, this planner is rather aggressive and tailored towards minimal travelling time, therefore generating much higher velocity values. Note that this planner requires model parameters for a dynamic single track model. As an advantage, this planner has a faster execution time and does not rely on a solver, thus not experiencing solver infeasibility and numerical instability.

Documentation

See gitlab pages https://cps.pages.gitlab.lrz.de/commonroad/commonroad-velocity-planner/

Example

The color coding is always relative to the minimum and maximum values in the current velocity profile in mps.

Linear Program Planner

Example_LP_1 Example_LP_1

Bang-Bang-Control Planner

Example_LP_1 Example_LP_1

Default Configuration

The default configuration uses a linear programming approach and constraint relaxation to facility feasibility over various scenarios. Thus, acceleration, jerk and velocity limits may be broken (only) when infeasibility would result otherwise. If no explicit goal is given, the planner reaches the desired velocity at the end of the goal lanelet. If a goal position but no goal velocity is given, the planner uses the initial velocity as goal velocity.

References

  • [1] Y. Shimizu, T. Horibe, F. Watanabe and S. Kato, "Jerk Constrained Velocity Planning for an Autonomous Vehicle: Linear Programming Approach," 2022 International Conference on Robotics and Automation (ICRA), Philadelphia, PA, USA, 2022, pp. 5814-5820.
  • [2] Y. Shimizu, T. Horibe, F. Watanabe and S. Kato: Code for their paper, https://github.com/pflab-ut/jerk_optimal_velocity_planning, last access 22nd of July 2024
  • [3] P. J. Goulart and Y. Chen, "Clarabel: An interior-point solver for conic programs with quadratic objectives", 2024, arXiv:2405.12762
  • [4] GUROBI Website, https://www.gurobi.com/, 2024, last access 22nd of July 2024
  • [5] cvxpy documentation, https://www.cvxpy.org/, 2024, last access 22nd of July 2024
  • [6] E. Velenis and P. Tsiotras, "Optimal velocity profile generation for given acceleration limits: Theoretical analysis". In Proceedings of the 2005, American Control Conference, 2005, (pp. 1478-1483).

Authors

  • Tobias Mascetta: tobias.mascetta[at]tum.de,
  • Kilian Northoff: kilian.northoff[at]tum.de

Paper

T. Mascetta, K. Northoff and M. Althoff: CommonRoad Global Planner: A Toolbox for Global Motion Planning on Roads. Intelligent Vehicles Symposium (IV), 2025.

Metadata

Release files for commonroad-velocity-planner 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for commonroad-velocity-planner 1.0.0
File Size Uploaded
commonroad_velocity_planner-1.0.0.tar.gz 30.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for commonroad-velocity-planner 1.0.0
File Interpreter ABI Platform
commonroad_velocity_planner-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.5 kB

Release files / commonroad_velocity_planner-1.0.0.tar.gz

Download URL commonroad_velocity_planner-1.0.0.tar.gz
Size 30.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8cde4d541958e002e9340a503c730628e48ee81ab838696212c06ce065b14d43
BLAKE2b-256 checksum
How to use checksums
158b46ddc10a2653f8eee6f113bba83663e5ed272837448d7dd0e9380530b432
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.10.18 Linux/5.15.0-87-generic

Release files / commonroad_velocity_planner-1.0.0-py3-none-any.whl

Download URL commonroad_velocity_planner-1.0.0-py3-none-any.whl
Size 43.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbb0c79f4d8f88b3701ec832aba929401c58050d229861254b3f4d19a9ebc9f8
BLAKE2b-256 checksum
How to use checksums
a27b1e69712b6d62f740a4b7a7aaae7f505f98e253528a9a96b6f06632ded56c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.10.18 Linux/5.15.0-87-generic

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.1

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page