Specification-based Autonomous Vehicle Testing

1. Testing Scenario Description

2. Descriptions of Discovered Issues

3. Security Threats of Discovered Issues


1. Testing Scenario Description

   

Please refer to here for the detailed BNF syntax of AVUnit.

S1: T-Junction (script)  top
S1
  • map: San Francisco
  • ego: Move from lane_317 to lane_321.
  • npc1: Move from lane_328 to lane_320.
  • npc2: Move from lane_331 to lane_321.
  • npc3: Move from lane_330 to lane_322.
  • npc4: Move from lane_329 to lane_323.

S2: Intersection with Single-Direction Roads (script)  top
S2
  • map: San Francisco
  • ego: Move from lane_623 to lane_145
  • npc1: Move from lane_627 to lane_145.
  • npc2: Move from lane_627 to lane_151.
  • npc3: Move from lane_626 to lane_150.
  • npc4: Move from lane_625 to lane_149.

S3: Intersection with Double-Direction Roads (script)  top
S3
  • map: San Francisco
  • ego: Move from lane_540 to lane_572
  • npc1: Move from lane_574 to lane_569.
  • npc2: Move from lane_564 to lane_568.
  • npc3: Move from lane_565 to lane_569.
  • npc4: Move from lane_570 to lane_566.
  • npc5: Move from lane_571 to lane_567.

S4: Intersection with Mixed-Direction Roads (script)  top
S4
  • map: San Francisco
  • ego: Move from lane_150 to lane_158
  • npc1: Move from lane_153 to lane_617.
  • npc2: Move from lane_153 to lane_158.
  • npc3: Move from lane_153 to lane_157.
  • npc4: Move from lane_152 to lane_616.

S5: Intersection with Stop Signs (script)  top
S5
  • map: San Francisco
  • ego: Move from lane_53 to lane_50.
  • npc1: Move from lane_61 to lane_33.
  • npc2: Move from lane_60 to lane_32.
  • npc3: Move from lane_60 to lane_51.
  • npc4: Move from lane_34 to lane_51.
  • npc5: Move from lane_35 to lane_63.
  • npc6: Move from lane_34 to lane_50.
  • npc7: Move from lane_34 to lane_62.

S6: Lane Changing in the Same Road (script)  top
S6
  • map: San Francisco
  • ego: Move from lane_221 to lane_220
  • npc1: Start to move along lane_221 and then randomly select a connected lane in an intersection.
  • npc2: Start to move along lane_221 and then randomly select a connected lane in an intersection.
  • npc3: Move from lane_220 to lane_231.
  • npc4: Start to move along lane_220 and then randomly select a connected lane in an intersection.
  • npc5: Move from lane_220 to lane_253.

S7: Lane Changing Among Different Roads (script)  top
S8
  • map: San Francisco
  • ego: Move from lane_221 to the end of lane_231
  • npc1: Move from lane_221 to lane_230.
  • npc2: Start to move along lane_221 and then randomly select a connected lane in an intersection.
  • npc3: Move from lane_220 to lane_231.
  • npc4: Start to move along lane_220 and then randomly select a connected lane in an intersection.
  • npc5: Move from lane_220 to lane_253.

S8: Overtaking Scenario (script)  top
S9
  • map: San Francisco
  • ego: Move along lane_221
  • npc1-npc3: Start to move along lane_221 and then randomly select a connected lane in an intersection.

2. Descriptions of Discovered Issues

*If you cannot play the videos, please use Google Chrome or Microsoft Edge to open the website.

1) Wrong Overtaking Actions  top

In this video, the ego vehicle and four NPC vehicles are passing through an intersection simultaneously. During approaching the junction, Apollo makes an overtaking action (6s). Hence, the ego vehicle continues accelerating and causes a collision with the 10002 NPC vehicle (11s).

In this situation, due to the wrong overtaking action made by Apollo, the ego vehicle collides with an NPC vehicle. Actually, Apollo should slow down the ego vehicle and give way to the NPC vehicle.


2) No Motion Prediction of Low-Speed Vehicles  top

