張日紅,朱立學(xué)※,楊松夏,陳創(chuàng)豪,李燦森
(仲愷農(nóng)業(yè)工程學(xué)院,廣州 510225)
隨著國(guó)家對(duì)互聯(lián)網(wǎng)+智慧農(nóng)業(yè)的政策鼓勵(lì)以及機(jī)器人技術(shù)的快速發(fā)展,運(yùn)用基于物聯(lián)網(wǎng)的農(nóng)業(yè)機(jī)器人成為研究熱點(diǎn)[1]。與工業(yè)機(jī)器人在穩(wěn)定可替換的環(huán)境下處理相對(duì)簡(jiǎn)單、獨(dú)立且容易預(yù)先定義的任務(wù)不同,農(nóng)業(yè)機(jī)器人要求能處理復(fù)雜多變的環(huán)境和進(jìn)程,處理對(duì)象的不確定性和不可預(yù)測(cè)的狀態(tài),導(dǎo)致運(yùn)行在動(dòng)態(tài)化、非結(jié)構(gòu)化環(huán)境中的農(nóng)業(yè)機(jī)器人更復(fù)雜,系統(tǒng)開發(fā)的成本更高,且完成復(fù)雜農(nóng)業(yè)作業(yè)任務(wù)時(shí)不易取得預(yù)定效果[2,3]。當(dāng)前國(guó)內(nèi)外機(jī)器人控制技術(shù)獲得了快速的發(fā)展,但要達(dá)到完全自主決策的地步,難度還是很大,主要是受人工智能發(fā)展的制約,短時(shí)間內(nèi)機(jī)器人的應(yīng)用還是無法脫離人的參與[4]?;谖锫?lián)網(wǎng)的遠(yuǎn)程控制機(jī)器人具有較為可行的應(yīng)用前景,而其中的一個(gè)關(guān)鍵技術(shù)便是機(jī)器人的隨動(dòng)控制[5]。機(jī)器人與人類的交互協(xié)作可以幫助人在非結(jié)構(gòu)性環(huán)境下進(jìn)行復(fù)雜的操縱作業(yè),交互協(xié)作中機(jī)器人對(duì)操作者的運(yùn)動(dòng)跟蹤是非常關(guān)鍵的環(huán)節(jié)。目前基于深度視覺的目標(biāo)識(shí)別與定位跟蹤是主流研究方向,但深度視覺信息采集產(chǎn)生的數(shù)據(jù)量大,而且容易受到周圍環(huán)境的影響,硬件和軟件的實(shí)現(xiàn)成本也偏高,限制了其應(yīng)用。為了改進(jìn)視覺跟蹤控制的固有缺陷,本文提到了一種基于磁感檢測(cè)的空間位姿捕獲方法,可實(shí)現(xiàn)低成本的機(jī)器人隨動(dòng)控制。
基于運(yùn)動(dòng)追蹤傳感元件的動(dòng)態(tài)位姿信息對(duì)六自由度工業(yè)機(jī)器人末端位姿進(jìn)行實(shí)時(shí)控制,首先需要獲取到人體手勢(shì)的空間位姿信息,而后經(jīng)計(jì)算機(jī)信息處理后發(fā)送至機(jī)器人控制器進(jìn)行實(shí)時(shí)響應(yīng)。運(yùn)動(dòng)跟蹤的隨動(dòng)控制系統(tǒng)由運(yùn)動(dòng)跟蹤器、計(jì)算機(jī)、工業(yè)機(jī)器人系統(tǒng)(包含工業(yè)機(jī)器人本體、電氣控制箱與網(wǎng)絡(luò)通訊卡)等所組成。其中運(yùn)動(dòng)跟蹤器選用的是Polhemus公司生產(chǎn)的PATRIOT系列,能夠?qū)崟r(shí)測(cè)量并記錄位置和方位,連續(xù)不斷地更新數(shù)據(jù)[6]。主要由系統(tǒng)電子單元、發(fā)射器和傳感器三部分組成,發(fā)射器產(chǎn)生磁場(chǎng),是傳感器測(cè)量的參考端,傳感器探測(cè)由發(fā)生器產(chǎn)生的磁場(chǎng),在傳感器移動(dòng)的時(shí)候,它的位置和方位被精確的測(cè)量,系統(tǒng)電子單元?jiǎng)t計(jì)算位置和方向,并通過RS-232和上位機(jī)進(jìn)行通訊。工業(yè)機(jī)器人采用國(guó)內(nèi)新松機(jī)器人公司生產(chǎn)的SR10C,控制軸數(shù)為6軸,工作范圍為1 393 mm,重復(fù)定位精度為±0.05 mm,工業(yè)機(jī)器人本體通過動(dòng)力重載連接器和碼盤重載連接器與電氣控制柜進(jìn)行連接。圖1所示為機(jī)器人隨動(dòng)控制系統(tǒng)的總體組成。計(jì)算機(jī)通過RIO-LAN信號(hào)轉(zhuǎn)換模塊與機(jī)器人控制器進(jìn)行數(shù)據(jù)通信。
圖1 機(jī)器人隨動(dòng)控制系統(tǒng)的總體組成
目前機(jī)器人的末端執(zhí)行器軌跡規(guī)劃大部分采用示教盒進(jìn)行基本操作和編程,比較適合于固定場(chǎng)景的結(jié)構(gòu)化環(huán)境,即需要操作者根據(jù)機(jī)器人末端所需達(dá)到的位置通過示教盒進(jìn)行逐點(diǎn)位姿信息輸入,而對(duì)于非結(jié)構(gòu)化環(huán)境,此種操控方式則缺乏靈活性[7]。機(jī)器人的離線編程控制方式則基本上擺脫了示教盒的束縛,可以通過計(jì)算機(jī)上位機(jī)程序與機(jī)器人控制器進(jìn)行實(shí)時(shí)信息交互。機(jī)器人離線編程控制功能的配置條件為:在啟用上位機(jī)的控制程序前,需要先在示教盒上開啟離線使能功能、進(jìn)行遠(yuǎn)程IO配置和主作業(yè)的新建,并將上位機(jī)的網(wǎng)關(guān)設(shè)置為與控制柜在同一網(wǎng)段下,便可實(shí)現(xiàn)離線控制功能[8]。上位機(jī)機(jī)器人離線控制程序需要在Visual Studio環(huán)境下開發(fā),上位機(jī)程序的開發(fā)流程如圖2所示。
實(shí)現(xiàn)機(jī)器人末端TCP點(diǎn)的軌跡控制可利用單點(diǎn)直線型運(yùn)動(dòng)控制函數(shù)Movl_P2P_RPY加以實(shí)現(xiàn),采用的坐標(biāo)體系為RPY形式,函數(shù)的調(diào)用格式為:ROBOTSDK_API int Movl_P2P_RPY(RPY*rpy,float*exAxis,int Tool,float Speed,int ConnectID);其中RPY(in)表示位置變量結(jié)構(gòu)體,表示機(jī)器人末端TCP點(diǎn)相對(duì)世界坐標(biāo)系的坐標(biāo)(float px;float py;float pz;float rx;float ry;float rz),位置單位為mm,姿態(tài)單位為度;exAxis(in) 外部軸分量;Tool(in) 使用工具號(hào);Speed(in) 工具末端的執(zhí)行速度,單位:mm/s;ConnectID(in)網(wǎng)絡(luò)連接ID;返回值說明:若成功,返回 “0”,否則返回錯(cuò)誤碼。
圖2 離線編程上位機(jī)程序開發(fā)流程
機(jī)器人隨動(dòng)控制程序的實(shí)現(xiàn)平臺(tái)采用了Visual Studio開發(fā)環(huán)境,將運(yùn)動(dòng)捕獲傳感元件的人體操控位姿采集程序與機(jī)器人離線控制程序進(jìn)行高度融合。在程序界面需輸入與機(jī)器人端一致的IP地址和端口號(hào),點(diǎn)擊連接IP控制指令建立計(jì)算機(jī)與機(jī)器人端的UDP連接,如果狀態(tài)欄返回“連接成功”,則表明計(jì)算機(jī)和機(jī)器人可以進(jìn)行正常的數(shù)據(jù)通信。此時(shí)啟動(dòng)運(yùn)動(dòng)捕捉傳感器實(shí)時(shí)獲取到基于人體手勢(shì)控制的動(dòng)態(tài)位置與姿態(tài)信息,并進(jìn)行周期性提取發(fā)送至工業(yè)機(jī)器人的運(yùn)動(dòng)控制函數(shù),這樣便可運(yùn)用人體手勢(shì)實(shí)現(xiàn)對(duì)工業(yè)機(jī)器人末端TCP點(diǎn)的位置與姿態(tài)控制,如圖3所示。
圖3 基于運(yùn)動(dòng)捕捉傳感器的機(jī)器人隨動(dòng)控制程序流程
在試驗(yàn)之前,需要首先進(jìn)行運(yùn)動(dòng)追蹤捕捉套件的標(biāo)定,即將運(yùn)動(dòng)捕捉套件的發(fā)射器和傳感器擺放與同一平面內(nèi),并使二者中心連線方向與機(jī)器人世界坐標(biāo)系的X方向保持一致。接著通過計(jì)算機(jī)控制界面啟動(dòng)運(yùn)動(dòng)捕捉模式,手動(dòng)移動(dòng)運(yùn)動(dòng)追蹤器的傳感器隨意占據(jù)空間的5個(gè)位置點(diǎn),計(jì)算機(jī)采集程序按照2 s的采樣周期開始同步獲取運(yùn)動(dòng)捕捉傳感器的三維位置信息并將其乘以放大倍數(shù)10后發(fā)送至工業(yè)機(jī)器人的運(yùn)動(dòng)控制函數(shù),機(jī)器人便開始做跟隨運(yùn)動(dòng)。為了驗(yàn)證基于運(yùn)動(dòng)捕捉傳感器的機(jī)器人隨動(dòng)控制的準(zhǔn)確性,在程序中嵌入了機(jī)器人TCP點(diǎn)位置與姿態(tài)查詢函數(shù):ROBOTSDK_API int ReadPOSE_RPY,該函數(shù)的調(diào)用格式為:ROBOTSDK_API int ReadPOSE_RPY(RPY*rpy,float*exAxis,int ConnectID);圖4為運(yùn)動(dòng)捕捉套件中傳感器捕獲到的手勢(shì)位置信息放大10倍后與通過機(jī)器人TCP點(diǎn)位置與姿態(tài)查詢函數(shù)獲取到的位置數(shù)據(jù)的對(duì)比結(jié)果,二者之間擬合效果非常理想。
圖4 機(jī)器人隨動(dòng)控制的試驗(yàn)驗(yàn)證
在工業(yè)機(jī)器人的隨動(dòng)控制中,機(jī)器人運(yùn)動(dòng)控制函數(shù)中的參數(shù)數(shù)值來源于運(yùn)動(dòng)捕捉傳感器采集手勢(shì)動(dòng)作的位置與姿態(tài)信息。試驗(yàn)結(jié)果顯示工業(yè)機(jī)器人的末端TCP點(diǎn)可以按照人體的動(dòng)態(tài)手勢(shì)放大一定比例做出相應(yīng)的運(yùn)動(dòng)位置響應(yīng),機(jī)器人受控過程平穩(wěn)而準(zhǔn)確,為工業(yè)機(jī)器人的位姿隨動(dòng)控制提出了一種有效地解決方案。