The Plan model plans a trajectory and speeds based on 1) surrounding environment information such as obstacles and traffic lights, 2) vehicle state from localization, and 3) the actual vehicle state from the chassis. The planning module is crucial for level 5 autonomous driving, which does not require any human intervention, but there is still a long way to go for full development. If the planning module fails to handle corner cases properly, an attacker can reconstruct these situations in order to attack the target vehicle. However, the most well-known open-source autonomous driving systems (ADS), such as Baidu Apollo or Autoware, still fail to generate the correct trajectory in all situations, whether in a normal or adversarial environment, and there is no clear standard for this.
To address this issue, we 1) define the role of the planning module and create test cases for each role, 2) identify and analyze the root cause open-source ADS vulnerabilities, and 3) establish requirements to determine what is required for correct path planning.
Experimental Setup
AD System: Baidu Apollo r7.0.0
Enabled modules: Localization, Perception, Prediction, Planning, Routing, Control, Transform, Traffic Light
Simulator: SORA-SVL simulator (PythonAPI, simulator)
AD vehicle model: Lincoln 2017 MKZ
Map: Sanfrancisco_correct
BUG #1
Triggering Condition:
Bug Oracle: Collision/Immobile
Planning Decision:
Lane Borrow Decision: True
Description:
NPC vehicle is stationary in front of ego vehicle
Ego vehicle attempts lane borrowing to overtake but results in collision/immobile
BUG #2
Triggering Condition:
Bug Oracle: Collision/Immobile
Planning Decision:
Object Nudge Decision: True
Description:
NPC vehicle is stationary in front of ego vehicle, slightly interfering with the current lane
Ego vehicle attempts to nudge to overtake but results in collision/immobile
BUG #3
Triggering Condition:
Bug Oracle: Collision
NPC motion: Cut-in
Planning Decision:
Lane Borrow Decision: False
Object Nudge Decision: False
Description:
NPC vehicle attempts to cut in from adjacent lane to ego vehicle's lane
Ego vehicle fails to decide between accelerating to overtake or decelerating to yield, resulting in collision
BUG #4
Triggering Condition:
Bug Oracle: Collision
NPC velocity: 0 (m/s)
Planning Decision:
Lane Borrow Decision: False
Object Nudge Decision: False
Description:
NPC vehicle is stopped in front
Ego vehicle recognizes NPC vehicle and attempts to stop
Ego vehicle fails to stop and collides with NPC vehicle
BUG #5
Triggering Condition:
Bug Oracle: Immobile
Rerouting: True
Scene Decision: False
Planning Decision:
Any of the following occurs:
Error Message: "Planner failed to make a driving plan"
Error Message: " Failed to init reference line info."
Description:
Ego vehicle plans to change lanes and turn right at intersection
Ego vehicle recognizes stop sign and stops
Re-routing occurs due to lane change failure
Ego vehicle stops due to the wrong scene decision
BUG #6
Triggering Condition:
Bug Oracle: Immobile
Rerouting: True
Scene Decision: True
Planning Decision:
Any of the following occurs:
Error Message: "Planner failed to make a driving plan"
Error Message: " Failed to init reference line info."
Description:
Ego vehicle starts driving in the rightmost lane and destination is in the leftmost lane
Re-routing occurs due to lane change failure
Ego vehicle stops during right turn
BUG #7
Triggering Condition:
Bug Oracle: Immobile/Mission Failure
Rerouting: False
Planning Decision:
Any of the following occurs:
Error Message: "Planner failed to make a driving plan"
Error Message: " Failed to init reference line info."
Description:
Ego vehicle attempts to make a right turn at the intersection
Ego vehicle stops during right turn
BUG #8
Triggering Condition:
Bug Oracle: Immobile
Rerouting: False
Scene Decision: True
Planning Decision:
Any of the following occurs:
Error Message: "Found collision with obstacle"
Stop Reason Code: STOP_REASON_OBSTACLE
Description:
NPC vehicle stopped in front
Ego vehicle recognize NPC vehicle at 20m distance
Ego vehicle fails to stop and collide with NPC vehicle
BUG #9
Triggering Condition:
Bug Oracle: Immobile
Rerouting: False
Scene Decision: True
Planning Decision:
Stop Reason Code: STOP_REASON_REFERENCE_END
End Scene: Stop Sign scene (SSU)
Description:
Ego vehicle plans to change lanes and turn right at intersection
Ego vehicle stops before reaching intersection
BUG #10
Triggering Condition:
Bug Oracle: Immobile
Rerouting: False
Scene Decision: True
Planning Decision:
Stop Reason Code: STOP_REASON_REFERENCE_END
End Scene: Left turn scene (TLULT)
Description:
Ego vehicle attempts to make a left turn at the intersection
Ego vehicle fails to turn left and goes straight, and then stops.
BUG #11
Triggering Condition:
Bug Oracle: Mission Failure
End Scene: Emergency stop scene (ES)
Ego vehicle velocity: v_ego > 0 (m/s)
Description:
Ego vehicle plans to stop due to emergency signal.
Ego vehicle fails to stop and slowly moves forward.
BUG #12
Triggering Condition:
Bug Oracle: Mission Failure
End Scene: Emergency pull over scene (EPO)
Pullover Position Change: True
Description:
Ego vehicle plans to pull over to the rightmost lane due to emergency signal.
Ego vehicle successfully stops in the rightmost lane, but then tries to move forward and stop again.
BUG #13
Triggering Condition:
Bug Oracle: Mission Failure
End Scene: Emergency pull over scene (EPO)
Pullover Position Change: False
Planning Decision:
Any of the following occurs:
Error Message: "Found collision with obstacle"
Stop Reason Code: STOP_REASON_OBSTACLE
Description:
Ego vehicle plans to pull over to the rightmost lane due to emergency signal.
Ego vehicle fails to change lanes due to the front vehicle and stops.
BUG #14
Triggering Condition:
Bug Oracle: Mission Failure
End Scene: Emergency pull over scene (EPO)
Start Scene: Traffic scene (TLP, TLULT, TLURT) or Bare intersection scene (BIU) or Stop sign scene (SSU)
Pullover Position Change: False
Description:
Ego vehicle plans to pull over nearby the intersection due to emergency signal.
Ego vehicle fails to change lanes and try to stop in the intersection.
BUG #15
Triggering Condition:
Bug Oracle: Mission Failure
End Scene: not Emergency pull over scene (EPO) or Emergency stop scene (ES)
Description:
Ego vehicle fails to complete its mission in certain time threshold (75s).
Ego vehicle plans to change lanes and turn right at the intersection but fails to change lanes and stops due to the wrong scene decision.
After patch, ego vehicle successfully changes lanes and turns right at the intersection.
Ego vehicle starts driving in the rightmost lane and destination is in the leftmost lane but fails to change lanes and stops during the right turn.
After patch, ego vehicle successfully changes lanes. However, ego vehicle changes lanes slowly, resulting in destination reach failure.
Ego vehicle plans to pull over to the rightmost lane due to emergency signal but continuously tries to move forward and stop again.
After patch, ego vehicle successfully pulls over to the rightmost lane and stops.