Skip to content

Sensor Calibration

Jeff Delaune edited this page Oct 20, 2020 · 1 revision

You need calibrated sensors to run xVIO. Specifically, xVIO the requires camera intrinsics and the camera-IMU extrinsics.

We recommend to use the Kalibr toolbox to estimate these parameters. This page defines the parameters expected by x_vio_ros in params.yaml when querying these calibrations.

Camera intrinsics

x_vio_ros assumes a pinhole camera model.

cam1_img_width and cam1_img_height are the sensor dimensions, in pixels.

cam1_fx and cam1_fy represent the focal length of the camera lens, normalized by the camera sensor dimension in x and y, respectively. Using the Kalibr outputs, you just need to divide the focal length (in pixel) by the corresponding image dimensions (in pixel).

cam1_cx and cam1_cy represent the coordinates of the principal point, in a 2D coordinate system where the center of top left corner pixel has coordinates (0,0), and the center of the bottom right corner pixel is (1,1). In Kalibr, you need to divide the coordinates the principal point in pixels, by the corresponding image dimension.

cam1_s represents the lens distortion, following the field of view model defined here for fisheye lenses. It corresponds to the fov model in Kalibr.

Camera-IMU extrinsics

cam1_q_ic is the quaternion defining the rotation from IMU frame to camera frame. It should be entered in the [w,x,y,z] format. It can computed by passing the top-left 3x3 matrix block of the T_ic Kalibr output in the DCM2quat function of MATLAB's aerospace toolbox.

xVIO uses the Hamilton convention for quaternions, through its dependency on the Eigen library.

cam1_p_ic are the cartesian coordinates of the optical center of the camera in the IMU frame, expressed in IMU frame. It corresponds to the top-right 3x1 block of the T_ic Kalibr output.

Clone this wiki locally