湯 旸, 楊光友,2,王焱清,2
(1 湖北工業(yè)大學(xué)農(nóng)機(jī)工程研究設(shè)計(jì)院, 湖北 武漢 430068;2 湖北省農(nóng)機(jī)裝備智能化工程技術(shù)研究中心, 湖北 武漢 430068)
國(guó)內(nèi)外對(duì)于果蔬機(jī)械采摘進(jìn)行了許多研究,并取得了一系列研究成果[1-7]。從這些研究成果可知,由于機(jī)械臂的擬人特性能夠?qū)崿F(xiàn)幾乎所有的抓取作業(yè),同時(shí)還能夠適應(yīng)諸如灰塵、農(nóng)藥等惡劣環(huán)境,因此采摘機(jī)械普遍采用機(jī)械臂作為執(zhí)行機(jī)構(gòu)移動(dòng)裝置。如熊俊濤等[8]在其設(shè)計(jì)的多類型水果采摘機(jī)器人中采用了四自由度關(guān)節(jié)機(jī)械臂;Onishi等[9]在其設(shè)計(jì)的自動(dòng)化水果收獲機(jī)器人中采用了六自由度的UR3機(jī)械臂;尹吉才[10]為其設(shè)計(jì)的蘋(píng)果采摘機(jī)器人設(shè)計(jì)了一個(gè)六自由度關(guān)節(jié)機(jī)械臂。然而只有機(jī)械臂還無(wú)法執(zhí)行采摘作業(yè),還需要末端執(zhí)行器來(lái)配合機(jī)械臂共同完成果蔬采摘。柔性執(zhí)行器作為一種末端執(zhí)行器具有一定的彈性形變能力,能夠降低對(duì)采摘對(duì)象造成的損傷,因而受到了研究者的廣泛關(guān)注[11-15]。如鮑官軍等[16]設(shè)計(jì)了一種由3個(gè)作為手指部分的氣動(dòng)柔性彎曲關(guān)節(jié)和一個(gè)作為腕部的氣動(dòng)柔性扭轉(zhuǎn)關(guān)節(jié)組成的柔性末端執(zhí)行器;盧偉等[17]設(shè)計(jì)了一種三指四指節(jié)的柔性手爪,用于褐菇的無(wú)損采摘。本文面向柑橘采摘,基于機(jī)械臂和柔性手爪所組成的采摘機(jī)械手平臺(tái),研究了機(jī)械手控制程序的設(shè)計(jì)。
如圖1所示,采摘硬件平臺(tái)由機(jī)械臂、機(jī)械臂控制器、柔性手爪、手爪控制器、視覺(jué)裝置以及上位機(jī)組成。在柑橘采摘作業(yè)中,視覺(jué)裝置根據(jù)Intel RealSense R200深度相機(jī)提供的實(shí)時(shí)彩色圖像和包含場(chǎng)景深度信息的深度圖像,獲取柑橘的位置信息,機(jī)械臂帶動(dòng)末端執(zhí)行器到達(dá)指定的柑橘位置,柔性手爪與柑橘直接接觸抓取柑橘,并使其與果梗分離實(shí)現(xiàn)采摘。上位機(jī)在其中負(fù)責(zé)控制、監(jiān)測(cè)上述硬件平臺(tái)設(shè)備。

圖1 采摘平臺(tái)硬件組成
上位機(jī)采用硬件為NVIDIA GTX950M 2G DDR3獨(dú)立顯卡、Intel Core i5-4210M雙核處理器、4GB DDR3L內(nèi)存,系統(tǒng)為Windows10系統(tǒng)的神舟K650D-I5 D3筆記本電腦。
采摘機(jī)械臂采用Denso VS-6556G六關(guān)節(jié)機(jī)械臂(圖2a),各項(xiàng)技術(shù)參數(shù)如表1所示。

表1 機(jī)械臂技術(shù)參數(shù)

