-
Notifications
You must be signed in to change notification settings - Fork 669
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
The distortion corrector package doesn't compensate for all motion distortion #6657
Comments
@vividf was working on things related to this |
Hi @vividf , what's your current plan? |
Hi, @kaancolak, What I did before was to utilize the information from twist (linear xyz, but just as you said we only have linear x from twist) and imu (angular xyz) to compensate for the pointcloud in the sensor_frame (lidar_frame), not in the base_link.
The reason why we didn't use this algorithm is because it almost doubles the time. |
Thank you for the clarification @vividf . I apologize for the delayed response, I haven't had the time to work on this issue yet due to my other tasks. I understood your approach. In the current implementation of lidar distortion corrector has difficulty solving complex situations(using just yaw rate) that are mentioned in the issue. Maybe can we add this solution as an optional in the distortion corrector package? |
@kaancolak |
Thank you @vividf , I re-assigned this issue to you. (cc. @xmfcx ) , before we created this issue, we talked with Fatih and planned to implement a similar approach to yours(or use a different displacement resource). However, you've already put in some work on it. Let's test the outcome. If it performs satisfactorily, maybe we can try optimizing certain aspects to address the processing time concern. |
@kaancolak This branch is a bit different from what I implemented before (undistorted in baselink instead of undistorted in sensor frame). |
Hello @vividf . Thanks for your work. I tested it. With 3d distortion corrector branch:
We can see here pc which is output of the distortion corrector is changes in direction z. You can see below that ground segmentation adds ground points to non-ground points when passing through speed bump before the changes occur. I observed that this error did not occur after checkout the 3d distortion corrector branch. Which method did you use to test it? Apart from this, if there is a method I can test, I can test it. Note: By default, the distortion corrector node uses |
@vividf please create the PR from the branch, since it is improving the autoware performance. |
@meliketanrikulu @xmfcx Thanks! |
Checklist
Description
The current implementation of the distortion corrector package only takes into account linear speed x from twist messages and just yaw rate from the IMU. But the current solution doesn't provide a motion-compensated point cloud in different cases like going up and down speed bump, ego roll angle changes when the vehicle turning etc.
Purpose
Compensate all motion distortion from lidar point cloud.
Possible approaches
Solution 1:
In the current sensor setup, we possess high-frequency IMU data. This enables us to calculate orientation variances between the timestamps of the point cloud (the timestamp of the initial scan) and the timestamps of individual points. Additionally, utilizing a localization stack (EKF), we can determine the vehicle's displacement during this interval. We can then implement a reverse transformation from the pseudo sensor base frame (imu orientation + displacement that comes to EKF) to the sensor base frame.
Solution 2:
Improve the current algorithm by just adding the pitch rate.
Limitation: We have just linear x that comes from the twist message.
Definition of done
The text was updated successfully, but these errors were encountered: