摘要:“職教20條”下,“1+X”工業(yè)機(jī)器人應(yīng)用編程職業(yè)技能等級(jí)證書(shū)要求對(duì)職業(yè)技能等級(jí)標(biāo)準(zhǔn)內(nèi)容與課程進(jìn)行高度融合。本文以“漢諾塔”游戲?yàn)槔?,用華數(shù)Ⅱ型HSR-JR605工業(yè)機(jī)器人通過(guò)算法實(shí)現(xiàn)示教點(diǎn)位及搬運(yùn)碼垛路徑的優(yōu)化,在游戲中學(xué)會(huì)解決搬運(yùn)碼垛典型工作任務(wù)的方法,提高應(yīng)用編程技巧,為“1+X”工業(yè)機(jī)器人應(yīng)用編程“課證融合”的開(kāi)發(fā)提供思路,為工業(yè)機(jī)器人應(yīng)用編程職業(yè)技能等級(jí)證書(shū)考取奠定基礎(chǔ)。
關(guān)鍵詞:1+X;應(yīng)用編程;典型任務(wù)
0? 引言
工業(yè)機(jī)器人應(yīng)用編程職業(yè)技能等級(jí)標(biāo)準(zhǔn)(2019年9月試行)中明確指出,典型工作任務(wù)包括搬運(yùn)、碼垛、裝配、涂膠、焊接、拋光、噴涂等,而搬運(yùn)和碼垛則是“1+X”工業(yè)機(jī)器人應(yīng)用編程初、中、高級(jí)職業(yè)技能等級(jí)考核中最常見(jiàn)的典型任務(wù)。
“職教20條”下,“1+X”工業(yè)機(jī)器人應(yīng)用編程職業(yè)技能等級(jí)證書(shū)要求對(duì)職業(yè)技能等級(jí)標(biāo)準(zhǔn)內(nèi)容與課程進(jìn)行高度融合[1]。以工業(yè)機(jī)器人應(yīng)用編程典型工作任務(wù)為出發(fā)點(diǎn),在已有人才培養(yǎng)方案和課程體系基礎(chǔ)上,結(jié)合企業(yè)實(shí)際生產(chǎn)領(lǐng)域進(jìn)行典型工作任務(wù)的創(chuàng)新設(shè)計(jì),對(duì)課程進(jìn)行二次開(kāi)發(fā),更好地服務(wù)于工業(yè)機(jī)器人應(yīng)用編程技能等級(jí)證書(shū)試點(diǎn)工作[2]。
1? 搬運(yùn)碼垛典型任務(wù)創(chuàng)新設(shè)計(jì)
1.1 四階“漢諾塔”搬運(yùn)碼垛臺(tái)設(shè)計(jì)
四階“漢諾塔”搬運(yùn)碼垛臺(tái)設(shè)計(jì)如圖1所示[3],起始柱A、輔助柱B和目標(biāo)柱C三根矩形柱在同一水平線上,間距為130mm,長(zhǎng)寬高為20mm×15mm×200mm,起始柱A從下往上有四個(gè)矩形塊,矩形塊1(長(zhǎng)寬高120mm×120mm×40mm)、矩形塊2(長(zhǎng)寬高100mm×100mm×40mm)、矩形塊3(長(zhǎng)寬高80mm×80mm×40mm)和矩形塊4(長(zhǎng)寬高60mm×60mm×40mm),每個(gè)矩形塊中心有25mm×20mm×40mm的矩形孔,方便矩形柱穿過(guò)。
游戲目標(biāo):把起始柱A上的矩形塊全部移到目標(biāo)柱C上,并仍保持原有順序疊好。操作規(guī)則:每次只能移動(dòng)一個(gè)矩形塊,并且在移動(dòng)過(guò)程中三根柱上都始終保持大矩形塊在下,小矩形塊在上,操作過(guò)程中矩形塊可以置于A、B、C任一柱上。
1.2 搬運(yùn)碼垛路徑設(shè)計(jì)
搬運(yùn)碼垛路徑設(shè)計(jì)包括示教點(diǎn)位的選取和運(yùn)動(dòng)路徑選取。
1.2.1 示教點(diǎn)位選取
如圖2所示,搬運(yùn)碼垛時(shí)起始柱A、輔助柱B和目標(biāo)柱C的過(guò)渡點(diǎn)分別為PgdA、PgdB、PgdC,位于矩形柱正上方;矩形塊在起始柱A上的4個(gè)抓取/放置點(diǎn)位置分別為PA1、PA2、PA3、PA4;矩形塊在輔助柱B上的4個(gè)抓取/放置點(diǎn)位置分別為PB1、PB2、PB3、PB4;矩形塊在目標(biāo)柱C上的4個(gè)抓取/放置點(diǎn)位置分別為PC1、PC2、PC3、PC4。
分析可知,如果需要每個(gè)點(diǎn)進(jìn)行示教則需要示教14個(gè)點(diǎn)位:PgdA、PgdB、PgdC、PA1、PA2、PA3、PA4、PB2、PB3、PB4、PC1、PC2、PC3、PC4。
1.2.2 運(yùn)動(dòng)路徑選取
“漢諾塔”游戲中搬運(yùn)碼垛矩形塊最少次數(shù)算法為:當(dāng)矩形塊個(gè)數(shù)為n時(shí),搬運(yùn)碼垛的最少次數(shù)應(yīng)等于2^n-1,如完成三階“漢諾塔”游戲至少需要搬運(yùn)碼垛次數(shù)為7次,完成四階“漢諾塔”游戲至少需要搬運(yùn)碼垛次數(shù)為15次,如圖2所示。
1.3 搬運(yùn)碼垛優(yōu)化算法設(shè)計(jì)
以華數(shù)Ⅱ型HSR-JR605工業(yè)機(jī)器人為例,進(jìn)行搬運(yùn)碼垛優(yōu)化算法設(shè)計(jì)與實(shí)現(xiàn)。
1.3.1 算法實(shí)現(xiàn)點(diǎn)位坐標(biāo)獲取
如圖1所示的世界坐標(biāo)系,以PA4示教的坐標(biāo)位置為參照,則PA3、PA2、PA1的坐標(biāo)位置分別為PA4在z軸正向偏移40mm、80mm、120mm。同理得,PB3、PB2、PB1的坐標(biāo)位置分別為PB4在z軸正向偏移40mm、80mm、120mm,PC3、PC2、PC1的坐標(biāo)位置分別為PC4在z軸正向偏移40mm、80mm、120mm。而PB4、PC4的坐標(biāo)位置分別為PA4在y軸正向偏移130mm、260mm。過(guò)渡點(diǎn)PgdA、PgdB、PgdC的坐標(biāo)位置分別為PA4、PB4、PC4在z軸正向的偏移(大于矩形柱高度200mm),如取250mm。由此可知,只需要示教一個(gè)點(diǎn)PA4,其余點(diǎn)通過(guò)預(yù)設(shè)和計(jì)算得知,大大減少了點(diǎn)位示教點(diǎn)的繁瑣過(guò)程,節(jié)約時(shí)間。
1.3.2 算法實(shí)現(xiàn)搬運(yùn)碼垛路徑
如果對(duì)每個(gè)點(diǎn)位進(jìn)行示教編程且一個(gè)動(dòng)作一行指令,代碼行超過(guò)250行,點(diǎn)位示教和指令輸入會(huì)占用很長(zhǎng)時(shí)間,嚴(yán)重影響效率。
如圖3所示,將每個(gè)運(yùn)動(dòng)過(guò)程路徑進(jìn)行抽象,機(jī)器人控制氣爪從過(guò)渡點(diǎn)Pgd1出發(fā)將矩形柱M上的矩形塊從P1位置搬運(yùn)到矩形柱N上的P2位置,再回到過(guò)渡點(diǎn)Pgd2,需要順序經(jīng)過(guò)①~⑤五個(gè)路徑,n階“漢諾塔”游戲可以認(rèn)為是2^n-1個(gè)抽象路徑,只是每一次的起始位置、目標(biāo)位置以及過(guò)渡點(diǎn)不一樣。指令選取時(shí),①②④⑤必須使用直線指令,如MOVES。
1.4 寄存器選取
示教點(diǎn)位PA4的位置存放在關(guān)節(jié)坐標(biāo)寄存器LR[14],其余點(diǎn)位通過(guò)計(jì)算得到。LR[10]~LR[13]分別存放PgdA、PA1~PA3坐標(biāo)值;LR[20]~LR[24]分別存放PgdB、PB1~PB4坐標(biāo)值;LR[30]~LR[34]分別存放PgdC、PC1~PC4坐標(biāo)值。抽象路徑點(diǎn)位存放:LR[1]存放過(guò)渡點(diǎn)Pgd1坐標(biāo)值,LR[2]存放P1坐標(biāo)值,LR[3]存放過(guò)渡點(diǎn)Pgd2坐標(biāo)值,LR[4]存放P2坐標(biāo)值。
設(shè)整型數(shù)值寄存器IR[1]~I(xiàn)R[60]存放四階“漢諾塔”游戲搬運(yùn)碼垛15步的每條路徑的點(diǎn)位坐標(biāo)值位置索引(每條路徑4個(gè)點(diǎn)位,一共60個(gè)),按照先后順序分別為10、11、20、24、10、12、30、34、20、24、30、33、10、13、20、24、30、34、10、13、30、34、20、23、10、13、20、22、10、14、30、34、20、22、30、33、20、23、10、14、30、33、10、13、20、24、30、33、10、13、20、24、10、14、30、32、20、24、30、31,可提前設(shè)置。
1.5 編程實(shí)現(xiàn)
通過(guò)搬運(yùn)碼垛算法優(yōu)化設(shè)計(jì),代碼行不超過(guò)60行,大大縮短了示教編程時(shí)間。
PROGRAM
'“漢諾塔”搬運(yùn)碼垛主程序
DIM I AS LONG = 0
WITH ROBOT
ATTACH ROBOT
ATTACH EXT_AXES
'點(diǎn)位計(jì)算
LR[10]=LR[11]+#{0,0,250,0,0,0}
LR[12]=LR[11]+#{0,0,40,0,0,0}
LR[13]=LR[11]+#{0,0,80,0,0,0}
LR[14]=LR[11]+#{0,0,120,0,0,0}
LR[20]=LR[11]+#{0,130,250,0,0,0}
LR[21]=LR[11]+#{0,130,0,0,0,0}
LR[22]=LR[11]+#{0,130,40,0,0,0}
LR[23]=LR[11]+#{0,130,80,0,0,0}
LR[24]=LR[11]+#{0,130,120,0,0,0}
LR[30]=LR[11]+#{0,260,250,0,0,0}
LR[31]=LR[11]+#{0,260,0,0,0,0}
LR[32]=LR[11]+#{0,260,40,0,0,0}
LR[33]=LR[11]+#{0,260,80,0,0,0}
LR[34]=LR[11]+#{0,260,120,0,0,0}
'四階“漢諾塔”搬運(yùn)碼垛處理
WHILE I<15
LR[1]=LR[IR[I*4+1]]
LR[2]=LR[IR[I*4+2]]
LR[3]=LR[IR[I*4+3]]
LR[4]=LR[IR[I*4+4]]
'每次調(diào)用一個(gè)Step
CALL HNT
I=I+1
END WHILE
DETACH ROBOT
DETACH EXT_AXES
END WITH
END PROGRAM
PUBLIC SUB HNT
'“漢諾塔”搬運(yùn)碼垛抽象路徑子程序
MOVES ROBOT LR[1]
MOVES ROBOT LR[2]
'氣爪張開(kāi)
DELAY ROBOT 100
D_OUT[18] = ON
DELAY ROBOT 100
MOVES ROBOT LR[1]
MOVES ROBOT LR[3]
MOVES ROBOT LR[4]
'氣爪關(guān)閉
DELAY ROBOT 100
D_OUT[18] = OFF
DELAY ROBOT 100
MOVES ROBOT LR[3]
END SUB
2? 結(jié)束語(yǔ)
本文對(duì)“1+X”工業(yè)機(jī)器人應(yīng)用編程搬運(yùn)碼垛典型工作任務(wù)進(jìn)行創(chuàng)新,設(shè)計(jì)四階“漢諾塔”搬運(yùn)碼垛臺(tái),用華數(shù)Ⅱ型HSR-JR605工業(yè)機(jī)器人通過(guò)算法實(shí)現(xiàn)示教點(diǎn)位及搬運(yùn)碼垛路徑的優(yōu)化,在游戲中學(xué)會(huì)解決搬運(yùn)碼垛典型工作任務(wù)的方法,提高應(yīng)用編程技巧,為“1+X”工業(yè)機(jī)器人應(yīng)用編程“課證融合”的開(kāi)發(fā)提供思路,為工業(yè)機(jī)器人應(yīng)用編程職業(yè)技能等級(jí)證書(shū)考取奠定基礎(chǔ)。
參考文獻(xiàn):
[1]國(guó)務(wù)院.國(guó)務(wù)院關(guān)于印發(fā)國(guó)家職業(yè)教育改革實(shí)施方案的通知[EB/OL].http://www.gov.cn/zhengce/content/2019-02/13/content_
5365341.htm, 2019-02-13.
[2]李愿.華數(shù)Ⅱ型機(jī)器人關(guān)鍵指令在碼垛編程設(shè)計(jì)中的應(yīng)用[J].內(nèi)燃機(jī)與配件,2019(11):225-227.
[3]肖紅德.漢諾塔問(wèn)題遞歸算法與非遞歸算法比較[J].軟件導(dǎo)刊,2018(08):118-120.