kalibr
kalibr copied to clipboard
Some questions about calibration result
Hi all,
I have some questions about calibration results. Please give me a hand.
My questions are as follows.
Q1: How to evaluate the calibration result is good or bad?
I know that the smaller residuals/reprojection error are better. Are there any others? result : report-imucam-cam.pdf
Q2: What is the relationship between Kalibr's camera coordinate system and IMU's coordinate system?
Is it like the picture? I really confused between both of them.
Q3: My translation vector(T_ci, T_ic) of the result is not matched with the real world. How can I improve it?
The relationship between IMU and camera, like
Thank you
Hi there, Q1: One straightforward method would be to re-calibrate your platform and check if you get nearly the same results. However, the reprojection error and the Gyro error is a little high. Plus, the time shift between the IMU and the camera is 0, which does not seem to be true! So, you may want to do the calibration again, reconsidering the data acquisition process.
Q2: Yes, the coordinate systems are correct, if the platform is in front of you! For more information, see this picture.
Q3: As I mentioned in Q1, I think your calibration result is not good enough.
Regards
Hi @hankhsueh
I would also say your calibration is not good enough. It looks like your IMU is highly overweighted compared to camera measurements (i.e. the estimated body spline just follows the IMU movements and disregards any image measurements resulting in huge projection errors and zero accelererometer error). You might want to re-tune the IMU parameters. What hardware are you using? Also as mentioned by @mhyoosefian, you might want to reconsider your acquisition process as your IMU measurements seem to have time gaps and many static periods. Rather try to record data where you are moving in front of the target exciting all IMU axes.
Thanks to both @mhyoosefian and @floriantschopp reply.
In order to improve the result by your suggestions, I did some action:
- Got the own IMU config by Allan analysis(record 2 hrs)
- Increase camera FPS to 20FPS
- Make sure the IMU data is correct and sample rate 200Hz( each data interval ~5ms )
- Use imu-models (scale-misalignment & scale-misalignment-size-effect) to do calibrate. command like : kalibr_calibrate_imu_camera --target 6x6.yaml --bag cam.bag --imu imu.yaml --perform-synchrozation --imu-models scale-misalignment
- Install camera and IMU on the robot arm (Avoid shaking) and excite IMU all axes
I got these results. Calibrated IMU by myself. report-imucam-cam_Calibrated.pdf
Calibrate IMU by using Kalibr imu-models scale-misalignment: report-imucam-cam_scale-misalignment.pdf
scale-misalignment-size-effect: report-imucam-cam_scale-misalignment-size-effect.pdf
I think I got the correct gravity vector close to -9.8, but the translation between the IMU and the camera is too close.
So I still have some questions: Q1 : How can I improve the translation T_ci (still too small) ? Q2 : What is the accuracy of the kalibr_calibrate_imu_camera(T_ci) (error < 1cm?, < 10cm? or others) ? Q3 : Why do the comparison of predicted and measured specific force/angular velocities sometimes not match the raw data?
Best regards.
Still your motions seem to have a lot of vibrations and don't seem very smooth. Regarding your questions: Q1: Try to cover different acceleartions and rotations on all axes in your dataset. With a good observability, you should get closer to the desired/actual transformation. Q2: In my experience, for a standard VIO system the translation was better than a few milimeters. Q3: This happens when the visual data and inertial data does not match well. This can be because of unobserved time offsets. Best is to do well "recognizable" motions and (manually) check in the data stream if your actual motion is well reflected both in the IMU data and images.
Hope that helps!
Hi there,
As @floriantschopp mentioned, you still need to work on your data acquisition procedure. You may want to do smoother/slower movements, while making sure to excite all IMU axes. I have attached the result of a successful calibration. Have a look at its movements (especially error plots). Furthermore, I recommend to download the EuRoC calibration dataset and notice the movements using its images.
Regards report-imucam-data.pdf
@mhyoosefian could you have a look at my calibration pdf please - 320x240-report-imucam.pdf i calibrated raspberry pi fish eye camera with mpu-650.