-
Notifications
You must be signed in to change notification settings - Fork 712
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
Vehicle makes collision when localization is bad. #6616
Comments
The default Autoware behavior does not stop for obstacle points but the |
Thank you for the response @maxime-clem! I think I didn't get your point. Could you please tell your point again? Do you mean I should change some parameters to stop Autoware in the situation? Thanks! |
Sorry for not being so clear. Actually my previous comment was wrong. The default behavior of Autoware is to stop if there are points from |
Thank you for the details @maxime-clem! I echoed to pointcloud data
And I tried to check if the pointcloud data is in By the way, I found somewhat weird situation that, the pointcloud data is not perceived well for some area. |
In the message you shared we can see the
This can be caused by a dead zone in the lidar, or by the pointcloud cropbox filter. But I do not think this is causing any issue here. I cannot understand why in your case the |
Thank you for the kind explanation and opinion @maxime-clem! Now I understood. For the ros2bag file, I already uploaded it for better reproduction. Thanks! |
Thank you for sharing your bag. Here are two videos taken from the bag you shared showing the correct and incorrect update. simplescreenrecorder-2024-05-09_13.48.00.mp4simplescreenrecorder-2024-05-09_13.45.25.mp4As a workaround, you can set parameter I will ask someone else to investigate this issue since it is not related to planning but with localization. |
Thank you for the detailed investigation @maxime-clem!! I think I got your point. So.. I agree that this issue would be from localization. I always appreciate to your help! Thank you! |
Hi! I haven't looked at the data yet, but I noticed that the launch.log provided by the questioner contains many warnings indicating that the NDT's NVTL(Nearest Voxel Transformation Likelihood) score is falling below the threshold.
When the NVTL is low, NDT doesn't output a position, so the height won't be updated because only odometry is used to estimate the position. |
Hi @KYabuuchi!! For the reason that the localization is getting bad, I want to share my opinion(could be wrong, but I hope it to be helpful). The map the ego vehicle is driving is Town04, which is truly large. For this issue, the ego vehicle also ran the long monotonic road before running into the corner, so I think it would have made the localization bad. |
@Kim-mins One thing I noticed is that your rosbag had a The log message |
I tried validating your rosbag in my environment, and I don't know why, but consistently successful localization was achieved. I'll share the video with you. successed_to_localize_in_town4.mp4 |
Thank you for the investigation @KYabuuchi! For the clock frequency, I'm limiting it to 20Hz due to the computational cost, since I'm running co-simulation now. I'll check if I can apply higher frequency. I also tried my bag file, but I could observe that the ego vehicle drives under the road in rviz. rviz3.mp4 |
Hmm, in my environment, the estimated position consistently contacts with the ground. run_on_the_ground_x4.mp4Here is my command for rosbag playback.
|
When the clock frequency is low, the prediction frequency of the EKF becomes coarse, requiring the NDT scan matcher to start matching from a poor initial value. This can be challenging on monotonic roads. Additionally, as the frequency of prediction updates in the EKF decreases, the variance may become smaller than expected. In such cases, the observations by NDT may not be adequately reflected, leading to inaccurate estimation results. Publishing the clock at a higher frequency, even if it does not reflect in the CARLA simulation, might improve the situation. (But I am not familiar with CARLA so I do not know if we can do it.) |
Thank you for checking again @KYabuuchi! I also tried your command for playing ros2bag file, but the vehicle in rviz does not move at all. Could you please check the command again for me?
which just plays message from every topic. For the clock frequency, I got one question. Thanks! |
Because the localization input topic was changed to
|
Thank you @KYabuuchi! Actually, I don't know well about the topics for localization, I could not play the bag file with your specific topics. So, could you please play the ros2bag file with all the topics? |
@Kim-mins if you replay all topics from the bag, then the pose will be the one that was recorded in the bag where we observe the pose under the road at some points. I am hopping that the new |
Thank you for clarifying @maxime-clem! Now I could get the point! So maybe the performance issue is the cause and I should try the new bridge to test if the issue remains. For the new bridge, frankly speaking, I check #6859 every day, and I really look forward to the release since I do want to free from this kind of weird issue.. Thank you! |
@Kim-mins As Maxime explained, I suggested to you to play only sensor data from rosbag and purely test localization.
When you run the simulation, I think you launch either Autoware contains several timer callbacks, and when use_sim_time is true, timer callbacks are driven by the subscriber callback of /clock. Roughly speaking, if /clock is at 10Hz, timer callbacks exceeding 10Hz will not function properly. The prediction update of the EKF should ideally run at 50Hz, but since it is being called at 10Hz in this case, it is not performing as designed. |
I think we identified the issue (wrong |
Checklist
Description
Hi team,
I'm currently running Autoware with Carla, and I found a situation that the ego vehicle collides with a guardrail when the localization is bad.
Here's a video on rviz: [rviz] and frontview: [frontview]
In the frontview video, the vehicle invades lane at the last cornering(3:15~), and it collides with a guardrail, after escaping the corner.
Rviz video shows the last few seconds of the driving. At the start of the video, pointcloud and lanelet has some discrepancy due to a localization issue, and the ego vehicle drives and eventually makes a collision.
Here's a log file, but it does not contain any meaningful messages, except some warnings on localization: [launch.log]
Expected behavior
I think the vehicle should stop before the collision and it could stop by using the pointcloud data, even though the localization is bad.
Actual behavior
But the vehicle does not stop and makes collision, even though the pointcloud data saids there's an obstacle.
Steps to reproduce
Here's a ros2bag file to reproduce: [ros2bag]
Versions
Possible causes
According to RViz video, there's no virtual wall that saids an obstacle is at front.
So, in my opinion, the issue has to do with
obstacle_stop_planner
.I also echoed to the two topics relevant to the obstacle stop planner, but they do not publish any information regarding the obstacle.
Additional context
No response
The text was updated successfully, but these errors were encountered: