Skip to content

Planning factors#

Description#

This API manages the planned behavior of the vehicle. Applications can notify the vehicle behavior to the people around and visualize it for operator and passengers.

Each factor has a behavior type. The PlanningBehavior message defines the common values that the tables below show. An implementation can also use other values for its own behaviors. Some behavior types have sequence and details as additional information. The PlanningSequence message defines change and return for the avoidance behavior.

Velocity factors#

The velocity factors is an array of information on the behavior that the vehicle stops or slows down.

BehaviorDescription
surrounding-obstacleThere are obstacles immediately around the vehicle.
route-obstacleThere are obstacles along the route ahead.
intersectionThere are obstacles in other lanes in the path.
crosswalkThere are obstacles on the crosswalk.
rear-checkThere are obstacles behind that would be in a human driver's blind spot.
user-defined-attention-areaThere are obstacles in the predefined attention area.
roundaboutThere are obstacles in the roundabout.
run-outThere are objects that move toward the path of the vehicle.
no-stopping-areaThere is not enough space beyond the no stopping area.
no-drivable-laneA stop before a lane that is outside the operational design domain (ODD).
stop-signA stop by a stop sign.
traffic-signalA stop by a traffic signal.
virtual-traffic-lightA stop by a virtual traffic light, for example a shutter or a V2X device at an intersection.
mergeA stop before merging lanes.
sidewalkA stop before crossing the sidewalk.
adaptive-cruiseA slowdown to keep the distance to the vehicle ahead. No module of Autoware 2.0 sends it. See the note below.
lane-changeA lane change.
avoidanceA path change to avoid an obstacle in the current lane.
start-plannerA start from the road shoulder.
goal-plannerA stop at the goal, for example after a pull over to the road shoulder.

The adaptive-cruise type is in the message definition, but no module of Autoware 2.0 sends it. The Obstacle Cruise module of the Motion Velocity Planner keeps the distance to the vehicle ahead. It publishes its planning factor with the behavior UNKNOWN, and the default implementation skips planning factors that are not a stop or a slowdown. From November 2024 to January 2025, the Obstacle Cruise Planner sent adaptive-cruise when the vehicle followed the vehicle ahead.

Each factor also provides the status, the pose of the stop position, and the distance from the vehicle to that pose. The pose uses the frame of the message header. The default implementation uses the map frame. As the vehicle approaches the stop position, this factor appears with a status of APPROACHING. And when the vehicle reaches that position and stops, the status will be STOPPED.

The vehicle drives toward a stop position in front of an obstacle. The velocity factor has the status APPROACHING while the vehicle approaches, and STOPPED when the vehicle stops there. The factor gives the pose of the stop position and the distance to it.APPROACHINGSTOPPEDobstacleposedistance
A velocity factor for a stop in front of an obstacle.

Steering factors#

The steering factors is an array of information on the maneuver that requires use of turn indicators, such as turning left or right. Each factor has a behavior type which is described below and steering direction.

BehaviorDescription
intersectionA turning left or right at an intersection.
lane-changeA lane change.
avoidanceA path change to avoid an obstacle. It has a sequence of change and return.
start-plannerA path from the road shoulder to the center of the lane.
goal-plannerA path to the goal, for example a pull over to the road shoulder.

Each factor also provides the status, two poses, and the distances from the vehicle to these poses. As the vehicle approaches the position to start steering, this factor appears with a status of APPROACHING. And when the vehicle reaches that position, the status will be TURNING. The poses indicate the start and end position of the section where the status is TURNING.

The vehicle turns left at an intersection. The steering factor has the status APPROACHING before the turn and TURNING between the start pose and the end pose of the turn.APPROACHINGTURNINGpose[0]pose[1]
A steering factor for a left turn at an intersection.

In cases such as lane change and avoidance, the vehicle will start steering at any position in the range depending on the situation. For these types, the section where the status is TURNING will be updated dynamically and the poses will follow that.

The vehicle changes lanes. The steering factor has the status APPROACHING before the lane change and TURNING during it. The section between the start pose and the end pose can move forward while the vehicle drives.APPROACHINGTURNINGpose[0]pose[1]updated pose[0]updated pose[1]
A steering factor for a lane change. The section can move forward while the vehicle drives (red).

Default implementation#

The planning node of autoware_default_adapi_universe makes these factors from the planning factors that the planning modules publish on the /planning/planning_factors/* topics. It maps each module to a behavior type, for example blind_spot to rear-check and detection_area to user-defined-attention-area. It skips the factors of modules that it does not map. It sets the behavior, the pose, the distance, the status, and the direction. It does not set the sequence, the detail, or the cooperation status.

The API specification intends the factors in each array to be sorted in ascending order of distance. The default implementation does not sort them. It puts the factors together in the fixed order of its input topics, and keeps the order in which each module publishes them.