熊文軍, 趙山虎, 李世博, 楊建華*, 范孝波, 孫洪良
(1.西北工業大學 自動化學院,陜西 西安 710129; 2.江蘇悅達專用車有限公司 特種車輛研究院,江蘇 鹽城 224007)
隨著我國城鎮化率不斷提高,2018年底各類道路保潔面積已近90億平方米。國家《十三五規劃綱要》要求2020年機械化清掃保潔率要達到60%,而發達國家已達80%以上。清潔車作為城鄉各類硬質路面深度清潔與垃圾回收運轉作業的重要手段,具有巨大的市場前景。
但是市面上的清潔車目前還停留在駕駛員人為控制清掃過程的階段,清掃盤和噴水桿在工作時擺出(如圖1所示),容易因駕駛員的疏忽造成清掃盤和噴水桿與路肩的碰撞(如圖2所示),加速清掃盤和噴水桿的損壞。這一突出問題導致清掃盤和噴水桿成為清潔車最容易受損的設備,也成為清潔車行業的痛點問題。為了解決這個問題,筆者設計了一種清潔車避障方法。

圖1 清潔車清掃盤和噴水桿擺出示意圖

圖2 清潔車清掃盤與路肩碰撞示意圖
針對汽車的避障已經涌現了各種各樣的方法,旨在減少因車輛與障礙物碰撞而造成的損失。黃中友等[1]提出了一種基于大數據和即時建模的避障方法,計算時間短、效果好,但需要大量的數據輸入。趙文明[2]提出了一種基于機器視覺的汽車自主避障方法,通過圖像處理技術獲取車道線和障礙物的位置進行即時預警,但是誤差較大。于慧等[3]提出了一種基于改進型人工勢場的動態避障算法,可以規劃出一條安全可靠的行駛路徑,但是會因局部極小值導致車輛無法到達目的地。王曉茹等[4]提出了一種基于點質量模型與三自由度模型的主動轉向避障方法,可以獲得較小的航向誤差,但是橫向誤差較大。宋子豪[5]提出了一種基于雙目立體視覺的汽車測距避障方法,檢測速度可以達到80 f/s,但是平均檢測精度只有55.3%,準確率過低。以上方法都主要針對車輛在行使過程中對其他車輛、護欄等高度較高的障礙物的避障,通過對車輛行駛方向、速度的控制實現自主避障,但在一定程度上存在安全性和工程倫理問題。而針對清潔車的清掃盤和噴水桿等清掃設備的避障研究文獻較少,龔雪等[6]提出了一種基于改進模型RP-YOLOv3的洗掃車掃盤避障系統,通過目標檢測算法識別車、行人、護欄和石墩等障礙物的位置來進行避障,識別準確率較高,但難以通過圖像中的位置把握掃盤和障礙物的實際距離,避障效果較差。針對現有方法在準確率和安全性方面存在的問題,筆者設計了一種準確且高效的方法實現清潔車避障。
清潔車避障首先需要解決的問題是對車身和路肩相對位置的準確把握,這樣才能為避障算法提供可靠的輸入。由于清潔車進行清掃作業時前進方向總是與路肩保持基本平行,對路肩與車相對位置的測量可以簡化為車到路肩水平距離的測量。毫米波測距、紅外測距、激光測距和超聲波測距是移動目標避障中常用的測距方法[7]。毫米波雷達廣泛應用于國防、商用、民用等領域[8],其設備尺寸小、分辨率高、抗環境干擾能力強,但它對體積小、距離近的障礙物測距效果不佳,而且價格昂貴。紅外測距測量時間短、功耗低[9],夜間測量精度高,但其容易受到外界環境的影響,測量精度受被測物體的形狀、顏色和周圍光線等因素影響嚴重,測量誤差較大。激光測距雷達能夠同時兼顧檢測速度和精度要求,在黑暗環境下也有很好的檢測效果,但它對安裝精度要求很高且價格昂貴[10]。超聲波傳感器幾乎不受外界光線、灰塵、電磁場等惡劣條件的影響,具有抗干擾能力強、響應時間短和電路易于實現等優點,而且超聲波測距模塊的結構簡單、硬件成本低[11]、體積較小、應用簡單可靠,便于設計使用。但是超聲波測距方向性差,會由于車輛移動速度過快和較大的波束角導致測量誤差,而且不能獲得目標的尺寸大小信息。對于清潔車避障測距而言,超聲波測距的優勢明顯,清潔車車速較慢且只需要距離信息即可進行避障。
清潔車避障不僅需要獲取可靠的距離信息,而且需要可靠的避障算法。前人采用的避障算法都是基于對車輛駕駛的控制,包括前進方向、車速和制動的控制,算法較為復雜且易因失誤造成嚴重的交通事故。
因此筆者采取一種新的避障算法,針對清潔車清掃盤和噴水桿的避障需求,不控制清潔車行駛過程,而是通過控制清掃盤和噴水桿的收回來避障,這樣可以在保證行車安全的同時可有效降低清掃盤和噴水桿的損耗。
本文設計采用車載高性能計算設備Jetson AGX Xavier處理距離信息,采用價格高昂的計算設備的原因在于本文的系統是項目總系統的一個子系統,總系統的所有子系統全都部署在Jetson AGX Xavier上,其中包含深度學習算法。Jetson AGX Xavier具備高性能的計算能力,可以同時滿足深度學習算法和嵌入式開發的要求。
所設計的系統將安裝于清潔車上,在路肩高度不同的路段進行試驗,預計所設計的系統能夠在將發生路肩與清掃盤和噴水桿碰撞的地段即時控制清掃盤和噴水桿收回,從而達到減少損失的目的,這也在一定程度上提高了清潔車的智能化水平。
硬件系統的整體結構如圖3所示,分為兩個部分:本文設計部分和清潔車自有部分。其中,清潔車自有部分包括車載CAN設備控制器和車載CAN信號執行器(清掃盤和噴水桿等),司機可以通過手動操作控制面板的方式向車載CAN設備控制器發送相應的控制命令,車載CAN設備控制器控制車載CAN信號執行器做出相應動作。車載CAN設備控制器提供了可以外部接入的CAN接口,因此可以通過CAN接口接收CAN報文來實現對車載CAN信號執行器的控制。

