Closed DrWillway closed 3 years ago
It is very challenging to perform calibration if you are unable to excite all axes of the system. If you are going to deploy the system on a planar robot, I recommend you first calibrate it offline and then do not estimate the extrinsic between the camera and IMU online. From what you have said, it seems that you need to detach the sensors from the robotic platform, calibrate them, and re-attach them as one unit. Also the kalibr_allan
project noises seem to be way too large, so I recommend you try the default ETH ones, and then also the other IMU utility you have posted. If your IMU is that noisy, I am not sure there is much one can do (but I suspect it isn't that noise just bad calibration calculation).
Hello, I am trying to implement monocular VO with one IMU on ground track robot.
My setup:
Procedures for calibration:
- intrisinc camera: using standart ROS method [http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration], while robot is static:
camera_matrix: rows: 3 cols: 3 data: [734.92524, 0. , 670.30661,
- intrinsici IMU---collected 10h bag file while IMU still, used _kallibrallan and _imuutils packages to compare.
Kalibr_allan values: accelerometer_noise_density =0.116191 accelerometer_random_walk =0.008006
gyroscope_noise_density =0.02718901219936097 gyroscope_random_walk =0.0008663802731459378
imu_utils: type: IMU name: imu_um7 Gyr: unit: " rad/s" avg-axis: gyr_n: 1.5842723154232009e-03 gyr_w: 4.3210082109045327e-05 x-axis: gyr_n: 1.6042342543317045e-03 gyr_w: 5.5463441716470483e-05 y-axis: gyr_n: 1.6956731202492615e-03 gyr_w: 5.0808747112070315e-05 z-axis: gyr_n: 1.4529095716886370e-03 gyr_w: 2.3358057498595162e-05 Acc: unit: " m/s^2" avg-axis: acc_n: 1.3923822406555314e-02 acc_w: 7.1005384351349374e-04 x-axis: acc_n: 1.2029718682399323e-02 acc_w: 6.3233636276683377e-04 y-axis: acc_n: 1.3255809083200933e-02 acc_w: 7.3200228961688098e-04 z-axis: acc_n: 1.6485939454065689e-02 acc_w: 7.6582287815676637e-04
- Extrisic, kalibr auto:
- Extrisic, openvins auto calibration parameter, repeat few times to get different values:
T_C0toI: -0.290,-0.004,-0.957,-0.316, 0.957,-0.001,-0.290,0.026, -0.000,-1.000,0.004,0.033, 0.000,0.000,0.000,1.000
T_C0toI: -0.293,-0.004,-0.956,-0.253, 0.956,-0.003,-0.293,-0.005, -0.002,-1.000,0.005,0.063, 0.000,0.000,0.000,1.000
T_C0toI: -0.291,-0.002,-0.957,-0.395, 0.957,-0.000,-0.291,0.023, 0.000,-1.000,0.002,-0.006, 0.000,0.000,0.000,1.000
- Extrisinc manual: [ 0.956, 0, 0.292, 0.313, 0, 1, 0, 0,
-0.292, 0, 0.956, 0.066, 0.0, 0.0, 0.0, 1.0 ]
For extrinsics I tried to use kalibr / manual calibration. As the robot is heavy we couldn't pick up it and move the robot in all axis, so I just teleoperated it (front-backward, left right rotation) to make the bag file with IMU and HD image stream. IMU is shifted from the camera (around 30 cm in length and 6 cm height).
Configuration file:
Issue:
Estimated path is not alighed with ground, distances are growing and getting smaller over time.
Am I missing something? Can you suggest something for improvements?