Closed AV-Security closed 1 year ago
The detection distance for the ground truth perception sensor by the LGSVL simulator seems to be too close... You can try to increase the distance configuration of the ground truth perception sensor and let the prediction module run for a while such that the predicted trajectory of the green truck is there before Apollo makes the lane borrow decision. The problem should be resolved.
Apollo is still under rapid development right now, and the open source version is far from the actual deployed version by Baidu.. So you are expected to discover a lot of corner cases like this. :)
@ntutangyun thanks for your comments. Increasing the distance configuration of the ground truth perception sensor may be one way to solve this scenario. But I think it is safer to add the logic in PathLaneBorrowDecider
to give up changing lanes and return to the origin lane when this dangerous situation happens. What’s more, I think Apollo's ways of avoiding dynamic obstacles (slowing down or stopping) are too simple to safely handle some complex emergencies like this.
I just realized that I have found similar issues previously.. https://github.com/ApolloAuto/apollo/issues/12797
Yes, I agree that the collision might be avoided if the Apollo drives back to its original lane.. but I guess slowing down or stopping is probably the best thing Apollo could do for the current moment whenever it encounters crazy NPCs like these where they simply crash into a stopped vehicle.
I actually feel this scenario is similar to #12949 as well. Except in that post, the incoming traffic knew to avoid colliding with static ego vehicles. This must have been the difference between calling "follow_closest_lane" vs "waypoints" in LGSVL.
But I am a bit confused by the map that the Author of this post is using. Is there supposed to be a double yellow line separating traffic from opposite directions?
Not sure about the map. It depends on the author whether he wants it to be the double yellow line or not. I guess both are valid maps.
The NPC's collision avoidance mechanism in the LGSVL simulator is very straightforward. It has virtual spheres located in front of each NPC vehicle for detecting any overlaps with other NPCs. if there is, then the NPC stops to avoid the collision. But sometimes at certain angles, the collision may not be detected by those virtual spheres, and the NPC will continue driving...
Looks like “White lines separate lanes of traffic traveling in the same direction”. So if the author wants this scenario to be valid then he may consider making this double yellow to justify vehicle can be coming in opposite direction.
The outcome will be similar even if it is double yellow in the middle, like your #12949 post.
It seems that map is one way two lane and not run PathLaneBorrowDecider
Describe the bug When ego overtakes a stationary NPC by borrowing the left lane, it finds that an NPC is coming from the opposition. The ego could not continue to plan the path, and instead of avoiding the NPC, it stopped in place and collided with the NPC. *Note: Simulator platform was LGSVL and the perception results were ground-truth data provided by LGSVL.
System information OS Platform and Distribution: Ubuntu 18.04 Apollo installed from (source or binary): source Apollo version : 6.0 (master branch - commit b5bd74112e2ec5d7c65cad6bea592353de566156)
To Reproduce The video corresponding to the collision scenario is in the attachment.
Expected behavior The ego should give up changing the lane and go back to the origin lane to avoid the NPC.
Additional context It seems that
PathLaneBorrowDecider
does not consider such a scenario, so the corresponding logic needs to be added to handle it.Demo Video
https://user-images.githubusercontent.com/87695978/193558284-08e3a0cc-a46e-4e62-b476-b89e93bee835.mp4
Attachments Collision Video