In this video, Apollo first detects the NPC vehicle 10002 and decides to yield to it (3s). However, when Vehicle 10002 moves into the intersection, it slows down to 0.9m/s. Then Apollo regards it as a stationary vehicle and has no motion prediction (10s). Hence, the ego vehicle accelerates to go through the intersection and causes a collision (15s).


3) Too Soft Braking in Emergencies  top

Apollo first decides to overtake the 10003 NPC vehicle (3s). However, when the ego vehicle approaches the NPC vehicle, Apollo finds it dangerous and decides to yield to the NPC vehicle (5s). However, the ego vehicle brakes too softly (capped at 50% of the maximal braking force) and causes a collision (8s). If the ego vehicle braked with 100% braking force, it could have stopped where the planned trajectory ends (7s).


4) Collision with a Temporary Stopping Vehicle  top

First, since Vehicle 10003 is ahead, the ego vehicle slows down and stops its motion (17s). Second, when the NPC vehicles are passing through the intersection, Vehicle 10002 finds that Vehicle 10003 is nearby, so it stops temporally to avoid collision (19s) and then restarts its motion (22s). The ego vehicle cannot recognize such a temporary stop and regards Vehicle 10002 as a stationary one, so it continues its motion (19s) and causes a collision with Vehicle 10002 (23s).

For such a situation, rather than continue its motion immediately, the ego vehicle should monitor Vehicle 10002 for a while and then decide whether continue its motion or not.


5) Rear-End Collision with a Large Vehicle  top

In this case, Vehicle 10000 is a SchoolBus and is large. Therefore, when it turns left, it has to occupy the adjacent lane (17s). However, the ego vehicle cannot detect such an occupation and continue its motion, resuling in a collision (19s).


6) Wrong Motion Prediction of NPC Vehicles  top

When an NPC vehicle has multiple paths to move along, the ego vehicle selects only one path as its prediction and then makes corresponding decisions. However, it cannot guarantee everlasting correctness, and the wrong prediction may cause collisions. For example, in this video, the ego vehicle finds two paths for Vehicle 10000 (8s) and predicts rectilinear motion (10s). However, the actual motion that Vehicle 10000 will turn left (12s). Thus, it is too late for the ego vehicle to stop its motion, resulting in a collision (14s).


7) Blocked in an Intersection by Accidents  top

Apollo cannot detect accidents in an intersection and still moves into the intersection. Thus, it is blocked at the intersection, which will block other vehicles. As shown in the video, at 9s, an accident occurred at the intersection. To avoid collisions with Vehicle 10002, the ego vehicle stops its motion before entering the intersection (15s). However, the ego vehicle restarts its motion and enters the intersection, ignoring the accident. Hence, it is blocked at the intersection (27s) and blocks the first intersecting lane of the junction lane where the ego vehicle is.


8) No Deceleration for Lane Changing/Overtaking  top

In the video, the ego vehicle tries to perform lane changing at 4s. However, since the adjacent lane is occupied by NPC vehicles, the ego vehicle starts to perform lane following at (11s). In this case, the ego vehicle should slow down at the beginning of lane changing (4s). Thus, it can wait for the move of Vehicle 10002 and guarantee sufficient distance to perform lane changing.


9) Blocked by an Obstacle Ahead of the Destination  top

When a stationary vehicle is ahead of the destination, the ego vehicle stops early and cannot reach the destination. As shown in the video, the ego vehicle stops early at 38s. By enlarging the scene (45s), where the second red decision fence denotes destination arrival, we can find that at this time instant, Vehicle 10002 is about 5 meters ahead of the destination, and it is safe enough for the ego vehicle to arrive at the destination.


10) Lane Changing/Overtaking Terminated Halfway  top

The ego vehicle first starts lane changing at 4s. However, since Vehicle 10002 is ahead of the adjacent lane, the ego vehicle terminates lane changing (7s) and accelerates to perform lane following again. Note that the NPC vehicles are still on the adjacent lane, so the ego vehicle cannot reach its destination (20s). In this case, the ego vehicle is expected to continue lane changing.


