IMU-Camera 聯合標定資料總結
最近在研究imu和相機的聯合標定方法,根據網上查到的資料和github上的開源工具總結如下。
1、聯合標定的工具Kalibr
https://github.com/ethz-asl/kalibr
wiki寫的很全了,總結以下要點:
需要:
1、內參:尺度,軸偏差、非線性(應用到raw measurements)
2、陀螺儀和加速度計的噪聲和隨機遊走偏差
3、標定影象,很成熟了,使用ros中的工具箱就行。
採集影象:
需要啟用所以的軸,20Hz的相機,200Hz的IMU
避免震動,看到有說法使用人手不行,需要機械臂
如果您正在使用具有對稱性的校準目標(棋盤,圓網格),則必須避免可能導致目標姿態估計中的翻轉的運動。 推薦使用Aprilgrid來完全避免這個問題。
中文部落格教程:
https://blog.csdn.net/wwchen61/article/details/78013962
https://www.2cto.com/kf/201709/682389.html
https://blog.csdn.net/Binbin_Sun/article/details/53791404提到:
當前標定的結果,主要基於以下兩個方面判定:
* 真實的IMU座標系和相機座標系的轉換,即相機和IMU的物理距離
* 標定結果的穩定性上
標定的結果一直無法令人滿意:
可能的原因
選擇的內參數值
畸變係數的選擇
採集過程中出現的晃動
座標系混亂
2、IMU內參標定工具imu_tk
https://github.com/Kyle-ak/imu_tk(或者https://bitbucket.org/alberto_pretto/imu_tk)
wiki基本沒有。
詳細介紹:https://blog.csdn.net/haoliliang88/article/details/76737960
關於IMU誤差的講解:https://www.cnblogs.com/buxiaoyi/p/7541974.html(推薦)
總結優化的方法:
加速度計: 偏差Bias,3個(六面法最小二乘問題)
尺度因子,3個
軸向偏差,3個
陀螺儀: 偏差Bias+高斯噪聲(Allan方差),3個
尺度因子,3個
軸向偏差,6個
泡泡機器人上的更為詳細講解:http://rosclub.cn/post-221.html
這個是使用matlab,不過我不太想用matlab(雙系統每個系統一個matlab,想想就可怕),其中的理論還是可以看看的:
https://blog.csdn.net/qq541317072/article/details/70314841
加速度計:十面球形校準(重力加速度應該在球面上)
程式的輸出是矩陣M和B,M是一個3*3的矩陣,表示三軸加速度計各方向的關聯(理想情況該矩陣為單位陣),B是3*1的矩陣即各方向bias。採集資料時要注意,保證重力加速度分別指向+-x、+-y、+-z六個方向,獲得較為準確的標定結果。
校準的過程:
旋轉IMU使其保持不同的姿態。
在某種姿態下,至少保持t(一般取1~4)s。
是否旋轉IMU N(一般選36~50)次。
用演算法估計誤差引數
- 最後可以根據殘差(residual)來挑選最終結果
要保證旋轉過程有明顯的加速減速過程,可以使用6面法校準,多旋轉幾次避免奇異性。要注意引數的初始值的設定,如果設定不好會很大程度影響結果。
附上我這拙劣的操作:
3、噪聲和隨機遊走的標定(Allan方差)
https://github.com/rpng/kalibr_allan(matlab)
https://github.com/gaowenliang/imu_utils(ROS)
可以看他們的wiki很詳細,也可以看之前藍色推薦的那個,也有講。
後者是港科大推薦的,需要裝一個code_utils都在他的github上。
一般這些開原始碼不是有例程就有詳細的說明,提供參考。
本文都是網上的資料總結而成,如若有誤,多多包含,再次感謝這些大佬分享。