imu和canmera標定

最近在研究imu和相機的聯合標定方法,根據網上查到的資料和github上的開源工具總結以下。html

一、聯合標定的工具Kalibr
https://github.com/ethz-asl/kalibrgit

wiki寫的很全了,總結如下要點:github

須要:
一、內參:尺度,軸誤差、非線性(應用到raw measurements)算法

二、陀螺儀和加速度計的噪聲和隨機遊走誤差工具

三、標定圖像,很成熟了,使用ros中的工具箱就行。post

採集圖像:
須要激活因此的軸,20Hz的相機,200Hz的IMU優化

避免震動,看到有說法使用人手不行,須要機械臂.net

若是您正在使用具備對稱性的校準目標(棋盤,圓網格),則必須避免可能致使目標姿態估計中的翻轉的運動。 推薦使用Aprilgrid來徹底避免這個問題。code

中文博客教程:htm

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的物理距離
* 標定結果的穩定性上
標定的結果一直沒法使人滿意:
可能的緣由
    選擇的內參數值
    畸變係數的選擇
    採集過程當中出現的晃動
    座標系混亂

二、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(通常取50s)。

旋轉IMU使其保持不一樣的姿態。

在某種姿態下,至少保持t(通常取1~4)s。

是否旋轉IMU N(通常選36~50)次。

用算法估計偏差參數

最後能夠根據殘差(residual)來挑選最終結果
要保證旋轉過程有明顯的加速減速過程,可使用6面法校準,多旋轉幾回避免奇異性。要注意參數的初始值的設定,若是設置很差會很大程度影響結果。

附上我這拙劣的操做:


三、噪聲和隨機遊走的標定(Allan方差)
https://github.com/rpng/kalibr_allan(matlab)

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

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

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

通常這些開源代碼不是有例程就有詳細的說明,提供參考。

相關文章
相關標籤/搜索