圖2 機(jī)械臂及其控制器
機(jī)械臂控制器為Denso RC7M控制器如圖2b所示,控制器系統(tǒng)版本為2.330,接線情況如圖2c所示,通過(guò)以太網(wǎng)與上位機(jī)進(jìn)行連接、數(shù)據(jù)通信。機(jī)械臂控制器的主要功能是根據(jù)上位機(jī)的控制程序驅(qū)動(dòng)機(jī)械臂。
柔性手爪如圖3a所示,三根通過(guò)柔性材料制成的手指間隔120°分布在圓周底座上。由于內(nèi)部氣囊結(jié)構(gòu)和外部氣動(dòng)網(wǎng)格結(jié)構(gòu),手指會(huì)根據(jù)氣壓的變化發(fā)生彎曲,而正負(fù)氣壓能改變手指的彎曲方向,因此采用氣壓驅(qū)動(dòng)的方式控制柔性手爪的張開(kāi)、閉合動(dòng)作。柔性手爪具有一定的彈性形變能力且手指表面比較粗糙,作為末端執(zhí)行器能夠有效降低采摘過(guò)程對(duì)采摘對(duì)象造成的損傷,提高采摘的容錯(cuò)誤差,同時(shí)能讓抓取也更加牢固。

圖3 柔性手爪及其控制器
柔性手爪控制器如圖3b所示,控制器由Arduino控制板、驅(qū)動(dòng)元件和氣壓回路組成,接線如圖3c所示。通過(guò)USB串口與上位機(jī)進(jìn)行連接、數(shù)據(jù)通信。手爪控制器的主要功能是根據(jù)上位機(jī)的控制程序調(diào)節(jié)回路的氣壓,切換回路的正壓、負(fù)壓工況,從而控制手爪的張開(kāi)、閉合動(dòng)作。
采摘控制程序的主要功能是根據(jù)獲取到的柑橘位置信息,控制機(jī)械臂運(yùn)動(dòng)到指定位置,配合柔性手爪的抓取動(dòng)作,協(xié)作執(zhí)行果梗分離動(dòng)作,完成柑橘采摘,并將采摘后的柑橘放置到指定位置。
機(jī)械臂控制程序由通信功能模塊和運(yùn)動(dòng)控制功能模塊組成。在程序的實(shí)現(xiàn)過(guò)程中,采用Denso的ORIN2軟件開(kāi)發(fā)工具包,ORIN2提供了CAO應(yīng)用程序編程接口和NetwoRC設(shè)備驅(qū)動(dòng)組件,其中NetwoRC是專門(mén)用于RC7M控制器的通信、驅(qū)動(dòng)組件,與CAO所提供的編程接口結(jié)合,能夠?qū)C(jī)械臂進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)上位機(jī)與機(jī)械臂控制器的數(shù)據(jù)通信以及對(duì)機(jī)械臂的控制功能。
2.1.1通信功能模塊通信功能模塊用于實(shí)現(xiàn)上位機(jī)與機(jī)械臂控制器之間的數(shù)據(jù)通信,其中用到了NetwoRC提供的ROBOTalk通信包。該通信包提供了2種與機(jī)械臂控制器通信的方式,分別為RS232串口通信和以太網(wǎng)通信。這里采用以太網(wǎng)通信。
上位機(jī)與機(jī)械臂控制器通過(guò)創(chuàng)建的ArmConn()函數(shù)實(shí)現(xiàn)通信連接,具體實(shí)現(xiàn)方式如圖4所示。

