張開宇,高國偉,2,毛浩龍
(1.北京信息科技大學(xué) 傳感器重點實驗室,北京 100101;2.北京信息科技大學(xué) 現(xiàn)代測控技術(shù)教育部重點實驗室,北京 100192;3.北京信息科技大學(xué) 自動化學(xué)院,北京 100096)
隨著機器人技術(shù)的發(fā)展,機器人在越來越多的領(lǐng)域中發(fā)揮著重要作用[1-2]。單獨的機器人工作能力有限,而復(fù)合功能機器人價格高昂,制造和維護成本都高于數(shù)個功能單一的機器人[3]。在軍事方面,機器人群體可以輕松地完成多方位偵查,排雷,打擊目標(biāo)等復(fù)雜任務(wù),在工業(yè)方面,可以完成焊接、組裝、車床沖壓等,在民用方面如智能噴灑,智能除草等方面[4-5]。
機器人集群控制是為了使多個機器人統(tǒng)一由單獨的控制系統(tǒng)來進行控制,從而形成高度協(xié)調(diào)的控制系統(tǒng),從而可以使機器人集群高效協(xié)調(diào)工作完成單個機器人無法勝任的復(fù)雜工作。針對自主機器人群體的控制方式主要有:領(lǐng)航員-跟隨法[6-7]、基于行為法[8]、虛擬結(jié)構(gòu)法[9]以及近年來學(xué)者提出的距離測量法[10]等。這些方法適用性較低,無法在現(xiàn)場靈活地改變動作,或者在編程的時候無法直觀地看到機器人的動作而導(dǎo)致編程困難,調(diào)試繁瑣。通過改進的領(lǐng)航跟隨型迭代學(xué)習(xí)法[11]等算法可實現(xiàn)機器人的接收自適應(yīng)動作指令,但這些方法對機器人的硬件要求很高,形成機器人編隊時成本昂貴。
在進行多個自主機器人編隊算法設(shè)計時需要考慮如何通過簡單的相互作用,使控制大量的機器人等諸多問題。
該系統(tǒng)采用MQTT協(xié)議通信,記憶儲存模塊儲存動作代碼,使得機器人可以實時地同上位機相互傳輸信號,操作人員可以及時地做出更改指令,糾正錯誤,規(guī)范動作,切換和終止任務(wù)等操作,有效的解決了無法及時糾正錯誤動作,更改提前編寫的動作程序等問題??梢酝瓿尚畔⒐蚕恚苯酉藱C器人個體之間的動作沖突,形成了由統(tǒng)一控制中心進行的多個機器人協(xié)調(diào)工作的控制系統(tǒng),是實現(xiàn)多個機器人協(xié)調(diào)工作的有效技術(shù)途徑。并且因為具有儲存模塊,即使與上位機斷開鏈接,也可以根據(jù)提前編好的指令進行運轉(zhuǎn)。通過對三臺機器人的控制測試,該系統(tǒng)滿足對機器人編隊控制的要求,成本低廉,對機器人硬件要求不高,易于廣泛推廣。
IBM公司于1988年發(fā)布MQTT協(xié)議,將其構(gòu)建在TCP/IP上,,它主要面向通信資源受限且通信任務(wù)比較輕的局域網(wǎng)中[12]。因為MQTT帶寬極低、成本低廉、易于實現(xiàn)所以經(jīng)常被使用在寒旱地區(qū)以及野外進行環(huán)境監(jiān)測。采用四足機器人對該系統(tǒng)進行測試,其每個機器人具有12個靈活度,控制難度超過一般的輪式或者履帶式機器人。但是,其具有優(yōu)秀的適應(yīng)能力,可以實現(xiàn)翻越障礙物,進行跳躍,上階梯等動作。動力強,穩(wěn)定性良好等特性使得其具有十分高的研究價值。因此選擇對四足機器人進行控制既可以檢驗該控制方案是否具有可行性,也可以檢測其在實際應(yīng)用中是否具有較高的使用價值。
MQTT傳輸?shù)南⒎譃椋褐黝}(topic)和負載(payload)兩個部分,topic部分包含消息名,payload是實際要傳輸?shù)膬?nèi)容。因為每個消息都會有一個主題,所以MQTT可以根據(jù)主題來區(qū)分消息來發(fā)送到哪個客戶端。同時MQTT具有以下特點:
1)使用的發(fā)布/訂閱消息模式后,MQTT提供多消息分發(fā)實現(xiàn)與應(yīng)用程序解耦。
2)具有對負載信息屏蔽的消息傳輸機制。
3)可以設(shè)置消息服務(wù)質(zhì)量等級(QoS):當(dāng)QoS=0時,無論接受方是否接受到了消息,最多發(fā)送一次消息;當(dāng)QoS=1時,為了確保消息確實到達,至少發(fā)送一次。當(dāng)QoS=2時,消息發(fā)送一次,是最高等級,不允許消息丟失。
系統(tǒng)由三部分組成:機器人終端,服務(wù)器,人機交互平臺。其中服務(wù)器和人機交互平臺可以在同一PC端實現(xiàn)。在機器人連接到服務(wù)器后,人機交互平臺即可發(fā)送各項參數(shù)和信息給機器人,同時機器人可以反饋運動信息給平臺。
為了檢測該操作系統(tǒng)對軟件以及上位機的硬件配置要求,實驗選擇了筆記本電腦,其配置為酷睿處理器i5-4200U(1.6~2.6 GHz),4 G內(nèi)存,GT750M顯卡。機器人選擇了具有12個靈活度的四足機器人,其核心為ESP8266控制模塊,內(nèi)部集成了WiFi模塊可連接到控制路由器上,在局域網(wǎng)內(nèi)形成多個機器人信息交互網(wǎng)絡(luò)。該系統(tǒng)開發(fā)采用目前流行的開源軟件Arduino作Windows端開發(fā)IDE,其上位機通過LinuxQt或Android與操作員進行交互,并且顯示各個機器人的狀態(tài)信息。通過上位廣播對各個機器人進行控制,各個機器人收到上位機的網(wǎng)絡(luò)控制動作命令后,依次有序的執(zhí)行并匯報,從而使得機器人之間協(xié)調(diào)有序的進行動作,實現(xiàn)機器人之間的合作完成任務(wù)。機器人采用了舵機控制模塊,AD采樣模塊,穩(wěn)壓模塊等。通過IIC總線通信和控制12個伺服電機實現(xiàn)動作。整個軟件設(shè)計如圖2所示。
圖1 MQTT控制系統(tǒng)發(fā)布訂閱模式
圖2 軟件設(shè)計框圖
在無線局域網(wǎng)情況下,Wireshark的使用讓該控制系統(tǒng)可以在Linux環(huán)境中抓取控制中心與外界通訊時的IEEE 802.11的抓包文件(即Pcap),篩選并獲取MQTT協(xié)議的數(shù)據(jù)包。獲取MQTT協(xié)議的數(shù)據(jù)包后開始進行串口調(diào)試,在串口調(diào)試完可以進行對MQTT協(xié)議的數(shù)據(jù)包的解讀,串口調(diào)試見圖3。
圖3 串口調(diào)試
如果機器人運行過程發(fā)生異常,異常信息就會通過集成MQTT客戶端發(fā)送到服務(wù)器上,人機交互平臺就可以接收到異常信息,從而實施相應(yīng)的對策。
操作員可以通過PC端或者手機應(yīng)用客戶端實現(xiàn)隨時隨地地檢測機器人運動狀態(tài),手機客戶端(遠程客戶端)以“推拉”的方式接收消息,定期地向服務(wù)器詢問是否有消息發(fā)出稱為“拉”,服務(wù)器主動向遠程客戶端發(fā)送消息稱為“推”。該系統(tǒng)考慮到手機的待機時長,采用推的方式將信息發(fā)送給客戶端。
在Android客戶端設(shè)計中,將MQTT集成到ServicePush模塊中,連接到服務(wù)器以后便可以訂閱相關(guān)主題。當(dāng)有主題推送時,Android客戶端便可以直接查看在線機器人的運作狀態(tài)。
四足爬行機器人是仿生機器人,其結(jié)構(gòu)如蜘蛛。四足爬行機器人根據(jù)蜘蛛的生理結(jié)構(gòu),運動方式和動作行為原理設(shè)計出來,在實際中具有很強的工作能力和市場前景[13-17]。實驗使用了具有12個自由度的四足仿蜘蛛機器人,其12個自由度的控制對該控制系統(tǒng)具有一定的考驗。并且該系統(tǒng)是基于機器人集群控制,各種集群控制的算法可以自由選擇、自行切換,方便高效。
四足機器人硬件電路采用主控芯片,舵機控制模塊,顯示模塊等其部分組成。
2.1.1 主控芯片
如圖4所示,主控芯片采用了ESP8266芯片,其工作溫度在-20~80 ℃之間,適應(yīng)各種場合,并且內(nèi)置射頻模塊,2.5 GHz的接收發(fā)射器。其自帶WIFI射頻,802.11 b和802.11 g的基帶。內(nèi)置了TCP/IP協(xié)議等使得與上位機連接是不在依靠有線傳輸。
圖4 主控MCU最小系統(tǒng)電路
2.1.2 舵機控制模塊
舵機控制模塊使用PCA9685將數(shù)字信號轉(zhuǎn)換為伺服電機可以識別多的PWM控制信號,其電路如圖5所示。使用IIC與ESP8266進行通信從而達到控制伺服電機的目的。PCA9685本身自帶四個IIC地址,每個IIC最多支持四路PWM信號的輸出,并且各路信號均為12位分辨率。該舵機控制模塊可實現(xiàn)自上電復(fù)位和軟件復(fù)位的功能,不必設(shè)計手動復(fù)位電路。
圖5 舵機控制電路
2.1.3 顯示模塊
如圖6所示,四足機器人采用1.3寸的OLED液晶顯示,128×64點陣滿足調(diào)試需求,在室內(nèi)和陽光下都可以看見。在調(diào)試完程序以后,考慮到機器人功耗問題,在正常運行時將關(guān)閉OLED。
圖6 OLED電路
機器人打開電源后會直接進入調(diào)試模式,ESP8266通過集成的WIFI開始搜索服務(wù)器終端并連接,MQTT中間件便開始發(fā)送報文,報文中包括連接件的用戶名(ssid)和密碼(password),ssid和password正確便可以開始進行匹配。在控制中心和機器人匹配成功后,控制系統(tǒng)便可以直接控制機器人,匹配調(diào)試過程見圖7。
圖7 匹配調(diào)試圖
圖7中ssid是連接的WIFI名稱,password是密碼文件,host是tcpServer服務(wù)器的IP地址,同時也是手機在路由器上的IP。tcpPort是監(jiān)控端地址。
如果機器人在運行過程中發(fā)生異常狀況如:停機或動作模式不正確等,這些異常數(shù)據(jù)會通過集成的MQTT終端發(fā)送到上位機中,操作人員便可以根據(jù)情況做出處理。同時,MQTT終端會時時地將機器人的12個舵機的運動位置發(fā)送到上位機中,當(dāng)舵機的運動位置長時間不更新時便可以根據(jù)是否有連接中斷信息通知來判斷機器人死機或者掉線。
四足機器人爬行分解如圖8所示,在該系統(tǒng)控制下,機器人爬行時以左前腿右后腿同時向前,并且左前腿和右后腿的膝關(guān)節(jié)微微抬起,到達指定位置后左前腿右后腿的漆關(guān)節(jié)落下支撐機器人軀體,右前腿和左后腿重復(fù)左前腿右后腿動作,完成一次前進動作。
圖8 四足機器人爬行示意圖
a.髖關(guān)節(jié);b.膝關(guān)節(jié);c.足關(guān)節(jié)。圖9 四足爬行機器人側(cè)面
機器人左前腿和右前腿的驅(qū)動函數(shù)如圖10所示,其運動相位差半個運動周期,表示了這兩只前腿是模仿四足動物的兩條前腿進行交替運動的。
圖10 左前腿和右前腿的驅(qū)動函數(shù)圖
該控制系統(tǒng)相比于其他設(shè)計系統(tǒng)具有以下的優(yōu)點:
1)具有可以使機器人動作復(fù)現(xiàn)功能。使用動作復(fù)現(xiàn)功能完全避開了傳統(tǒng)邊調(diào)整參數(shù)邊進行動作演示的編程方法,人機交互更加容易,編程更加簡單。
2)成本低廉。在實驗中,只使用了配置很低的筆記本電腦,便可以完全控制3臺機器人,并且實現(xiàn)了控制系統(tǒng)的全部功能,相比與其他昂貴的控制中心,該系統(tǒng)具有很高的性價比。
3)豐富的功能。該系統(tǒng)可以將一臺已經(jīng)設(shè)置好動作的機器人的代碼同時發(fā)送到所有相同型號的機器人終端,并且可以運行各種機器人集群控制算法,在多個器人同時工作時可以針對某個機器人進行動作糾正,更改動作模式等操作。
4)該系統(tǒng)可在各種終端上運行。該系統(tǒng)可以在Linux,Windows以及具有無線傳輸功能的平板電腦上運行。
實驗采用四足爬行機器人作為控制對象,四足爬行機器人可以完成較為復(fù)雜的動作,成本相對六足機器人和仿人機器人低廉,并且設(shè)計上比較簡單。
將具有12個伺服電機的四足機器人的四肢擺放成特定的動作形態(tài),此時的伺服電機的角度如圖11所示。激活機器人后,上位機同時對所有連接到服務(wù)器的機器人進行運動指令傳輸,分配任務(wù)。機器人接收到上位機的運動控制指令后,按序列匯報并執(zhí)行動作指令。上位機進入程序端后,開始創(chuàng)建udpsocket文件來實現(xiàn)對用戶IP地址,監(jiān)聽地址以及本地端口進行判斷。
圖11 運動控制應(yīng)用界面
運動控制中,可以記錄每個伺服電機的時時的角度位置,在恢復(fù)初始狀態(tài)后進行運動播放使得每個伺服電機按照時間記錄的角度進行動作重復(fù),及實現(xiàn)了人“手把手教”,操作一次后機器人便可以模仿。
實驗中使用了三個相同的四足爬行機器人來進行機器人集群控制實驗。給三個機器人設(shè)置了電位脈沖,當(dāng)機器人在工作狀態(tài)時給控制終端發(fā)送的是高電位,當(dāng)停止工作時發(fā)送低電位。實驗使得三臺機器人同時接受指令工作,并且在2.5秒時給第三臺機器人發(fā)送停止工作的信號,得到的電位脈沖如圖12所示。
圖12 機器人運作和停止脈沖圖
由圖12可知,當(dāng)在2.5 s發(fā)送停止工作信號給三號機器人時,三號機器人立即停止工作,在5.3 s時給與工作信號后立刻啟動開始繼續(xù)工作。
經(jīng)過實驗檢測,該系統(tǒng)可以滿足遠程控制的需求,并且對在線機器人動作指令運行錯誤時可以及時關(guān)停機器人。
針對機器人集群控制存在的動作編程繁瑣,單個機器人成本較高,協(xié)同工作時不易對單個機器人進行控制的問題,提出了一種新穎的集中控制技術(shù),其優(yōu)勢是將單個機器人需要計算的路徑,動作全部集中到控制中心去計算,在后期升級中也只需對控制中心進行升級,成本低廉,控制方便。在實驗中可以同時對3個機器人進行控制,并且可以在數(shù)個機器人同時工作時對單個機器人進行精確地控制。設(shè)計的用戶界面,也可以更好地實現(xiàn)人機互動。此外該系統(tǒng)的還可以使機器人復(fù)現(xiàn)動作,這將大大降低對機器人動作編程的難度,對具有更加復(fù)雜結(jié)構(gòu)的機器人動作編程具有巨大的優(yōu)勢,并且為機器人動作編程提供了新的思路。