張春芳,張傳俊,李艷華
(安徽工商職業(yè)學(xué)院 應(yīng)用工程學(xué)院 安徽 合肥 231131)
作為仿生人手的機(jī)器人,雙臂機(jī)器人在制造系統(tǒng)中的應(yīng)用使得制造系統(tǒng)的靈活性增加,這成了當(dāng)前全球研究的焦點(diǎn)[1-3].雙臂機(jī)器人在裝配工業(yè)的應(yīng)用不僅解決了單手臂機(jī)器人靈活性差、所需夾具復(fù)雜的缺點(diǎn),同時(shí)也節(jié)省了空間,極大地節(jié)省了工業(yè)成本.雙臂機(jī)器人裝配操作自動(dòng)化編程系統(tǒng)包括演示編程(PBD)和演示人機(jī)交互技術(shù)的指導(dǎo)性系統(tǒng)[4,5],該系統(tǒng)通過(guò)演示編程/學(xué)習(xí)(PBD/LBD)方法來(lái)獲得機(jī)器指令.
目前,許多的研究者結(jié)合PBD系統(tǒng)在人機(jī)交互方面做了很多工作,如利用AR技術(shù)計(jì)算機(jī)器人路徑時(shí)考慮工件真實(shí)數(shù)據(jù)和工藝限制.到目前為止,工業(yè)雙臂機(jī)器人還沒(méi)有包括特定的用戶(hù)友好編程方法和環(huán)境[6,7].機(jī)器人制造商通常根據(jù)主從臂的運(yùn)動(dòng)軌跡來(lái)實(shí)現(xiàn)協(xié)同運(yùn)動(dòng),實(shí)現(xiàn)更復(fù)雜操作的難點(diǎn)則集中在對(duì)雙臂機(jī)器人編程上.通常情況下,人類(lèi)對(duì)機(jī)器人進(jìn)行在線(xiàn)編程,同時(shí)部分研究者在使用離線(xiàn)編程工具來(lái)開(kāi)發(fā)用戶(hù)友好的編程框架方面也做了大量的工作.為了便捷機(jī)器人的操作,方便非專(zhuān)業(yè)人員使用,需要一個(gè)軟件框架來(lái)簡(jiǎn)化機(jī)器人編程,減少編程任務(wù)的復(fù)雜性和時(shí)間.以此為出發(fā)點(diǎn),本文介紹了雙臂機(jī)器人的控制,描述了編程概念的直觀(guān)接口,同時(shí)通過(guò)裝配案例的研究,提出一種用于雙臂機(jī)械手的編程框架.
類(lèi)人機(jī)器人的一個(gè)現(xiàn)實(shí)思想是模仿由兩個(gè)手臂執(zhí)行的簡(jiǎn)單動(dòng)作,就像人類(lèi)一樣[8].而類(lèi)似人類(lèi)雙手的任務(wù)有望簡(jiǎn)化雙臂機(jī)器人編程和監(jiān)控.對(duì)人雙手活動(dòng)時(shí)的復(fù)雜動(dòng)作進(jìn)行分解,同時(shí)和人機(jī)界面相結(jié)合,便于用雙臂進(jìn)一步編程復(fù)雜的裝配過(guò)程.這種分解通過(guò)同時(shí)定義操作順序簡(jiǎn)化編寫(xiě)復(fù)雜裝配任務(wù)所需的信息.該序列包括雙臂操作,每個(gè)操作的參數(shù),例如,開(kāi)始和目標(biāo)機(jī)器人位置,都從人機(jī)界面、語(yǔ)音命令和手勢(shì)獲取.
機(jī)器人編程語(yǔ)言分為:(1)面向動(dòng)畫(huà),具有通用編程程序,并專(zhuān)注于“如何完成”;(2)面向任務(wù),其重點(diǎn)是“做什么”而不是“如何做”.面向任務(wù)的編程與界面的開(kāi)發(fā)相關(guān)聯(lián),該類(lèi)語(yǔ)言有助于人類(lèi)將高級(jí)命令傳遞給一系列機(jī)器人的運(yùn)動(dòng)和動(dòng)作實(shí)施.以面向任務(wù)編程語(yǔ)言為基礎(chǔ)提出的框架基于多模式交互式編程技術(shù),可進(jìn)行更輕松、更可靠和更健壯的機(jī)器人編程,該方法包括3個(gè)模塊:機(jī)器人語(yǔ)言,人類(lèi)意圖識(shí)別和人類(lèi)語(yǔ)言.機(jī)器人語(yǔ)言包括用于雙手任務(wù)的高層雙臂機(jī)器人庫(kù),即用于支持雙臂運(yùn)動(dòng)控制;人類(lèi)意圖識(shí)別實(shí)現(xiàn)了公認(rèn)的人類(lèi)手勢(shì)和機(jī)器人語(yǔ)言命令之間的映射;人類(lèi)語(yǔ)言包括所有傳感器/接口和所選擇的交互方法,例如,手勢(shì)、語(yǔ)音命令和圖形用戶(hù)界面(GUI).
通過(guò)從傳感器或設(shè)備上獲取數(shù)據(jù),通過(guò)類(lèi)人行為實(shí)現(xiàn)人機(jī)交互.其中,用戶(hù)友好的界面最為重要,如移動(dòng)設(shè)備、個(gè)人電腦和觸摸屏上的應(yīng)用程序.如果以人為中心設(shè)計(jì)并可靠地實(shí)現(xiàn),就會(huì)被用戶(hù)廣泛接受.將用戶(hù)友好的界面與自然的交互手段相結(jié)合,例如,語(yǔ)音命令和身體手勢(shì),豐富了人類(lèi)對(duì)機(jī)器人編程的能力[9].
當(dāng)前使用的人機(jī)交互框架結(jié)構(gòu)是基于機(jī)器人操作系統(tǒng)中的ROS來(lái)建立不同模塊之間的通信.該人機(jī)交互編程框架由人角色和工業(yè)雙臂機(jī)器人組成.該系統(tǒng)使用Kinect Xbox進(jìn)行身體手勢(shì)識(shí)別,使用麥克風(fēng)捕捉口授命令.
雙臂機(jī)器人服務(wù)包括用于雙手操作的機(jī)器人庫(kù),使程序員能夠通過(guò)許多接口調(diào)用它.雙臂機(jī)器人功能包括:(1)人類(lèi)的意圖識(shí)別,為兩個(gè)機(jī)器人手臂編寫(xiě)一個(gè)接近運(yùn)動(dòng)的程序;(2)圖形用戶(hù)界面,用于提供完成機(jī)器人運(yùn)動(dòng)所需的信息.在這個(gè)直觀(guān)的編程框架中,使用骨骼跟蹤傳感器,通過(guò)人體姿態(tài)、手勢(shì)跟蹤器和語(yǔ)音命令識(shí)別器和機(jī)器人進(jìn)行交互,口頭命令和手勢(shì)的互換使用確保了系統(tǒng)具有更高的魯棒性.
此外,機(jī)器人交互界面通過(guò)提供關(guān)于特定組裝操作的信息對(duì)機(jī)器人進(jìn)行指令的所有命令的主要模塊,保證編程步驟的正確執(zhí)行.基于該體系結(jié)構(gòu),雙手臂機(jī)器人服務(wù)能夠通過(guò)TCP/IP通信協(xié)議,使用簡(jiǎn)單的“服務(wù)器”程序與機(jī)器人控制器進(jìn)行通信,以傳輸人類(lèi)命令.這個(gè)模塊的作用是雙重的.一方面,它負(fù)責(zé)將高層指令傳遞給機(jī)器人控制器,并將其轉(zhuǎn)化為機(jī)器人的實(shí)際動(dòng)作;另一方面,該模塊通過(guò)ROS與人工服務(wù)不斷通信.這種通信在人工服務(wù)控制循環(huán)中起著重要的作用,它通過(guò)命令確保編程過(guò)程的成功執(zhí)行.每一步的結(jié)果是將雙臂機(jī)器人的位置存儲(chǔ)在數(shù)據(jù)庫(kù)模塊中.
一般情況下,通過(guò)用戶(hù)友好的編程接口為機(jī)器人編程.當(dāng)選擇雙手模式手動(dòng)操作時(shí),自動(dòng)設(shè)置機(jī)器人狀態(tài)信息,即基礎(chǔ)幀、工具幀、用戶(hù)幀、協(xié)作運(yùn)動(dòng)等的選擇.命令序列由人工服務(wù)控制,通過(guò)基于ROS的體系結(jié)構(gòu)傳輸給機(jī)器人服務(wù),通過(guò)TCP/IP協(xié)議到達(dá)機(jī)器人控制器.在機(jī)器人控制器中運(yùn)行的服務(wù)器程序支持人機(jī)交互編程框架.
在機(jī)器人控制器和運(yùn)行在外部基于Linux的PC上的機(jī)器人服務(wù)之間打開(kāi)一個(gè)套接字.信息通過(guò)這個(gè)套接字交換,遵循從服務(wù)讀取信息的概念,在機(jī)器人控制器中執(zhí)行信息,并響應(yīng)執(zhí)行成功的服務(wù).系統(tǒng)通過(guò)if條件語(yǔ)句為不同的指令提供多個(gè)條件,比如,RECORD、ROTATE、UP、DOWN、RIGHT、LEFT.根據(jù)每一條指令,在笛卡爾坐標(biāo)系中機(jī)器人進(jìn)行平移和旋轉(zhuǎn)運(yùn)動(dòng),直至從人類(lèi)接到一個(gè)新的語(yǔ)音指令.
為了達(dá)到兩個(gè)6自由度工業(yè)機(jī)器人之間的協(xié)調(diào),編程必須實(shí)現(xiàn)接觸、非接觸、過(guò)渡的等對(duì)稱(chēng)任務(wù).工具機(jī)器人在連接到參考機(jī)器人的末端執(zhí)行器的板上寫(xiě)入3個(gè)字母“J”“O”和“Y”,其中“J”表示機(jī)器人基坐標(biāo)系,“O”表示實(shí)際工作環(huán)境中工件的坐標(biāo)系,“Y”表示仿真單元中工件坐標(biāo)系.
(1)相對(duì)位姿的期望軌跡:相對(duì)路徑[XR,YR,ZR]T的視圖如圖1所示.在XR-YR平面上寫(xiě)入3個(gè)字母的單詞“JOY”.在軸ZR方向上的位移被設(shè)定為超過(guò)書(shū)寫(xiě)板的位置,以便在寫(xiě)入期間保持接觸.相對(duì)位置的每個(gè)軌跡由27個(gè)字段(包括直線(xiàn)和曲線(xiàn))組成,每個(gè)字段由5階多項(xiàng)式軌跡數(shù)列[XR(t),YR(t),ZR(t)]T組成,其隨時(shí)間變化如圖2所示.在整個(gè)任務(wù)中(t=0~66 s),所需的姿態(tài)軌跡被設(shè)計(jì)成使右臂的末端執(zhí)行器保持垂直于連接到左臂的末端執(zhí)行器,這使得在ΣR中的滾動(dòng)俯仰-偏航角為[αR,βR,γR]T=[π,0,0]T.因此在該過(guò)程中僅需要XR的期望值,而不是每個(gè)末端執(zhí)行器的各個(gè)期望值.
圖1 期望軌跡視圖
圖2 期望軌跡
(2)期望的相對(duì)阻抗:在6自由度任務(wù)空間的約束方向ZR中,需要高阻尼和低剛度的柔順行為,這是為在接觸狀態(tài)和非接觸狀態(tài)之間執(zhí)行10次過(guò)渡以抵抗書(shū)寫(xiě)板的剛性.為了驗(yàn)證沿著ZR的控制能夠精確且穩(wěn)定地實(shí)現(xiàn)期望的相對(duì)阻抗,測(cè)試沿著ZR的3個(gè)過(guò)阻尼阻抗動(dòng)態(tài),阻尼比ζZR=4,5,6.對(duì)于其余的自由度,在臨界阻尼阻抗ζ=1時(shí),需要具有低阻尼和高剛度性的精確寫(xiě)入.對(duì)于每個(gè)過(guò)阻尼ζZR,設(shè)定所需相對(duì)質(zhì)量矩陣MRd、阻尼矩陣BRd和剛度矩陣KRd的對(duì)應(yīng)值.
本文提出的人機(jī)交互編程框架主要是應(yīng)用于裝配行業(yè)的組裝用例,其是從手工裝配線(xiàn)上挑選出來(lái)的,包含許多復(fù)雜幾何部件以及柔性部件.在這個(gè)單元中引入一個(gè)雙臂機(jī)器人.一方面,傳統(tǒng)手工組裝單元的自動(dòng)化嘗試是一個(gè)挑戰(zhàn);另一方面,選擇類(lèi)人機(jī)器人與處理需要有限空間和兩支手臂協(xié)同工作的任務(wù)有關(guān).
圖3 人體手勢(shì)圖和雙臂機(jī)器人向上移動(dòng)圖
使用所建議的過(guò)程編程的組裝步驟是將儀表板從加載庫(kù)放置到組裝庫(kù).從加載庫(kù)中提起導(dǎo)線(xiàn)是通過(guò)人工指令程序編程的第一個(gè)操作.首先,人類(lèi)使用錄音語(yǔ)音命令“要求”機(jī)器人記錄左手和右手的當(dāng)前位置.下一步,機(jī)器人沿著用戶(hù)幀的方向移動(dòng),如圖3所示.在這項(xiàng)工作中,用戶(hù)框架的定義是使用傳統(tǒng)的機(jī)械工具,機(jī)器人的運(yùn)動(dòng)是通過(guò)手勢(shì)跟蹤模塊來(lái)識(shí)別肢體動(dòng)作實(shí)現(xiàn)的.沿著X方向的移動(dòng)是使用定義向上的身體姿態(tài)完成的.同樣,在傳統(tǒng)的機(jī)器人編程中,當(dāng)人類(lèi)停止使用這個(gè)手勢(shì)時(shí),機(jī)器人的運(yùn)動(dòng)也會(huì)停止.然后是錄音語(yǔ)音命令,用于記錄雙臂的目標(biāo)位置.對(duì)于移動(dòng)操作,人類(lèi)可以通過(guò)編程使機(jī)器人通過(guò)旋轉(zhuǎn)操作旋轉(zhuǎn)軀干,通過(guò)接近操作接近裝配體位置.圖4展示了軀干在相應(yīng)框架的X方向上的旋轉(zhuǎn).圖5給出了相關(guān)的手勢(shì)和機(jī)器人向特定方向的運(yùn)動(dòng).
當(dāng)機(jī)器人沿著圖5所定義的+X軸移動(dòng)時(shí),人類(lèi)使用向下的手勢(shì)來(lái)執(zhí)行進(jìn)場(chǎng)操作.
圖4 人體右位手勢(shì)圖和雙臂機(jī)器人右轉(zhuǎn)移動(dòng)圖 圖5 人體向下手勢(shì)圖和雙臂機(jī)器人向下移動(dòng)圖
該編程框架采用任務(wù)分解方法,簡(jiǎn)化了雙臂機(jī)器人的編程.將傳統(tǒng)的編程過(guò)程與所提出的直觀(guān)程序進(jìn)行比較,可以減少編寫(xiě)機(jī)器人程序的步驟.這是由于基本幀、工具幀、用戶(hù)幀、手臂的選擇和協(xié)作運(yùn)動(dòng)的啟用/禁用都存儲(chǔ)在層次模型中.這意味著當(dāng)用戶(hù)選擇為相應(yīng)任務(wù)的操作編寫(xiě)程序時(shí),不需要再次定義應(yīng)該選擇哪個(gè)幀或手臂,這樣,面向任務(wù)的編程有助于簡(jiǎn)化編程過(guò)程.本文提出了一種直觀(guān)的雙臂機(jī)械手編程框架,該框架的優(yōu)點(diǎn)是:降低了編程復(fù)雜度,減少了步驟,允許非專(zhuān)家使用簡(jiǎn)單的手勢(shì)、語(yǔ)音命令和界面移動(dòng)機(jī)器人,易于管理信息,如幀和位置從機(jī)器人進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng).目前為止,該框架已經(jīng)實(shí)現(xiàn)了許多編程功能.