autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
873 stars 566 forks source link

distortion_corrector cannot compensate point cloud while passing over speed bump #4961

Open mebasoglu opened 9 months ago

mebasoglu commented 9 months ago

Checklist

Description

While passing over a speed bump, the point cloud has a strange behaviour and distortion corrector cannot fix it. This causes ghost points and ground remover cannot delete them. (https://github.com/autowarefoundation/autoware.universe/issues/3673)

Here is a video of VLS-128 driving on a speed bump:

https://github.com/autowarefoundation/autoware.universe/assets/13589149/6533aa07-b2fc-41b8-badd-8b50eec7fe34

Expected behavior

Distortion corrector should compensate point cloud while driving over speed bump.

Actual behavior

Distortion corrector cannot fix point cloud on speed bump.

Steps to reproduce

Drive your vehicle on speed bump with a lidar such as VLS-128 and you will see the behaviour.

Versions

Possible causes

No response

Additional context

No response

VRichardJP commented 9 months ago

Just to make sure, are you talking about the point cloud crack at road level here:

Screenshot_2023-09-13-08-24-48-246_org mozilla firefox-edit

mebasoglu commented 9 months ago

Just to make sure, are you talking about the point cloud crack at road level here:

Screenshot_2023-09-13-08-24-48-246_org mozilla firefox-edit

Hello, yes, I am talking about that.

VRichardJP commented 9 months ago

Indeed, current implementation has not been designed to handle speed bumps. Distortion corrector only takes into account linear speed (twist_it->twist.linear.x) and yaw rate (imu_it->vector.z). To handle speed bumps, it would be necessary to check pitch rate as well (imu_it->vector.y).

I am not sure the math is much harder. However, while absolute linear and yaw acceleration stay usually low (i.e. speed and yaw rate are almost constant at scan level), pitch acceleration goes pretty high when the car hits a speed bump. So for the compensation to work properly, it would be necessary to have well synchronized sensors and high frequency IMU. If there is any delay in the measurement, you would end up with the wrong points being corrected, and the "corrected" result would be worse than the non-corrected one.

stale[bot] commented 7 months ago

This pull request has been automatically marked as stale because it has not had recent activity.