朱衍明,林九根,余景鋒,王天昊
(中國船舶集團有限公司 系統(tǒng)工程研究院,北京 100094)
進入21世紀以來,隨著全球各國特別是海洋大國對海洋資源開發(fā)的逐步深入,以及各海洋軍事強國在海洋上的對抗加劇,自主水下航行器(AUV,autonomous underwater vehicle)在越來越多的場合被用作水下資源開發(fā)和對抗的關鍵平臺,AUV的研制和發(fā)展也隨之步入快車道[1-3]。
AUV的研制過程通常會有室內水池測試和野外湖水測試階段,并且這兩個階段都會首先進行水面測試[4]。AUV在進行水面測試時通常會配套有AUV手柄遙控模式,即采用類似消費級無人機遙控器遙控的方式來操作AUV。AUV手柄遙控模式是AUV地面指控臺遙控模式的有利補充,通過人工手柄遙控的方式可進行AUV水面機動操作,特別是在近岸、近船或入港等需要人工就近觀察并進行精細操作的場合,AUV手柄遙控模式能夠提供顯著的便利[5-6]。
市面上常見的消費級無人機遙控器解決方案由兩部分組成——遙控器和接收機,遙控器和接收機之間為無線電通信,但是各廠商的無線電通信協(xié)議是非公開且互不兼容的。接收機的輸出一般是業(yè)內標準的PPM或者SBUS協(xié)議,這對于消費級無人機的飛控系統(tǒng)來說有許多成熟的配套方案可選,但是AUV的控制系統(tǒng)一般不會用到消費級無人機的飛控系統(tǒng)[7]。因此對于AUV手柄遙控模式來說,開發(fā)一套低成本、易實現、全透明且自定義的無線遙控系統(tǒng)顯得十分具有實用意義和價值。
單獨的AUV平臺無法完成工作,通常需要配套對應的地面指控臺。地面指控臺作為上位機通過無線或者有線的方式對AUV進行岸基任務分配、數據導入導出、下位機升級維護等操作。在AUV處于水面時,地面指控站可以通過無線電指令方式對AUV進行遙控和路徑重規(guī)劃等操作。所以AUV平臺自身是攜帶無線電通信設備的。因此,如果AUV手柄遙控模式能夠利用或者共用已有的這套無線電通信硬件設備,而不是在AUV上再加一套無線電接收器,將會節(jié)省AUV有限的載荷空間和重量、規(guī)避潛在的電磁兼容問題,進而簡化AUV設計的同時提高系統(tǒng)可靠性。
AUV指控臺通常部署在岸邊或者母船,并且由于其體積、重量、無線電通信天線和全球導航衛(wèi)星系統(tǒng)(GNSS,global navigation satellite system)天線等因素限制,指控臺一旦部署完畢就很難臨時挪動,因此,在需要AUV指控臺操作員對AUV進行水面上近距離觀察操作時,操作員通常會把AUV切換到手柄遙控模式后,手持遙控手柄對AUV進行近距離觀察和精細手工遙控。
由于操作員一般不能在開機狀態(tài)下離開指控臺,且AUV手柄遙控模式也是近距離操作,因此設計方案如圖1所示,遙控手柄通過近距離(數十米量級)無線電通信把操作指令發(fā)送給指控臺,指控臺在AUV處于手柄遙控模式時把收到的遙控手柄指令通過AUV已有的遠距離(幾千米量級)無線電通信通道發(fā)送給AUV,進而間接實現AUV的手柄遙控。
圖1 AUV手柄遙控方案設計圖
根據圖1的AUV手柄遙控方案設計,完整的通信鏈路由近距離無線電和遠距離無線電通信兩部分。無線電通信頻段是公共資源不能夠隨意選用,依據中華人民共和國無線電頻率劃分規(guī)定,ISM(industrial scientific medical)波段開放給工業(yè)、科學和醫(yī)學機構免費使用,無需申請,但是必須滿足一定的射頻能量要求[8-9]。因此本方案中的AUV遙控手柄對地面指控臺的近距離無線電通信設備需要滿足ISM波段要求。同理,地面指控臺到AUV的無線電通信設備也需要滿足ISM波段要求。因此,為了AUV手柄遙控系統(tǒng)的低成本和易實現,選用商用現貨(COTS,commercial off-the-shelf)無線電通信技術和設備無疑是最有效的途徑。
市面上常見的近距離無線電通信技術有WiFi、藍牙、UWB、ZigBee、NFC等,其信號的覆蓋范圍一般都在幾十厘米和幾百米,其最大傳輸速度在幾百kbps到幾百Mbps之間不等,對于近距離遙控這種數據傳輸量不大的應用場合都能滿足需求[10-12]。其中WiFi是一種人們生活中最常見的無線局域網接入技術,具有傳輸速度快、通信帶寬較大等優(yōu)點,廣泛應用于人員密集的室內環(huán)境;藍牙(Bluetooth)技術則是無線數據和語音通信的全球開放規(guī)范,其傳輸頻帶為2.4 GHz的ISM頻段。且WiFi和藍牙目前在智能手機和筆記本電腦上都是標配,無需另行采購硬件設備。因此本文WiFi和藍牙技術二選一,選用了藍牙作為近距離遙控手柄向AUV指控臺的無線電通信方式。
市面上常見的遠距離無線電通信技術有GPRS/CDMA、數傳電臺、衛(wèi)星通信、LoRa等,其信號的最遠傳輸距離一般可達幾千米到幾百千米,其最大傳輸速度在幾十kbps到幾百kbps之間不等,對于遠距離遙控這種數據傳輸量不大的應用場合都能滿足需求[16-17]。GPRS(通用無線分組業(yè)務)是由中國移動開發(fā)運營的一種基于GSM通信系統(tǒng)的無線分組交換技術,CDMA(碼分多址)由中國電信運行的一種基于碼分技術和多址技術的無線通信擴頻技術。數傳電臺是數字式無線數據傳輸電臺的簡稱,其工作頻段通常采用ISM頻段。衛(wèi)星通信是指利用人造地球衛(wèi)星作為中繼站來轉發(fā)無線電信號,從而實現在多個地面站之間進行無線電通信的一種技術。LoRa(long range radio)的名字即為遠距離無線電,其工作頻率為ISM 頻段[18]。GPRS/CDMA和衛(wèi)星通信都需要向運營商購買服務,采用ISM頻段工作的數傳電臺和LoRa作為成熟的低成本解決方案,非常適合AUV平臺遠距離指控應用場景的需求。因此本文數傳電臺和LoRa二選一,選用了LoRa遠距離無線電通信技術作為AUV的指控通信方式。
根據圖1的AUV手柄遙控方案設計,AUV的遙控手柄需要同時具備手持遙控能力和近距離無線電發(fā)送能力。而當今的智能手機幾乎都具備WiFi和藍牙無線功能,且在中國幾乎做到了人手一部甚至多部智能手機。因此,如果能直接在個人智能手機上實現遙控手柄功能,通過調用智能手機自身的WiFi或者藍牙進行無線電發(fā)射,這便實現了遙控手柄的功能。
在智能手機市場,安卓(Android)系統(tǒng)的市場占有率在八成以上,因此,基于安卓智能手機開發(fā)遙控手柄APP軟件,在手機觸摸屏上實現遙控手柄的各種操作,能夠節(jié)省遙控手柄和近距離無線傳輸的硬件研制成本,且能輕松實現遙控手柄的各種自定義。
遙控手柄APP軟件需要運行在安卓智能手機平臺上,因此需要對平臺軟硬件環(huán)境提出一定的要求。考慮到APP軟件的需要具備一定的通用性以適配不同的安卓手機,因此APP軟件不能僅僅適配最新的安卓系統(tǒng)和藍牙技術[19]。因為安卓系統(tǒng)和藍牙技術一般具有向下兼容的技術特點,因此本文基于較老一些的安卓系統(tǒng)4.0版本和藍牙技術2.0標準來設計APP軟件。
消費級無人機遙控器一般提供兩個搖桿,兩個搖桿共有四個控制通道,分別用來控制方向舵、升降舵、副翼和油門。同時還會提供若干個開關,主要用來完成飛行模式的選擇和任務載荷的操作等。因此遙控手柄APP軟件需要在手機觸摸屏上模擬出兩個搖桿和多個自鎖按鈕開關。
遙控手柄APP軟件應該首先進行藍牙連接設置,開起軟件后進入第一個操作界面,藍牙控制器如圖2所示,在此界面選擇需要進行藍牙配對連接的設備[20]。
圖2 藍牙連接控制界面
如果此時手機藍牙尚未開啟,則如圖3所示,需要彈出對話框請求開啟手機藍牙。
圖3 藍牙使用請求對話框
在完成藍牙連接設置后,軟件進入手柄界面,如圖4所示,該界面從上到下由三部分組成。界面最上層為藍牙連接的設備名稱以及其連接狀態(tài),如果藍牙連接因某些原因沒有連接成功或者在連接成功后又因某些原因斷連,操作人員可以根據顯示的連接狀態(tài)判斷藍牙通信是否正常。圖4中即顯示藍牙連接對象為“nova8”,連接狀態(tài)為“連接失敗”。
圖4 遙控手柄操作界面
手柄界面的中間層為兩組共16個開關,開關設計成小燈珠的樣式,由燈珠的亮滅來表示開關的閉合狀態(tài)。每點擊一下燈珠,其亮滅狀態(tài)便翻轉一次。軟件開啟后燈珠默認為全滅,對應開關狀態(tài)位全關,用數字信號表示即為全0;燈珠亮起表示開關閉合,對應數字信號1。兩組開關從左到右對應的無符號八位十六進制數的最高位到最低位,并將其顯示在其兩組開關的右側。圖4中第一組開關的值為0x05,對應第一組開關的第零和第二位為1,即表明這兩個開關為閉合狀態(tài)。
手柄界面的最下層為左右兩個搖桿,左側定義為搖桿1,右側定義為搖桿2,每個搖桿以平面坐標系X、Y軸為獨立的兩個通道。左邊的搖桿從左下角開始到右上角X1、Y1軸數值從零開始逐漸增大。右邊的搖桿從右下角開始到左上角X2、Y2軸數值從零開始逐漸增大。如圖5所示的右搖桿在左上角時X2、Y2對應的數值分別是位置2所示的255和255。
在圖5中顯示的“位置:1回中”,表示此時操作員并未操作搖桿1,搖桿1自動回到中間位置,以此來模擬真實的搖桿復位回中操作。由于AUV執(zhí)行機構的慣性及其系統(tǒng)響應速度這些真實物理條件限制,回中操作不能過快,因此需要在一段時間內完成相對緩慢的回中操作,而不能是瞬間回中。這就需要對搖桿的回中時長參數進行設置。
點擊圖4遙控手柄操作界面的右上角即可進入遙控手柄APP軟件的設置界面,設置界面如圖6所示,在該界面可進行數據發(fā)送模式的設置、數據幀頭幀尾的自定義設置和搖桿值域的設置。
圖6 軟件的設置界面
數據發(fā)送的模式可以設置為定時發(fā)送模式,操作員可以根據系統(tǒng)需求自行定義合適的定時發(fā)送時間間隔。如果不使用定時發(fā)送模式,則默認為觸發(fā)發(fā)送模式,即當遙控手柄界面有任何數值改變時就會觸發(fā)數據發(fā)送。
藍牙通信數據幀也可以加入幀頭和幀尾,以便進行幀校驗,增加通信的可靠性。通過開啟數據幀頭幀尾即可,并且可以自定義幀頭幀尾。幀頭幀尾各占一個字節(jié),設置數值為十六進制數。
搖桿設置包括X1、X2、Y1、Y2四個軸向值域的設置,因為這四個數值在通信幀中各占一個字節(jié),因此對應十進制最大設置為255,表示該軸向從0到255共有256個數值,也就相當于搖桿在該軸向被細分為255段,如此精密的細分對很多應用場合來說足夠滿足需求。并且基于手機觸屏的數字式細分比真實搖桿的滑動變阻器式細分會有更好的線性度和一致性。
通信數據幀在不開啟幀頭幀尾時數據幀總長為6個字節(jié),幀格式發(fā)送順序為:X1,Y1,X2,Y2,Z1,Z2。X1、Y1表示左側搖桿1軸向數值,X2、Y2表示右側搖桿2軸向數值,Z1、Z2表示上下兩組開關的值,傳輸時均用十六進制表示。開啟幀頭幀尾后即在數據幀前增加自定義的幀頭和幀尾,詳細數據幀格式如表1所示。
表1 遙控手柄APP軟件數據幀格式
AUV從外觀上看大體可分為矢量推進控制和舵面控制兩種,但無論哪種,其運動模型一般可以采用大地坐標系E-ξηζ加隨體坐標系G-xyz來表示,這與無人機十分相似[21]。
圖7 AUV的坐標系
但是水下機器人和空中無人機的運動控制也有明顯的不同,那就是無人機的大規(guī)模轉向需要通過橫滾來配合實現,而AUV一般不需要如此操作。前文說到消費級無人機遙控器一般提供兩個搖桿,兩個搖桿共有四個控制通道,分別用來控制無人機的方向舵、升降舵、副翼和油門。方向舵對應固定翼無人機的垂直尾翼,用來改變機頭的左右朝向,即偏航操作。升降舵對應固定翼無人機的水平尾翼,用來實現機身的抬頭和低頭,即俯仰動作。副翼對應固定翼無人機的兩片副翼,用來實現機身的橫滾動作。油門顧名思義是用來控制無人機的動力輸出大小的。因AUV與無人機本質上的不同,所以,AUV在手柄遙控模式下一般只需要實現偏航、俯仰和油門操作,且極少需要手動進行橫滾操作。
無論是矢量推進控制式AUV還是舵面控制式AUV,其航向的改變都是通過舵機或者電機帶動推進器或者舵面轉動來實現的。因此試驗設計以遙控手柄APP軟件上左側搖桿1的X軸進行偏航控制Y軸進行俯仰控制,分別對應控制十字型舵AUV的上下和左右舵機。以遙控手柄APP軟件上右側搖桿2的Y軸進行油門桿操作,對應控制AUV推進器的正反推進功率。
遙控手柄APP軟件上的開關對AUV控制系統(tǒng)來說正是開關量(或者稱為數字量)輸入,對開關量的試驗驗證可以簡單得通過LED燈的亮與滅來進行。所以本文設計在遙控手柄APP軟件上第一組開關全0狀態(tài)時LED1熄滅,非全0狀態(tài)時LED1亮起。第二組開關對應LED2,第二組開關全0狀態(tài)時LED2熄滅,非全0狀態(tài)時LED2亮起。
所有試驗內容條目以及預期的效果如表2所示。搖桿1在回中位置時對應AUV方向舵和俯仰舵也在中位,軸向數值0~255變化時,映射到方向舵和俯仰舵的舵角即為從最小值轉到最大值。搖桿2的Y軸在回中位置時對應AUV的推進器轉速為0,當其數值從0~255變化時,對應推進器從反轉最大功率逐漸減小到零然后再從零逐漸增大到正轉最大功率,此時需要注意的是AUV的推進器應當在水中測試,以免推進器電機在空氣中高速空轉而過熱燒壞。
表2 遙控手柄APP軟件試驗內容
根據試驗內容的設計,設計搭建完整的通信測試鏈路如圖8所示。
圖8 通信測試鏈路
測試鏈路中以開發(fā)板代替真實指控臺,并搭配藍牙模塊和LoRa模塊,藍牙模塊實現接收手機遙控手柄APP軟件通過無線藍牙發(fā)送來的遙控數據幀,LoRa模塊實現對遙控數據幀的轉發(fā)。
AUV端的通信和運動控制模塊負責LoRa無線通信數據的接收,并對收到的遙控數據幀進行解析和執(zhí)行,實現LED燈的點亮控制、舵機的舵角控制和推進器的功率控制。
藍牙模塊選用正點原子的ATK-HC05型藍牙模塊,這是一款高性能的主從一體式的藍牙串口模塊,能夠同各種手機、電腦等帶藍牙功能的終端進行匹配。通信速率可配置為4 800~1 382 400 bps,且其接口兼容3.3 V和5 V電平,可以適配3.3 V或者5 V接口電平標準的單片機開發(fā)板。
LoRa模塊選用駿曄科技的DL-RTS1278M型無線串口LoRa透傳模塊,該模塊采用擴頻調制和循環(huán)交織糾檢錯編碼,有多個通信頻段可選,具有較高的靈敏度和較好的抗干擾能力。接口速率為1 200~115 200 bps,0.81 kbps傳輸速率下的傳輸距離可達3 000米,非常適合工業(yè)遠程控制。
開發(fā)板選用Arduino Mega 2560開發(fā)板,這是一款基于8位微控制器ATmega2560的開發(fā)板,能夠提供多達4個USART硬件串行接口,結合藍牙串口模塊和LoRa串口透傳模塊可快速完成簡易指控臺的搭建。再通過Arduino IDE軟件提供的庫函數能夠方便地進行軟件功能編寫,實現藍牙串口數據的接收和LoRa串口透傳模塊的數據發(fā)送。
AUV端的通信和運動控制模塊為基于嵌入式系統(tǒng)STM32的嵌入式開發(fā)板,主要負責無線電通信的收發(fā),以及AUV運動執(zhí)行機構的(包括舵機和推進器)控制。STM32通過2個GPIO完成板載LED1和LED2的亮滅控制,通過改變PWM輸出占空比完成4個舵機的控制,通過CAN總線通信完成推進器推進正反轉和推進功率的控制[22-23]。圖9為AUV端的通信和運動控制模塊在控制推進器時完成搖桿2的Y軸的數值從全功率反轉(-100%)到全功率正轉(+100%)的等比例映射。搖桿數值到舵機舵角的映射關系與此類似。
圖9 從搖桿2的Y軸數值到推進器輸出功率的映射
根據表2的測試內容以及圖8的測試鏈路,首先進行了APP遙控手柄軟件開關的測試,測試結果表明第一組開關中任意一個開關閉合即可點亮LED1, 第二組開關中任意一個開關閉合即可點亮LED2。其次進行了搖桿1的測試,實物測試如圖10所示,測試結果顯示AUV方向舵和俯仰舵能夠跟隨搖桿1的操作進行相應的打舵操作。
圖10 舵機打舵測試 圖11 推進器正反轉測試
最后進行了搖桿2的測試,實物測試如圖11所示。測試結果顯示隨著搖桿2在Y軸的緩慢上推和緩慢下推,推進器能夠跟隨操作進行加力正推和加力反推,水中實測過程如圖11所示,左側圖中水波紋顯示水流從推進器前端吸入后端噴出,因此左圖為推進器正推;右側圖中水波紋顯示水流從推進器后端吸入前端噴出,因此右圖為推進器反推。
通過以上試驗,驗證了遙控手柄APP軟件的設計合理性,證明了基于LoRa、藍牙和安卓手機的AUV手柄遙控系統(tǒng)設計方案可行。
本文設計了一種AUV手柄遙控模式的間接實現方案,即在安卓手機上開發(fā)APP軟件來模擬遙控手柄,通過手機藍牙對指控臺實現近距離無線通信,指控臺通過藍牙接收到手柄操作信息后再通過遠距離LoRa無線通信實現對AUV的手柄遙控信息的發(fā)送。本方案全過程透明,通信協(xié)議可自定義,且近距離和遠距離無線電通信硬件設計有備選方案,以較低的成本和較強的通用性實現了AUV的手柄遙控系統(tǒng)設計,為AUV的開發(fā)和調試提供了有力保障。