姚 鋼
(湖南網(wǎng)絡(luò)工程職業(yè)學(xué)院,湖南 長(zhǎng)沙 410004)
視覺(jué)引導(dǎo)技術(shù)是指利用攝像機(jī)代替人眼、計(jì)算機(jī)代替大腦[1],通過(guò)處理相機(jī)獲取的圖像對(duì)目標(biāo)物體進(jìn)行測(cè)量、檢測(cè)和識(shí)別,引導(dǎo)工業(yè)機(jī)器人完成拾取、分揀等任務(wù)[2]。實(shí)際應(yīng)用中,根據(jù)視覺(jué)系統(tǒng)(稱為眼)與工業(yè)機(jī)器人(稱為手)的位置關(guān)系,通常有Eye-to-Hand(眼在手外)和Eye-in-Hand(眼在手上)[3]兩種形式。工業(yè)生產(chǎn)中常見(jiàn)的工作方式是將兩種視覺(jué)引導(dǎo)方式與流水線作業(yè)相結(jié)合,為工業(yè)機(jī)器人的拾取作業(yè)提供實(shí)時(shí)引導(dǎo)。不同拾取方式下工業(yè)機(jī)器人作業(yè)的工藝過(guò)程有所差別,為合理設(shè)計(jì)規(guī)劃工業(yè)機(jī)器人程序和運(yùn)動(dòng)過(guò)程,通常使用仿真軟件進(jìn)行模擬,合理配置規(guī)劃生產(chǎn)資源,評(píng)價(jià)智能生產(chǎn)線的可行性及潛在問(wèn)題[4]。為此,本文采用RobotStudio機(jī)器人仿真軟件[5],以某矩形零件為例,以Eye-to-Hand和Eye-in-Hand兩種視覺(jué)引導(dǎo)方式對(duì)工業(yè)機(jī)器人零件拾取轉(zhuǎn)運(yùn)工作站進(jìn)行建模與仿真。
基于眼在手上視覺(jué)引導(dǎo)的工業(yè)機(jī)器人工作站通常實(shí)現(xiàn)零件的靜態(tài)拾取,其主要構(gòu)成如圖1所示。其中,工業(yè)機(jī)器人為ABB-IRB2600,相機(jī)與吸嘴工具共同安裝在機(jī)器人第六軸法蘭盤上,物料臺(tái)上放置零件。
1-工業(yè)機(jī)器人;2-相機(jī)與吸嘴工具;3-流水線;4-長(zhǎng)方體零件;5-物料臺(tái)
RobotStudio軟件中進(jìn)行生產(chǎn)過(guò)程仿真的實(shí)質(zhì)是使用Smart組件功能模塊將各類子對(duì)象組件按照工藝要求進(jìn)行邏輯關(guān)聯(lián),從而實(shí)現(xiàn)系統(tǒng)的整體功能。
1.2.1 零件沿流水線運(yùn)動(dòng)
通過(guò)Smart組件輸入信號(hào)Start來(lái)啟動(dòng)仿真系統(tǒng),使Random生成隨機(jī)數(shù),經(jīng)VectorConverter向量轉(zhuǎn)換后賦予Source生成隨機(jī)位姿的零件拷貝件,并放入隊(duì)列Queue,Queue與LinearMover直線運(yùn)動(dòng)綁定,實(shí)現(xiàn)隨機(jī)生成的拷貝件沿流水線直線運(yùn)動(dòng)。Smart組件I/O信號(hào)如表1所示。
表1 Smart組件I/O信號(hào)
1.2.2 零件到位停止
零件拷貝件運(yùn)動(dòng)中被平面?zhèn)鞲衅鱌laneSensor檢測(cè)到后停止,Smart組件向機(jī)器人發(fā)出信號(hào)Callrobot,觸發(fā)機(jī)器人啟動(dòng)。
1.2.3 相機(jī)拍照定位
通過(guò)PositionSensor子件對(duì)零件位置進(jìn)行監(jiān)控,獲取零件表面中心點(diǎn)與拍照點(diǎn)相對(duì)位置(Position)與角度(Orientation)差值。
拍照點(diǎn)與拾取點(diǎn)坐標(biāo)系如圖2所示,設(shè)置工作站機(jī)器人在拍照點(diǎn)P1坐標(biāo)系與零件無(wú)旋轉(zhuǎn)時(shí)表面中心點(diǎn)P2坐標(biāo)系方向一致,當(dāng)零件以隨機(jī)狀態(tài)到達(dá)拍照點(diǎn),通過(guò)PositionSensor子件即可獲取點(diǎn)P2相對(duì)于P1的位置與角度偏差。
圖2 拍照點(diǎn)與拾取點(diǎn)坐標(biāo)系 圖3 隨機(jī)零件位置情況及相對(duì)位置參數(shù) 圖4 RapidVariable子件數(shù)據(jù)傳送
圖3為隨機(jī)零件位置情況及相對(duì)位置參數(shù),在相應(yīng)的PositionSensor子件屬性中,Position參數(shù)中顯示X為44 mm、Y為0、Z為-155 mm,轉(zhuǎn)角(Orientation)為-64.51°,表征零件到位停止后中心點(diǎn)P2相對(duì)于拍照等待點(diǎn)P1在X正向偏離量為44 mm、Z負(fù)向偏離量為155 mm、繞Z軸負(fù)向旋轉(zhuǎn)了64.51°。
1.2.4 位置信息傳送至機(jī)器人
Smart組件中,RapidVariable子件的主要功能是設(shè)置或者獲得RAPID程序中的變量值,可用于模擬工作站將相機(jī)獲取的零件位置信息發(fā)送至機(jī)器人的控制過(guò)程。圖4為將隨機(jī)零件X偏移量值和旋轉(zhuǎn)數(shù)據(jù)rz通過(guò)RapidVariable子件向機(jī)器人程序變量進(jìn)行傳送的情況,其中Variable中X、rz是Rapid程序中的變量。
1.2.5 完成抓取放置動(dòng)作
機(jī)器人根據(jù)RapidVariable子件傳送的數(shù)據(jù)運(yùn)動(dòng),在到達(dá)抓取和放置位置時(shí)發(fā)出信號(hào),觸發(fā)Smart組件中的Attacher和Detacher動(dòng)作,實(shí)現(xiàn)隨機(jī)零件的準(zhǔn)確抓取和放置。
表2為Smart組件各子件按照工藝過(guò)程進(jìn)行邏輯連接的情況。
表2 Smart組件各子件的邏輯連接
1.3.1 目標(biāo)點(diǎn)設(shè)置
根據(jù)工藝過(guò)程,設(shè)置3個(gè)機(jī)器人運(yùn)行目標(biāo)點(diǎn),如圖5所示。其中,pHome為機(jī)器人作業(yè)開(kāi)始等待點(diǎn),pWait為機(jī)器人等待拍照點(diǎn),pTarget為零件最終放置的位置。實(shí)際上,機(jī)器人在運(yùn)行過(guò)程中還有零件拾取點(diǎn)、過(guò)渡點(diǎn)等關(guān)鍵點(diǎn),這些點(diǎn)位可通過(guò)RelTool等指令進(jìn)行偏移旋轉(zhuǎn)獲得。
圖5 機(jī)器人目標(biāo)點(diǎn)設(shè)置
1.3.2 I/O信號(hào)設(shè)置
仿真中機(jī)器人通過(guò)I/O信號(hào)與Smart組件關(guān)聯(lián),機(jī)器人信號(hào)共有3個(gè),見(jiàn)表3。
表3 機(jī)器人I/O信號(hào)
機(jī)器人I/O信號(hào)與Smart組件I/O信號(hào)通過(guò)RobotStudio仿真軟件中的工作站邏輯功能模塊進(jìn)行關(guān)聯(lián),對(duì)接關(guān)系如表4所示。
表4 機(jī)器人與Smart組件I/O信號(hào)對(duì)接關(guān)系
1.3.3 機(jī)器人程序編制
機(jī)器人實(shí)施零件拾取時(shí)要按照相機(jī)獲取的位置偏差數(shù)據(jù)調(diào)整工具的位姿,這就需要考慮機(jī)器人工具坐標(biāo)系與零件所在坐標(biāo)系之間的關(guān)系。
圖6為機(jī)器人工具坐標(biāo)系與拾取點(diǎn)坐標(biāo)系,機(jī)器人工具Tool_Eye_in_hand與零件之間X、Y、Z軸分別平行,X軸相差180°、Y軸方向一致、Z軸相差180°,工具與零件繞Z軸旋轉(zhuǎn)正方向相反,相應(yīng)的機(jī)器人程序語(yǔ)句如下:
圖6 機(jī)器人工具坐標(biāo)系與拾取點(diǎn)坐標(biāo)系
MoveJ RelTool(pWait,-x*1000,y*1000,-z*1000 Rz:=
-rz/pi*180), v2500, fine, Tool_Eye_in_ handWObj:=
Workobject_1;
程序語(yǔ)句中,設(shè)置num型變量x、y、z、rz用來(lái)接收相機(jī)獲取的X、Y、Z軸方向偏差以及繞Z軸的偏轉(zhuǎn)角度。根據(jù)前述分析的坐標(biāo)關(guān)系,程序中RelTool指令的x、z、rz值需要取負(fù)值。機(jī)器人主程序如下:
PROC main()
InitAll; !調(diào)用初始化程序,機(jī)器人復(fù)位
WHILE TRUE DO
PICK; !調(diào)用拾取零件程序
PUT; !調(diào)用放置零件程序
ENDWHILE
ENDPROC
PROC InitAll()
x:=0; !變量數(shù)據(jù)清零
y:=0; !變量數(shù)據(jù)清零
z:=0; !變量數(shù)據(jù)清零
rz:=0; !變量數(shù)據(jù)清零
Reset pick; !拾取信號(hào)復(fù)位
Reset put; !放置信號(hào)復(fù)位
MoveL pHome, v1000, z100, Tool_Eye_in_hand
WObj:=Workobject_1; !機(jī)器人返回HOME點(diǎn)ENDPROC
基于眼在手上視覺(jué)引導(dǎo)的工作站作業(yè)過(guò)程如圖7所示。由圖7可知,工作站機(jī)器人能夠準(zhǔn)確獲取隨機(jī)零件的位置及角度偏差,并依此引導(dǎo)機(jī)器人工具在零件中心進(jìn)行拾取,較好地模擬了基于眼在手上的視覺(jué)引導(dǎo)方式下機(jī)器人的作業(yè)過(guò)程。
圖7 基于眼在手上視覺(jué)引導(dǎo)的工作站作業(yè)過(guò)程
圖8為眼在手外視覺(jué)引導(dǎo)的仿真工作站。眼在手外視覺(jué)引導(dǎo)的工業(yè)機(jī)器人工作站與眼在手上視覺(jué)引導(dǎo)的工業(yè)機(jī)器人工作站相比較,整體布局、Smart組件構(gòu)成、機(jī)器人程序等大體相同,區(qū)別在于:①相機(jī)調(diào)整至流水線固定位置;②Smart組件中的傳感器調(diào)整至流水線相機(jī)位置,零件觸發(fā)傳感器后不停止運(yùn)動(dòng);③機(jī)器人實(shí)現(xiàn)零件動(dòng)態(tài)拾取。
圖8 眼在手外視覺(jué)引導(dǎo)的仿真工作站 圖9 拍照點(diǎn)隨機(jī)零件與拾取等待點(diǎn)位置關(guān)系
圖9為拍照點(diǎn)隨機(jī)零件與拾取等待點(diǎn)位置關(guān)系。當(dāng)傳感器檢測(cè)到零件到達(dá)拍照點(diǎn)時(shí)觸發(fā)相機(jī)拍照,獲取其與機(jī)器人拾取等待點(diǎn)的位置與姿態(tài)偏差,仿真系統(tǒng)通過(guò)Smart組件的PositionSensor子件獲取拍照點(diǎn)隨機(jī)零件中心點(diǎn)P2與機(jī)器人等待點(diǎn)P1的相對(duì)位置(Position)及角度(Orientation)差值,相對(duì)位置偏差分別為ΔX、ΔY和ΔZ。設(shè)流水線速度為v1,機(jī)器人速度為v2,則有:
t1=ΔY/v1.
(1)
(2)
Δt=t1-t2.
(3)
其中:t1為零件從拍照點(diǎn)運(yùn)行至機(jī)器人等待點(diǎn)的時(shí)間;t2為吸嘴工具從等待點(diǎn)運(yùn)行到等待點(diǎn)位置所用時(shí)間;Δt為拍照后機(jī)器人等待啟動(dòng)的時(shí)間間隔,即零件觸發(fā)傳感器拍照后經(jīng)Δt機(jī)器人開(kāi)始運(yùn)動(dòng)去拾取零件。
機(jī)器人程序結(jié)構(gòu)與前述基本相同,下面簡(jiǎn)要說(shuō)明動(dòng)態(tài)拾取Pick子程序:
PROC Pick()
MoveL Pwait,v2500,z100, Tool_Eye_to_handWObj:=Workobject_1;
!機(jī)器人移至等待點(diǎn)
WaitDI start,1; !機(jī)器人啟動(dòng)
t2:= Sqrt(Pow(x,2)+ Pow(z,2))/2.5; !計(jì)算時(shí)間t2
WaitTime 0.5; !等待0.5 s
t1:= y/0.2; !計(jì)算時(shí)間t1
WaitTime 0.5; !等待0.5 s
t:=t1-t2-1; !計(jì)算機(jī)器人啟動(dòng)時(shí)間t
WaitTime t; !機(jī)器人等待時(shí)間t
MoveJ reltool(Pwait,x*1000,y*1000,-z*1000Rz:=-
zj/pi*180),v2500,fine, Tool_Eye_to_handWObj:=Workobject_1;
!機(jī)器人移動(dòng)至拾取點(diǎn)
WaitTime 0.1;
Set pick;
WaitTime 0.1;
Reset pick;
MoveJ reltool(Pwait,x*1000,y*1000, 0Rz:=-zj/pi*180),v2500,fine,
Tool_Eye_to_handWObj:=Workobject_1;
!機(jī)器人移動(dòng)拾取點(diǎn)上方
ENDPROC
基于眼在手外視覺(jué)引導(dǎo)的工作站作業(yè)過(guò)程如圖10所示。由圖10可知,工作站機(jī)器人能夠模擬零件動(dòng)態(tài)拾取過(guò)程,動(dòng)態(tài)拾取方案可行。
圖10 基于眼在手外視覺(jué)引導(dǎo)的工作站作業(yè)過(guò)程
基于視覺(jué)引導(dǎo)的零件拾取作業(yè)是工業(yè)生產(chǎn)各領(lǐng)域進(jìn)一步提升作業(yè)效率和精度的重要途徑,本文依托RobotStudio仿真軟件較為詳細(xì)地闡述了眼在手上與眼在手外兩種視覺(jué)引導(dǎo)方式下零件靜態(tài)與動(dòng)態(tài)拾取作業(yè)的仿真工作站方案,仿真運(yùn)行顯示兩個(gè)工作站均能較好地反映相應(yīng)作業(yè)過(guò)程、實(shí)現(xiàn)作業(yè)要求,為工程應(yīng)用中相關(guān)作業(yè)工藝工程規(guī)劃及機(jī)器人設(shè)置提供了有益的參考。