宋俊男,朱世強,原崧育,許振宇,李月華
之江實驗室,杭州 311100
在地外探測中,多源傳感器數據的同時刻采集是傳感器標定及數據融合的基礎[1-3].目前傳統的時間同步方法主要有網絡時間協議NTP(network time protocol)、精密時間協議PTP(precision time protocol)和全球定位系統GPS(global positioning system)授時技術[4].NTP協議在應用層獲取時間戳,通過在互聯網上指定多個時鐘源來對整個系統進行授時,能夠提供10毫秒級的時間同步精度.PTP協議對傳統NTP協議進行改進,時間戳添加在物理層,在兼容以太網的同時具有更高的同步精度[5-7].GPS系統以衛星攜帶的原子鐘時間為基準,和協調世界時UTC(universal time coordinated)的誤差僅為納秒級,廣泛應用于電力監測、自動駕駛和室內定位等領域[8-12].然而對于地外探測等嚴苛環境,設備無法接收GPS信號,同時無法從網絡服務器中獲取真實時間,難以通過精確授時實現多源傳感器的時間同步.
此外,地外探測無人系統具有探測環境未知、先驗知識欠缺和通信條件惡劣等顯著特點,且危險識別難度大,探測器移動速度緩慢[13-15].通常數據采集系統配備多類傳感器,如相機、激光雷達和慣性測量單元IMU(inertial measurement unit),用以充分感知環境,提升自主決策能力.然而,這些傳感器通常基于不同的時間基準進行數據采集,考慮傳輸延時等誤差因素,時間戳的偏差很難預測.文獻[16-18]提出了一些新穎的傳感器同步系統,但這些系統框架固定,傳感器類型較少,難以應用于地外探測工程中.文獻[19]展示了一種適用性較強的傳感器平臺,但在上位機和下位機時間同步時仍然存在難以有效估計的偏差.
在地外探測環境中,若多傳感器間不能有效同步采集,探測器則難以自主決策、自主導航,甚至可能直接碰撞障礙物.針對這一問題,本文提出一種面向無GPS授時的多傳感器時間同步方法,包含數據采集系統方案設計和硬件結構設計.基于嵌入式單片機控制系統,采用主控系統向傳感器授時、各傳感器同步脈沖觸發的方式,實現視覺相機、激光雷達和慣性測量單元等多源傳感器數據的同步采集.通過硬件實驗平臺測試表明,多傳感器系統同步精度達到毫秒級.滿足地外探測環境中探測器多傳感器數據采集與融合、自主作業、自主定位導航的時間同步需求.
本文設計的數據采集系統以下位機時鐘為時間同步基準,包括視覺、慣導、雷達、天文和氣象等5類傳感器.其中,風速計、氣壓計和太陽敏感器等傳感器數據更新頻率較低,在毫秒級尺度傳感數據基本不變,暫不需要高精度時間同步;而視覺相機、IMU和激光雷達工作頻率高,數據量大,若采樣時間戳出現異步偏差,在地外探測自主導航過程中會產生誤差,可能導致碰撞、沉陷等嚴重后果,因此,對傳感器采集時間同步有更高的要求[20].
本文設計的多傳感器數據采集系統時間同步方法總體框圖如圖1所示,上位機在提供初始授時后,以下位機自身時鐘為基準,分別產生10 Hz與100 Hz PWM脈沖觸發IMU和視覺相機,并模擬GPS產生NMEA報文對激光雷達模擬授時,同時產生秒脈沖用于IMU和激光雷達的同步校時.對于氣象、太陽敏感器等低刷新率傳感器,下位機按照10 Hz速率讀取其傳感數據,并隨10 Hz時間戳一并發送到上位機.以下分別闡述下位機及慣導、視覺和激光等3類傳感器的時間同步方法.

