ouster-ros icon indicating copy to clipboard operation
ouster-ros copied to clipboard

Point cloud motion compensation option

Open outrider-jkoch opened this issue 1 year ago • 1 comments

Is your feature request related to a problem? Please describe. Platform motion while the lidar is scanning can cause point cloud distortion which can get more pronounced as the linear velocity and/or angular rotation increases.

Describe the solution you'd like Use the internal IMU and external parameters (as needed) to perform motion compensation (e.g. https://www.mathworks.com/help/lidar/ug/motion-compensation-in-lidar-point-cloud.html). This could also enable more accurate sensor fusion when two or more lidars are present on a single platform.

Describe alternatives you've considered Make modifications to the driver and/or perform motion compensation external to the native driver prior to other nodes using the lidar data.

outrider-jkoch avatar Jul 11 '23 17:07 outrider-jkoch

It would be great to have something from Ouster doing so. Meanwhile, you can try to do something similar to this:

Getting the emu information: https://github.com/chinitaberrio/SC-LeGO-LOAM/blob/ddc8315caa1be3132fd30255c8d823c453d58407/SC-LeGO-LOAM/LeGO-LOAM/src/mapOptmization.cpp#L669 Applying the transformations to the points: https://github.com/chinitaberrio/SC-LeGO-LOAM/blob/ddc8315caa1be3132fd30255c8d823c453d58407/SC-LeGO-LOAM/LeGO-LOAM/src/mapOptmization.cpp#L484

Or if you have an odometry source: https://github.com/ethz-asl/lidar_undistortion

chinitaberrio avatar Jul 13 '23 01:07 chinitaberrio