圖3 硬件系統總體結構圖
本文檢測系統由超聲傳感器檢測電路、車載高性能計算設備Jetson AGX Xavier和CAN通信電路3個部分組成。超聲傳感器檢測電路為相同的兩套,安裝在清潔車靠近車頭的兩側,分別測量清潔車與左右兩側路肩的水平距離,并通過長度分別為3 m和5 m(兩個傳感器與計算平臺之間距離)的RS232轉USB線將距離信息傳送到Jetson AGX Xavier。在Jetson AGX Xavier上運行相應的避障算法,實時處理上傳的距離信息,生成相應的控制命令,通過CAN通信電路發送到車載CAN設備控制器控制清掃盤和噴水桿等車載CAN信號執行器做出相應動作。
1.2.1 超聲測距原理
超聲波測距源自于蝙蝠的回波定位,在無接觸測距領域應用廣泛[12]。超聲波是一種頻率在20 kHz以上的機械波,其波長短、穿透性強、反射能力強,具有一定的方向性。超聲波在同種傳播介質中傳播速度恒定,在不同傳播介質的分界面或遇到雜質會產生反射現象。這種反射具有散射性,不是嚴格定向的[13]。可以利用超聲波的這種反射特性進行距離檢測。
共振法、頻差法和脈沖回波法是3種常用的超聲波測距方法,前兩種方法檢測精度不高,而脈沖回波測距法較為直觀且應用廣泛,該方法利用超聲波在空氣中傳播速度恒定的特性,通過檢測超聲波傳播時間進行測距,重點是對傳感器發射的回波進行識別,通常通過電路來實現。超聲波脈沖回波測距法原理如圖4所示[14]。

圖4 超聲測距原理圖
脈沖回波測距法原理為:由超聲傳感器發射端不斷沿一個方向發射超聲波,超聲波遇到物體表面會發生反射,超聲傳感器接收端也在不斷接收反射脈沖,通過測量同一超聲脈沖從發射到被接收的時間間隔Δt,結合己知的超聲波聲速v,利用式(1)可以計算出傳感器發射端到被測物之間的距離L。
(1)
設θ為超聲波傳播距離L與傳感器和障礙物水平距離d之間的夾角,則d[15]可通過式(2)算出。
d=Lcosθ
(2)

