opencvimage-processingcomputer-visioncalibrationlidar

Is translation vector in Cross Calibration of camera and LiDAR equals to physical distance in millimeters?


I have an RGB camera and a LiDAR. I implemented a paper to cross-calibrate them in order to fuse their data.

The cross-calibration gives a rotation matrix (R) and a translation vector (t) to move points from the Lidar coordinate system to the camera coordinate system.

My question is this: is the translation vector (t) equal to the distance between the center of the lidar and the camera when we use a ruler?

For example, if t=[23, 450, 300], does it mean in the x direction we should move 23 mm (millimeters), in y we should move 450 mm, and in the z-direction, we should move 300 mm?

I asked this question because the projection of LiDR point-cloud to an image seems pretty good in my eyes; however, the translation vector (t) has a significant difference when I use a ruler to measure the distance between the two sensors.


Solution

  • For example, if t=[23, 450, 300], does it mean in the x direction we should move 23 mm (millimeters), in y we should move 450 mm, and in the z-direction, we should move 300 mm?

    -> yes it is as long as you have used the same unit to represent your point cloud during the optimization.

    The reason why your estimation and the actual device distance are different might be because of the observability issue. Did you make enough motion or use enough data to observe the translation space well?

    Small translations between the sensors might not make a notable difference if the scene points are far from the sensor. That might be why your result doesn't look too bad.

    See my paper for more detail: Spatiotemporal Camera-LiDAR Calibration: A Targetless and Structureless Approach