vectr-ucla / direct_lidar_inertial_odometry

[IEEE ICRA'23] A new lightweight LiDAR-inertial odometry algorithm with a novel coarse-to-fine approach in constructing continuous-time trajectories for precise motion correction.
MIT License
530 stars 103 forks source link

Extrinsics and Ouster Driver #3

Closed juliangaal closed 1 year ago

juliangaal commented 1 year ago

Hi, and thanks for open sourcing your work!

I assume your extrinsics are tailored to the OS1-64 and taking from the datasheet/driver, correct? Does base_link, your robot frame, refer to the sensor frame of the ouster driver p. 14p?

kennyjchen commented 1 year ago

Hi @juliangaal -- thanks for the clarifying question. Yes, the current extrinsics assumes everything is with respect to the os_sensor frame, which we call base_link in the config file, and the IMU is transformed to be in os_sensor according to the document you posted above. And taking a look at this thread, it seems that it has been confirmed that all points are relative to os_sensor (at least for the latest Ouster driver).

Ideally, if your Ouster is mounted onto some platform, base_link should be coincident with your platform's CG (center of gravity), and all LiDAR / IMU measurements should be relative to that CG. This is to account for the effects of offsetting an accelerometer. In practice though, depending on how big or small your robot / platform is and how far away the Ouster is mounted from the CG, it's not too big of a deal to have everything relative to os_sensor.

Let me know if you have any other questions.

juliangaal commented 1 year ago

Got it.

Do you have any recommendations for external IMU calibration? Internal calibration is a little easier to find, to my knowledge, e.g. allan variance and kalibr.

kennyjchen commented 1 year ago

Perhaps try the following:

juliangaal commented 1 year ago

Thanks for your clarifications. Have a nice weekend.