[首發于智駕最前沿微信公眾號]對于自動駕駛汽車來說,“看”世界的方式不只有一種,一般情況下,會有多個傳感器用來感知交通環境,常見的傳感器有激光雷達(LiDAR)、攝像頭、毫米波雷達、慣性測量單元(IMU)等等。這些傳感器各自以不同方式、不同頻率不斷采集外界的數據。為了確保感知的準確性,會在感知數據處理時,非常注意時間同步。
為什么要講“時間同步”這個事兒
之所以時間同步非常重要,是因為不同傳感器的每一幀數據都有時間標簽(時間戳),時間戳不對齊的話,把它們的數據放在一起看世界就會出錯。
舉個很直觀的例子。攝像頭拍照是瞬間行為,某一刻拍攝的圖片中,整張圖片的數據就是那個瞬間的場景。但激光雷達是通過旋轉發射激光脈沖來掃一圈生成點云數據的,一圈可能要幾十毫秒甚至上百毫秒。如果我們把一個攝像頭的圖像和一個激光雷達的點云直接拼在一起,沒有處理時間差的話,很容易出現“畫面描述跟點云不一致”的情況,特別是在車輛高速運動或者場景里有動態物體(比如行人、自行車)的時候,這種不一致會更加明顯。
對于自動駕駛感知模塊來說,這種時間偏差就像一張“局部滯后”的世界圖,很容易導致誤判和決策錯誤。時間同步,就是要把這些不同來源的數據對齊,讓它們看待同一個時間點的世界。
在自動駕駛汽車上,使用較多的傳感器就是攝像頭和激光雷達,想要聊他們的時間同步,得先理解激光雷達和攝像頭在數據采集上的差異。
攝像頭拍照是“瞬間完成”的事情,一旦快門打開關閉,那一幀圖像的所有像素都近似在同一時間被捕獲(當然,這個時間同時還依賴攝像頭的快門方式,比如滾動快門和全局快門會有細節差別,但本質是“一次曝光完就是一幀”)。
激光雷達則是靠發射激光脈沖、接收反射信號并計算時間差來獲得距離信息。為了覆蓋一個完整的360°視角,它需要不斷旋轉或機械掃描。在一圈掃描里,一些點是在開始時采集的,有些是在結束時采集的,這就導致一個完整的點云本身內部就存在時間差。
當你想把某一幀圖像和某一幀點云對齊時,如果攝像頭拿的是這個時刻的圖像,而激光雷達的點云包含了前面幾十毫秒和后面幾十毫秒的數據,即便簡單按照“最接近的時間戳”去匹配,也會有明顯誤差。時間不同步會給后續的融合算法帶來麻煩,像是目標檢測和定位,就需要對應的圖像特征和點云特征對齊才能算得準確的位置和類別。時間同步,就是要把這種時間上的偏差降到可接受的范圍。
硬件層面的時間同步
在自動駕駛系統里,最靠譜的時間同步方式之一就是從硬件層面入手,旨在讓不同傳感器共享一個共同的時間基準。簡單理解就是讓所有傳感器在同一個時鐘上計時。
1)統一時鐘源
時間同步最基礎的辦法是給所有傳感器一個共同的時間來源。這可以是GPS提供的時間信號,也可以是車輛主控計算單元上的高精度時鐘。很多自動駕駛系統會利用GPS的1PPS(每秒脈沖)信號結合IEEE 1588的PTP(Precision Time Protocol,精密時間協議)來做同步。
GPS的1PPS信號每秒會發出一個脈沖,能提供一個非常準確的時間基準,傳感器可以把這個信號作為參考時刻,然后自己的內部時鐘按照這個節奏來計時。PTP則是在網絡層面提供精確的時間同步協議,讓車載以太網設備之間能精確對齊時間。這樣激光雷達、攝像頭、IMU等都可以把它們的時間戳掛在同一個時間線上。
硬件層面的統一時鐘讓時間差幾乎不可能積累成大誤差,而且所有模塊都能按統一時間看世界,但網絡延遲、硬件時鐘漂移等問題不可避免。
2)硬件觸發信號
還有一種比較直接的做法是利用硬件觸發。也就是讓一個傳感器發出觸發信號去控制另一個傳感器采集。比如說激光雷達在旋轉到某一角度時觸發一次輸出信號,讓攝像頭正好在那個瞬間拍一張照片。這樣就能保證那一幀點云某些角度對應的時刻正好是那個圖像拍攝的時刻。
這種做法可以讓兩個傳感器在同一個外部事件下同時采集數據。優點是時間一致性強,不需要復雜的時間協議。缺點是只針對特定的事件觸發,不一定適合所有場景,而且布線比較麻煩,需要額外的觸發線連接各個傳感器。
3)時鐘同步協議
前面提到的PTP是一種工業上常用的協議,它的原理是讓各個網絡節點不斷互相交換時間信息,自動修正各自時鐘的偏差。很多高端攝像頭、激光雷達以及車載計算平臺都支持這種協議,可以讓多個設備在以太網上“看一樣的時間”。
這種方式相對靈活一些,不需要額外的硬件信號線,通過網絡就可以同步多個設備的時間。但是它也依賴網絡質量,對延遲敏感。PTP的精度一般能達到微秒級甚至更好,已經能滿足大部分自動駕駛應用的需求。
軟件層面的時間處理
即便硬件同步做得再好,實際運行過程中仍然會有微小偏差、抖動或者不能完全精確對齊。這時就需要在軟件層面做一些補償,讓數據在時間上“貼得更緊”。
1)時間戳插值和對齊
當你有兩種傳感器的時間戳數據時,可以通過模型預測或者線性插值得到某一時刻的估計數據。如某一時刻圖像和前后兩次激光雷達數據的時間戳都已知,可以根據時間線性插值得到這個時刻激光雷達的估計點云。這種方法是根據已知的時間關系填補時間空檔,讓數據在時間線上更一致。
這一技術的核心是做時間差分析,然后用數學方法彌補偏差。雖然不能完全消除硬件時間偏差,但在很多實際場景里已經足夠用。因為自動駕駛系統的算法模塊一般會有一定的容忍度,只要誤差在可控范圍內,就不會影響整體感知和決策結果。
2)軟件同步模塊
在實際軟件棧中,比如ROS(機器人操作系統)或是某些車載平臺,會提供同步模塊。這些模塊會把不同傳感器的消息訂閱進來,然后按照一定的時間窗口進行匹配。如ROS里有message_filters包,可以設置一個時間容忍區間,把攝像頭和激光雷達的數據按照時間戳進行對齊匹配。這樣,只有符合時間要求的數據對才會被送去處理。雖然這種方法不完美,但在缺乏硬件同步的情況下,依舊是比較實用的辦法。很多開源項目也采用這種方式去實現不同傳感器的粗同步。
3)在線時間偏差補償
還有更高級的做法就做在線時鐘偏差估計,通過卡爾曼濾波或其他濾波算法來估計實時的時間漂移,然后動態調整時間戳。這種方式需要在軟件層面不斷監測傳感器時鐘的漂移情況,實時計算補償值。這種算法的好處在于能自適應不同的時間漂移情況,缺點是對計算資源的需求更高一些,而且實現起來也有一定復雜度。
時間同步要面對的現實挑戰
時間同步聽起來只是將傳感器之間的時間統一,可通過硬件和軟件的方式來時間,但在實際落地時,依然有很多問題需要解決。
不同傳感器本身的采集機制不一樣。激光雷達的點云數據是掃描得到的,有內部時間分布;攝像頭的曝光是一瞬間的;其他像IMU這種傳感器則是以非常高的頻率輸出數據。這就要求時間同步系統要處理的不僅僅是兩個不同數據幀的時間戳,還要理解它們內部數據生成的時間結構。此外,還有些傳感器可能根本提供不了精確的時間戳,或者時間戳只能由主機采集,這樣就更難統一時間。
即便有統一時鐘源,如果網絡延遲不穩定,各個設備接收到時間信號的延遲也是不一樣的,這會導致時間同步協議在微觀時間尺度上的偏差。網絡抖動、車載計算平臺系統負載變化等因素都會影響時間同步的精度。協議要處理這些不確定性,需要在底層實現大量時間補償機制。
有些自動駕駛系統的不同傳感器還有不同幀率,那如何對齊這些不同頻率的數據也是一大技術問題。通常需要設計復雜的匹配策略,保證時間線上的數據不丟失,也不會產生誤匹配。
最后的話
時間同步在自動駕駛里確實是一個看似簡單但實際很關鍵的問題。它要求硬件和軟件協作,從源頭上統一傳感器時間基準,通過時間戳、觸發信號、協議機制來讓不同傳感器的數據都能在同一個時間線上對齊。然后再通過軟件算法進行進一步的補償和對齊,讓后續的融合算法(比如目標檢測、定位、追蹤)能有更高質量的數據輸入。
只要做到時間同步,激光雷達和攝像頭的數據就能被更準確地融合,自動駕駛系統能更真實、更一致地“理解”周圍世界,也就能更安全、更可靠地做出駕駛決策。
-
傳感器
+關注
關注
2576文章
55028瀏覽量
791227 -
攝像頭
+關注
關注
61文章
5091瀏覽量
103108 -
激光雷達
+關注
關注
979文章
4469瀏覽量
196496 -
自動駕駛
+關注
關注
793文章
14879瀏覽量
179775
發布評論請先 登錄
FMCW和ToF激光雷達,哪種更適合自動駕駛?
自動駕駛激光雷達會傷害人體嗎?
自動駕駛中毫米波雷達到底有何作用?
自動駕駛里的激光雷達有何作用?
決定自動駕駛攝像頭質量的因素有哪些?
為什么自動駕駛感知系統一定要注意時間同步?
自動駕駛只用激光雷達進行感知會有哪些問題?
毫米波雷達在自動駕駛中有何關鍵作用?
自動駕駛中純視覺替代不了激光雷達?
自動駕駛激光雷達之間會相互干擾嗎?
激光雷達技術:自動駕駛的應用與發展趨勢
自動駕駛如何實現激光雷達和攝像頭的時間同步?
評論