zxl19 / Hand_Eye_Extrinsic_Calibration

MATLAB code for LiDAR-Camera-GNSS/INS extrinsic calibration based on hand-eye calibration method.
MIT License
37 stars 7 forks source link

Question about bounds in quat/quat_interp LiDAR INS optimization #7

Closed heethesh closed 10 months ago

heethesh commented 10 months ago

Did you mean to set the upper bound for qz to +2 instead of -2 here: https://github.com/zxl19/Hand_Eye_Extrinsic_Calibration/blob/main/main_calibration_L2I_quat_interp.m#L76C1-L77C29

lb = [-1, -1, -1, -2, -2, -2, -2];
ub = [1, 1, 1, 2, 2, 2, -2];

Same for main_calibration_L2I_quat.

I seem to get better results with qz ub set +2.

heethesh commented 10 months ago

I'm also curious why you chose not to optimize in the so(3) space of rotations (the tangent space of rotation matrices)? That would also make interpolation simpler and avoids normalization of Quaternion in a couple of places including the state vector in loss function and results.

zxl19 commented 10 months ago

@heethesh Hi, thank you for pointing out this upper bound question. It's a typo and the upper bound for $q_z$ should be +2. As for the parameterization method, I was an amateur when I wrote this. The derivative form for hand-eye calibration method seemed complicated for me by then, and it's unclear how well MATLAB supports Lie algebra, so I decided to make this thing work in the first place :)