Calibration output
The calibration output consists of either a calibration zip file containing the following:
- Sensor extrinsics
- Camera intrinsics
- Time offsets
- Ground detection (if the robot moves in a plane on flat ground)
- Wheel intrinsics (if encoders or wheel speeds were included)
- Metadata
Sensor extrinsics
Filename | Description |
---|---|
extrinsics.urdf |
NVIDIA Isaac Perceptor compatible URDF |
extrinsics.yaml |
YAML describing 6DoF extrinsics |
The YAML includes transforms between the reference frame and the 6DoF pose of each sensor. The transforms are specified as positions [x,y,z]
in meters with quaternions [x,y,z,w]
.
Example:
# Calibration Anywhere by Main Street Autonomy
#
# Position xyz; Quaternions xyzw
# [ x_m, y_m, z_m, qx, qy, qz, qw]
back_2d_lidar:
parent: "base_link"
child: "back_2d_lidar"
value: [-0.494047, 0.006522, 0.426849, -0.001075, 0.001938, -0.017212, 0.999849]
front_2d_lidar:
parent: "base_link"
child: "front_2d_lidar"
value: [0.021299, -0.003307, 0.424852, 0.001939, 0.001071, 0.999878, 0.015468]
front_3d_lidar:
parent: "base_link"
child: "front_3d_lidar"
value: [-0.234892, -0.006363, 0.527931, -0.001696, -0.000016, -0.001686, 0.999997]
chassis_imu:
parent: "base_link"
child: "chassis_imu"
value: [-0.216158, 0.012443, 0.164176, -0.000206, 0.001893, 0.705067, 0.709138]
right_stereo_camera:
parent: "base_link"
child: "right_stereo_camera"
value: [-0.286952, -0.166885, 0.352829, 0.005047, 0.003323, 0.707693, -0.706494]
left_stereo_camera:
parent: "base_link"
child: "left_stereo_camera"
value: [-0.435905, 0.148248, 0.352080, -0.000206, 0.001893, 0.705067, 0.709138]
front_stereo_camera:
parent: "base_link"
child: "front_stereo_camera"
value: [0.102732, 0.063245, 0.351200, -0.002547, -0.008137, -0.004329, 0.999954]
front_fisheye_camera:
parent: "base_link"
child: "front_fisheye_camera"
value: [0.110473, -0.011563, 0.380919, -0.001953, 0.010184, -0.004450, 0.999936]
Camera intrinsics
Filename | Description |
---|---|
<sensor_name>.intrinsics.yaml |
OpenCV-compatible camera intrinsics model |
Each imaging sensor has a corresponding YAML file that includes a projection matrix and a distortion model. MSA calibration supports fisheye, equidistant, ftheta3, rational polynomial, and plumbob (linear) models.
Readout time is included for rolling shutter cameras.
Example:
# Calibration Anywhere by Main Street Autonomy
#
{
image_width: 1920,
image_height: 1200,
camera_name: front_fisheye_camera,
camera_matrix: {rows: 3, cols: 3, data: [452.05569820004172, 0, 943.94114653517386, 0, 451.71918139761948, 600.59251441034132, 0, 0, 1]},
distortion_model: equidistant,
distortion_coefficients: {rows: 1, cols: 5, data: [0.057062094961652564, 0.013893343356487644, -0.0020329006883655913, -0.00080049913664872227, 0]},
rectification_matrix: {rows: 3, cols: 3, data: [1, 0, 0, 0, 1, 0, 0, 0, 1]},
readout_time_sec: -0.0015505231518380849,
projection_matrix: {rows: 3, cols: 4, data: [452.05569820004172, 0, 943.94114653517386, 0, 0, 451.71918139761948, 600.59251441034132, 0, 0, 0, 1, 0]}
}
Sensor time offsets
Filename | Description |
---|---|
time_offsets.yaml |
YAML describing time offsets |
The YAML includes time offsets for all sensors which were timestamped in the same time domain in the input data. For instance, if all the sensors report timestamps in Unix time, there will be an entry for every sensor.
Example:
# Calibration Anywhere by Main Street Autonomy
# Time offsets are listed in seconds
#
/chassis/imu: 0
/back_2d_lidar/scan: -0.022429021
/front_2d_lidar/scan: -0.002225964
/front_3d_lidar/lidar_points: -0.17906949900000002
/front_stereo_camera/image_raw: 0.0072620950000000005
/left_stereo_camera/image_raw: 0.0076680940000000003
/right_stereo_camera/image_raw: 0.0058531150000000007
/front_fisheye_camera/image_raw: 0.0059962550000000007
Ground detection
Filename | Description |
---|---|
ground.yaml |
YAML specifying transforms between the ground plane and each sensor |
Example:
# Calibration Anywhere by Main Street Autonomy
#
ground_relative_to_sensors:
- sensor_type: lidar
sensor_name: front_3d_lidar
origin_sensor_frame:
- 0.23484351741359347
- 0.0089428245755625857
- -0.52791281978551674
direction_sensor_frame:
- 3.6959477739646857e-05
- -0.003392711107378672
- 0.99999424405610404
- sensor_type: camera
sensor_name: front_stereo_camera
origin_sensor_frame:
- 0.062374165673735785
- 0.34980619953554176
- -0.10789840095531419
direction_sensor_frame:
- 0.0050233246870731718
- -0.99985460047339636
- 0.016295524578032849
- sensor_type: camera
sensor_name: front_fisheye_camera
origin_sensor_frame:
- -0.012102494474520616
- 0.38304527129333032
- -0.10280394618481999
direction_sensor_frame:
- 0.0039954112451021095
- -0.99978496675938267
- -0.020348388902378112
Wheel intrinsics
Filename | Description |
---|---|
wheels_cal.yaml |
YAML describing wheel intrinsics |
The YAML includes an axle track estimate (in meters) and corrective gain factors for either left and right wheel speeds or meters-per-tick.
Example:
# Calibration Anywhere by Main Street Autonomy
#
axle_track_m: 0.4856914300973283
left_speed_gain: 0.030691271066441622
right_speed_gain: 0.030696325397954808
Metadata
Filename | Description |
---|---|
msa_metadata.tar |
Reflected metadata file (if provided in upload) |
If a file named msa_metadata.tar
was included in the log, it will be included in the output zip file. This file is not unpacked or analyzed by Calibration Anywhere.