孫大洋,白恩浩,李紅陽,岳書寧
(吉林大學(xué)通信工程學(xué)院,長春 130012)
隨著通信、微電子和人工智能等技術(shù)的不斷突破,單體智能發(fā)展迅速,集群協(xié)作將變得十分重要,它可以有效提高整體工作效能,實現(xiàn)單體性能到群體性能的提升,進而實現(xiàn)群體智能。
雷諾茲(Reynolds)在1986年首次提出一個仿真生物群體行為模型BOID[1],之后科研人員在集群技術(shù)領(lǐng)域展開了多年的研究,已經(jīng)取得了可喜的進展。國內(nèi)外對群體智能技術(shù)的研究側(cè)重于整體性研究,主要針對集群結(jié)構(gòu)框架、控制與優(yōu)化技術(shù)、任務(wù)管理與協(xié)同等開展研究工作。如美國國防部高級研究計劃局主導(dǎo)的自主編隊混合控制項目(MICA),對協(xié)同任務(wù)分配、協(xié)同路徑規(guī)劃、混合主動與自主編隊控制、協(xié)同跟蹤、信息共享等有關(guān)無人機集群的技術(shù)進行了全面的研究。國內(nèi)對無人機系統(tǒng)的協(xié)同感知與信息共享、路徑實時規(guī)劃、自主編隊與編隊重構(gòu)、智能協(xié)同決策等研究較為深入。集群中融合了視覺技術(shù)[2]、UWB 技術(shù)[3-4]、激光雷達技術(shù)[5]及GPS RTK 技術(shù)等,在理論仿真與實機驗證方面均有所突破[6-7]。中國電子科技集團、清華大學(xué)泊松科技已經(jīng)開展了集群飛行的實踐研究,且不完全依賴地面站[8-9]。另外,近年來,采用GPS RTK 技術(shù)進行的無人機燈光秀屢見報端,可實現(xiàn)上千架無人機的飛行表演。
然而,面對群體智能的實際應(yīng)用,群體智能技術(shù)的未來發(fā)展還要解決研發(fā)過程中的技術(shù)挑戰(zhàn)問題,主要體現(xiàn)在集群的自主性、協(xié)同性和算法智能性等方面[10-11]。對于集群技術(shù)而言,智能單體間的信息共享是集群技術(shù)至關(guān)重要的一環(huán)。充分利用網(wǎng)絡(luò)節(jié)點資源實現(xiàn)信息共享的集群協(xié)同技術(shù)[12-13]能夠優(yōu)化系統(tǒng)性能,尤其適用于無中心的無線通信網(wǎng)絡(luò)。自主性與協(xié)同性是群體智能的基礎(chǔ),在單體自主已經(jīng)得到飛速發(fā)展的情況下,群體自主與協(xié)同成為群體智能發(fā)展的關(guān)鍵技術(shù)之一。而無論是自主性還是協(xié)同性,協(xié)同定位技術(shù)[14]作為一項集群的基礎(chǔ)服務(wù)技術(shù)都是不可忽視的關(guān)鍵技術(shù)之一,面對未來群體智能的趨勢需求,目前的群體智能在協(xié)同定位技術(shù)上主要還存在如下兩個方面的問題。
(1)面向?qū)崙?zhàn)的群體智能協(xié)同關(guān)鍵技術(shù)的研究并不多見,尤其是GPS/北斗拒止條件下,如何不依賴基礎(chǔ)設(shè)施進行位置協(xié)同尚待研究。
(2)集群尚未真正群體智能化,以地面站作為主控的方式進行多機協(xié)同,本質(zhì)上還沒有脫離對傳統(tǒng)集群技術(shù)的依賴,去中心化群體智能協(xié)作技術(shù)還有待進一步研究。
上述問題是群體智能協(xié)同技術(shù)的關(guān)鍵問題,從技術(shù)的角度看,群體自主與協(xié)同需要單體間具有良好的自主感知能力,減小對集中調(diào)度的依賴。而實現(xiàn)高精度的位置協(xié)同是群體智能協(xié)同的基礎(chǔ)[15],群體智能中的智能單體需要通過視頻、通信、激光雷達等技術(shù)手段實現(xiàn)自定位功能,具有障礙感知能力和決策能力來規(guī)避碰撞,最大限度地實現(xiàn)單體運動位置的自主決策。
針對以上問題,本文從集群協(xié)同平臺實現(xiàn)的角度,以UWB 自定位為位置協(xié)同基礎(chǔ),進行集群協(xié)同平臺設(shè)計,提出分布式方案以解決集群中的位置協(xié)同問題。目的在于使用UWB 技術(shù)搭建集群協(xié)作平臺,探究實現(xiàn)群體智能的新方法,完善群體智能理論,擴展群體智能的應(yīng)用范圍。
本文針對集群協(xié)同技術(shù)中的自定位與去中心化問題,提出并設(shè)計了基于UWB 局部測量的集群協(xié)同平臺,并進行了實機驗證。平臺由12 輛無人單體車組成,單體車采用ROS 對自身進行控制,單體車之間通過UWB 節(jié)點進行通信與位置協(xié)同,當(dāng)集群系統(tǒng)收到目標(biāo)識別指令后,無人單體車會自主識別目標(biāo),根據(jù)單體的當(dāng)前位置和目標(biāo)點位置來解算出單體的跟隨路徑。
集群協(xié)同平臺的硬件層面由各單體車組成,移除了地面站,實現(xiàn)了集群協(xié)同平臺的去中心化。單體車的硬件層面由運動控制部分、主控制部分、通信測距部分(通信測距模塊、輔助測距模塊)三大部分組成。運動控制部分由電機驅(qū)動模塊、MPU6050、磁力計、測速模塊、紅外避障模塊組成,控制芯片為STM32F103RCT6;主控制部分由外部遙控模塊、樹莓派4B 組成;通信測距部分由兩個UWB Node 組成,不依賴系統(tǒng)之外的基礎(chǔ)設(shè)施,無須地面站輔助。
在硬件設(shè)計的基礎(chǔ)上,本文對無人車單體進行了集成,單體車安裝有底板驅(qū)動及ROS 系統(tǒng)板,預(yù)留擴展口,可擴展附加功能(圖1 右)。圖1 左為擴展有激光雷達與深度攝像頭的單體車,本文將此車稱為頭車。
圖1 集群單體無人車Fig.1 Unmanned vehicles for clustering
集群協(xié)同平臺的軟件層面有姿態(tài)解算、避障信息、廣播、一對一通信、動作控制、目標(biāo)識別6 個功能。其通過讀取MPU6050 和磁力計的數(shù)據(jù),并對其進一步融合處理,得到集群單體車當(dāng)前的姿態(tài)數(shù)據(jù);通過讀取紅外避障模塊得到集群單體車當(dāng)前的避障信息;通過目標(biāo)識別模塊來尋找目標(biāo);通過兩個UWB Node 實現(xiàn)測距、廣播、一對一通信等功能;最后將得到的信息進一步整合計算,得出集群單體車下一步的方向和速度。
集群單體車的系統(tǒng)架構(gòu)如圖2 所示。
圖2 集群單體車系統(tǒng)架構(gòu)體系Fig.2 The system architecture of the car
集群位置協(xié)同部分主要通過UWB 節(jié)點實現(xiàn),節(jié)點如圖3 所示。每輛單體車配置2 個UWB 節(jié)點,分為主副節(jié)點,分別安裝在單體車的兩側(cè)。主節(jié)點有節(jié)點間測距、通信、鄰居發(fā)現(xiàn)等功能;副節(jié)點只有測距功能,對于其他節(jié)點發(fā)送的幀,如鄰居發(fā)現(xiàn)幀、廣播幀等,不做任何響應(yīng)。
本文針對集群協(xié)同平臺的需求對UWB 節(jié)點進行了設(shè)計與開發(fā),它包含了DWM1000 模組、九軸慣性傳感器、氣壓計等,實物效果如圖3 所示。通過軟件設(shè)置,每個節(jié)點具有一個ID,作為車間測量的標(biāo)識。該節(jié)點尺寸為3.5 cm×3.5 cm,采用雙邊雙向測量,測量誤差可控制在5 cm 以內(nèi),通信范圍為150 m。
圖3 UWB 節(jié)點實物圖Fig.3 Physical view of UWB node
UWB 節(jié)點是位置協(xié)同的核心部件,主副2個UWB 節(jié)點組成Node,主節(jié)點的主要功能是與其他集群單體車進行一對一通信、接收廣播(如果是頭車,可以對其他集群單體車進行廣播)、與其他集群單體車進行主動測距、響應(yīng)其他UWB節(jié)點信息幀、鄰居發(fā)現(xiàn)、提供自身ID 作為集群單體車ID 等;副節(jié)點相比于主節(jié)點功能較為單一,只有主動測距功能,且不響應(yīng)其他UWB 節(jié)點信息幀。
無人單體車間測距、廣播和一對一通信由單體車通信測距部分完成;廣播和一對一通信由主節(jié)點獨立完成;車間測距和車間跟隨由主副節(jié)點共同完成。在進行車間測距時,主副節(jié)點同時對被測車的主節(jié)點進行測距,得到兩個距離l1和l2,如圖4 所示。A和A′分別為單體車的主副節(jié)點;B為被鄰居單體車主節(jié)點;d為主副節(jié)點的距離,是一個常量。實際運行中,兩車的距離通常遠遠大于主副節(jié)點之間的距離(即l1,l2?d),所以可以近似認為,被測車的主節(jié)點就是被測車的中心點,那么兩車之間的距離就可以估算為
圖4 單體車間測距與方位判定Fig.4 Azimuth measurement based on distance information
一般情況下,車間判斷方位與車間測距是同時進行的,使用的數(shù)據(jù)也是一樣的。進行車間判斷方位時,如圖4 所示,由于兩單體車的距離通常遠遠大于主副節(jié)點之間的距離,所以可以近似地認為線段BC=BA、∠ACA′為直角,則∠CAA′ 就容易求得
車間判斷方位一般用于車間跟隨,單體車只需轉(zhuǎn)動∠CAA′即能向被跟隨車方向前進。
普通單體車以頭部三個紅外設(shè)備作為主要的避障手段。當(dāng)三個紅外模塊中的任一模塊檢測到障礙物時,小車首先停止運動,隨后做出相應(yīng)的避障動作。左紅外檢測到障礙物,小車向右轉(zhuǎn)動,直到左紅外檢測不到障礙物;右紅外檢測到障礙物,小車向左轉(zhuǎn)動,直到右紅外檢測不到障礙物;中間的紅外檢測到障礙物,小車隨機轉(zhuǎn)動直到紅外檢測不到障礙物。頭車則是以激光雷達作為避障手段。雷達輸出最近障礙物的距離值,小車通過數(shù)據(jù)做出相應(yīng)動作,這里不再贅述。
UWB 技術(shù)具有系統(tǒng)復(fù)雜度低、發(fā)射信號功率譜密度低、對信道衰落不敏感、截獲能力低、定位精度高等優(yōu)點[16]。UWB 技術(shù)具有較高的距離測量精度,與GPS/北斗提供絕對地理位置不同,使用UWB 技術(shù)可以給出相對位置,其定位精度可達厘米級[17]。而且采用UWB 技術(shù),很容易將定位與通信相結(jié)合,可在室內(nèi)和地下進行精確定位,而GPS/北斗只能在定位衛(wèi)星的可視范圍之內(nèi)定位。
本文在人工魚群算法[18]的基礎(chǔ)上,將人工魚群的4 種行為改編為5 個狀態(tài),如表1 所示。
表1 集群單體車狀態(tài)表Table 1 Cluster status table
Finding:集群單體車沒有發(fā)現(xiàn)目標(biāo),也沒有跟隨其他車輛。此狀態(tài)下,每隔一個節(jié)拍,目標(biāo)識別模塊判斷當(dāng)前視野內(nèi)是否存在目標(biāo)。如果沒有,車體轉(zhuǎn)動一個隨機角度,再次判斷;如果還是沒有,那么單體車以隨機速度前進,直到下個節(jié)拍。如果發(fā)現(xiàn)了目標(biāo)那么狀態(tài)切換到Found。
Found:集群單體車發(fā)現(xiàn)了目標(biāo),向目標(biāo)移動,并通過主節(jié)點,每隔一個節(jié)拍,廣播自身狀態(tài)一次。此狀態(tài)下,單體車每隔一個節(jié)拍目標(biāo)識別模塊就會計算與目標(biāo)的距離以及目標(biāo)的方位,并調(diào)整自身方向和速度。
Following:集群單體車沒有發(fā)現(xiàn)目標(biāo),但是正在跟隨其他車輛。此狀態(tài)下,每隔一個節(jié)拍,單體車會對正在跟隨的車進行車間測距以及車間判斷方位,并調(diào)整方向和速度。另外,單體車仍會每隔一個節(jié)拍尋找目標(biāo)一次,若找到目標(biāo),狀態(tài)切換為Found。
I_GOT_IT:集群單體車已經(jīng)發(fā)現(xiàn)目標(biāo),且與目標(biāo)的距離小于2 m,此時單體車不再運動。此狀態(tài)下,單體車仍會每隔一個節(jié)拍計算與目標(biāo)的距離以及目標(biāo)的方位,當(dāng)目標(biāo)與單體車距離超過2 m 時,狀態(tài)切換為Found。如果目標(biāo)直接消失,狀態(tài)切換為Finding。
Following_Pause:集群單體車正在跟隨其他車輛,但是由于離目標(biāo)車輛太近(1.5 m),會令其速度為0,待距離變大后,繼續(xù)跟隨。這個狀態(tài)是Following 的暫停模式,除了單體車速度為0,其他保持不變。
集群協(xié)同算法流程圖如圖5 所示。
圖5 集群單體車行為流程圖Fig.5 Behavior flow chart of the car
集群單體的運動控制模塊與主控模塊通過串口方式通信,波特率為115200 bps,有1 位起始位、8 位數(shù)據(jù)位,無奇偶校驗位。傳輸數(shù)據(jù)皆以十六進制高位字節(jié)在前進行收發(fā)。協(xié)議格式如表2 所示。
表2 主控制模塊與運動控制模塊協(xié)議格式Table 2 Protocol format of the main control module and the motion control module
主控模塊發(fā)送給運動控制模塊控制速度的協(xié)議格式如表3 所示,這里幀功能碼只用到了0x01,其余可用于二次開發(fā)。
表3 單體車速度設(shè)置幀(主控制芯片→運動控制芯片)Table 3 Format of the frame sent by the main control module to the motion control module in order to set the speed of the car
舉例:設(shè)置車體X軸線速度0.2 m/s,車體Y軸線速度0 m/s,車體Z軸角速度 0 rad/s 的指令如下(HEX 格式):
運動控制模塊返回給主控模塊的協(xié)議格式如表4 和表5 所示。這里幀功能碼用到了0x01(向主控制芯片返回單體車信息)、0x02(避障動作開始)、0x03(避障動作結(jié)束),其余可用于二次開發(fā)。
表4 單體車信息幀(運動控制芯片→主控制芯片)Table 4 Format of the frame sent by the motion control module to the main control module about information of the car
表5 避障指令幀(主控制芯片→運動控制芯片)Table 5 Format of the frame sent by the main control module to the motion control module about obstacle avoidance
本文共用到了UWB 節(jié)點的主動測距、重啟、鄰居發(fā)現(xiàn)、響應(yīng)其他UWB 節(jié)點、廣播、節(jié)點一對一通信6 個功能。其中,主節(jié)點用到了以上6個功能;副節(jié)點只用到了主動測距功能,且不會響應(yīng)其他節(jié)點的幀。
在主控模塊與主副節(jié)點的通信中,基本協(xié)議由幀頭、目標(biāo)ID、功能碼、消息4 部分組成,如表6 所示,每一部分由英文字符‘;’隔開。
表6 主控模塊與主副UWB 節(jié)點協(xié)議格式Table 6 Protocol format of the main control module and UWB nodes
通信時如果不需要某一部分,省略即可。如廣播時,不需要目標(biāo)ID,最后程序生成的幀是“幀頭+功能碼+消息”。具體協(xié)議格式如表7 和表8所示。
表7 主控模塊發(fā)送給主副節(jié)點的協(xié)議幀格式Table 7 Format of the frame sent by the main control module to UWB nodes
表8 主節(jié)點回復(fù)主控模塊協(xié)議幀格式Table 8 Format of the frame sent by the primary UWB node to the main control module
集群單體車間的通信包括廣播和車間一對一通信兩部分。車間通信的基本協(xié)議由幀頭、數(shù)據(jù)長度、功能碼、數(shù)據(jù)、校驗和5 部分構(gòu)成,直接相連,沒有間隔,如表9 所示。廣播和單體車一對一通信通過幀頭來區(qū)分,廣播幀頭為 0x01, 0x10,一對一通信幀頭為0x02,0x20。
表9 基本協(xié)議格式(廣播、一對一通信)Table 9 Protocol format for broadcasting and peer-to-peer communicating
廣播的協(xié)議格式見表10,廣播的功能碼只用到了0x01,其余可用于二次開發(fā)。
表10 單體車信息廣播幀Table 10 Format of the frame broadcast by the car with its own status
一對一通信的協(xié)議格式見表11 和表12。一對一通信中,功能碼只用到了0x01(詢問其他集群單體車信息)和0x02(回應(yīng)其他集群單體車的詢問),其余可用于二次開發(fā)。
表11 請求幀(following 狀態(tài)單體車→被跟隨單體車)Table 11 Format of the frame sent by the following car to the followed car for inquiring
表12 單體車信息幀(被跟隨單體車→ following 狀態(tài)單體車)Table 12 Format of the frame sent by the followed car to the following car with its own status
單體車間一對一通信和廣播中的通信協(xié)議,其示意關(guān)系如圖6~圖8 所示。
圖6 B 車詢問A 車的信息Fig.6 Car B asks to car A
圖7 A 車回應(yīng)B 車的詢問Fig.7 Car A responds to car B
圖8 頭車廣播自身信息Fig.8 The leading car broadcasts its own information
在集群協(xié)同平臺體系設(shè)計以及通信協(xié)議設(shè)計的基礎(chǔ)上,本文進行了系統(tǒng)平臺的總體集成并進行了實機驗證,在室內(nèi)進行了2 輛與4 輛單體車的跟隨實驗,在室外進行了12 輛車的跟隨實驗。其中2 輛單體車的跟隨實驗以測試單體車的跟隨效果;4 輛單體車的跟隨實驗以說明本系統(tǒng)平臺不受GPS/北斗拒止影響。
圖9 為單體車跟隨實驗展示圖。
圖9 單個單體車跟隨中Fig.9 Single car are following
4.1.1 通信延遲對實驗的影響
單體車間單數(shù)據(jù)幀的通信延遲由傳輸延遲與傳播延遲組成。由于室內(nèi)定位的通信距離較短,傳播延遲可忽略不計;而由于單體車間通信是點對點之間的直接通信,其傳輸時延由數(shù)據(jù)的處理時間決定,經(jīng)實驗測得的單數(shù)據(jù)幀通信延遲約為1 ms。本文實驗中單體車間的數(shù)據(jù)交換次數(shù)為4,因此通信延遲為毫秒級延遲。在單體車間通信毫秒級的通信延遲條件下,假設(shè)單體車的運動速度為1 m/s,可知通信延遲對位置估計與控制是毫米級的影響,可忽略不計。
4.1.2 主副節(jié)點間距對實驗的影響
設(shè)主副節(jié)點測距誤差產(chǎn)生的噪聲分別為e1和e2,則式(1)可以改為
其中,AA′為主副節(jié)點間距。由式(2)可以看出,分母AA′越小,噪聲對方位角計算的影響越大。
在單體車靜止條件下,多次由節(jié)點測距數(shù)據(jù)計算節(jié)點間距為15 cm 與25 cm 時小車的方位角誤差,實驗結(jié)果如圖10 所示,顯然主副節(jié)點間距越大,得到的方位角誤差最小。
圖10 主副節(jié)點間距離分別為15 cm 和25 cm 時的方位角誤差Fig.10 The error of the azimuth when the distance between primary and secondary nodes is 15 cm and 25 cm respectively
由于4 輛單體車構(gòu)成的集群系統(tǒng)車群比較小,所以單體車不會跟隨處于 Following 或者Following_Pause 狀態(tài)下的車輛。為了實驗效果更明顯,只讓0 號車具有識別目標(biāo)的能力,由于1、2、3 號車找不到目標(biāo),所以它們就會進入Following 狀態(tài),跟隨已經(jīng)發(fā)現(xiàn)目標(biāo)的0 號車(此時0 號車處于Found 狀態(tài)),如圖11~圖13 所示。單體車運動的過程中遇到障礙物,或者兩個單體車距離過近,就會觸發(fā)中斷,執(zhí)行避障操作;當(dāng)0 號車到達目標(biāo)附近或收到停止指令時,就會進入I_GOT_IT 狀態(tài);當(dāng)單體車與0 號車距離過近時,就會進入Following_Pause 狀態(tài),如圖13 所示,1、2、3 號車都停止了跟隨。
圖11 4 輛單體車集群啟動跟隨Fig.11 Four cars are starting to follow
圖12 4 輛單體車集群跟隨中Fig.12 Four cars are following
圖13 4 輛單體車集群停止跟隨Fig.13 Four cars stopped following
12 輛單體車集群協(xié)同實驗在室外進行,選用了吉林大學(xué)南湖校區(qū)網(wǎng)球場作為實驗場地。由于單體車流程可分為發(fā)現(xiàn)目標(biāo)和跟隨兩部分,而目標(biāo)識別功能相對獨立,本文即采用深度相機作為目標(biāo)識別手段,因此實驗中僅對頭車配置了目標(biāo)識別功能,主要驗證其他單體車的跟隨功能,實際使用中可以將所有車輛配置激光雷達和深度相機,以便每一個單體都可進行目標(biāo)發(fā)現(xiàn)。實驗中,由于車群比較大,所以單體車會跟隨處于Following 或者Following_Pause 狀態(tài)下的車輛。實驗效果如圖14~圖16 所示。經(jīng)過觀察發(fā)現(xiàn),1、2、3、11 號車直接跟隨0 號車;4、5 號車跟隨1號車;6、7 號車跟隨2 號車;8、10 跟隨3 號車;8 號車跟隨11 號車。
圖14 集群初始狀態(tài)Fig.14 Initial state of clustering
圖15 集群初始跟隨Fig.15 Start to follow
圖16 集群跟隨中Fig.16 Following phase of clustering
本文基于UWB 局部測量的集群協(xié)同平臺,驗證了GPS/北斗拒止條件下,使用局部測量信息進行多機位置協(xié)同的方案。該研究實現(xiàn)了12 輛無人車單體的集群協(xié)作,可在無GPS/北斗以及地面基礎(chǔ)設(shè)施的條件下進行位置協(xié)同,與視覺技術(shù)相比,在有遮擋的情況下,也可實現(xiàn)定位,且該平臺不受地面站約束,可實現(xiàn)自主協(xié)作與靈活的任務(wù)控制;實現(xiàn)了集群協(xié)同系統(tǒng)的自定位與去中心化。該平臺以單體智能為基礎(chǔ),使用UWB 技術(shù)實現(xiàn)了單體到群體的整合,且模塊化的設(shè)計使得集群協(xié)作平臺可以采用異構(gòu)單體車,甚至可以整合無人機協(xié)同,從設(shè)計層面實現(xiàn)了單體設(shè)計與群體設(shè)計的分離,可將群體智能任務(wù)劃分為單體智能與集群協(xié)同智能兩部分獨立研究。
單體智能與集群協(xié)同智能的分離使得未來可以一方面從提高單體智能化水平的角度進行集群協(xié)同平臺研究,單體智能化水平的提高將有助于簡化協(xié)同流程,實現(xiàn)明確的任務(wù)劃分,提高系統(tǒng)協(xié)同效率;另一方面在已搭建的集群驗證平臺基礎(chǔ)上,探討與其他集群技術(shù)的融合方法,形成技術(shù)優(yōu)勢互補,研究通用化非中心式集群協(xié)作架構(gòu),獨立于無人車與無人機,搭建空地協(xié)同的無人集群協(xié)作平臺。