圖4 ArmConn()程序流程
上位機(jī)與機(jī)械臂控制器之間通過(guò)傳遞變量的形式進(jìn)行數(shù)據(jù)通信,而變量又以位姿變量和狀態(tài)變量為主。位姿變量包含機(jī)械臂在空間中的位置和姿態(tài)等信息,可以分為P型變量和J型變量。P型變量的值對(duì)應(yīng)機(jī)械臂末端的位置和姿態(tài),變量形式為P(X,Y,Z,RX,RY,RZ,FIG)。其中:X、Y、Z表示機(jī)械臂末端位置,RX、RY、RZ表示機(jī)械臂末端姿態(tài),FIG是機(jī)械臂的關(guān)節(jié)形態(tài)。J型變量的值對(duì)應(yīng)機(jī)械臂各關(guān)節(jié)的角度,變量形式為J(J1,J2,J3,J4,J5,J6)。狀態(tài)變量包含機(jī)械臂的工作狀態(tài)等信息,比如@BUSY_STATUS的值對(duì)應(yīng)機(jī)械臂的工作狀態(tài),@CURRENT_POSITION的值對(duì)應(yīng)機(jī)械臂當(dāng)前的末端位姿。
上位機(jī)與控制器之間通過(guò)創(chuàng)建的ArmGetVar()和ArmSaveVar()函數(shù)傳遞位姿變量。其中,ArmGetVar()用于讀取機(jī)械臂控制器中的位姿變量,ArmSaveVar()用于將位姿變量存入機(jī)械臂控制器。ArmGetVar()通過(guò)pICtrl->AddVariable(VarName, “”, &pIVar)創(chuàng)建位姿變量名為VarName的CaoVariable類pIVar對(duì)象,最后通過(guò)pIVar->get_Value(&Value)讀取到指定變量的值。ArmSaveVar()則在創(chuàng)建位姿變量名為VarName的pIVar對(duì)象后,通過(guò)pIVar->put_Value(&Value)將值存入到指定變量中。
上位機(jī)通過(guò)創(chuàng)建的ArmStatusMonitor()函數(shù)從控制器中獲取當(dāng)前的機(jī)械臂狀態(tài)變量,實(shí)現(xiàn)機(jī)械臂狀態(tài)監(jiān)測(cè)功能。ArmStatusMonitor()通過(guò)pIRobot->AddVariable(VarName, “”, &pIVar)創(chuàng)建狀態(tài)變量名為VarName的pIVar對(duì)象,最后通過(guò)pIVar->get_Value(&Value)讀取到指定變量的值。
2.1.2運(yùn)動(dòng)控制功能模塊上位機(jī)通過(guò)創(chuàng)建的ArmMove()函數(shù)向機(jī)械臂控制器發(fā)送控制指令,控制機(jī)械臂運(yùn)動(dòng)到指定位姿,具體實(shí)現(xiàn)方式如圖5所示。

