ApolloAuto / apollo

An open autonomous driving platform
Apache License 2.0
24.71k stars 9.62k forks source link

Ego Vehicle collides with cross traffic #14489

Closed AkshayDesaiSDCE closed 1 year ago

AkshayDesaiSDCE commented 2 years ago

We appreciate you go through Apollo documentations and search previous issues before creating an new one. If neither of the sources helped you with your issues, please report the issue using the following form. Please note missing info can delay the response time.

System information

Scenario

In the scenario shown below, we have a cross traffic object whose predicted path intersects with the ego vehicle's planned trajectory. At this instance, the cross traffic velocity is 6.3 mps and that of the ego vehicle is 3.9 mps. Despite this the ego vehicle decides to overtake and collides with the obstacle. I know that the perception and prediction are perfect here as it is a simulated vehicle.

I have a few questions here:

  1. What functions can I look at to get a better idea about this scenario?
  2. What is the difference between the 3 ST graphs that show up on the PNC monitor? I see that the first and second ST graphs have different slopes.

ST Planning

qwetqwe commented 2 years ago

Thanks for your attention. speed planning has 5 tasks below: https://github.com/ApolloAuto/apollo/blob/9e1edfcc2baf102a69c2998ce5118443945d53ac/modules/planning/conf/scenario/lane_follow_config.pb.txt#L15-L20 These tasks will make overtake or yield decision. you can modify these deciders. The quality of obstacle trajectory will also influence decision The ST-graphs are all from tasks' results. The second shows heuristic optimize st-graph. The third shows obstacles decision and final piecewisejerk/non-linear speed optimizer result. Maybe there is some bug to solve

AkshayDesaiSDCE commented 2 years ago

@qwetqwe thanks a lot for your response. I have a couple of follow-up questions here:

  1. Where can I find more details about the algorithm/implementation for these tasks.
  2. I see that the obstacle sometimes doesn't show up in the S-T graph despite being passed on from Prediction. What function handles incoming obstacle prediction.
qwetqwe commented 2 years ago

@qwetqwe thanks a lot for your response. I have a couple of follow-up questions here:

  1. Where can I find more details about the algorithm/implementation for these tasks.
  2. I see that the obstacle sometimes doesn't show up in the S-T graph despite being passed on from Prediction. What function handles incoming obstacle prediction.

1.It locates at https://github.com/ApolloAuto/apollo/blob/master/modules/planning/tasks/deciders/speed_bounds_decider/speed_bounds_decider.cc https://github.com/ApolloAuto/apollo/blob/master/modules/planning/tasks/optimizers/piecewise_jerk_speed/piecewise_jerk_speed_nonlinear_optimizer.cc

2.Obstalces of ST-graph are recorded at RecordSTGraphDebug() at speed planning deciders/optimizers like: https://github.com/ApolloAuto/apollo/blob/9e1edfcc2baf102a69c2998ce5118443945d53ac/modules/planning/tasks/deciders/speed_bounds_decider/speed_bounds_decider.cc#L129

and make it become a chart at https://github.com/ApolloAuto/apollo/blob/9e1edfcc2baf102a69c2998ce5118443945d53ac/modules/planning/on_lane_planning.cc#L744 then the chart will be published to dreamview and show in PNC monitor