-
Notifications
You must be signed in to change notification settings - Fork 16
Sensor Calibration
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.