ethz-asl / COIN-LIO

Other
198 stars 18 forks source link

calibration of /data format/pixel_shift_by_row #7

Closed YZH-bot closed 1 month ago

YZH-bot commented 1 month ago

Thanks for the open-source code. I have a few questions that I was hoping you could help me with.

  1. What is the meaning of /data format/pixel_shift_by_row?
  2. How did you discover this error, or how can we tell if there is a shift in our lidar intensity image?
  3. Can you explain the general principle of correction?

Thanks very much!

patripfr commented 1 month ago

Hi,

Thanks for your interest and the good questions!

The intensity images can be constructed in multiple ways. The most classical way is to simply use a spherical reprojection model, however, this often results in several black spots in the image, as nicely illustrated in the RI-LIO paper. The ouster lidars provide a calibration file, which is used to build a direct correspondence between the point index in the point cloud and the pixel in the image. In doing so, the projection can be skipped and the image can be built directly from point indices, which reduces computational load and gives dense images. We are using this approach to build the images in our work.

  1. The pixel_shift_by_row is actually not what we are calibrating, but it is provided in the calibration file from the ouster sensor and it is used to destagger the images. Details about this are nicely described here. What we are actually calibrating is the parameter image/u_shift.

  2. I observed this error when using the newer college dataset files and realized that the projection (without the correction) was wrong. You can test this by checking if the pixel index that you get from projecting the 3D point corresponds with its pixel in the image.

  3. Unfortunately, despite the calibration file given by the ouster lidars, I still observed that the images for some sensors (e.g in the newer college dataset) are shifted by several columns. These images do not match the projection model (and therefore introduces wrong error and jacobian terms). Therefore, we calibrate this column shift to fit the projection model.

Let me know if you have further questions :)

YZH-bot commented 1 month ago

Thank you for your detailed answers!:)