技術(shù)文章
在自動(dòng)駕駛中,對車輛外界環(huán)境進(jìn)行感知需要用到很多傳感器的數(shù)據(jù)(Lidar,Camera,GPS/IMU),如果計(jì)算中心接收到的各傳感器消息時(shí)間不統(tǒng)一,則會(huì)造成例如障礙物識(shí)別不準(zhǔn)等問題。
為了對各類傳感器進(jìn)行高精度的時(shí)間同步,可以分為幾部分內(nèi)容:統(tǒng)一時(shí)鐘源,硬件同步,軟件同步。
一、統(tǒng)一時(shí)鐘源
在構(gòu)建自動(dòng)駕駛的時(shí)間同步架構(gòu)時(shí),我們面臨著一個(gè)核心問題:如何確保系統(tǒng)中各個(gè)傳感器的時(shí)間基準(zhǔn)一致?由于每個(gè)傳感器可能擁有自己的內(nèi)部時(shí)鐘,而這些時(shí)鐘之間可能存在微小的頻率差異,即所謂的“鐘漂"。這些差異隨時(shí)間累積,會(huì)導(dǎo)致各傳感器時(shí)間基準(zhǔn)的不一致。
為了解決這一問題,我們引入了統(tǒng)一時(shí)鐘源的概念。統(tǒng)一時(shí)鐘源的作用是提供一個(gè)所有傳感器都遵循的共同時(shí)間參考,如圖1所示。
圖1:統(tǒng)一時(shí)鐘源
統(tǒng)一時(shí)鐘源有兩種常見方式:一種是基于GPS的“PPS+MEA",另一種是基于以太網(wǎng)的IEEE 1588/802.1AS(PTP/gPTP)時(shí)鐘同步協(xié)議。關(guān)于兩種時(shí)鐘源同步方式可以詳見文章1:自動(dòng)駕駛:揭秘高精度時(shí)間同步技術(shù)1。
二、時(shí)間戳誤差現(xiàn)象
當(dāng)傳感器數(shù)據(jù)被標(biāo)記上從GPS接受到的全局時(shí)間戳,時(shí)間戳通常來源于精確的時(shí)間同步協(xié)議(如UTC time·),這樣以GPS為基準(zhǔn)的時(shí)間戳,簡化了同步過程,非常方便。每個(gè)傳感器數(shù)據(jù)都有了全局一致的時(shí)間參考。
但同樣也會(huì)面臨一個(gè)問題,不同的傳感器采樣頻率不一樣,比如激光雷達(dá)(通常為10Hz)和相機(jī)(通常為25/30Hz)。導(dǎo)致在特定時(shí)間獲取同步數(shù)據(jù)可能會(huì)有延遲,在動(dòng)態(tài)環(huán)境中可能造成較大的誤差。
比如圖2中,三個(gè)傳感器具有不同的采樣頻率,在T1時(shí)刻,傳感器2有一個(gè)數(shù)據(jù),此時(shí),我們需要對應(yīng)傳感器1和3的數(shù)據(jù)是多少,就會(huì)進(jìn)行查找。查找的方式就是找對應(yīng)的傳感器數(shù)據(jù)和傳感器2時(shí)間差最近的數(shù)據(jù)包。如果查找的數(shù)據(jù)包時(shí)間和T1時(shí)刻傳感器2數(shù)據(jù)包的差距較大,在加上車身和障礙物都在移動(dòng),這樣誤差會(huì)比較大。
圖2:傳感器時(shí)間戳
為了緩解查找時(shí)間戳造成的誤差現(xiàn)象,主要采用的方式有硬件同步和軟件同步。
三、硬件同步
硬件同步是一種通過物理信號來確保不同傳感器數(shù)據(jù)采集時(shí)間一致性的方法。自動(dòng)駕駛上使用的相機(jī)(Rolling Shutter)一般是支持外部觸發(fā)曝光的。激光雷達(dá)通常支持兩種時(shí)間同步接口,基于PTP時(shí)間同步和PPS+NMEA協(xié)議。因此,一種常見的硬件同步方法是使用PPS信號作為觸發(fā)器。PPS信號是一個(gè)精確的時(shí)鐘信號,可以觸發(fā)傳感器在特定的時(shí)間點(diǎn)采集數(shù)據(jù)。例如,激光雷達(dá)和相機(jī)可以配置為在PPS信號的上升沿采集數(shù)據(jù),從而確保兩者的數(shù)據(jù)采集是同步的。具體來說,激光雷達(dá)可以利用其相位鎖定功能來實(shí)現(xiàn)與PPS信號的同步,如圖3所示。通過設(shè)置激光雷達(dá)的相位鎖定角度與相機(jī)視野的中心對齊,可以在激光雷達(dá)的激光束旋轉(zhuǎn)到特定角度時(shí)觸發(fā)相機(jī),實(shí)現(xiàn)兩者的同步采集。
圖3:激光雷達(dá)與相機(jī)時(shí)間同步觸發(fā)
當(dāng)然,由于激光雷達(dá)是連續(xù)旋轉(zhuǎn)采集數(shù)據(jù),而相機(jī)則是瞬間曝光,因此硬件同步只能近似實(shí)現(xiàn)。例如,激光雷達(dá)的幀率若是10Hz,那么一幀點(diǎn)云中最早和最晚采集的點(diǎn)之間的時(shí)間差可能達(dá)到100ms。相機(jī)由于曝光是瞬時(shí)的,其所有像素點(diǎn)的采集時(shí)刻是一致的。因此,對于相機(jī)視野中心的點(diǎn)云,采集時(shí)間與圖像采集時(shí)間一致,但對于視野邊緣的點(diǎn)云,存在一定的時(shí)間偏差,這個(gè)偏差可能在5ms到20ms之間。
四、軟件同步
軟件同步是一種在數(shù)據(jù)處理階段對傳感器數(shù)據(jù)進(jìn)行時(shí)間校正的方法。當(dāng)硬件同步無法實(shí)現(xiàn)或不足以滿足系統(tǒng)要求時(shí),軟件同步提供了一種解決方案,利用已知的時(shí)間標(biāo)簽和傳感器的運(yùn)動(dòng)信息來推算傳感器數(shù)據(jù)的準(zhǔn)確時(shí)間點(diǎn)。
內(nèi)插外推法是軟件同步中常用的一種算法。通過以下步驟實(shí)現(xiàn)同步:
時(shí)間差計(jì)算:首先,計(jì)算兩個(gè)傳感器數(shù)據(jù)幀之間的時(shí)間差。例如,如果有一個(gè)激光雷達(dá)(Lidar)數(shù)據(jù)幀和一個(gè)相機(jī)數(shù)據(jù)幀,它們的時(shí)間標(biāo)簽可能不同,我們需要找出這兩個(gè)時(shí)間標(biāo)簽之間的差異。
運(yùn)動(dòng)信息獲?。菏占瘋鞲衅髟趦蓚€(gè)時(shí)間標(biāo)簽期間的運(yùn)動(dòng)信息,這通常包括速度、加速度和旋轉(zhuǎn)等。
位置推算:利用傳感器的運(yùn)動(dòng)信息和時(shí)間差,通過物理模型或機(jī)器學(xué)習(xí)模型推算目標(biāo)在兩個(gè)時(shí)間點(diǎn)之間的位置變化。
建立新幀:根據(jù)推算出的目標(biāo)位置,創(chuàng)建一個(gè)新的數(shù)據(jù)幀,這個(gè)新幀代表了兩個(gè)原始數(shù)據(jù)幀之間的某個(gè)時(shí)間點(diǎn)的狀態(tài)。
軟件同步通過智能的數(shù)據(jù)處理技術(shù)彌補(bǔ)了硬件同步的不足,提高了傳感器數(shù)據(jù)的同步精度,當(dāng)然,它也需要額外的計(jì)算和實(shí)時(shí)性要求,需要精心設(shè)計(jì)和優(yōu)化算法來實(shí)現(xiàn)高效準(zhǔn)確的同步。