圖1 多傳感器時間同步方法系統框圖Fig.1 Multi-sensor time synchronization system
基于MCU的下位機系統結構如圖2所示,上位機在系統啟動時根據UTC產生初始時間戳,并向下位機進行一次授時.此后,下位機時鐘獨立運行,啟動內部定時器進行微秒級時間累加與計數.利用下位機內部高速高精度晶振時鐘作為系統時間基準,整個系統時鐘不需要和上位機同步,避免了上位機數據傳輸、系統運行導致的同步誤差.下位機輸出多路脈沖寬度調制信號PWM(pulse width modulation),觸發激光雷達、相機和IMU等多類傳感器,傳感器數據通過USB總線傳輸給上位機.由于觸發脈沖同時從下位機產生,硬件延時只取決于PWM脈沖指令延時,各脈沖誤差在100 ns內,因此,可以保證各傳感器采集的數據在時間上高精度同步[21].

圖2 下位機平臺框圖Fig.2 Slave computer platform
同時,下位機利用多個串口與舵機、氣象類傳感器和太陽敏感器和地面無人車輛UGV(unmanned ground vehicle)等設備進行連接,實現地外探測環境下的數據通信和外設驅動.云臺舵機用于調節導航相機水平和垂直角度,氣象類傳感器可獲取周圍環境的風速、氣壓、濕度和溫度等信息,太陽敏感器感知太陽矢量的方位,UGV可返回車輛行駛中的線速度和角速度等數據[22].這些傳感器數據與下位機時間戳一同通過RS232總線傳輸至上位機.
視覺相機具有導航、避障等不同用途,本文對多個相機采用下位機同步脈沖觸發的方法實現硬件時間同步.根據任務需求,相機采用10 Hz的脈沖信號進行觸發,將相機曝光中點時刻作為圖像采集時刻,如圖3所示.

圖3 相機觸發脈沖Fig.3 Camera trigger pulse
在后續時序關系分析中,時間符號定義總結如表1所示.

表1 時間符號定義Tab.1 Summary of used time notations
相機曝光時間由上位機決定,多個相機具有不同的曝光時間.通過調整PWM信號的占空比可以實現相機曝光時長的動態調節,即
(1)
式中τ為占空比.由于相機輸出的圖像數據不含真實時間,因此需在上位機進行圖像與時間戳信息的匹配.相機圖像數據傳輸和下位機時間戳信息傳輸過程如圖4所示.

圖4 圖像及時間戳傳輸時序Fig.4 Image and time stamp transmission sequence
T1和T2之間存在時間間隔,即
Δt=T1-T2
(2)
時間戳匹配具體步驟如下:首先以2Hz的頻率觸發相機,對傳輸過程中各時間段進行分析,可以計算出Δt的閾值小于0.5 ms,通過Δt閾值判斷圖像和時間戳是否對齊;待取值穩定后,計算相機內部返回的圖像序號(Num)和下位機計數值(Seq)之間的偏離量(Ocam),即
Ocam=Seq(T1≈T2)-Num(T1≈T2)
(3)
若下位機和相機同時啟動,則Ocam為零.之后,以10 Hz正常工作頻率觸發相機,通過Ocam匹配圖像和時間戳.為防止相機出現丟幀情況,以相機內自帶時間計數器進行校驗,當2幀圖像的計數值偏差大于正常值時,便可判斷出現丟幀現象.
在地外探測等特定環境中,激光雷達無法使用基于GPS信號的同步方法,因此本文設計了一種使用下位機模擬GPS單元的方案,由下位機發送秒脈沖PPS(pulse per second)和報文,實現授時同步,PPS信號和報文的時序關系如圖5所示.

