清华制造系统实验机器人编程实验指导书解读.docx
《清华制造系统实验机器人编程实验指导书解读.docx》由会员分享,可在线阅读,更多相关《清华制造系统实验机器人编程实验指导书解读.docx(21页珍藏版)》请在冰豆网上搜索。
清华制造系统实验机器人编程实验指导书解读
机器人编程实验指导书
一.实验目的:
1.学习使用和操作机器人。
2.掌握机器人的手动控制和程序控制。
3.了解程序控制机器人的过程。
二.实验内容
1.学习并熟悉如何使用示教盒手动调整机器人。
2.根据给定的参照文件,了解控制机器人运作的方法和命令。
3.手动方式调节机器人,确定机械手的空间行走路径。
1)机械手从参考点移动到料带上方取料到参考点。
2)机械手从参考点将料送到卡盘上,加工完毕,取料送回料带上的托盘。
每条路径确定足够多的点数,确保机械手动作时不发生干涉。
4.根据上面确定的空间点编制机器人控制程序。
5.机器人空间点运行无误后,由指导教师检查空间点及编制的控制文件,由教师指导完成机器人控制文件的生效,进行程序控制机器人的运行。
三.设备情况介绍
1.RV-M1机器人;
2.示教盒;
3.零件毛坯;
四.实验步骤:
1)阅读相关辅助资料,读懂下面的机器人程序文件,参照此范例文件进行编程。
用文本编辑器进行编辑,存成*.rob后缀文件。
DL1,2048
10OB+0
30ID
350GO
360TI5
370MO32,O
380SP7,H
400MO100,O
480OB-0
RN
2)熟悉机器人的示教盒的操作方法(操作指导另附)。
3)规划机器人的轨迹,用手动方式为机器人设定姿态和位置编码。
a.将机器人示教盒上的手动控制开关拨到ON状态。
b.对机器人进行初始化。
c.执行mov100,将机械手回到点号为100的参考点。
根据要求机器人完成的动作,可先依次设定姿态和位置编码,用示教盒调整机械手的行走路径,确定所需的节点数目和大致位置按照空间顺序,依次将机械手以手动方式分别调节到这些节点上,并按照一定的顺序编号、存储,位置号设定为100加上试验组号(例如:
对第二组,原预设“51”号位置的坐标点定义为251号位置)。
4)用“Mov位置编码(位置编码由自己定)”依次运行一遍,测试机器人的运行过程,确保此机器人要完成的动作无误,并观察是否有干涉以及时调整。
5)针对测试结果上机改编和整理机器人的控制程序。
将重新编制的控制程序存为“?
*.rob”。
“?
”为组号,如对第一组,为1Convpart1.rob,其它以次类推。
6)程序改编完成后,交与指导教师查看,由教师在主程序中设置路径,运行并查看程序的正确性。
注意观察:
这些程序是如何生效,控制机器人运作的。
注意事项:
(1)机器人1运行前,要检查是否与周围设备发生干涉。
(2)机器人的位置编码是唯一的,一定要按照要求设置自己的位置编码,否则,会将给定文件的位置编码或其他组的位置编码冲掉。
(3)构成机器人行走路径的位置点是有一定顺序的,如果中间忽略位置点,可能会发生干涉碰撞。
机器人的动作由*.cmd文件控制,例如车单元配套机器人控制文件如下:
Rotot1.cmd
22
4
IdSignalDescription-
-2<-FormatCode-
10NestRobotC:
\CIM\CELL1\ROBOTS\NEST.rob
17
10
20LoadPart1fromConveyorC:
\CIM\CELL1\ROBOTS\Convpar1.rob
3712
3710
30LoadPart2fromConveyorC:
\CIM\CELL1\ROBOTS\CONVpar2.rob
3712
3710
40RetractfromLathe(GO)C:
\CIM\CELL1\Robots\LATHPARK.rob
3712
3000
50IntoLathe&GripPartC:
\CIM\CELL1\ROBOTS\LATHGRIP.rob
3712
3710
60RemovePart1fromLathe&placeinConveyorC:
\CIM\CELL1\ROBOTS\PAR1CONV.rob
3712
3000
70RemovePart2fromLathe&placeinConveyorC:
\CIM\CELL1\ROBOTS\PAR2CONV.rob
3712
3000
以上控制文件包括7个程序文件:
(1)NEST.rob初始化机器人
(2)CONVpar1.rob从Conveyor取零件1
(3)CONVpar2.rob从Conveyor取零件2(没有使用)
(4)LATHPARK.rob从机床上收回机器人手臂
(5)LATHGRIP.rob车床工作完毕伸入车床抓取零件
(6)PAR1CONV.rob从车床取出零件1并放回Conveyor
(7)PAR2CONV.rob从车床取出零件2并放回Conveyor(没有使用)
车单元配套机器人的程序只需编制LATHPARK.rob和LATHGRIP.rob;CONVpar2.rob或PAR2CONV.rob程序。
同理,铣单元配套机器人的程序与车单元配套机器人程序类似,只需编制millpark.rob和millgrip.rob;CONVpar2.rob或PAR2CONV.rob程序。
四.实验结果要求
1.机器人行走路径节点的选择保证无干涉。
取料送料位置正确。
2.程序编写正确,运行正常。
3.程序控制机器人完成动作符合实验要求,运行顺利。
五.实验总结要求
1.实验报告中要对每个文件的每一行注明指令含义。
2.实验中遇到的问题,以及相应解决问题的方法。
3.实验结果总结。
4.实验体会。
六.附录(实验机器人的基本说明、操作和编程指令参考说明)
(一)基本说明
1.标准规格
项目
规格
注释
机械结构
5自由度,垂直关节机器人
操
作
范
围
腰部旋转
300度(最大速度120度/秒)
J1轴
肩部旋转
130度(最大速度72度/秒)
J2轴
肘部旋转
110度(最大速度109度/秒)
J3轴
腕部倾斜
90度(最大速度100度/秒)
J4轴
腕部旋转
180度(最大速度163度/秒)
J5轴
臂
长
上臂
250毫米
前臂
160毫米
重量驱动
最大1.2kgf(包括手部重量)
距机械表面75毫米(重心)
最大轨道速度
1000毫米/秒(腕部设备表面)
图1.3.4中P点的速度
复位
0.3毫米(腕部设备表面旋转中心)
图1.3.4中P点的准确度
动力系统
直流伺服电机
机器人重量
大约19kgf
电机功率
J1至J3轴:
30W,J4和J5轴:
11W
2.基本运动
图1.3.5显示了垂直系统中的轴转动。
注解1:
J1和J5轴转动的正方向分别是从箭头A和B看过去的顺时针方向;
注解2:
J2,J3和J4轴转动的正方向分别是沿臂部和腕部向上的方向。
(二)操作(示教盒的基本功能)
1.开关作用
(1)ON/OFF(开/关)
选择是否能使示教盒上的各键。
当机器人通过示教盒来控制时,打开开关ON。
当使用个人电脑进行命令传送并控制机器人时,选择开关OFF。
一次错误的键操作可以通过将此开关转变为OFF来取消。
在编程操作过程中,如果开关设定为ON,不能实现示教盒上的操作。
(2)EMG.STOP(紧急停止开关)
此按钮用于机器人的紧急停止操作(当开关按下时,信号内部中断)。
当开关按下时,机器人立刻停止运动,并且错误指示器LED闪亮(错误模式Ι)。
在驱动单元侧面通道的LED4也亮。
2.各键作用
(1)INC(+ENT)
将机器人移动到预先指定位置,此位置数字要大于当前数字。
要使机器人按照一定的顺序移动,依序重复按键。
(参看命令“IP.”)
(2)DEC(+ENT)
将机器人移动到预先指定位置,此位置数字要小于当前数字。
要使机器人按照一定的顺序移动,依序重复按键。
(3)P.S(+Number+ENT)
定义当前机器人位置坐标到指定位置号。
如果一个数字被指派给两个不同的位置,后定义的优先。
为防止错误的产生,不要将机器人姿态设置为接近各轴的极限。
(4)P.C(+Number+ENT)
取消位置内容中的指定数字。
(参看命令“PC.”)
(5)NST(+ENT)
机器人复位。
(参看命令“NT.”)
(6)ORG(+ENT)
将机器人移至笛卡尔坐标系的参考位置。
(7)TRN(+ENT)
将驱动单元侧面面板上SOC2中安装的用户EPROM中的内容(程序和位置信息)传送到驱动单元RAM。
(8)WRT(+ENT)
将驱动单元RAM中的程序和位置信息写入驱动单元侧面面板上SOC2中安装的用户EPROM。
(9)MOV(+Number+ENT)
将手部末端移至指定位置。
(参看命令“MO.”)移动速度为SP4。
(10)STEP(+Number+ENT)
从指定位置开始逐步执行程序,为使程序能够一步接一步的有序执行,依序重复按键。
注意,此时,不需要任何数据入口。
如果在执行过程中有错误,则产生错误模式Ⅱ。
(11)PTP
选择关节缓动操作。
此键按下后,其后任何缓动键的操作会实现各关节的运动。
当示教盒一打开“ON”时,PTP就设置好了。
(12)XYZ
选择笛卡尔直角坐标的缓动操作。
此键按下后,其后任何缓动键操作会实现笛卡尔坐标系内的各轴的运动。
(13)TOOL
选择设备缓动操作。
此键按下后,其后任何缓动键操作会实现设备坐标系内的各轴的运动(手方向的前进/收缩动作)。
(14)ENT
完成从(29)至(38)各键的入口以实现相应的操作。
(15)X+/B+
用笛卡尔缓动操作,将手部末端移至X轴正向(面向机器人的正面,左部为X轴正向),并以关节缓动操作正向旋转腰部(从机器人顶部看为顺时针方向)。
(16)X-/B-
用笛卡尔缓动操作,将手部末端移至X轴负向(面向机器人的正面,右部为X轴负向),并以关节缓动操作负向旋转腰部(从机器人顶部看为逆时针方向)。
(17)Y+/S+
用笛卡尔缓动操作,将手部末端移至Y轴正向(机器人的正面为Y轴正向),并以关节缓动操作正向旋转肩部(向上)。
(18)Y-/S-
用笛卡尔缓动操作,将手部末端移至Y轴负向(机器人的后面为Y轴负向),并以关节缓动操作负向旋转肩部(向下)。
(19)Z+/E+4
用笛卡尔缓动操作,将手部末端移至Z轴正向(垂直向上),以关节缓动操作正向旋转肘部(向上),并以设备缓动操作向前移动手部。
与数字键“4.”作用相同。
(20)Z-/E-9
用笛卡尔缓动操作,将手部末端移至Z轴负向(垂直向下),以关节缓动操作负向旋转肘部(向下),并以设备缓动操作收缩手部。
与数字键“9.”作用相同。
(21)P+3
在保持由“TL”命令决定的当前位置的情况下,用笛卡尔缓动操作,正向(向上)旋转手部末端,以关节缓动操作正向(向上)倾斜腕部(腕部倾斜)。
与数字键“3.”作用相同。
(22)P-8
在保持由“TL”命令决定的当前位置的情况下,用笛卡尔缓动操作,负向(向下)旋转手部末端,以关节缓动操作负向(向下)倾斜腕部(腕部倾斜)。
与数字键“8.”作用相同。
(23)R+2
正方向(向手部装配表面看去,顺时针方向)弯曲腕部(腕部旋转)。
与数字键“2.”作用相同。
(24)R-7
负方向(向手部装配表面看去,逆时针方向)弯曲腕部(腕部旋转)。
与数字键“7.”作用相同。
(25)OPTION+1
向正方向移动任意轴。
与数字键“1.”作用相同。
(26)OPTION-6
向负方向移动任意轴。
与数字键“6.”作用相同。
(27)◄O►0
打开手夹。
与数字键“0.”作用相同。
(28)►C◄5
关闭手夹。
与数字键“5.”作用相同。
3.指示器LED的功能
4位LED显示如下信息:
(1)位置数字
当INC,DEC,P.S,P.C,或者MOV键使用时,以3位数显示位置数字。
(2)程序行号
在程序运行过程中使用STEP键,可以以4位数显示程序行号。
(3)示教盒状态指示器(左边第一位数字)
“└┘”表示由于释放ENT键的引起的处理过程正在进行或者是已经结束。
“∟”表示由于ENT键的释放引起的处理过程无法实现。
4.各键相应的智能命令
示教盒上各键的功能与由计算机发出的智能命令的功能相对应。
INC
“IP”
DEC
“DP”
P.S
“HE”
P.C
“PC”
NST
“NT”
ORG
“OG”
TRN
“TR”
WRT
“WR”
MOV
“MO”
(三)命令描述
1.命令综述
(1)位置/运动控制命令(24个)
这些命令与机器人的位置和运动相关。
他们包括那些定义、替换、设置和计算位置数据以及那些影响弧和线性插补和连续路线运动。
还包括速度设置,原点设置和夹板装载命令。
(2)程序控制命令(19个)
这些命令控制程序流程,他们包括子程序,循环和状态跳转,以及记数命令和利用外部信号中断操作的声明。
(3)手控制命令(4个)
这些命令控制手。
这些命令也适用于电动机操作手(可以设置夹紧力和夹紧放开/关闭时间)。
(4)I/O控制命令(6个)
这些命令与通过普通I/O口输入输出数据相关。
对输入和输出,数据可以同步或异步交换,处理过程可以串行或并行进行。
(5)RS232C读命令(6个)
这些命令允许计算机从机器人存储器中读入数据。
可以读入的数据包括位置数据、程序数据、记数数据、外部输入数据,错误模式和当前位置。
(6)其他(4个)
错误重置命令,读/写命令(用户程序,位置数据)和控制注释写入命令。
2.常用命令描述
2.1位置/运动控制命令
[功能]……………给出这个命令所用功能的简单描述。
[输入格式]………显示命令项,<>表示命令参数,[]表示可以省略的命令参数。
[输入例子]………显示典型命令项。
[解释说明]………功能的详细说明或者命令所涉及到的功能并给出一些警告和用法。
[例程]……………给出每行带有准确解释和注脚的典型程序。
IP(IncrementPosition)
[功能]
移动机器人到比当前位置号大的预先定义的位置。
[输入格式]
IP
[输入例子]
IP
[解释说明]
(1)这个命令使机器人移到比当前位置号大而又紧接当前位置的预选定义的位置。
(2)若没有预先定义比当前位置号大的位置号,产生错误模式II。
[例程]
10LPRINT“MO5”;移到位置5。
20LPRINT“MO4”;移到位置4。
30LPRINT“MO3”;移到位置3。
40LPRINT“IP”;移到位置4。
SP(Speed)
[功能]
设置操作速度和机器人加速/减速时间。
[输入格式]
SP<速度级>,[]
[输入例子]
SP7,H
[解释说明]
(1)这个命令设置操作速度以及开始和停止的加速/减速时间。
速度可在10级间变化,最大速度为9,最小速度为0。
加速/减速时间可以从H或L中选择。
对于H,加速时间为0.35秒;对于L,加速时间为0.5秒;而对于H,减速时间为0.4秒;对于L,减速时间为0.6秒。
当选择H时,加速和减速可以从SP0到SP9。
当选择L时,加速和减速可以从SP0到SP9。
(2)当涉及到两个或更多轴运动时,这个命令可在电动机最大脉冲数时设置操作速度。
(3)当设置速度和加减速时间时,运动所需的加速度和减速度距离要预先决定,这意味着,若运动距离很小,就不能达到设置速度。
(4)如果设置高速度和H时间会影响向后运动或此时机器人装载负荷很大时,会产生错误I。
在这种情况下,设置低速和L时间。
(5)一旦设定速度和加速/减速时间,除非重新设定,否则它将一直有效。
在初始状态,设置为“SP4,L”(如果省略设置,最后加减速时间保持有效)。
(6)速度参数省略时,缺省值为0。
[例程]
10LPRINT"SP3"
20LPRINT"MO10"
30LPRINT"SP6,L"
40LPRINT"MO12"
50LPRINT"MO15"
MO(Move)
[功能]
移动手末端到指定位置。
[输入格式]
MO<位置号>[,]
此处位置号大于等于1,小于等于629。
[输入例子]
MO2,C
[解释说明]
(1)这个命令使手末端通过关联插补(articulatedinterpolation)移到指定位置坐标。
(2)如果指定手的开/闭状态,执行手的控制命令后,手末端移动。
若没有指定手的状态,执行指定位置定义。
(3)错误II产生的原因:
1)没有预先定义指定位置,2)运动超过机器人操作空间。
[例程]
10LPRINT"SP5";速度设定为5
20LPRINT"MO20,C";手闭合移动到位置20。
30LPRINT"MO30,O";手打开移动到位置30。
TI(Timer)
[功能]
在指定时间段内停止运动。
[输入格式]
TI<定时计数>
[输入例子]
TI20
[解释说明]
(1)这个命令使机器人在下面时间段内停止运动:
指定时间数值x0.1秒(最大3,276.7秒)
(2)这个命令可以用于手装夹工件放开或关闭前后引入时间延时。
(3)缺省值为0。
[例程]
10LPRINT"MO1,O"
20LPRINT"TI5"
30LPRINT"GC"
40LPRINT"TI5"
50LPRINT"MO2,C"
NT(Nest)
[功能]
使机器人返回机械原点。
[输入格式]
NT
[输入例子]
NT
[解释说明]
(1)命令使机器人返回原点,该命令应在上电之后立即执行。
在任何移动命令执行前,需要执行此命令。
原点的设置是由在每个轴的限位开关和Z向三极管自动完成的。
(2)先执行J2,J3和J4轴原点设置,接着执行J1和J5轴原点设置。
如果机器人周围的物体对其臂产生干涉,应在机器人试图返回原点之前,利用示教盒使其移到安全位置。
(3)原点设置操作开始,手就松开,因此如果手里握有工件,必须小心避免人身伤害。
(4)在原点设置完成前,不要接触限位开关和机器人身体。
[例程]
10LPRINT"NT";执行原点设置。
20LPRINT"MO10";移动到位置10。
2.2程序控制指令
DC(DecrementCounter)
[功能]
从指定计数器的数值中减1。
[输入格式]
DC<计数器号>
此处,计数器号大于等于1,小于等于99。
[输入例子]
DC35
[解释说明]
(1)计算器中数值小于-32767,产生错误模式II。
(2)这个命令可以用于记录工件和工序数,以及设置托盘装夹点数。
(3)计数器内容可通过计数器相关命令来改变,比较和读取。
[例程]
10LPRINT"SC21,15"
20LPRINT"DC21"
DL(DeleteLine)
[功能]
删除指定行号内容。
[输入格式]
DL<行号(a)[,<行号(b)>]
此处,行号大于等于1,小于等于2048。
[输入例子]
DL200,300
[解释说明]
(1)这个命令删除从行号(a)到行号(b)的全部内容。
(2)如果行号(b)忽略,仅删除行号(a)的内容。
[例程]
10LPRINT"100MO10"
20LPRINT"110MO12"
30LPRINT"120MO15"
40LPRINT"130MO17"
50LPRINT"140MO20"
60LPRINT"DL130";删除行号130的内容。
ED(End)
[功能]
结束程序。
[输入格式]
ED
[输入例子]
ED
[解释说明]
(1)这个命令标志程序结束。
(2)除非该程序命令是直接在个人计算机上执行的,否则这个命令是必需的。
(然而,当程序处于死循环时,也可以不需要这个命令)
[例程]
10LPRINT"100SP3"
20LPRINT"110MO3"
30LPRINT"120MO5"
40LPRINT"130ED"
RN*(Run)
[功能]
执行程序中指定部分指令。
[输入格式]
RN[<起始/行号>][,<结束行号>]
此处,起始/结束行号大于等于1,小于等于2048。
[输入例子]
RN20,300
[解释说明]
(1)如果忽略开始行号,程序从第一行开始执行。
(2)如果继续执行程序,从结束行号开始。
[例程]
10LPRINT"100MO10"
20LPRINT"110MO12"
30LPRINT"120GC"
40LPRINT"130MO17"
50LPRINT"140ED"
60LPRINT"RN100"
2.3手控制指令
GC(GripClose)
[功能]
关闭手的夹具。
[输入格式]
GC
[输入例子]
GC
[解释说明]
(1)电动操作手
这个命令会通过由GP命令定义的夹紧力波形使手夹具关闭。
如果命令GC重复使用。
“保持夹紧力”仅在GP命令参数间有效。
(2)气动操作手
这个命令使螺线管阀增加能量来关闭手。
(3)机器人关闭手夹持工件到机器人静止之前需要一定时间。
这样有必要在这个命令前后使用命令TI引入时间延时。
这个命令的执行时间是GP命令参数决定的。
[例程]
10LPRINT"100MO10,O";移到位置10(手开)
20LPRINT"110TI5";设置0.5秒计数器
30LPRINT"120GC";闭合手(加紧工件)
40LPRINT"130TI5";设置0.5秒计数器
50LPRINT"140MO15,C";移到位置15(手闭)
GO(GripOpen)
[功能]
张开手的夹具。
[输入格式]
GO
[输入例子]
GO
[解释说明]
(1)电动操作手
这个命令会通过由GP命令定义的夹紧力波形使手夹具张开。
如果命令GO重复使用。
“保持夹紧力”仅在GP命令参数间有效。
(2)气动操作手
这个命令使螺线管阀增加能量来张开手。
(3)机器人张开手释放工件到机器人静止之前需要一定时间。
这样有必要在这个命令前后使用命令TI引入时间延时。
这个命令的执行时间是GP命令参数决定的。
[例程]
10LPRINT"100MO10,C"
20LPRINT"110TI5