NeBula-Autonomy / LOCUS

Robust Lidar Odometry System
MIT License
352 stars 48 forks source link

Bring MDC into our launch for other datasets #22

Open BenjaminMorrell opened 2 years ago

BenjaminMorrell commented 2 years ago

Not sure how we do this with our datasets as we saved points, not packets and do MDC in the driver - need to think how to make it more generally usable - or advise others to save packets?

wwtinwhu commented 2 years ago

Hello @BenjaminMorrell ! Thank you to your team for an excellent job! Regarding the currently public code, I don't know if I understand it right: the MDC module is currently integrated in the velodyne driver, so the point cloud in the bag has been corrected by motion distortion. If I test my own data, I need to MDC the point cloud first and then run LOCUS. Is the original point cloud data available? I currently downloaded the F dataset, which only contains data of type sensor_msgs/PointCloud2.

femust commented 2 years ago

Yeap, our custom driver has/had MDC we didn't bring that yet to the code directly. I believe that recorded bag files that we have (nebula-odometry-dataset) all the point clouds are MDC-corrected, somewhere for D dataset and F dataset we had direct packets from velodyne but they were on the nextcloud which is down... Maybe @BenjaminMorrell has some datasets locally?

I need to MDC the point cloud first and then run LOCUS. Yes, would be useful to do that for pc_trans_in_0, pc_trans_in_1 and pc_trans_in_2 (but it also depends on how fast your robot is moving frankly speaking)

wwtinwhu commented 2 years ago

Yeap, our custom driver has/had MDC we didn't bring that yet to the code directly. I believe that recorded bag files that we have (nebula-odometry-dataset) all the point clouds are MDC-corrected, somewhere for D dataset and F dataset we had direct packets from velodyne but they were on the nextcloud which is down... Maybe @BenjaminMorrell has some datasets locally?

I need to MDC the point cloud first and then run LOCUS. Yes, would be useful to do that for pc_trans_in_0, pc_trans_in_1 and pc_trans_in_2 (but it also depends on how fast your robot is moving frankly speaking)

Thanks @femust ! By the way, what does pc_trans_in_0 and etc mean ?

femust commented 2 years ago

Have a look here. So those are the real "inputs" for locus. It is basically input of raw point clouds (i.e. from VLP-16,OS or whatever 3D sensor). Then there is preprocessing, voxelization etc and then it goes to GICP etc.

The max number of sensors is 3 though if you put in this launch file a bit of effort you can extend to more sensors. Obviously we didn't generalize for N lidar sensors :) but you may use only with 1, so just put pc_trans_in_0 as a name of your topic point cloud

dummyjohn77 commented 1 year ago

Hi,

Sorry if this diverts from the thread, but the query I had is related to the subject of this issue.

I was wondering if it would please be possible to release the MDC enabled Velodyne driver code-base. MDC would be a great addition to enable LOCUS into UAVs. The details of MDC was missing in the paper as well, and hence was a little confused on how to implement it from scratch.

Pardon me if it is already released.