To facilitate testing our concept with the IMU-IMU signal matching we prepared a test board with 2 xsens units with GNSS receiver units for ensuring time sync. The IMUs used have 6-DoF. In our test configuration IMU-B was fixed while we rotated IMU-A at different pre-configured angles (
In the example code we have calibrated the 2 IMUs at
- We created an IMU board with 2 xsens units.
- The GT extrinsics were measured with tape.
- We tried our best to cut a planar sample board. However the board is not plane and there are some roll and pitch misalignments between the 2 IMUs, which we could not measure.
- Convention used is as described here.
- GT parameters at 45 degree configuration:
$\mathbf{t}_{\mathtt{BA}} = [-0.190 m \quad 0.197 m\quad 0m]$ -
$\mathbf{R}_{\mathtt{BA}} = [0^{\circ} \quad 0^{\circ} \quad -45^{\circ}]$ (Format: RPY, The board was non-planar hence there were slight deviations in roll and pitch)
The sample logs are collected at 90 degree configuration.
collection-1.mp4
collection-2.mp4
test_board_calibration.m
Then we see the results with existing calibration parameters.
Computed Fisher information matrix of batches of size n=100 and got the singular values using SVD. The trajectory selection is done if the minimum singular value exceeds a threshold, which needs to be tuned based on the IMU used and kinematics of the platform. Here we observe that only certain sections of the IMU data has enough excitations needed for calibration.
If you find this useful, please cite us as follows:
@article{das2023imu,
title={IMU-based online multi-lidar calibration without lidar odometry},
author={Das, Sandipan and Boberg, Bengt and Fallon, Maurice and Chatterjee, Saikat},
journal={arXiv preprint arXiv:2302.14735},
year={2023}
}