摘要:“职教20条”下,“1+X”工业机器人应用编程职业技能等级证书要求对职业技能等级标准内容与课程进行高度融合。本文以“汉诺塔”游戏为例,用华数Ⅱ型HSR-JR605工业机器人通过算法实现示教点位及搬运码垛路径的优化,在游戏中学会解决搬运码垛典型工作任务的方法,提高应用编程技巧,为“1+X”工业机器人应用编程“课证融合”的开发提供思路,为工业机器人应用编程职业技能等级证书考取奠定基础。
关键词:1+X;应用编程;典型任务
0 引言
工业机器人应用编程职业技能等级标准(2019年9月试行)中明确指出,典型工作任务包括搬运、码垛、装配、涂胶、焊接、抛光、喷涂等,而搬运和码垛则是“1+X”工业机器人应用编程初、中、高级职业技能等级考核中最常见的典型任务。
“职教20条”下,“1+X”工业机器人应用编程职业技能等级证书要求对职业技能等级标准内容与课程进行高度融合[1]。以工业机器人应用编程典型工作任务为出发点,在已有人才培养方案和课程体系基础上,结合企业实际生产领域进行典型工作任务的创新设计,对课程进行二次开发,更好地服务于工业机器人应用编程技能等级证书试点工作[2]。
1 搬运码垛典型任务创新设计
1.1 四阶“汉诺塔”搬运码垛台设计
四阶“汉诺塔”搬运码垛台设计如图1所示[3],起始柱A、辅助柱B和目标柱C三根矩形柱在同一水平线上,间距为130mm,长宽高为20mm×15mm×200mm,起始柱A从下往上有四个矩形块,矩形块1(长宽高120mm×120mm×40mm)、矩形块2(长寬高100mm×100mm×40mm)、矩形块3(长宽高80mm×80mm×40mm)和矩形块4(长宽高60mm×60mm×40mm),每个矩形块中心有25mm×20mm×40mm的矩形孔,方便矩形柱穿过。
游戏目标:把起始柱A上的矩形块全部移到目标柱C上,并仍保持原有顺序叠好。操作规则:每次只能移动一个矩形块,并且在移动过程中三根柱上都始终保持大矩形块在下,小矩形块在上,操作过程中矩形块可以置于A、B、C任一柱上。
1.2 搬运码垛路径设计
搬运码垛路径设计包括示教点位的选取和运动路径选取。
1.2.1 示教点位选取
如图2所示,搬运码垛时起始柱A、辅助柱B和目标柱C的过渡点分别为PgdA、PgdB、PgdC,位于矩形柱正上方;矩形块在起始柱A上的4个抓取/放置点位置分别为PA1、PA2、PA3、PA4;矩形块在辅助柱B上的4个抓取/放置点位置分别为PB1、PB2、PB3、PB4;矩形块在目标柱C上的4个抓取/放置点位置分别为PC1、PC2、PC3、PC4。
分析可知,如果需要每个点进行示教则需要示教14个点位:PgdA、PgdB、PgdC、PA1、PA2、PA3、PA4、PB2、PB3、PB4、PC1、PC2、PC3、PC4。
1.2.2 运动路径选取
“汉诺塔”游戏中搬运码垛矩形块最少次数算法为:当矩形块个数为n时,搬运码垛的最少次数应等于2^n-1,如完成三阶“汉诺塔”游戏至少需要搬运码垛次数为7次,完成四阶“汉诺塔”游戏至少需要搬运码垛次数为15次,如图2所示。
1.3 搬运码垛优化算法设计
以华数Ⅱ型HSR-JR605工业机器人为例,进行搬运码垛优化算法设计与实现。
1.3.1 算法实现点位坐标获取
如图1所示的世界坐标系,以PA4示教的坐标位置为参照,则PA3、PA2、PA1的坐标位置分别为PA4在z轴正向偏移40mm、80mm、120mm。同理得,PB3、PB2、PB1的坐标位置分别为PB4在z轴正向偏移40mm、80mm、120mm,PC3、PC2、PC1的坐标位置分别为PC4在z轴正向偏移40mm、80mm、120mm。而PB4、PC4的坐标位置分别为PA4在y轴正向偏移130mm、260mm。过渡点PgdA、PgdB、PgdC的坐标位置分别为PA4、PB4、PC4在z轴正向的偏移(大于矩形柱高度200mm),如取250mm。由此可知,只需要示教一个点PA4,其余点通过预设和计算得知,大大减少了点位示教点的繁琐过程,节约时间。
1.3.2 算法实现搬运码垛路径
如果对每个点位进行示教编程且一个动作一行指令,代码行超过250行,点位示教和指令输入会占用很长时间,严重影响效率。
如图3所示,将每个运动过程路径进行抽象,机器人控制气爪从过渡点Pgd1出发将矩形柱M上的矩形块从P1位置搬运到矩形柱N上的P2位置,再回到过渡点Pgd2,需要顺序经过①~⑤五个路径,n阶“汉诺塔”游戏可以认为是2^n-1个抽象路径,只是每一次的起始位置、目标位置以及过渡点不一样。指令选取时,①②④⑤必须使用直线指令,如MOVES。
1.4 寄存器选取
示教点位PA4的位置存放在关节坐标寄存器LR[14],其余点位通过计算得到。LR[10]~LR[13]分别存放PgdA、PA1~PA3坐标值;LR[20]~LR[24]分别存放PgdB、PB1~PB4坐标值;LR[30]~LR[34]分别存放PgdC、PC1~PC4坐标值。抽象路径点位存放:LR[1]存放过渡点Pgd1坐标值,LR[2]存放P1坐标值,LR[3]存放过渡点Pgd2坐标值,LR[4]存放P2坐标值。
设整型数值寄存器IR[1]~IR[60]存放四阶“汉诺塔”游戏搬运码垛15步的每条路径的点位坐标值位置索引(每条路径4个点位,一共60个),按照先后顺序分别为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,可提前设置。
1.5 编程实现
通过搬运码垛算法优化设计,代码行不超过60行,大大缩短了示教编程时间。
PROGRAM
'“汉诺塔”搬运码垛主程序
DIM I AS LONG = 0
WITH ROBOT
ATTACH ROBOT
ATTACH EXT_AXES
'點位计算
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}
'四阶“汉诺塔”搬运码垛处理
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]]
'每次调用一个Step
CALL HNT
I=I+1
END WHILE
DETACH ROBOT
DETACH EXT_AXES
END WITH
END PROGRAM
PUBLIC SUB HNT
'“汉诺塔”搬运码垛抽象路径子程序
MOVES ROBOT LR[1]
MOVES ROBOT LR[2]
'气爪张开
DELAY ROBOT 100
D_OUT[18] = ON
DELAY ROBOT 100
MOVES ROBOT LR[1]
MOVES ROBOT LR[3]
MOVES ROBOT LR[4]
'气爪关闭
DELAY ROBOT 100
D_OUT[18] = OFF
DELAY ROBOT 100
MOVES ROBOT LR[3]
END SUB
2 结束语
本文对“1+X”工业机器人应用编程搬运码垛典型工作任务进行创新,设计四阶“汉诺塔”搬运码垛台,用华数Ⅱ型HSR-JR605工业机器人通过算法实现示教点位及搬运码垛路径的优化,在游戏中学会解决搬运码垛典型工作任务的方法,提高应用编程技巧,为“1+X”工业机器人应用编程“课证融合”的开发提供思路,为工业机器人应用编程职业技能等级证书考取奠定基础。
参考文献:
[1]国务院.国务院关于印发国家职业教育改革实施方案的通知[EB/OL].http://www.gov.cn/zhengce/content/2019-02/13/content_
5365341.htm, 2019-02-13.
[2]李愿.华数Ⅱ型机器人关键指令在码垛编程设计中的应用[J].内燃机与配件,2019(11):225-227.
[3]肖红德.汉诺塔问题递归算法与非递归算法比较[J].软件导刊,2018(08):118-120.