一、概述
多傳感器的外參標(biāo)定和時間同步(統(tǒng)稱時空標(biāo)定)是融合的重要前提條件,前面介紹的所有融合都是默認(rèn)已經(jīng)標(biāo)定好了的。但實(shí)際上,標(biāo)定當(dāng)然是需要在融合之前做的,之所以放在后面講,是因為標(biāo)定所用到的知識比融合多,或者可以講,標(biāo)定是一種更高級別的融合。
由于標(biāo)定的方法多種多樣,要標(biāo)定的內(nèi)容也十分的多,所以本篇文章無法對每一種方法進(jìn)行詳細(xì)的介紹,索性我們在這里把常見方法的思路匯總梳理一下,弄清楚什么情況下該選什么類型的方法,等真正用到再去了解它的細(xì)節(jié),也未嘗不可。
二、外參標(biāo)定方法
相比于時間標(biāo)定,外參的標(biāo)定更簡單一些,那么我們就先從簡單的開始介紹。
外參標(biāo)定方法可以按以下方式進(jìn)行分類
之所以按有無共視進(jìn)行區(qū)分,是因為二者在原理和精度上都有本質(zhì)區(qū)別,而且在實(shí)際應(yīng)用中,也會盡可能讓傳感器之間產(chǎn)生共視。
1.雷達(dá)和相機(jī)外參標(biāo)定
?
這類任務(wù)中,主要是用的就是pnp方法,可參考的資料有:
論文1:LiDAR-Camera Calibration using 3D-3D Point correspondences
代碼1:https://github.com/ankitdhall/lidar_camera_calibration
論文2:Automatic Extrinsic Calibration for Lidar-Stereo Vehicle Sensor Setups
代碼2:https://github.com/beltransen/velo2cam_calibration
詳細(xì)的公式和實(shí)現(xiàn)細(xì)節(jié)大家可以看論文和代碼,這里更傾向于用文字描述直觀地解釋一下它的原理。有共視的視覺與雷達(dá)的標(biāo)定原理很簡單,從圖片中可以看到,二者都可以掃到標(biāo)定物,而且都能夠提取物體的邊緣(線或點(diǎn)),建立一個殘差模型,描述二者的邊緣之間的距離,殘差是以外參為自變量的,因此進(jìn)行優(yōu)化讓殘差最小,即可找到二者之間的外參。
2.多雷達(dá)外參標(biāo)定
參考資料:
論文:A Novel Dual-Lidar Calibration Algorithm Using Planar Surfaces
代碼:https://github.com/ram-lab/lidar_appearance_calibration
這類方案的核心思路是,在每個雷達(dá)各自的點(diǎn)云中提取平面特征,理論上,當(dāng)外參已知且精確時,同一個平面在所有雷達(dá)中的掃描應(yīng)該是重合的(轉(zhuǎn)換到同一個坐標(biāo)系下),反之,當(dāng)二者不重合時,即說明外參有誤差,以平面的不重合度為殘差,以外參作為自變量,建立優(yōu)化模型,進(jìn)行優(yōu)化,即可得到外參結(jié)果。
3. 手眼標(biāo)定
手眼標(biāo)定的名字最早來自于機(jī)械手的標(biāo)定,機(jī)械手上有攝像頭,標(biāo)定攝像頭和機(jī)械手之間外參的方法被叫做手眼標(biāo)定。但是這種工作原理,可以應(yīng)用在所有無共視且二者都能進(jìn)行位姿解算的傳感器標(biāo)定任務(wù)中(比如相機(jī)與IMU、雷達(dá)與IMU、相機(jī)與雷達(dá)等等)。
它的原理很簡單,就一個公式:
其中 X 就是要標(biāo)定的外參,A和B分別為兩個傳感器各自解算的相對位姿。這個公式結(jié)合上面的圖,我想應(yīng)該就不用過多解釋了。
相關(guān)參考資料為:
論文:LiDAR and Camera Calibration using Motion Estimated by Sensor Fusion Odometry
https://github.com/ethz-asl/lidar_align
4. 融合中標(biāo)定
我們通過前面多篇文章的介紹,應(yīng)該已經(jīng)明白融合是怎么回事,也應(yīng)該清楚融合的模型是什么樣子,而在融合中標(biāo)定,指的是把外參作為狀態(tài)量加入到融合模型中去,一起進(jìn)行狀態(tài)估計。隨著變量的增多,融合的精度、觀測性要求都更高,因此前面才說標(biāo)定是一種更高級別的融合。
在實(shí)際使用中,融合中標(biāo)定方法的一個重要貢獻(xiàn)是可以進(jìn)行在線標(biāo)定,即在融合任務(wù)執(zhí)行的過程中,就把外參給搞定了,而不需要像其他方法一樣先標(biāo)定再融合。這方面的工作有很多,其中包含眾多vio/lio系統(tǒng),如vins、lio-mapping、M-Loam 等。由于都是很出名的工作,所以論文和代碼就不一一列出了。
三、時間標(biāo)定方法
在實(shí)際使用中,很多時候各個傳感器都是用自己的時鐘,由于各個時鐘之間不同步,因此需要估計他們之前的時間差,也就是這里所說的時間標(biāo)定。
時間標(biāo)定是一個很復(fù)雜,且很難做的精確的事情。因此在實(shí)際使用中,更傾向于用硬件解決問題,比如讓多個傳感器使用同一個時鐘源,或者用一個共同的時間戳給所有傳感器打時間標(biāo)簽等等??傊瑫r間標(biāo)定是一個沒有辦法的辦法,它是有精度代價的,一般在沒有條件做硬件同步(比如手機(jī))時,才做這一項工作。
時間標(biāo)定方法按照原理主要可以分為離散時間方法和連續(xù)時間方法。
1.離散時間方法
離散時間方法指的是在原有離散時間融合模式下,簡單地解決時間同步問題。
在業(yè)內(nèi),比較有名的有下面兩類方法。
1)方案1
這是港科大秦通的一篇工作,應(yīng)用在vins上,論文為 Online Temporal Calibration for Monocular Visual-Inertial Systems。
它的思想很巧妙,讓IMU時間保持不變,圖像上特征點(diǎn)基于勻速運(yùn)動模型修改位置(示意圖如下)。與不考慮時間誤差時相比,架構(gòu)不變,使用極小的改動,實(shí)現(xiàn)了期望的效果。
2)方案2
第二個方案的思路是在濾波中計算相機(jī)位姿時,直接按時間差對積分區(qū)間進(jìn)行調(diào)整(論文題目:Online Temporal Calibration for Camera-IMU Systems: Theory and Algorithms)。
此時對應(yīng)的狀態(tài)量為
相機(jī)位姿估計的模型就變?yōu)?/p>
2. 連續(xù)時間方法
連續(xù)時間指的是把輸入(加速度、角速度)建立為連續(xù)時間函數(shù),而不是它原來的離散時刻。這是因為,預(yù)積分中把時間差作為待估狀態(tài)量,對時間差進(jìn)行建模時,會得到以下結(jié)果:
由于要對時間差求雅可比,因此插值函數(shù)必須可導(dǎo)(可到要求必須連續(xù),因此要使用連續(xù)時間模型),此時雅可比如下:
剩下的就可以使用正常的優(yōu)化步驟去求解問題了。
當(dāng)然連續(xù)時間slam是一個很大的話題,三言兩語肯定介紹不完,感興趣的可以去看以下論文
a. kalibr 系列
論文:Continuous-Time Batch Estimation using Temporal Basis Functions
論文:Unified Temporal and Spatial Calibration for Multi-Sensor Systems
論文:Extending kalibr Calibrating the Extrinsics of Multiple IMUs and of Individual Axes
代碼:https://github.com/ethz-asl/kalibr
b. 其他
論文:Targetless Calibration of LiDAR-IMU System Based on Continuous-time Batch Estimation
代碼:https://github.com/APRIL-ZJU/lidar_IMU_calib
四、總結(jié)
有工程經(jīng)驗的都知道,方法歸方法,效果歸效果,理論的東西推導(dǎo)的再完整,他們的效果總歸是有差異的,因此選擇方法時要有一個優(yōu)先級。
對于外參標(biāo)定方法,可以粗略認(rèn)為,三種思路的精度由高到低依次為
a. 基于共視的標(biāo)定
b. 融合中標(biāo)定
c. 手眼標(biāo)定
因此,當(dāng)高精度等級的方法能夠使用時,就盡量不要使用低精度等級的方法。
對于時間標(biāo)定方法,應(yīng)盡量使用硬件同步方案,不得已時,再使用算法去估計時間差,而且,估計時,應(yīng)該在環(huán)境好(特征充足)的情況下去估計。
審核編輯:黃飛
?
評論