圖5 ArmMove()程序流程
其他機(jī)械臂運(yùn)動(dòng)控制函數(shù)如ArmGoHome()函數(shù)用于控制機(jī)械臂返回初始位姿,通過(guò)向ArmMove()中的vntPose輸入機(jī)械臂的初始位姿實(shí)現(xiàn),ArmStop()函數(shù)用于中止機(jī)械臂運(yùn)動(dòng),通過(guò)調(diào)用Halt(“”)函數(shù)實(shí)現(xiàn),ArmRotate()函數(shù)用于控制機(jī)械臂某關(guān)節(jié)旋轉(zhuǎn),ArmApproach()函數(shù)用于控制機(jī)械臂沿X、Y、Z軸方向接近等等。
機(jī)械臂控制器中包含NetwoRC提供的PAC驅(qū)動(dòng)程序RobSlave。RobSlave在運(yùn)行狀態(tài)下能根據(jù)上位機(jī)發(fā)送的控制指令,執(zhí)行對(duì)應(yīng)的PAC程序控制機(jī)械臂運(yùn)動(dòng),PAC為Denso機(jī)械臂所使用的控制編程語(yǔ)言,因此創(chuàng)建的機(jī)械臂運(yùn)動(dòng)控制函數(shù)都需要調(diào)用IsRobSlaveRunning()函數(shù)來(lái)判斷機(jī)械臂控制器中的RobSlave是否運(yùn)行。
柔性手爪控制程序由通信功能模塊和手爪動(dòng)作控制功能模塊組成,除上位機(jī)程序以外,還包括手爪控制器的Arduino程序。在程序的實(shí)現(xiàn)過(guò)程中,通過(guò)SerialPort串口通信工具包,實(shí)現(xiàn)上位機(jī)與手爪控制器中Arduino的USB串口通信。上位機(jī)程序主要用于發(fā)送控制指令和監(jiān)測(cè)手爪控制器,而Arduino程序則負(fù)責(zé)監(jiān)測(cè)引腳以及通過(guò)引腳控制各氣壓回路元件,在程序的協(xié)作下共同實(shí)現(xiàn)柔性手爪的動(dòng)作控制功能。
2.2.1通信功能模塊上位機(jī)與手爪控制器通過(guò)在上位機(jī)程序中創(chuàng)建的GripperConn()函數(shù)和在Arduino程序中創(chuàng)建的Setup()函數(shù)實(shí)現(xiàn)數(shù)據(jù)通信。GripperConn()通過(guò)調(diào)用InitPort(COM3, 9600, NONE, 8, 1)初始化串口程序,然后通過(guò)StartMonitoring()啟動(dòng)串口,其中COM3為串口號(hào)、9600為波特率、NONE為檢驗(yàn)位、8為數(shù)據(jù)位、1為停止位。Setup()通過(guò)調(diào)用Serial.begin(9600)與上位機(jī)建立串口通信連接,其中9600為波特率與上位機(jī)程序的波特率對(duì)應(yīng)。
手爪控制器通過(guò)在Arduino程序中創(chuàng)建的ReceiveData()函數(shù)接收上位機(jī)發(fā)送的信息。ReceiveData()通過(guò)Serial.available()判斷串口的連接狀態(tài),通過(guò)Serial.read()進(jìn)行單字節(jié)信息的讀取,每4個(gè)字節(jié)就將信息存入到data[4]字符數(shù)組中,data[4]即為接收到的上位機(jī)信息。
2.2.2動(dòng)作控制功能模塊
上位機(jī)信息以控制指令為主,通過(guò)在上位機(jī)程序中創(chuàng)建的GripperOpen()和GripperClose()函數(shù)發(fā)送控制指令,控制柔性手爪動(dòng)作。其中,GripperOpen()控制手爪張開(kāi),GripperClose()控制手爪閉合。GripperOpen()通過(guò)調(diào)用WriteToPort(data)向手爪控制器發(fā)送手爪張開(kāi)指令,GripperClose()通過(guò)調(diào)用WriteToPort(data)向手爪控制器發(fā)送手爪閉合指令,其中data即為控制指令,指令內(nèi)容如表2所示。根據(jù)接收到的控制指令,手爪控制器通過(guò)在Arduino程序中創(chuàng)建的GripperAction()函數(shù)控制柔性手爪的張開(kāi)和閉合動(dòng)作,具體實(shí)現(xiàn)方式如圖6所示。

表2 控制指令

圖6 GripperAction()程序流程
機(jī)械手柑橘采摘流程如圖7所示。