(3)
1.2.2 超聲傳感器選型
考慮系統高塵、潮濕的應用環境,檢測系統選用了DYP-A02-V2.0超聲傳感器用于檢測清掃盤到路肩的距離,傳感器如圖5所示。DYP-A02-V2.0超聲傳感器測距范圍在3~450 cm之間,對被測物體和使用環境均無特殊要求。

圖5 DYP-A02-V2.0超聲傳感器實物圖
1.2.3 超聲傳感器檢測電路組成及原理
DYP-A02-V2.0超聲傳感器檢測電路如圖6所示。DYP-A02-V2.0超聲傳感器采用UART自動輸出模式,每0.1 s自動檢測1次距離,輸出TTL串口信號。由于傳感器和Jetson AGX Xavier之間存在較長的傳輸距離,TTL信號可能會發生衰減,故采用RS232總線進行轉接傳輸。超聲傳感器輸出的TTL信號經過TTL轉RS232模塊轉換成RS232信號,經過3 m傳輸線,再經過RS232轉USB轉接到Jetson AGX Xavier的USB接口,實現傳感器到Jetson AGX Xavier控制器的傳輸。

圖6 超聲傳感器檢測電路原理示意圖
NVIDIA Jetson AGX Xavier作為車載計算設備,實物如圖7所示。Xavier能耗低,能夠滿足相對較大型、復雜的神經網絡計算要求,適合一些小型智能設備。由于其具有小巧的外形,實際應用價值較高[16]。Xavier的分接板提供各種I/O接頭和端口,從標準的雙USB、Type-C、HDMI、千兆以太網接口到40-pinGPIO連接器等一系列典型的開發板接頭都能在上面找到。40-pin接口如圖8所示,可以實現5路串口和2路CAN總線。

圖7 Jetson AGX Xavier實物圖

圖8 Jetson AGX Xavier 40-pin接口示意圖
Jetson AGX Xavier沒有現成的CAN通信接口,需要從40-pin擴展接口接CAN收發器才能實現CAN通信。檢測系統采用TJA1050作為收發器,收發器與Jetson AGX Xavier組成的CAN通信電路如圖9所示。Jetson AGX Xavier的40-pin擴展接口中的引腳33(CAN1_DOUT)與收發器上的TX引腳連接,引腳37(CAN1_DIN)與收發器上的RX引腳連接,收發器上的VCC引腳和GND引腳對應接到Jetson AGX Xavier上的VCC引腳(pin17)和GND引腳(pin39)。收發器和車載CAN設備控制器則是CANL引腳和CANH引腳對應相連接。

圖9 CAN 通信電路示意圖
Jetson AGX Xavier實現CAN通信除了需外接CAN收發器外,還需要進行軟件配置。每次重啟之后都要運行CAN通信配置程序方可進行CAN通信。Jetson AGX Xavier使用Linux操作系統,對寄存器等硬件的讀寫操作使用命令行來實現。CAN通信配置涉及的寄存器操作較多,都放在命令行里難以實現,所以需要把相應的配置命令放在一個bash腳本里面,每次重啟之后運行該bash腳本實現CAN通信的軟件配置。bash腳本里編寫的配置程序流程如圖10所示,首先配置CAN控制器引腳對應的兩個寄存器,然后在操作系統上掛載can、can_raw和mttcan等組件,接著設置CAN總線的波特率為0.1 Mbit/s、工作模式為正常模式,最后啟動CAN。

圖10 CAN通信配置過程
Jetson AGX Xavier上使用Linux操作系統,在該系統下安裝Python和Python的編譯器PyCharm,使用Python來實現路肩距離檢測和避障算法,相關的串口操作命令通過導入serial庫實現,而CAN通信的相關操作命令通過導入CAN庫實現。
路肩距離檢測及避障算法流程圖如圖11所示。算法開始以后,超聲傳感器每0.1 s檢測一次距離,判斷是否收到結束命令,若收到則結束,若沒收到則判斷距離是否小于既定閾值,若不小于則返回重新檢測,若小于則進入結果投票機制,結果票數小于閾值則返回重新檢測,大于則信號經由CAN通信電路傳送到車載CAN設備控制器控制清掃盤和噴水桿收回。