圖5 PPS信號和報文的時序圖Fig.5 Synchronizing of PPS with message
激光雷達依據內部時鐘,以10 Hz的頻率采集數據,下位機生成包含時間戳的報文,通過串口發送給雷達.在PPS信號上升沿時刻,雷達內部將會清零微秒定時器值,并依據之前最接近該PPS信號的報文信息賦值整秒定時器,從而實現下位機時鐘和雷達內部時鐘的時間同步.由于上位機在激光發射器旋轉一圈收到的數據包數量存在波動,因此存在時間同步誤差,理論最大同步誤差如式(4)所示
(4)
式中,n表示激光發生器轉速,floor()為向下取整函數.
此外,當相機曝光時,激光雷達內部激光發射器需旋轉至相機視角范圍內,因此,需要配置雷達鎖相控制功能.忽略相機接收到觸發信號后的響應時間,可設置鎖相角度為
(5)
這樣,激光雷達與相機同時刻啟動,雷達從Ps絕對角度開始旋轉,在相機曝光時刻,激光雷達發射器正好旋轉至相機視角中央位置,實現雷達與相機數據采集的同步.
IMU作為慣導系統模塊,為系統提供慣性測量數據,幀率要求達到100 Hz.IMU由下位機進行硬件同步控制,數據通過USB接口直接與上位機通信.根據其工作特點,使用一種PPS時鐘校正與PWM觸發相結合的時間同步方法,如圖6所示.在IMU接入通信系統后,上位機首先對單片機和IMU進行初始授時,通過PPS信號實現IMU與下位機時鐘同步,以100 Hz頻率的PWM信號硬件觸發IMU,IMU以相同頻率將包含時間戳的數據幀發送到上位機.

圖6 IMU時間同步框圖Fig.6 IMU synchronization block diagram
PPS信號與100 Hz的PWM信號時序如圖7所示,IMU采用上升沿觸發采集,PPS和PWM信號上升沿對齊,PWM時間間隔為10 ms.

圖7 PPS信號與100 Hz PWM信號時序圖Fig.7 Synchronizing of PPS with 100 Hz PWM
圖8展示了在探測車上搭建的實驗平臺,包括上位機、下位機,還包括相機、雷達和IMU等傳感器.上位機使用英偉達 Jetson AGX 工控機,其功耗低于30W,體積較小,易于嵌入到機器人等設備內部.下位機使用Cortex-M4內核的ARM STM32F407ZGT6微控制器MCU(micro control unit),該芯片集成FPU和DSP指令,帶有1MB FLASH、12個16位定時器和2個32位定時器以及6個串口,可滿足多路脈沖觸發和多傳感器通信的系統需求.整個實驗平臺還包括移動電源、UGV車體等.

圖8 實驗平臺Fig.8 Experimental platform
在MCU中編寫控制程序,軟件流程圖如圖9所示.系統初始化后,等待上位機初始授時,待系統授時后,讀取UTC時間,并啟動多路PWM輸出,分別提供給激光雷達、相機和IMU.在10 Hz的PWM中斷中,更新時間戳信息,并將太陽敏感器、舵機和氣象類等傳感器數據及時間戳打包發送至上位機.在1 Hz的PPS中斷中,更新報文信息并發送給激光雷達,實現雷達和下位機的時鐘同步.對于太陽敏感器、氣象等低速傳感器,采用下位機主動讀取的方式獲取其傳感信息,頻率為10 Hz.

圖9 軟件流程框圖Fig.9 Software flow block diagram
2.3.1 相機時間同步實驗
為測試相機時間同步方案的可行性及其同步精度,設計一塊LED燈計數板如圖10所示.該計數板共有15個LED燈,最左邊和最右邊的燈常亮用于位置參考,其余13個燈用于二進制計數,右邊為高數位.使用10 Hz脈沖信號同步觸發相機,LED燈列的刷新頻率為1 000 Hz,LED燈列對脈沖信號進行計數,比較每一幀圖像附帶的Num和相機捕捉的計數信息,以及對比不同相機捕捉的LED燈計數信息,判斷是否匹配.同時,設定LED燈亮時間與相機曝光時間相同,若相機捕捉的LED燈亮度出現變化,證明相機未實現同步觸發.

