-
Notifications
You must be signed in to change notification settings - Fork 665
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
avoidance ignores pedestrian if there is a bus behind #2095
Comments
In the second image, it does seem like to non-target obstacle was ignored. But just in case, can you run
I think for the pedestrian
If it is so, then the pedestrian object was ignored. |
Yes, the |
Yes, pedestrians are avoided indirectly.If you consider avoiding dangerous operations,additional rules need to be added. |
Yes, if pedestrian is registered as non avoidable object, the generated avoidance path will be consider them. In your second case, it just happens that the pedestrian is nearby the bus and it "seems" as if it is avoiding the pedestrian. By default, if it is not avoidance's object, if it is still blocking ego's route, ego will decelerate and stop. You can get further information by turning on the debug markers. |
Yes, I understand how the avoidance logic is implemented. My point is whether it makes sense for the avoidance to "ignore" some class of obstacles. If this is for the safety of the operation, then it totally makes sense in the 1st scenario, however it is counter-productive in the 2nd scenario. Indeed, because the pedestrian is ignored by the avoidance algorithm in the 2nd scenario, it can make the ego vehicle drive super close to the pedestrian, which is certainly not safe at all: |
I see. My apologies, before proceeding, let me correct my understanding as follows
Is these correct? |
I think I have confused everyone with the word "avoid", because we understand different things:
So when I say the expected behavior is that the vehicle should never avoid non-target obstacles, I mean no trajectory should be able to go around the object, even if it is unintentional. It is maybe just the way I interpret the
|
I see. I think we cannot assume that all user always have access to good perception inputs, therefore it make sense to allow the object type to be configurable. On the other hand, since we also have the |
I think there are limited things we can do in 1) In the first case, there are a static pedestrian and a parked bus behind it. In this scenario ego vehicle avoids the parked bus -not the pedestrian- but at the end it drives very closely to the pedestrian anyway. case1.mp4This is not what we want so as @xmfcx suggested in ASWG meeting yesterday; in bpp when it is deciding for shift points (in avoidance module) it can be checked if there are any objects on the path -which we don't wanna avoid such as pedestrians- existing closer than the target obstacle. And it would work on this case. 2) However if pedestrian appears next to the path after avoidance is done then there is nothing can be done in bpp layer. Because the pedestrian is not on the path. At the end ego vehicle would drive closely to the pedestrian. case2.mp43) We can launch case3.mp4As a solution we could increase Line 17 in d10310d
However it would be valid for all the obstacle points and ego vehicle would stop for the cases we don't want it to stop (narrow roads, close vehicles on the opposite/neighbor lane). So what we can do is that in What are your opinions on this? |
I want to work on this approach. I will create an issue and PR about it. |
@mehmetdogru In your second video, if a pedestrian appears on the path (or if lateral_margin is high enough), the vehicle will stop in front of it and wait like this in the middle of the road. It is definitely better than driving 10cm away from the pedestrian, but it is not an ideal situation either. |
I agree. Maybe avoidance path can be reverted in such cases. Although, I am afraid just checking around the path will not be enough considering even though path is reverted, ego vehicle sometimes won't have time to go back to it and stay in the middle of the road anyways. So since |
Could you kindly provide your ideas about the issue. I learnt that you are working on avoidance module for further improvements. I would really like to hear your opinion about this as well. |
@VRichardJP @mehmetdogru @beyzanurkaya @shulanbushangshu @zulfaqar-azmi-t4 Thanks for the discussion. Let me check one thing. You do not want the vehicle to drive near the pedestrian only when the vehicle is in avoidance maneuver, right ? Or, you don't want not only when the vehicle is in avoidance maneuver but also when the vehicle is driving lanes without avoidance. If it is the former, then we have the following options:
In the latter case, then we have the following options:
In the current architecture, the feature that generates avoidance paths is separated from the feature that stops for obstacles, and I do not want to merge those features, so I think it is better to fix this issue by improving the obstacle stop functions ( |
@satoshi-ota
Sorry it's just a bunch of disorganized ideas, but I guess it gives a good idea of the behavior I would expect from autoware in the avoidance situation. I think it shouldn't be too difficult to add the few extra rules above to make the avoidance more predictable/human-like. |
This pull request has been automatically marked as stale because it has not had recent activity. |
autowarefoundation/autoware#3097 Needs to be discussed after the planning arch is updated again. |
This pull request has been automatically marked as stale because it has not had recent activity. |
Checklist
Description
In
behavior_path_planner
module, it is possible to disable avoidance for some obstacles, such as pedestrian.For example in the following situation, a pedestrian is on the path and the vehicle does not try to avoid it:
However, if there is another obstacle that can be avoided behind the pedestrian, then the vehicle tries to avoid both:
I guess "unavoidable" obstacles have been introduced to avoid risky manoeuver (e.g. the pedestrian will likely not stay on the middle of the road, so it is better to simply wait). In such case, the vehicle should stop in front of the pedestrian like in the first screenshot.
Expected behavior
The vehicle never avoid non-target obstacle.
Actual behavior
non-target obstacle is avoided under some circumstances
Steps to reproduce
see pictures above
Versions
No response
Possible causes
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: