Skip to content

Planning#

This page describes the interface of the Planning component. See the Planning component design for the concepts and the data flow.

The tables show the default setup of autoware_launch, where the planning_setting launch argument is rule_based. With diffusion_planner, a learned planner makes the trajectory instead of the scenario planning modules. The outputs of the component stay the same, and the planner also uses the tracked objects (/perception/object_recognition/tracking/objects).

Input#

Other components send their outputs to the Planning component.Other componentsOther componentsPlanning component
Inputs come from other components.

From Map#

NameTopicTypeDescription
Vector map/map/vector_mapautoware_map_msgs/msg/LaneletMapBinMap of the environment where the planning takes place.

From Localization#

NameTopicTypeDescription
Vehicle kinematic state/localization/kinematic_statenav_msgs/msg/OdometryCurrent position, orientation and velocity of ego.
Vehicle acceleration/localization/accelerationgeometry_msgs/msg/AccelWithCovarianceStampedCurrent acceleration of ego.

The acceleration is a separate topic today. The autoware_localization_msgs/msg/KinematicState message can hold the pose, the twist, and the acceleration together, but no node in the default setup publishes it. See Localization.

From Perception#

NameTopicTypeDescription
Objects/perception/object_recognition/objectsautoware_perception_msgs/msg/PredictedObjectsSet of perceived objects around ego that need to be avoided or followed when planning a trajectory. This contains semantic information such as the object class (for example, vehicle or pedestrian) or a shape of the objects.
Obstacles/perception/obstacle_segmentation/pointcloudsensor_msgs/msg/PointCloud2Set of perceived obstacles around ego that need to be avoided or followed when planning a trajectory. This only contains a primitive information of the obstacle. No shape nor velocity information.
Occupancy grid map/perception/occupancy_grid_map/mapnav_msgs/msg/OccupancyGridContains the presence of obstacles and blind spot information (represented as UNKNOWN).
Traffic signal/perception/traffic_light_recognition/traffic_signalsautoware_perception_msgs/msg/TrafficLightGroupArrayContains the traffic signal information such as a color (green, amber, red) and an arrow (right, left, straight).

The type of the Obstacles information is a sensor message type (PointCloud2) today. The plan is to replace it with a type that does not depend on a sensor.

From API#

NameTopic or serviceTypeDescription
Max velocity/planning/scenario_planning/max_velocity_defaultautoware_internal_planning_msgs/msg/VelocityLimitThe maximum velocity that the operator sets.
Operation mode/system/operation_mode/stateautoware_adapi_v1_msgs/msg/OperationModeStateThe current operation mode, for example autonomous or manual.
Set lanelet route/planning/set_lanelet_route (service)autoware_planning_msgs/srv/SetLaneletRouteSets a route that is a list of lanelet segments. With allow_modification, it also changes the route while the vehicle drives.
Set waypoint route/planning/set_waypoint_route (service)autoware_planning_msgs/srv/SetWaypointRouteSets a route from a goal pose and waypoints. With allow_modification, it also changes the route while the vehicle drives.
Clear route/planning/clear_route (service)autoware_planning_msgs/srv/ClearRouteClears the route.
MRM set waypoint route/planning/mission_planning/route_selector/mrm/set_waypoint_route (service)autoware_planning_msgs/srv/SetWaypointRouteSets a route for a minimal risk maneuver (MRM). set_lanelet_route is also available under the same namespace.
MRM clear route/planning/mission_planning/route_selector/mrm/clear_route (service)autoware_planning_msgs/srv/ClearRouteClears the MRM route. The normal route then becomes active again.

The AD API routing services (/api/routing/set_route, /api/routing/set_route_points, /api/routing/change_route, /api/routing/change_route_points, and /api/routing/clear_route) call the three route services above. The route selector of autoware_mission_planner_universe picks between the normal route and the MRM route.

Output#

The Planning component sends its outputs to other components.Other componentsOther componentsPlanning component
Outputs go to other components.

To Control#

NameTopicTypeDescription
Trajectory/planning/trajectoryautoware_planning_msgs/msg/TrajectoryA sequence of space and velocity and acceleration points to be followed by the controller.
Turn indicator/planning/turn_indicators_cmdautoware_vehicle_msgs/msg/TurnIndicatorsCommandTurn indicator signal to be followed by the vehicle.
Hazard light/planning/hazard_lights_cmdautoware_vehicle_msgs/msg/HazardLightsCommandHazard light signal to be followed by the vehicle.

To System#

NameTopicTypeDescription
Diagnostics/diagnosticsdiagnostic_msgs/msg/DiagnosticArrayDiagnostic status of the Planning component reported to the System component.

To API#

NameTopicTypeDescription
Route/planning/routeautoware_planning_msgs/msg/LaneletRouteThe current route.
Route state/planning/route_stateautoware_planning_msgs/msg/RouteStateThe state of the route, for example UNSET, SET, ARRIVED, or REROUTING.
Path candidate/planning/path_candidate/*autoware_planning_msgs/msg/PathThe path that a module of the behavior path planner is about to take. Users can interrupt the operation based on the path candidate information. There is one topic for each module.
Planning factor/planning/planning_factors/*autoware_internal_planning_msgs/msg/PlanningFactorArrayWhy a module stops, slows down, shifts, or turns the vehicle. There is one topic for each module. The AD API converts them into velocity factors and steering factors.

Planning internal interface#

This section explains the communication between the different planning modules shown in the Planning component design.

Inside the Planning component, one module sends its output to another module.Other componentsOther componentsPlanning componentModuleModule
Internal interfaces connect the modules inside the Planning component.

From Mission Planning to Scenario Planning#

NameTopicTypeDescription
Route/planning/mission_planning/routeautoware_planning_msgs/msg/LaneletRouteA sequence of lane IDs on a Lanelet map, from the starting point to the destination.

From Behavior Planning to Motion Planning#

NameTopicTypeDescription
Path/planning/scenario_planning/lane_driving/behavior_planning/pathautoware_planning_msgs/msg/PathA sequence of approximate vehicle positions for driving, along with information on the maximum speed and the drivable areas. Modules receiving this message are expected to make changes to the path within the constraints of the drivable areas and the maximum speed, generating the desired final trajectory.

From Scenario Planning to Validation#

NameTopicTypeDescription
Trajectory/planning/scenario_planning/velocity_smoother/trajectoryautoware_planning_msgs/msg/TrajectoryA sequence of precise vehicle positions, speeds, and accelerations required for driving. The planning validator checks it and publishes it as /planning/trajectory.

With the diffusion_planner setting, the validator takes /planning/trajectory_generator/trajectory instead.