(1.湖北大學(xué) 商學(xué)院,武漢 430062; 2.湖北詮享科技有限公司,武漢 430062)
機(jī)器人遙控技術(shù)是近年來機(jī)器人技術(shù)研究領(lǐng)域的一個重要分支,它實現(xiàn)了人工智能和機(jī)器人靈活運動的有機(jī)結(jié)合,使得人員無法到達(dá)的遠(yuǎn)距離作業(yè)現(xiàn)場和環(huán)境極其惡劣作業(yè)現(xiàn)場的分揀任務(wù)執(zhí)行成為可能。近年來國內(nèi)外針對機(jī)器人技術(shù)與虛擬現(xiàn)實技術(shù)的有機(jī)結(jié)合開展了大量研究和實踐,虛擬現(xiàn)實技術(shù)的興起和發(fā)展得益于機(jī)器人技術(shù),與此同時虛擬現(xiàn)實技術(shù)又為機(jī)器人技術(shù)的進(jìn)一步發(fā)展提供了強(qiáng)有力的技術(shù)支持,二者之間相互促進(jìn),在電纜巡檢機(jī)器人、水下探測機(jī)器人、家用掃地機(jī)器人、水果采摘機(jī)器人、軍事偵察機(jī)器人、手術(shù)機(jī)器人、汽車零件裝配機(jī)器人、衛(wèi)星探測機(jī)器人等眾多領(lǐng)域顯示出了巨大的優(yōu)勢,給人類生產(chǎn)、生活帶來了極大便利[1-2]。
基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)設(shè)計已經(jīng)成為工業(yè)領(lǐng)域極具發(fā)展?jié)摿蛻?yīng)用前景的研究方向之一。利用虛擬現(xiàn)實技術(shù)實現(xiàn)分揀機(jī)器人遙控控制一方面是指操作者利用分揀機(jī)器人攜帶的多傳感器系統(tǒng),將操作者本身的位置信息和運動信息實時檢測并作為控制命令發(fā)送給遠(yuǎn)程服務(wù)控制器中;另一方面操作者可以將遠(yuǎn)距離分揀機(jī)器人采集獲得的視頻信息、圖像信息、數(shù)據(jù)信息等實時反饋給本地服務(wù)控制器,在系統(tǒng)操作者周圍生成遠(yuǎn)程環(huán)境映射的虛擬環(huán)境,使得系統(tǒng)操作者能夠身臨其境地感受分揀機(jī)器人周圍的環(huán)境變化,有利于系統(tǒng)操作者根據(jù)現(xiàn)場環(huán)境的變化作出正確的反映和決策,有效地控制分揀機(jī)器人完成復(fù)雜的分揀任務(wù)[3-4]。
為了克服當(dāng)前遙控系統(tǒng)控制分揀機(jī)器人執(zhí)行既定任務(wù)時存在目標(biāo)軌跡跟蹤效果不佳、跟蹤誤差較大,任務(wù)執(zhí)行成功率較低、失誤率較高以及系統(tǒng)響應(yīng)延遲較長等缺點,提出并設(shè)計了基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)。
分揀機(jī)器人虛擬現(xiàn)實系統(tǒng)結(jié)構(gòu)主要包括五部分,分別為分揀機(jī)器人操作指令檢測模塊、操作指令反饋模塊、操作指令傳感器模塊、操作指令控制模塊和操作指令建模模塊[5],具體結(jié)構(gòu)體系如圖1所示。
圖1 分揀機(jī)器人虛擬現(xiàn)實系統(tǒng)結(jié)構(gòu)
分析圖1可知,分揀機(jī)器人操作指令檢測模塊主要用于檢測用戶的操作指令,并通過分揀機(jī)器人攜帶的傳感器模塊作用于虛擬環(huán)境;反饋模塊主要用于接收來自分揀機(jī)器人傳感器模塊的數(shù)據(jù),為用戶提供虛擬環(huán)境實時反饋;傳感器模塊的作用主要有兩方面,一方面用于接收來自用戶的操作指令,并將操作指令通過分揀機(jī)器人作用于虛擬環(huán)境;另一方面將分揀機(jī)器人執(zhí)行操作指令后產(chǎn)生的結(jié)果以反饋的形式上傳給用戶;控制模塊主要用于控制分揀機(jī)器人攜帶的傳感器,通過控制傳感器影響用戶、虛擬環(huán)境和現(xiàn)實世界。
針對當(dāng)前基于CAD系統(tǒng)的三維場景幾何建模方法難以適應(yīng)非結(jié)構(gòu)化復(fù)雜環(huán)境的問題,采用機(jī)器視覺技術(shù)描述三維環(huán)境,設(shè)計了分揀機(jī)器人嵌入式遙控系統(tǒng)[6],具體組成結(jié)構(gòu)如圖2所示。
圖2 分揀機(jī)器人嵌入式遙控系統(tǒng)結(jié)構(gòu)示意圖
分析圖2可知,分揀機(jī)器人是一臺包含多臺傳感器和智能的自引導(dǎo)小車,通過利用超聲傳感器、視覺傳感器、磁傳感器等多個傳感器數(shù)據(jù)融合來實現(xiàn)導(dǎo)航,其中,系統(tǒng)智能代理服務(wù)器是一臺具備高性能的服務(wù)器,主要用于處理分揀機(jī)器人和嵌入式遙控系統(tǒng)客戶端數(shù)據(jù),是整個系統(tǒng)的信息樞紐;嵌入式遙控系統(tǒng)客戶端是一個接口控件,可以與任意計算機(jī)通過Internet連接,當(dāng)客戶端成功登錄智能代理服務(wù)器取得訪問權(quán)限后可以下載ActiveX控件對分揀機(jī)器人下達(dá)操作指令,控制分揀機(jī)器人執(zhí)行分揀任務(wù),嵌入式遙控系統(tǒng)客戶端是分布式的,其具體界面顯示如圖3所示。
圖3 嵌入式遙控系統(tǒng)分布式客戶端界面顯示
虛擬現(xiàn)實技術(shù)在分揀機(jī)器人嵌入式遙控系統(tǒng)的應(yīng)用主要是通過采用三維建模軟件建立分揀機(jī)器人及其相應(yīng)環(huán)境的三維模型,在建模過程中引入機(jī)器人結(jié)構(gòu)學(xué)和場景動力學(xué),對分揀機(jī)器人運動行為及其與三維場景的交互加入約束條件,能夠使得分揀機(jī)器人在虛擬場景下的行為更加真實自然;在此基礎(chǔ)上,采用圖形快速生成系統(tǒng)將分揀機(jī)器人及其與三維場景繪制出來,依據(jù)用戶通過鍵盤、鼠標(biāo)、控制盒等輸入的操作指令產(chǎn)生需要的三維虛擬場景,同時采用系統(tǒng)中的立體顯示設(shè)備將生成的三維虛擬場景實時反饋給用戶。用戶能夠利用嵌入式遙控系統(tǒng)中的操縱桿等設(shè)備實時控制分揀機(jī)器人手臂、手腕、手肘等部位的轉(zhuǎn)動以及分揀機(jī)器人在三維虛擬場景中的移動,還可以選擇分揀機(jī)器人視角觀察周圍環(huán)境或從旁觀者角度觀察分揀機(jī)器人的運動行為等[7]。
利用虛擬現(xiàn)實技術(shù)設(shè)計分揀機(jī)器人嵌入式遙控系統(tǒng)主要是依據(jù)模塊化、標(biāo)準(zhǔn)化、開放性和可用性原則實現(xiàn)分揀機(jī)器人具有臨場感的操作指令輸入輸子系統(tǒng)和分揀機(jī)器人具有真實感的虛擬場景仿真子系統(tǒng),前者主要負(fù)責(zé)控制分揀機(jī)器人操作指令輸入、語音輸入以及立體設(shè)備顯示、觸覺感知、聲音感知和輸出等等。后者則包括三維虛擬環(huán)境的三維圖像快速生成和三維模型數(shù)據(jù)庫管理[8]。如圖4展示了基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)結(jié)構(gòu)。
圖4 虛擬現(xiàn)實技術(shù)下的分揀機(jī)器人遙控系統(tǒng)
將三維圖形輸入到系統(tǒng)的立體顯示設(shè)備中,用戶通過系統(tǒng)立體顯示設(shè)備能夠看到一個三維虛擬場景,同時利用分揀機(jī)器人的運動控制器控制機(jī)器人與三維虛擬場景相連,用戶發(fā)出的諸如抓取、高舉等操作指令被同時上傳給虛擬場景仿真子系統(tǒng)和分揀機(jī)器人控制器中,通過控制分揀機(jī)器人的動作即可檢驗虛擬場景仿真子系統(tǒng)的精準(zhǔn)性。
圖5展示了基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)的基本功能單元和具體操作流程[9]。
圖5 嵌入式遙控系統(tǒng)具體操作流程
用戶通過鍵盤、鼠標(biāo)、控制盒等輸入設(shè)備將分揀機(jī)器人操作指令和觀察者在空間中的位置信息發(fā)送給虛擬場景仿真子系統(tǒng),同時將這些操作指令和位置信息處理后生成分揀機(jī)器人控制器能夠識別的命令序列,將這些處理后的命令序列發(fā)送給實際分揀機(jī)器人,控制分揀機(jī)器人執(zhí)行與命令序列對應(yīng)的動作。虛擬場景仿真子系統(tǒng)接收到用戶發(fā)送的分揀機(jī)器人命令序列和觀察者在三維虛擬場景中的位置信息后,利用分揀機(jī)器人動力學(xué)和場景動力學(xué)模型,計算分揀機(jī)器人的各個關(guān)節(jié)及其相應(yīng)構(gòu)建在三維虛擬場景中的運動軌跡,根據(jù)計算結(jié)果獲得一個變化后的分揀機(jī)器人模型和三維虛擬場景空間模型,完成三維圖形實時生成和繪制,并將繪制成的三維虛擬場景空間模型展示在系統(tǒng)立體顯示設(shè)備上,用戶可以通過立體顯示設(shè)備界面看到一個虛擬世界,同時還能夠通過觸覺反饋使用戶感受更加真實,使用戶操作更加準(zhǔn)確。
根據(jù)上述系統(tǒng)各個功能模塊分析可知,各個功能模塊之間周期性地發(fā)送和接收系統(tǒng)共享內(nèi)存中的數(shù)據(jù),通過讀寫保護(hù)策略保證系統(tǒng)共享內(nèi)存中數(shù)據(jù)的安全性和完整性,可以方便多用戶在同一時間通過多個線程讀取系統(tǒng)共享內(nèi)存中存儲的數(shù)據(jù)信息。在寫入數(shù)據(jù)時,用戶只需要通過一個線程即可享系統(tǒng)共享內(nèi)存中寫入,其他線程則處于等待工作狀態(tài)。
1.3.1 分揀機(jī)器人實時操作系統(tǒng)
采用QNX Neutrino系統(tǒng)作為分揀機(jī)器人本體控制器,QNX Neutrino系統(tǒng)具有較好的靈活性,且能夠滿足分揀機(jī)器人嵌入式遙控系統(tǒng)資源有限的要求。QNX Neutrino系統(tǒng)支持x86、SH-4、ARM等多平臺。QNX Neutrino系統(tǒng)上所有運行的應(yīng)用程序、驅(qū)動程序等都受到安全保護(hù),該系統(tǒng)上的大部分組件都能夠在運行失敗后執(zhí)行自動重啟,不會對系統(tǒng)上運行的其他組件或內(nèi)核產(chǎn)生影響。
在分揀機(jī)器人嵌入式遙控系統(tǒng)遠(yuǎn)程服務(wù)器終端安裝QNX Neutrino系統(tǒng)提供的軟件開發(fā)環(huán)境,并采用C++語音編寫軟件控制程序,利用路由裝置將分揀機(jī)器人控制指令序列發(fā)送給機(jī)器人QNX Neutrino系統(tǒng)中。分揀機(jī)器人本體控制器在收到遠(yuǎn)程服務(wù)器終端控制指令后指令解析,將分揀機(jī)器人電機(jī)速度信息、電流信息、位置信息等指令通過工業(yè)現(xiàn)場總線EtherCAT發(fā)送到相應(yīng)驅(qū)動器中,最終實現(xiàn)對分揀機(jī)器人的動作控制。
在QNX Neutrino系統(tǒng)中,各個程序進(jìn)程之間主要通過文件、信號、消息隊列、共享內(nèi)存等多種方式實現(xiàn)通信。QNX Neutrino系統(tǒng)中的每個程序進(jìn)程都有其特有的虛擬地址空間,可以通過采用mmap函數(shù)實現(xiàn)虛擬地址空間分配和共享內(nèi)存釋放。研究主要采用共享內(nèi)存通信方式設(shè)計分揀機(jī)器人嵌入式遙控系統(tǒng)控制軟件。
1.3.2 工業(yè)現(xiàn)場總線EtherCAT在系統(tǒng)中的應(yīng)用
工業(yè)現(xiàn)場總線EtherCAT是一個德國公司生產(chǎn)的以以太網(wǎng)結(jié)構(gòu)為基礎(chǔ)的現(xiàn)場總線,工業(yè)現(xiàn)場總線EtherCAT不需要在每個節(jié)點處接受信息,且網(wǎng)絡(luò)規(guī)模不受限制,能夠為基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)提供強(qiáng)有力的網(wǎng)絡(luò)技術(shù)支持。
1.3.3 分揀機(jī)器人嵌入式遙控系統(tǒng)軟件設(shè)計
分揀機(jī)器人執(zhí)行分揀任務(wù)主要通過遙控操作控制,利用模塊化思想設(shè)計分揀機(jī)器人嵌入式遙控系統(tǒng)軟件部分,采用共享內(nèi)存的方式實現(xiàn)各個模塊進(jìn)程之間的通信。將系統(tǒng)軟件控制程序劃分為串口通信模塊、通信傳輸協(xié)議解析模塊、數(shù)據(jù)處理算法模塊、分揀機(jī)器人控制器驅(qū)動模塊、分揀機(jī)器人位姿數(shù)據(jù)模塊、共享內(nèi)存數(shù)據(jù)輸出模塊和分揀機(jī)器人操作指令鍵盤控制模塊七部分[10]。系統(tǒng)軟件控制程序具體工作流程如圖6所示。
圖6 系統(tǒng)軟件控制程序具體工作流程
1)系統(tǒng)串口通信模塊主要負(fù)責(zé)接收、檢測、識別分揀機(jī)器人操作控制指令,并將操作控制指令存儲到串口接收共享內(nèi)存中;將串口接收共享內(nèi)存中的分揀機(jī)器人實時狀態(tài)信息發(fā)送給遠(yuǎn)程服務(wù)器。
2)通信傳輸協(xié)議解析模塊主要負(fù)責(zé)將串口接收共享內(nèi)存中的分揀機(jī)器人實時狀態(tài)信息解析成操作控制指令,并將解析后的操作控制指令存儲到協(xié)議解析接收共享內(nèi)存中;將分揀機(jī)器人實時狀態(tài)共享內(nèi)存中的分揀機(jī)器人當(dāng)前狀態(tài)信息進(jìn)行編碼,同時存儲到串口接收共享內(nèi)存中。
3)數(shù)據(jù)處理算法模塊主要負(fù)責(zé)將揀機(jī)器人實時狀態(tài)共享內(nèi)存中的分揀機(jī)器人當(dāng)前狀態(tài)信息處理成控制器控制指令序列,采用IMU數(shù)據(jù)及其驅(qū)動器反饋的數(shù)據(jù)進(jìn)行閉環(huán)控制,將分揀機(jī)器人閉環(huán)控制指令序列存儲到相應(yīng)驅(qū)動器發(fā)送共享內(nèi)存中;將驅(qū)動器發(fā)送共享內(nèi)存中的分揀機(jī)器人電機(jī)控制器運行狀態(tài)信息和操作控制指令轉(zhuǎn)化為分揀機(jī)器人本體狀態(tài)信息存儲到分揀機(jī)器人狀態(tài)信息共享內(nèi)存中。
4)分揀機(jī)器人控制器驅(qū)動模塊主要負(fù)責(zé)將分揀機(jī)器人狀態(tài)信息共享內(nèi)存中操作控制指令序列發(fā)送給分揀機(jī)器人相應(yīng)電機(jī)驅(qū)動控制器,實現(xiàn)電機(jī)驅(qū)動控制;將電機(jī)驅(qū)動控制器的速度信息、電流信息、位置信息等存儲到驅(qū)動器接收共享內(nèi)存中。
5)分揀機(jī)器人位姿數(shù)據(jù)模塊主要負(fù)責(zé)讀取分揀機(jī)器人執(zhí)行分揀任務(wù)時的實時位姿信息,并將讀取信息存儲到分揀機(jī)器人位姿數(shù)據(jù)模塊中。
6)共享內(nèi)存數(shù)據(jù)輸出模塊主要負(fù)責(zé)將系統(tǒng)各個控制器共享內(nèi)存中的數(shù)據(jù)輸出到遠(yuǎn)程終端服務(wù)器,便于用戶實時查看和調(diào)試。
7)分揀機(jī)器人操作指令鍵盤控制模塊主要負(fù)責(zé)調(diào)試遠(yuǎn)程終端服務(wù)器對整個嵌入式遙控系統(tǒng)的操作指令。
為了測試研究提出并設(shè)計的基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng)的性能優(yōu)劣,采用一臺操作系統(tǒng)為Windows7,CPU主頻為1.8 GHz,硬盤容量為120 GB,顯存容量為3 GB,運行內(nèi)存為8 GB的電腦PC機(jī)作為分揀機(jī)器人遠(yuǎn)程服務(wù)器終端,用于控制分揀機(jī)器人動作。
以工業(yè)領(lǐng)域投入應(yīng)用的3自由度分揀機(jī)器人為例,如圖7和圖8所示測試了該分揀機(jī)器人跟蹤性能。
圖7 目標(biāo)軌跡跟蹤效果圖
圖8 分機(jī)機(jī)器人目標(biāo)軌跡跟蹤誤差測試結(jié)果
從圖7和圖8的實驗結(jié)果中可以清楚地看出,設(shè)計系統(tǒng)控制的分揀機(jī)器人取得了較好的目標(biāo)軌跡跟蹤效果,無論是X方向、Y方向、Z方向目標(biāo)軌跡跟蹤誤差,還是角度跟蹤誤差都能在較短時間內(nèi)消除,同時設(shè)計系統(tǒng)通過采用虛擬現(xiàn)實技術(shù)模擬三維場景,使得用戶能夠在聽覺、觸覺、感覺等多方面身臨其境,對造成分揀機(jī)器人目標(biāo)軌跡跟蹤干擾的因素及時作出了相應(yīng)動作,克服了多種干擾因素對目標(biāo)軌跡跟蹤效果的影響,使得分揀機(jī)器人沿著設(shè)定軌跡移動;另外,設(shè)計系統(tǒng)充分考慮了分揀機(jī)器人電機(jī)控制器速度信息、電流信息、位置信息等以及分揀機(jī)器人本體位置信息的反饋采樣,并且通過不受網(wǎng)絡(luò)規(guī)模限制的工業(yè)現(xiàn)場總線EtherCAT發(fā)送給遠(yuǎn)程服務(wù)器終端,終端用戶可以根據(jù)分揀機(jī)器人當(dāng)前狀態(tài)信息對嵌入式遙控系統(tǒng)進(jìn)行調(diào)試,大大減小了目標(biāo)軌跡跟蹤誤差,獲得了比較理想的目標(biāo)軌跡跟蹤效果,為后續(xù)進(jìn)一步執(zhí)行分揀任務(wù)奠定了良好基礎(chǔ)。
為了進(jìn)一步檢驗設(shè)計系統(tǒng)的性能,分別測試了分揀機(jī)器人執(zhí)行0~1200個任務(wù)的成功率、失誤率以及耗時情況,如圖9~圖11所示。
圖9 分揀機(jī)器人任務(wù)執(zhí)行成功率測試結(jié)果
圖10 分揀機(jī)器人任務(wù)執(zhí)行失誤率測試結(jié)果
圖11 分揀機(jī)器人嵌入式遙控系統(tǒng)響應(yīng)延遲測試
分析圖9~圖11的結(jié)果可以發(fā)現(xiàn),采用設(shè)計系統(tǒng)控制分機(jī)機(jī)器人執(zhí)行任務(wù)時,隨著任務(wù)量的增多,任務(wù)執(zhí)行成功率有所降低,但很快又恢復(fù),這是由于設(shè)計系統(tǒng)采用QNX Neutrino系統(tǒng)作為分揀機(jī)器人本體控制器,具有較好的靈活性,該系統(tǒng)上的大部分組件都能夠在運行失敗后執(zhí)行自動重啟,不會對系統(tǒng)上運行的其他組件或內(nèi)核產(chǎn)生影響,保證了任務(wù)執(zhí)行成功率,同時也降低了任務(wù)執(zhí)行失誤率;除此之外,設(shè)計系統(tǒng)在執(zhí)行不同數(shù)量分揀任務(wù)時,響應(yīng)延遲時間較短,最長沒有超過0.025 s,這是由于設(shè)計系統(tǒng)采用工業(yè)現(xiàn)場總線EtherCAT作為系統(tǒng)程序進(jìn)程之間的通信軟件,為分揀機(jī)器人嵌入式遙控系統(tǒng)提供強(qiáng)有力的網(wǎng)絡(luò)技術(shù)支持,使得用戶輸入的操作指令能夠快速到達(dá)系統(tǒng)控制器,控制分揀機(jī)器人完成任務(wù),大大縮短了系統(tǒng)響應(yīng)延遲時間。
隨著科學(xué)技術(shù)水平的不斷提高以及國民經(jīng)濟(jì)的快速發(fā)展,機(jī)器人技術(shù)得到了大力推動,遙控分揀機(jī)器人成為機(jī)器人領(lǐng)域中的一個重要分支,成功地將人工智能識別技術(shù)與機(jī)器人的靈活性有機(jī)結(jié)合,讓原來作業(yè)場景的工作人員通過輸入控制指令控制位于現(xiàn)場的分揀機(jī)器人即可完成既定操作任務(wù)。為了實現(xiàn)分揀機(jī)器人的遠(yuǎn)程操控提出并設(shè)計了基于虛擬現(xiàn)實技術(shù)的分揀機(jī)器人嵌入式遙控系統(tǒng),通過系統(tǒng)性能測試結(jié)果表明,利用設(shè)計系統(tǒng)能夠?qū)崿F(xiàn)分揀機(jī)器人的高精度控制,具有較快的系統(tǒng)響應(yīng)性能。