圖11 路肩距離檢測及避障程序流程圖
其中的投票機制為每有1次距離小于閾值則計1票,票數閾值為3,累計3票則控制清掃盤和噴水桿收回,距離大于閾值則清空計票,重置為0票。設置投票機制的目的在于避免傳感器輸出異常導致系統誤判,可以過濾異常距離檢測。
試驗采用兩個超聲傳感器,清掃盤離地高度25 cm,噴水桿離地高度28 cm,傳感器安裝高度取兩者中較低高度為25 cm,具體位置如圖12所示。這一高度可以保證路肩高度達到25 cm及以上時,超聲信號能夠垂直打到路肩并反射回來,從而進行測距和避障,而路肩高度低于25 cm時,即使距離太近也不會碰撞,故沒有避障的需要。噴水桿位于清掃盤上方,超聲傳感器與二者的水平距離為4 m,試驗車速為15 km/h,清潔車工作時的前進速度一般為10~15 km/s。4 m的距離說明從超聲傳感器檢測距離到控制清掃盤和噴水桿收回這段時間至少需要控制在1 s以內才能滿足實時性要求,超聲傳感器檢測1次距離只需0.1 s,算法延時和CAN控制器控制清掃盤和噴水桿動作延時在0.1 s以內,完全可以滿足實時性要求。試驗道路為廠區道路,寬敞且相對平整。

圖12 超聲傳感器安裝示意圖
選取路肩高度分別為19 cm和34 cm的路段進行測試。距離閾值設置為50 cm,清掃盤和噴水桿最大擺出距離為45 cm,閾值增加5 cm可提高容錯率,測試時在距離路肩50 cm的位置畫線以便觀察。測試結果如表1所示,路肩高度分別為19 cm和34 cm的路段各進行了50次測試,其中準確率是指系統正確控制清掃盤和噴水桿的次數占總次數的比例。正確控制的情況為:路肩高度為19 cm時,不管清潔車距離路肩多近,系統都不會控制清掃盤和噴水桿收回;當路肩高度為34 cm時,清潔車與路肩距離低于閾值則控制清掃盤和噴水桿收回,反之則擺出。從表1中可以看到,當路肩高度為19 cm時準確率為94%,路肩高度為34 cm時的準確率為98%,綜合準確率較高。

表1 測試結果
從測試結果來看,當路肩高度為19 cm時,出現了3次誤控制,在出現錯誤的地方反復試驗,發現當清潔車距離路肩較近時,系統會控制清掃盤和噴水桿收回。經分析發現,雖然超聲傳感器安裝高度高于路肩高度,但超聲傳感器發送超聲波存在波束角,超聲波能打到的實際位置比發射端略低,加上車身抖動造成的傳感器震動導致某一時刻超聲信號打到路肩。此時清潔車與路肩的距離已經低于閾值,清掃盤和噴水桿雖然沒有收回的必要,但收回也不會影響清潔車正常的清掃工作。
而當路肩高度為34 cm時出現誤控制的情況,經研究發現,反復試驗中某次清潔車距離路肩的距離已經越過畫線(距離小于50 cm,經測量實際值為48.5 cm),系統沒有控制清掃盤和噴水桿收回(此時傳感器檢測距離為50.2 cm)。經分析發現原因在于超聲傳感器的測量精度會存在±2 cm的隨機誤差,導致測量存在偏差。
總的來說,本系統可以有效地實現清潔車路肩距離檢測及避障,達到了較高的準確率,測距誤差在2 cm以內,距離檢測到實現控制間隔在0.5 s以內,完全滿足清掃盤和噴水桿避障的實時性要求,系統運行穩定,持續長時間運行未出現異常。
本文提出了一種基于Jetson和超聲傳感器的清潔車路肩距離檢測及避障方法,旨在解決目前清潔車普遍存在的因觸碰路肩導致清掃盤和噴水桿損壞的問題。采用Jetson AGX Xavier作為控制核心,利用超聲傳感器實時檢測路肩距離,通過CAN總線對清掃盤和噴水桿實現有效控制,進而實現避障。經過實車試驗驗證,本文提出的方法可以有效實現避障,準確率和實時性都滿足要求。后期計劃將系統部署在10臺城市環衛清潔車上,實際上路試驗以檢驗系統對清掃盤和噴水桿的損耗率影響,再推廣到更多有避障需求的車輛上,針對不同車輛的需求差異調整系統,降低車輛設備的損耗。