圖7 采摘流程
根據(jù)柑橘采摘流程,基于機(jī)械臂和柔性手爪的控制程序進(jìn)行機(jī)械手采摘程序設(shè)計(jì)。
2.3.1軌跡規(guī)劃軌跡規(guī)劃功能的主要目的就是根據(jù)采摘點(diǎn)的位置信息,計(jì)算出機(jī)械臂在采摘過(guò)程中所要經(jīng)過(guò)的軌跡位姿點(diǎn),通過(guò)創(chuàng)建的TrajectoriesPlanning()函數(shù)實(shí)現(xiàn)。
考慮到機(jī)械手的果梗分離動(dòng)作、采摘過(guò)程中的枝葉干涉以及采摘對(duì)象的放置,分別根據(jù)計(jì)算結(jié)果預(yù)設(shè)5個(gè)關(guān)鍵的位姿點(diǎn)。第一個(gè)點(diǎn)為采摘準(zhǔn)備點(diǎn),位于柑橘正前方一定距離的位置;第二個(gè)點(diǎn)為采摘點(diǎn),即柑橘的位置點(diǎn);第三個(gè)點(diǎn)為采摘完成點(diǎn),位于采摘點(diǎn)前方和下方一定距離的位置,同時(shí)這個(gè)點(diǎn)還是采摘?jiǎng)幼髦蠵42的X,Y,Z的值;第四個(gè)點(diǎn)為采摘放置點(diǎn),用于放置采摘的柑橘,放置點(diǎn)的位置取決于收集筐的位置;第五個(gè)點(diǎn)為放置完成點(diǎn),用于確保放置完成,在離放置點(diǎn)正上方一定距離的位置,最后將這5個(gè)位姿點(diǎn)分別存放到機(jī)械臂控制器的P40、P41、P42、P43和P44變量中。
2.3.2機(jī)械手果梗分離動(dòng)作控制由于末端執(zhí)行器采用柔性手爪,因此機(jī)械臂將在手爪抓取到柑橘后,通過(guò)分別旋轉(zhuǎn)第4個(gè)和第六個(gè)關(guān)節(jié)180°扭動(dòng)柑橘,同時(shí)向后移動(dòng)拉扯柑橘的方式,分離柑橘和果梗。為實(shí)現(xiàn)此功能,創(chuàng)建了ArmPickAction()函數(shù)。
ArmPickAction()通過(guò)調(diào)用GripperClose()控制柔性手爪閉合抓取柑橘,再調(diào)用ArmMove(1L, “@E P42”, “”)控制機(jī)械臂完成扭動(dòng)、彎折、拉扯柑橘果梗的動(dòng)作。其中P42的X,Y,Z取決于采摘完成點(diǎn)的位置,而RX,RY,RZ則通過(guò)計(jì)算機(jī)械臂關(guān)節(jié)旋轉(zhuǎn)的姿態(tài)變化獲得,FIG取1。
2.3.3采摘程序?qū)崿F(xiàn)機(jī)械手的采摘程序通過(guò)創(chuàng)建ArmPick()函數(shù)實(shí)現(xiàn),具體實(shí)現(xiàn)方式如圖8所示。

圖8 ArmPick()程序流程
為了驗(yàn)證本文所設(shè)計(jì)的機(jī)械臂控制程序、柔性手爪控制程序以及機(jī)械手采摘程序的可行性,編寫(xiě)了測(cè)試程序界面。
測(cè)試程序界面采用MFC微軟基礎(chǔ)類庫(kù)提供的界面控件和應(yīng)用程序編程接口(圖9),按照功能可以劃分為柔性手爪功能區(qū)域、機(jī)械臂功能區(qū)域、消息區(qū)域以及采摘功能區(qū)域。

