研究相機和IMU座標系變換

剛開始錄製的數據時沒有考慮相機和IMU之間的座標變換,但是後來發現跟蹤效果不好,去查驗imu數據時,發現,我採集保存的imu數據格式沒有和euroc數據集中的imu數據保存格式統一,所以需要研究的是在euroc用於數據採集的設備中的相機和imu之間的座標系變換關係,我的設備相機和imu之間的座標系變換關係,然後按照euroc數據保存格式來保存我採集的數據。

下面是euroc數據集使用的數據採集設備,使用的是左手座標系,相機朝向與z軸朝向相反,相機與imu之間的位姿變換是,順時針旋轉90度,

 

下面是vins室內數據採集設備, 採用右手座標系,z軸和相機軸重合,相機朝向和z軸朝向重合,相機到imu的位姿變換是,繞z軸順時針旋轉90度。

 

 vins用來室外數據採集的設備,相機系是右手座標系,相機朝向和z軸方向重合,相機到imu之間的位姿變化需要經過兩個步驟變換,首先是繞x軸順時針旋轉90度,然後是繞新的z軸逆時針旋轉90度,繞哪個軸旋轉就要從哪個軸看進去,然後判斷是順時針還是逆時針,上述連續旋轉的方式,需要使用左乘的方式來表示連乘。

 

 

我們的採集設備相機和imu座標系圖。相機是標準的右手系,imu是左手系,經過測試發現,imu實際的座標系和標註的座標系是相反的。(哪個軸的方向和重力方向重合,哪個軸上輸出的加速度的值應該爲正值)。EUROC數據集中提供的imu數據的重力軸在x軸上,並且值爲正,說明,x軸的正方向和重力方向重合,是朝下的。下面兩個圖對比可知,我們的設備IMU座標系和EUROC數據集的IMU座標系,X軸和Z軸是對調的,並且Y軸是相反的,所以爲了將自採的imu數據向EUROC數據集中imu數據對齊則,需要進行如下操作: ax = Za; ay = -Ya; az = Xa; 將加速度數據調整的同時,也需要對對應的角速度數據進行調整:

wx = Zw; wy = -Yw; wz = Xw;  並且在之前,將自採的Imu 數據和EUROC數據集的imu數據對比,得出,後者採用的是弧度單位,而我們採集的數據是以度爲單位,所以要在所有獲得的角度數據上除以57.296(180/pi),並且在加速度數據上都乘以了9.8.之所以要乘以9.8,應該是與imu的前期設置有關,這個需要問一下小潘潘。

 

 進行完數據的調整之後,再次跑數據集,仍然會出現亂漂的情況,我乾脆打開配置文件,想着修改哪個參數,實現,不用每次都重新打開rviz窗口的問題,但是打開config文件後,我尋思着隨便改改吧,看到了rolling_shutter這個參數,我之前一直認爲我們的相機是rolling_shutter相機,就是捲簾相機,所以這個參數設置爲1,但是我這次改成了0,試一下,發現,我靠,不漂了,鵬哥說是global shutter,這下才知道我們的相機是global shutter相機,哎,配置文件裏的參數還是要多多研究的。長見識了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章