autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
1k stars 644 forks source link

[Dense-Urban-ODD] Intersection module is not triggered for low speed NPC #7080

Closed ahmeddesokyebrahim closed 2 months ago

ahmeddesokyebrahim commented 5 months ago

Checklist

Description

Part of:

Dense Urban ODD Characteristics

In the context of Dense Urban ODD, autoware_behavior_velocity_intersection_module should be checking and preventing collision with upcoming vehicles in intersection areas. It has been observed in one of the Dense Urban ODD scenarios when a very low speed NPC is approaching and crossing an intersection area that autoware_behavior_velocity_intersection_module is not triggered (i.e. not checking for upcoming vehicle in the intersection area and the ego vehicle is continuing and collisdiing with intersecting NPC and intersection virtual wall is not generated as well)

Purpose

The purpose of this issue is to improve the autoware_behavior_velocity_intersection_module behavior in the case of low speed NPC existence. The following scenario explains more about this issue

Low speed NPC approaching and crossing intersection area while interfering with Ego trajectory "UC-NTR-003-0003"

The following image describes the scenario where ...

image

Npc moving with 4.5 km/h (1.25 m/s) "FAILED :x:"

https://github.com/user-attachments/assets/eff701d8-393d-4643-9919-a0b2e3278fb3

Npc moving with 6.3 km/h (1.75 m/s) "PASSED :heavy_check_mark: "

https://github.com/user-attachments/assets/3e4b0c14-084e-4238-b563-10cdbfcb8a2c

Npc moving with 8.1 km/h (2.25 m/s) "PASSED :heavy_check_mark: "

https://github.com/user-attachments/assets/0d33ac91-5e12-46ba-8a52-14568243f83e

For reproducing the issue using scenario simulation, you can use the these scenario and map files.

Expected behavior

autoware_behavior_velocity_intersection_module should be able to check the upcoming low speed NPC and stop for it

Actual behavior

autoware_behavior_velocity_intersection_module is not triggered while low speed NPC is approaching and crossing the intersection area.

Possible causes

This scenario was investigated more carefully in planning simulator, and it was observed that intersection modules is triggered while NPC is moving with 6.3 km/h (1.75 m/s) and 8.1 km/h (2.25 m/s). In these cases there was predicted path generated for the NPC. While in the case NPC was moving with 4.5 km/h (1.25 m/s), there was not predicted path and intersection module is not triggered.

A possible root cause of this issue is that min_velocity_for_map_based_prediction is set to 5 km/h (1.39 m/s). Reducing this parameter to 3.6 km/h (1.0 m/s) is leading to generating the predicted path of the NPC moving with 4.5 km/h (1.25 m/s) and autoware_behavior_velocity_intersection_module is successfully triggered

Definition of done

soblin commented 5 months ago

Please lower this parameter and see if eog reacts to NPC

https://github.com/autowarefoundation/autoware_launch/blob/0aea8a35b9831e207827504297c6ac1a2e6cd9e1/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/intersection.param.yaml#L105

ahmeddesokyebrahim commented 5 months ago

Please lower this parameter and see if eog reacts to NPC

https://github.com/autowarefoundation/autoware_launch/blob/0aea8a35b9831e207827504297c6ac1a2e6cd9e1/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/intersection.param.yaml#L105

Hi @soblin -san

Thanks for your comment!

This is the scenario output after changing ignore_parked_vehicle_speed_threshold to 0.1 - which is should be less than the NPC speed and still the intersection module is not triggered.

Please have a look to this PR and check the scenario output after the PR and let me know your opinion.

Thanks again.

ahmeddesokyebrahim commented 5 months ago

Hi @soblin -san & @tkimura4 -san

I have a question regarding the parameter min_velocity_for_map_based_prediction. Is there a specific reason that led to setting the parameter to 1.39 instead of any other less value ?

soblin commented 4 months ago

@ahmeddesokyebrahim Is it inevitable to run the scenario with default configuration ?

ahmeddesokyebrahim commented 4 months ago

@ahmeddesokyebrahim Is it inevitable to run the scenario with default configuration ?

Thanks for your question @soblin -san. I am afraid that I am not totally getting the point of your question. Can you please clarify it more ? Would you like to have a different autoware_launch branch to change the intended parameters for purpose of testing such scenarios ?

soblin commented 4 months ago

I think that threshold is for ignoring noisy measurement from the tracker module in the real world. I don't mean to argue that that scenario should be changed to fit current value. But I also think that scenario is strange because the NPC is slowly passing the intersection although it(right turn) has priority over ego(straight) given the map context.

ahmeddesokyebrahim commented 4 months ago

But I also think that scenario is strange because the NPC is slowly passing the intersection although it(right turn) has priority over ego(straight) given the map context.

Thanks so much @soblin -san for your comment. I think it is a valid point and I will discuss it in more details with @brkay54 as he is the author of this scenario and leading the dense urban ODD scenarios creation activity. I will get back to you with the output of the discussion about feasibility/reality of such scenario.

brkay54 commented 4 months ago

Hi @soblin,

I think that threshold is for ignoring noisy measurement from the tracker module in the real world.

I agree that the threshold helps in filtering out noisy measurements. However, a 5 kph threshold seems quite high for stopping objects. Do you think it would be possible to measure within a range of ±5 kph for stopping objects? In my opinion, we should consider reducing this threshold.

But I also think that scenario is strange because the NPC is slowly passing the intersection although it(right turn) has priority over ego(straight) given the map context.

Actually, there is no right of way at this intersection. Our objective is to ensure that the ego vehicle should proceed if the NPC allows it to do so. Otherwise, the ego vehicle should wait to avoid a possible collision with the NPC.

soblin commented 3 months ago

@ahmeddesokyebrahim @brkay54 All right ! Then I think we can lower the threshold in map_based_prediction module.