圖9 測(cè)試程序界面
柔性手爪功能區(qū)域?qū)?yīng)圖9的區(qū)域1方框。區(qū)域內(nèi)包括串口通信參數(shù)的輸入框、柔性手爪的通信連接與斷開(kāi)按鈕、柔性手爪的張開(kāi)和閉合動(dòng)作控制按鈕、動(dòng)作控制指令的輸入框與發(fā)送指令按鈕;機(jī)械臂功能區(qū)域?qū)?yīng)圖9的區(qū)域2方框,區(qū)域內(nèi)包括機(jī)械臂控制器IP地址的輸入框、機(jī)械臂的通信連接與斷開(kāi)按鈕、機(jī)械臂當(dāng)前工作狀態(tài)與位姿顯示框、機(jī)械臂狀態(tài)監(jiān)測(cè)功能按鈕、機(jī)械臂運(yùn)動(dòng)方式和運(yùn)動(dòng)目標(biāo)位姿變量的輸入框、機(jī)械臂運(yùn)動(dòng)與急停控制按鈕、位姿變量的輸入框、位姿變量保存與讀取按鈕;消息區(qū)域?qū)?yīng)圖9的區(qū)域3方框,區(qū)域內(nèi)包括采摘程序運(yùn)行狀態(tài)等數(shù)據(jù)信息的顯示框;采摘功能區(qū)域?qū)?yīng)圖9的區(qū)域4方框,區(qū)域內(nèi)包括機(jī)械手復(fù)位、采摘和停止采摘控制按鈕。
在實(shí)驗(yàn)室環(huán)境下,以所布置的仿真柑橘樹(shù)上的柑橘作為采摘對(duì)象,以采摘平臺(tái)及其各項(xiàng)控制程序作為測(cè)試對(duì)象。
3.2.1測(cè)試前準(zhǔn)備工作柔性手爪的工作參數(shù)設(shè)置,通過(guò)上位機(jī)測(cè)試程序界面將柔性手爪氣壓回路中的氣壓值設(shè)置為柔性手爪的最大承載氣壓100 kPa;上位機(jī)與機(jī)械臂通信設(shè)置,打開(kāi)機(jī)械臂控制器,通過(guò)小型示教器將通信方式設(shè)置為以太網(wǎng),通信權(quán)限設(shè)置為允許讀寫(xiě),啟動(dòng)模式設(shè)置為外部啟動(dòng)模式;機(jī)械臂的其他設(shè)置,通過(guò)小型示教器將機(jī)械臂的速度值設(shè)置為36%,并以循環(huán)運(yùn)行的方式運(yùn)行機(jī)械臂控制器中的RobSlave程序。
3.2.2程序測(cè)試
1)機(jī)械臂控制程序測(cè)試試驗(yàn)。通過(guò)上位機(jī)測(cè)試程序界面輸入機(jī)械臂控制器的IP地址192.168.0.2,再通過(guò)連接功能按鈕啟動(dòng)通信模塊程序建立與機(jī)械臂的數(shù)據(jù)通信連接,將P型的機(jī)械臂末端位姿坐標(biāo)變量P(312,-197.62,463.34,90,30,90,1)和J型的機(jī)械臂各關(guān)節(jié)角度變量J(30,60,90,15,90,45)分別傳遞并保存到機(jī)械臂控制器中,選擇機(jī)械臂的運(yùn)動(dòng)插補(bǔ)方式為曲線插補(bǔ)運(yùn)動(dòng),選擇機(jī)械臂的運(yùn)動(dòng)目標(biāo)位姿變量為已經(jīng)存入控制器中的P型和J型變量,最后通過(guò)運(yùn)動(dòng)控制功能按鈕啟動(dòng)運(yùn)動(dòng)控制程序,控制機(jī)械臂從初始位姿運(yùn)動(dòng)到指定位姿。
2)柔性手爪控制程序測(cè)試試驗(yàn)。通過(guò)上位機(jī)測(cè)試程序界面輸入串口號(hào)COM3、波特率9600、檢驗(yàn)位NONE、數(shù)據(jù)位8、停止位1,再通過(guò)連接功能按鈕啟動(dòng)通信模塊程序與手爪控制器建立數(shù)據(jù)通信連接,通過(guò)動(dòng)作控制功能按鈕啟動(dòng)控制程序,控制柔性手爪執(zhí)行張開(kāi)、閉合動(dòng)作。
3)機(jī)械手柑橘采摘試驗(yàn)。在已經(jīng)與機(jī)械臂和柔性手爪建立通信連接的情況下,根據(jù)獲得的柑橘位置信息,通過(guò)采摘功能按鈕啟動(dòng)機(jī)械手采摘控制程序,為機(jī)械手的采摘軌跡進(jìn)行規(guī)劃后,控制機(jī)械手按照軌跡運(yùn)動(dòng)到柑橘采摘點(diǎn),柔性手爪同步抓取柑橘,執(zhí)行柑橘與果梗的分離動(dòng)作,并最終將采摘后的柑橘放置到指定位置,完成柑橘采摘。
4)測(cè)試結(jié)果。如圖10所示,圖10a為機(jī)械臂的初始位姿,10b、10c為機(jī)械臂控制程序的測(cè)試結(jié)果,圖10d、10e為柔性手爪控制程序的測(cè)試結(jié)果,圖10f、10g、10h、10i、10j為機(jī)械手采摘控制程序的測(cè)試結(jié)果。
3.2.3試驗(yàn)結(jié)果分析分析整個(gè)驗(yàn)證試驗(yàn),影響機(jī)械手采摘作業(yè)的因素主要有4個(gè)。
1)柔性手爪內(nèi)部的氣壓值,測(cè)試過(guò)程中設(shè)置為100 kPa。氣壓值過(guò)大導(dǎo)致超出手爪的氣壓承載能力,損壞柔性手爪;氣壓值過(guò)小導(dǎo)致手爪無(wú)法提供足夠大的抓取力,無(wú)法抓牢柑橘,從而導(dǎo)致在果梗分離或放置的過(guò)程中柑橘脫落,導(dǎo)致采摘失敗。
2)機(jī)械臂的運(yùn)動(dòng)速度,測(cè)試過(guò)程中設(shè)置為36%。運(yùn)動(dòng)速度過(guò)慢增加機(jī)械臂在運(yùn)動(dòng)過(guò)程中所消耗的時(shí)間,減慢采摘速度;運(yùn)動(dòng)速度過(guò)快導(dǎo)致人員發(fā)生危險(xiǎn),測(cè)試材料發(fā)生損壞。
3)采摘軌跡規(guī)劃功能程序,測(cè)試過(guò)程中規(guī)劃了5個(gè)關(guān)鍵位姿點(diǎn)。位姿點(diǎn)過(guò)少無(wú)法滿足機(jī)械手在采摘過(guò)程中所要執(zhí)行的必要?jiǎng)幼?導(dǎo)致機(jī)械手沿采摘軌跡運(yùn)動(dòng)時(shí)與柑橘及周?chē)闹Ω伞⑷~片發(fā)生擦碰,柑橘相對(duì)于采摘點(diǎn)發(fā)生位移,使手爪抓取不到柑橘,最終采摘失敗,或是機(jī)械手、柑橘樹(shù)、其他柑橘的損傷,位姿點(diǎn)過(guò)多,機(jī)械臂在運(yùn)動(dòng)過(guò)程中所消耗的時(shí)間增加,減慢采摘速度。
4)分離動(dòng)作控制功能程序,測(cè)試過(guò)程中控制機(jī)械手的第四、六關(guān)節(jié)同方向各旋轉(zhuǎn)180°旋扭柑橘果梗,同時(shí)控制機(jī)械手向后拉扯柑橘果梗,180°的旋轉(zhuǎn)角度和只有旋扭、拉扯兩個(gè)部分的果梗分離動(dòng)作不會(huì)因?yàn)樾D(zhuǎn)角度過(guò)大、動(dòng)作過(guò)多增加果梗分離消耗的時(shí)間,減慢采摘速度,又不會(huì)因?yàn)樾D(zhuǎn)角度過(guò)小、動(dòng)作過(guò)少導(dǎo)致無(wú)法分離柑橘和果梗,導(dǎo)致采摘失敗。
本文以Denso VS-6556G六關(guān)節(jié)機(jī)械臂作為采摘機(jī)械臂、氣動(dòng)柔性手爪作為末端執(zhí)行器組成了采摘機(jī)械手平臺(tái),研究了機(jī)械手柑橘采摘的控制程序設(shè)計(jì),并基于測(cè)試程序界面進(jìn)行了控制程序測(cè)試試驗(yàn)和柑橘采摘試驗(yàn),驗(yàn)證了機(jī)械臂運(yùn)動(dòng)控制程序和柔性手爪動(dòng)作控制程序,以及根據(jù)已知的柑橘位置信息,規(guī)劃采摘軌跡,控制機(jī)械手運(yùn)動(dòng)到采摘位置抓取柑橘,成功實(shí)現(xiàn)柑橘與果梗的分離,并將其帶到指定的位置進(jìn)行放置的可行性,對(duì)水果采摘機(jī)器人的控制程序設(shè)計(jì)具有參考價(jià)值。