Closed JzHuai0108 closed 2 years ago
Hi, @JzHuai0108, Thanks for this question. For the hesai lidar in the HILTI dataset, I have adjusted its coordinate system in the codes of LIO_SAM_6axis, which is consistent with the REP105 convention, the same as the Velodyne lidar. For details, please refer to here
Why do these adjustments are detailed in the following document. https://github.com/JokerJohn/LIO_SAM_6AXIS/blob/main/doc/adaption.md
Hi @JokerJohn , I appreciate your quick reply. I perused the adaption doc and the source code of pcl moveFromROSMsg function. However, my derivation still leads me to extrinsicRot = R_velodyne_imu = R_velodyne_pandar * R_imu_pandar^T = [ 1, 0, 0; 0, -1, 0; 0, 0, -1 ].
I understand , you can refer to this issue in the following HILTI repo first. HILTI ISSUE
The coordinate system diagram provided by the organizer is actually problematic, although I am not sure which version you are looking at, I will update the code as soon as possible Making the configuration set in YAMLfile consistent with the configuration directly provided by HILTI.
Hi @JokerJohn , I appreciate your quick reply. I perused the adaption doc and the source code of pcl moveFromROSMsg function. However, my derivation still leads me to extrinsicRot = R_velodyne_imu = R_velodyne_pandar * R_imu_pandar^T = [ 1, 0, 0; 0, -1, 0; 0, 0, -1 ].
- Apparently, the moveFromROSMsg does not do any coordinate transform.
- In the diagram, the math formula is correct to me, but the drawing of the pandar coordinate frame in red is problematic. Shouldn't the y axis be reversed? Otherwise, if we stick with the wrong drawing, then I arrive at extrinsicRot = [ 1, 0, 0; 0, 1, 0; 0, 0, -1 ] (as given in pandar.yaml) which will transform a right hand coordinate frame to a left handed coordinate frame. But we are not using any right handed coordinate frame. So this is a contradiction. Can you please resolve this inconsistency?
I have solved the problem, let me explain as follows
2.The extrinsicRot parameter in LIO-SAM is used to align the IMU data to the Pandar coordinate system, so it should be R_IMU_Pandar, and take the inverse matrix of the extrinsics (R_Pandar_IMU) provided in the HILTI calibration file.
Look at my parameter settings below
Hi @JokerJohn, thank you for sharing the work. I am running the codebase with the hiltislam dataset, e.g. exp01.
Can you please clarify how you compute the lidar IMU extrinsic parameters R_lidar_imu? The rotation part R_lidar_imu are given in here as
From hiltislam calibration file, we have R_imu_pandar = [0, -1, 0; -1, 0, 0; 0, 0, -1] According to the pointcloud projection for hesai in here, we know that R_velodyne_pandar = [0, -1, 0; 1, 0, 0; 0, 0, 1];
To my understanding, extrinsicRot = R_velodyne_imu = R_velodyne_pandar * R_imu_pandar^T = [ 1, 0, 0; 0, -1, 0; 0, 0, -1 ]. But this is different from that given in here.
Can you please clarify this point?
FYI, I have tried both sets of parameters, the matrix given in params_pandar.yaml seems to work better, but still is not visually satisfactory.