1. 程式人生 > >IMU-Camera 聯合標定資料總結

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六個方向,獲得較為準確的標定結果。

校準的過程:

  1. 靜置IMU T(一般取50s)。

  2. 旋轉IMU使其保持不同的姿態。

  3. 在某種姿態下,至少保持t(一般取1~4)s。

  4. 是否旋轉IMU N(一般選36~50)次。

  5. 用演算法估計誤差引數

  6. 最後可以根據殘差(residual)來挑選最終結果

要保證旋轉過程有明顯的加速減速過程,可以使用6面法校準,多旋轉幾次避免奇異性。要注意引數的初始值的設定,如果設定不好會很大程度影響結果。

附上我這拙劣的操作:


3、噪聲和隨機遊走的標定(Allan方差)

https://github.com/rpng/kalibr_allan(matlab)

https://github.com/gaowenliang/imu_utils(ROS)

可以看他們的wiki很詳細,也可以看之前藍色推薦的那個,也有講。

後者是港科大推薦的,需要裝一個code_utils都在他的github上。

一般這些開原始碼不是有例程就有詳細的說明,提供參考。

本文都是網上的資料總結而成,如若有誤,多多包含,再次感謝這些大佬分享。