清晰讲解激光雷达与相机标定的时间戳同步问题
點擊上方“3D視覺工坊”,選擇“星標”
干貨第一時間送達
來源丨古月居
點擊進入—>3D視覺工坊學習交流群
相機和激光雷達之間的時間戳同步問題一直是實時跑SLAM的先決條件。本文試圖以最清晰的思路去講明白這個事情。
01??相機特性-曝光和讀出
相機獲取一幀圖像分為曝光和讀出兩個階段。相機使用的傳感器不同,相機的曝光時間和讀出時間的重疊關系也有所不同,分為交疊曝光和非交疊曝光兩種。交疊曝光和非交疊曝光相比,交疊曝光可以減少曝光時間對出圖時間的影響。
非交疊曝光是指當前幀的曝光和讀出都完成后,再進行下一幀的曝光和讀出。非交疊曝光幀周期大于曝光時間與幀讀出時間的和。
內觸發模式非交疊曝光
交疊曝光是指當前幀的曝光和前一幀的讀出過程有重疊,即前一幀讀出的同時,下一幀已經開始曝光。交疊曝光幀周期小于等于曝光時間與幀讀出時間的和。
內觸發模式交疊曝光
對!上一段就是為了告訴你:后文敘述中無論當前幀曝光時間和上一幀的讀出時間是否重疊都不要驚訝。
02??圖像采集:觸發模式(外部輸入)
相機的觸發模式分為內觸發模式和外觸發模式 2 種。
內觸發模式:相機通過設備內部給出的信號采集圖像。
外觸發模式:相機通過外部給出的信號采集圖像。外部信號可以是軟件信號,也可以是硬件信號,主要包含軟觸發和硬件觸發。外觸發模式如圖:
外觸發模式
軟觸發:觸發信號由軟件發出(也可以利用相機SDK提供的API接口進行軟觸發)。
硬件觸發:外部設備通過相機的 I/O 接口與相機進行連接,觸發脈沖信號由外部設備給到相機進行采圖。其實是直接對相機內部寄存器進行讀寫。下圖是海康相機的電源IO的6-pin線纜:
海康相機電源及IO接口(6-pin Hirose)
其中,海康相機有1個光耦隔離輸入Line0+,1個可配置輸入輸出Line2+,可選擇一個配置為輸入信號。
03??觸發輸出
相機觸發輸出信號為開關信號,可用于控制報警燈、光源、PLC等外部設備。觸發輸出信號可通過Strobe 信號實現。
相機的曝光發生時,會立即輸出一個Strobe信號,該信號為高電平有效。后文我們主要使用該信號對Lidar等其他傳感器進行硬觸發。這里有一個Strobe的預輸出的概念。
Strobe信號早于曝光生效。其工作原理為延遲曝光先進行Strobe輸出。該功能可應用于響應比較慢的外部設備。Strobe預輸出時序如圖所示。(后面會講為啥要延遲曝光)
Strobe信號預輸出時序
現在我們回到正題吧,現在講起來就很快了。
要同步相機和激光雷達的時間戳主要有三個方式,硬觸發、軟觸發、軟觸發+硬觸發。下面我以手繪示意圖的形式一一介紹。
先說硬觸發吧。一個MCU產生脈沖信號對三個傳感器設備進行硬觸發。
對于軟觸發+硬觸發來說,可以先用相機SDK的API對一個相機進行軟觸發,然后利用相機的外觸發信號Strobe對雷達和相機等其他傳感器進行硬觸發。
這里需要注意一個問題,如果進行軟觸發的第一個相機在曝光的同時發出Strobe信號,其他被硬觸發的傳感器總歸是晚了一步,不能完全同步。因此引出了之前Strobe的預輸出的概念,即先進行Strobe輸出再延遲曝光。
配置該模式時注意四點:
1.上升沿or下降沿的觸發方式;
2.有效電平寬度,電平幅值,你要知道能觸發Lidar的最低幅值;
3.Strobe預輸出
4.兩邊電平信號是否一樣,3v or 5v是否需要升壓...
最后講講不被推薦的軟觸發。
首先調用API操作相比于硬觸發(對傳感器內部寄存器直接進行讀寫操作)明顯是慢了,執行第二句命令API(2)前API(1)就已經花了些時間
//讀取lidar和image數據的線程1 while(1) { API(1); //軟觸發第一個sensor API(2); //軟觸發第二個sensor //假設脈沖周期為0.5s } //處理數據線程2 for(i=0;i<nimage;i++) { t1 = getTickCount(); //部分程序有互斥鎖t2 = getTickCount();Time = (t2 - t1) / getTickFrequency(); //當前幀處理時間sleep(1/fps-Time); }如上圖示意,如果處理單幀數據的時間超過0.5s,線程1就會讀到下一幀數據,就會導致線程2數據混亂。因此線程2單幀處理時間需要小于0.5s,且每幀需要等待(1/fps-當前幀處理時間)。
本文僅做學術分享,如有侵權,請聯系刪文。
點擊進入—>3D視覺工坊學習交流群
干貨下載與學習
后臺回復:巴塞羅那自治大學課件,即可下載國外大學沉淀數年3D Vison精品課件
后臺回復:計算機視覺書籍,即可下載3D視覺領域經典書籍pdf
后臺回復:3D視覺課程,即可學習3D視覺領域精品課程
3D視覺工坊精品課程官網:3dcver.com
1.面向自動駕駛領域的3D點云目標檢測全棧學習路線!(單模態+多模態/數據+代碼)
2.徹底搞透視覺三維重建:原理剖析、代碼講解、及優化改進
3.國內首個面向工業級實戰的點云處理課程
4.激光-視覺-IMU-GPS融合SLAM算法梳理和代碼講解
5.徹底搞懂視覺-慣性SLAM:基于VINS-Fusion正式開課啦
6.徹底搞懂基于LOAM框架的3D激光SLAM: 源碼剖析到算法優化
7.徹底剖析室內、室外激光SLAM關鍵算法原理、代碼和實戰(cartographer+LOAM +LIO-SAM)
8.從零搭建一套結構光3D重建系統[理論+源碼+實踐]
9.單目深度估計方法:算法梳理與代碼實現
10.自動駕駛中的深度學習模型部署實戰
11.相機模型與標定(單目+雙目+魚眼)
12.重磅!四旋翼飛行器:算法與實戰
13.ROS2從入門到精通:理論與實戰
14.國內首個3D缺陷檢測教程:理論、源碼與實戰
15.基于Open3D的點云處理入門與實戰教程
16.透徹理解視覺ORB-SLAM3:理論基礎+代碼解析+算法改進
重磅!粉絲學習交流群已成立
交流群主要有3D視覺、CV&深度學習、SLAM、三維重建、點云后處理、自動駕駛、多傳感器融合、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、ORB-SLAM系列源碼交流、深度估計、TOF、求職交流等方向。
掃描以下二維碼,添加小助理微信(dddvision),一定要備注:研究方向+學校/公司+昵稱,例如:”3D視覺?+ 上海交大 + 靜靜“。請按照格式備注,可快速被通過且邀請進群。原創投稿也請聯系。
▲長按加微信群或投稿,微信號:dddvision
3D視覺從入門到精通知識星球:針對3D視覺領域的視頻課程(三維重建系列、三維點云系列、結構光系列、手眼標定、相機標定、激光/視覺SLAM、自動駕駛等)、源碼分享、知識點匯總、入門進階學習路線、最新paper分享、疑問解答等進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,4000+星球成員為創造更好的AI世界共同進步,知識星球入口:
學習3D視覺核心技術,掃描查看介紹,3天內無條件退款
?圈里有高質量教程資料、答疑解惑、助你高效解決問題
覺得有用,麻煩給個贊和在看~??
總結
以上是生活随笔為你收集整理的清晰讲解激光雷达与相机标定的时间戳同步问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MacOS使用openCV打开摄像头
- 下一篇: 试题 基础练习 Huffuman树(详解