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.

Installation:
pip install commonroad-velocity-planner
from commonroad.common.file_reader import CommonRoadFileReader
from commonroad_route_planner.route_planner import RoutePlanner
from commonroad_route_planner.route import Route
from commonroad_velocity_planner.velocity_planner_interface import IVelocityPlanner
from commonroad_velocity_planner.configuration.configuration_builder import ConfigurationBuilder
from commonroad_velocity_planner.velocity_planning_problem import VppBuilder

# cr-io
scenario, planning_problem_set = CommonRoadFileReader("path/to/commonroad/xml").open()
planning_problem = list(planning_problem_set.planning_problem_dict.values())[0]

# route planner
route: Route = RoutePlanner(
    lanelet_network=scenario.lanelet_network, planning_problem=planning_problem
).plan_routes().retrieve_shortest_route()

# Velocity Planner
global_trajectory = IVelocityPlanner().plan_velocity(
    route=route,
    planner_config=ConfigurationBuilder().get_predefined_configuration(),
    velocity_planning_problem=VppBuilder().build_vpp(
        route=route, 
        planning_problem=planning_problem, 
        default_goal_velocity=planning_problem.initial_state.velocity
    )
)

Videos