11) Stuck During Lane Changing/Overtaking  top

The ego vehicle tries to perform lane changing at 30s but switches to lane following soon (31s). At this instant, the NPC vehicle stops ahead, so the ego vehicle tries to perform lane changing again (32s). Unfortunately, it is stuck between the two adjacent lanes (34s) and stops forever.


12) Aggressive Lane Following During Lane Changing/Overtaking  top

The ego vehicle first performs lane following and goes across the intersection (22s). Since another vehicle is on the adjacent lane, the ego vehicle does not make a lane-changing decision and continue lane following. However, since Vehicle 10000 stops ahead, the ego vehicle is too close to perform lane changing. Therefore, even though the ego vehicle would like to perform lane changing (27s), it has to stop forever (28s).


13) Starting Lane Changing/Overtaking Wrongly  top

In this video, the ego vehicle first performs a long-time lane following and then start to perform lane changing (80s). However, the lane is currently occupied by the NPC vehicles, and the ego vehicle cannot complete overtaking successfully (113s). For such a situation, the ego vehicle could either start to overtake the vehicles ahead at the beginning of the motion, as we can find that there is a sufficient distance from the NPC vehicles to the destination to complete the overtaking action (1s) or keep following until it reaches the destination.


14) No Lane Changing Before Crossing an Intersection  top

Based on the routing result (note that only the lanes marked with red lines are planned routes to move along), we can find that there is no lane changing before the intersection, as the right lane is not a planned lane by the route planning module. However, after crossing the intersection (27s), there is no sufficient distance to perform lane changing. Hence, the ego vehicle cannot arrive at the destination (31s).


15) Performing Cut-In Wrongly  top

Collisions in Cut-In

In this video, to complete the overtaking action, Apollo generates a trajectory very close to Vehicle 10002 to perform cut-in (15s). Hence, when the ego vehicle moves along the trajectory, it causes a collision with Vehicle 10002 (18s). In this case, the ego vehicle is expected to perform cut-in either between Vehicle 10001 and Vehicle 10002 or further ahead.


Stopping in Cut-In

In this test case, the ego vehicle performs a cut-in between Vehicle 10000 and Vehicle 10001, which has stopped its motion (10s). Thus, the ego vehicle is blocked forever by Vehicle 10001 (16s). The ego vehicle should also overtake the two NPC vehicles ahead.


16) Cut-In Terminated Halfway  top

The ego vehicle overtakes Vehicle 10000 and performs a cut-in between Vehicle 10000 and Vehicle 10001 in this video (6s). After about 45s, the ego vehicle almost completes the cut-in action (51s). However, it terminates the cut-in action and restarts a new overtaking action immediately (55s). At this time instant, the lane to the destination is occupied by the NPC vehicle. Hence, the ego vehicle fails to arrive at the destination but blocks the adjacent lane.


17) Wrong Direction to Perform Overtaking  top

In this case, the left lane belongs to the opposite road, while the right lane belongs to the same road. Hence, it is expected to perform lane changing by turning right. Instead, however, the ego vehicle turns left to perform overtaking (9s).


18) Performing Overtaking Unsuccessfully and Returning to Lane Following  top

In this case, the ego vehicle first tries to perform overtaking (29s). After about 6s later, the ego vehicle finds it cannot perform overtaking successfully, so it turns back (35s). In this situation, even though the ego vehicle can arrive at the destination, it may block other vehicles during its motion (e.g., it may block the vehicles moving along the adjacent lane between 29s to 35s).


19) No Overtaking When There Is a Slow Vehicle Ahead  top

In this video, the ego vehicle first follows the vehicle ahead. At 24s, the speed of the NPC vehicle reduces to 0.2m/s. Then, the ego vehicle still follows the vehicle and does not overtake, taking almost 7 minutes to complete the motion. Actually, from the top view of the scenario (30s), when the NPC vehicles slow down, the ego vehicle can overtake the vehicles from the right side and arrive at the destination quickly.


3. Possible Attacks to AVs with the Discovered Issues  top