圖10 LED計時板Fig.10 LED timing board
同步觸發脈沖由MCU同時產生,不需電平接口轉換直接觸發各路視覺相機,多路觸發脈沖之間僅存在皮秒級的電信號在導線中的傳輸延時以及100 ns以內的代碼順序執行導致的指令延時,因此,相機時間同步精度為亞微秒級.
實際實驗中,相機捕捉的畫面以及對應換算的Num值如圖11所示.由圖可知,畫面內LED燈顯示的計數值與對應的圖像Num數值相同,LED燈亮度穩定,相機能夠被下位機脈沖精確觸發,且系統無丟幀現象.因此,在上位機便可以實現圖像和時間戳的精確匹配.由于燈板不同亮燈狀態的刷新頻率為1 000 Hz,因此,通過對相機計數與其拍攝LED燈列顯示數值的匹配,以及2臺相機捕捉LED燈列數值的對比,可以證明相機時間同步精度在1 ms以內.

圖11 相機實驗結果Fig.11 Camera experimental results
進行時長1 h的實驗測試,上位機收到的Seq和Num數值變化如圖12所示.由于在實驗中,下位機與相機同時啟動,因此Ocam為零.實驗中無數據丟失,2條曲線重合,證明了該同步方法的有效性.

圖12 圖像序號和下位機計數值變化Fig.12 Change of Seq and Num
2.3.2 激光雷達同步實驗
在時長1 h的實驗測試中,激光雷達內部時間變化如圖13所示.雷達運行1 h共返回36 000組數據,內部整秒計時器計時至1 h對應的最大值后將清零重新開始計時.在上位機,將整秒計時器數值與MCU數據進行小時跳變糾正,將雷達時間轉換至UTC時間.通過和下位機時間戳進行比較,判斷雷達時間同步精度,實驗結果如圖14所示,長穩測試12 h以上,測試結果如圖15所示.由兩圖可知,激光雷達時間同步精度為1.8 ms.此外,激光雷達自帶時間戳存在0.8 us的周期性抖動,和式(4)計算結果相同,符合預期.

圖13 激光雷達內部時間Fig.13 Lidar internal time

圖14 激光雷達時間同步精度Fig.14 Lidar time synchronization precision

圖15 激光雷達時間同步精度-12 h長穩測試Fig.15 Lidar time synchronization precision after 12 h
2.3.3 IMU同步實驗
進行時長1 h的實驗測試,IMU時間同步精度變化如圖16所示.由圖可知,IMU數據攜帶的內部時間和下位機時間戳比較,系統運行1 h的最大時間同步誤差為0.12 ms.IMU數據按照10 ms的數據周期產生數據,系統長穩測試結果如圖17所示,其中,縱坐標表示IMU時間同步誤差,單位為毫秒,經測試,系統運行12 h后,IMU最大時間同步誤差為2.2 ms.

圖16 IMU時間同步精度Fig.16 IMU time synchronization precision

圖17 IMU時間同步精度-12 h長穩測試Fig.17 IMU time synchronization precision after 12 h
IMU產生此同步誤差是由其自身產生數據的機制及內部時鐘頻偏導致的,由于IMU內部頻偏約為0.07 ppm,會產生不可避免的誤差累積.通過配置IMU的clocksync模式,采用下位機發出的PPS信號進行校時,可以有效減小同步誤差累積,使其長時間同步誤差穩定在2.2 ms左右,符合設計要求.
為了在地外探測等無GPS信號環境下對傳感器數據進行同步采集,解決地外場景下探測器多傳感器同步精度低、難以協同作業實現自主定位導航的難題,本文綜合利用模擬GPS報文授時、秒脈沖校時和脈沖同步觸發等多種授時與同步機制,創造性地提出一種面向無GPS授時的多傳感器硬件時間同步方法.使用單片機作為下位機控制核心,各傳感器時鐘與下位機時鐘同步,基于硬件觸發分別設計了相機、慣性測量單元和激光雷達的高精度時間同步方案.在UGV上搭建硬件平臺,并進行多組時間同步驗證實驗.實驗結果表明,本文提出的時間同步方法可以實現多源傳感器數據的同步采集,系統運行穩定,同步精度約為2ms.本文設計的系統搭建容易,易于擴展,是一種兼具高可行性和精度優勢的多傳感器時間同步方法.