commonroad-velocity-planner


Namecommonroad-velocity-planner JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryCommonRoad Velocity Planner Toolbox
upload_time2024-10-15 13:22:52
maintainerNone
docs_urlNone
authorTobias Mascetta
requires_python<3.12,>=3.9
licenseBSD
keywords autonomous automated vehicles driving motion planning velocity
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](/docs/assets/example_lp_1.png)
![Example_LP_1](/docs/assets/example_lp_2.png)

### Bang-Bang-Control Planner
![Example_LP_1](/docs/assets/example_bb_1.png)
![Example_LP_1](/docs/assets/example_bb_2.png)





## 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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "commonroad-velocity-planner",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.12,>=3.9",
    "maintainer_email": null,
    "keywords": "autonomous, automated, vehicles, driving, motion, planning, velocity",
    "author": "Tobias Mascetta",
    "author_email": "tobias.mascetta@tum.de",
    "download_url": "https://files.pythonhosted.org/packages/4f/4b/90d003ea3ef8a9cbbae0e531464a9e826a4933585d347654317915e6ee11/commonroad_velocity_planner-0.1.1.tar.gz",
    "platform": null,
    "description": "# CommonRoad Velocity Planner\nThe commonroad velocity planner implements several velocity profile planners for generating global reference trajectories (mission planning)\nused for guiding local planners, such as the commonroad-reative-planner.\nIt uses a reference path, for example generated by the commonroad-route-planner, and assigns each point a reference trajectory.\nIf provided, the planner also aims at keeping the speed limit of each lanelet.\nWe provide both a planner based on convex optimization as well as one based on the race line generation based on bang-bang-control.\n\nThe linear program planner is based on the work of Shimizu et al. [1,2] and the default solver is CLARABEL [2], although GUROBI [3]\nis also supported. We use cvxpy [4] as an interface to various solvers. Our linear program planner minimizes the jerk and, thus, is\nrather conservative and tailored towards riding comfort\n\nThe velocity profile planner using bang-bang-control is based on the work of Velenis and Triotras [6] with adaptations to on-road driving. \nNonetheless, this planner is rather aggressive and tailored towards minimal travelling time, therefore generating much higher velocity values. \nNote that this planner requires model parameters\nfor 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\nsolver infeasibility and numerical instability.\n\n\n## Documentation\nSee gitlab pages https://cps.pages.gitlab.lrz.de/commonroad/commonroad-velocity-planner/\n\n\n## Example\nThe color coding is always relative to the minimum and maximum values in the current velocity profile in mps.\n\n### Linear Program Planner\n![Example_LP_1](/docs/assets/example_lp_1.png)\n![Example_LP_1](/docs/assets/example_lp_2.png)\n\n### Bang-Bang-Control Planner\n![Example_LP_1](/docs/assets/example_bb_1.png)\n![Example_LP_1](/docs/assets/example_bb_2.png)\n\n\n\n\n\n## Default Configuration\nThe default configuration uses a linear programming approach and **constraint relaxation** to facility feasibility over various scenarios.\nThus, acceleration, jerk and velocity limits may be broken (only) when infeasibility would result otherwise.\nIf no explicit goal is given, the planner reaches the desired velocity at the end of the goal lanelet.\nIf a goal position but no goal velocity is given, the planner uses the initial velocity as goal velocity.\n\n\n## References\n- [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.\n- [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\n- [3] P. J. Goulart and Y. Chen, \"Clarabel: An interior-point solver for conic programs with quadratic objectives\", 2024, arXiv:2405.12762\n- [4] GUROBI Website, https://www.gurobi.com/, 2024, last access 22nd of July 2024\n- [5] cvxpy documentation,  https://www.cvxpy.org/, 2024, last access 22nd of July 2024\n- [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).\n\n## Authors\n- Tobias Mascetta: tobias.mascetta[at]tum.de,\n- Kilian Northoff: kilian.northoff[at]tum.de\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "CommonRoad Velocity Planner Toolbox",
    "version": "0.1.1",
    "project_urls": null,
    "split_keywords": [
        "autonomous",
        " automated",
        " vehicles",
        " driving",
        " motion",
        " planning",
        " velocity"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29c834bf032cb0e3628110eca6d06cf608f5132cf18096892fec0d2f850dc9eb",
                "md5": "9c983c6e856cb97866ce00a385bd29af",
                "sha256": "0f117c3a0f2255589a3d5cc15adeaa444abb5beb6a783862374640c37901259f"
            },
            "downloads": -1,
            "filename": "commonroad_velocity_planner-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9c983c6e856cb97866ce00a385bd29af",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.12,>=3.9",
            "size": 38981,
            "upload_time": "2024-10-15T13:22:51",
            "upload_time_iso_8601": "2024-10-15T13:22:51.246235Z",
            "url": "https://files.pythonhosted.org/packages/29/c8/34bf032cb0e3628110eca6d06cf608f5132cf18096892fec0d2f850dc9eb/commonroad_velocity_planner-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f4b90d003ea3ef8a9cbbae0e531464a9e826a4933585d347654317915e6ee11",
                "md5": "56e4799d3720cd27d37ee584a19c0b48",
                "sha256": "02c0ef4a85d3a6b42759442576dbd0d9a7da0088d14ae0e0d2ffc6b2f91e1427"
            },
            "downloads": -1,
            "filename": "commonroad_velocity_planner-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "56e4799d3720cd27d37ee584a19c0b48",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.12,>=3.9",
            "size": 28600,
            "upload_time": "2024-10-15T13:22:52",
            "upload_time_iso_8601": "2024-10-15T13:22:52.307369Z",
            "url": "https://files.pythonhosted.org/packages/4f/4b/90d003ea3ef8a9cbbae0e531464a9e826a4933585d347654317915e6ee11/commonroad_velocity_planner-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-15 13:22:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "commonroad-velocity-planner"
}
        
Elapsed time: 0.37689s