工业机器人力觉视觉控制高级应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.7 样例程序

4.7.1 样例程序1

(1)工作要求

机器人往Y轴方向动作,探寻对象物。发现对象物后,在对象物Y轴方向上保持施加一定的力,同时向X轴方向运动。如图4-6所示。

图4-6 样例程序1的动作过程

(2)样例程序

'——设置控制模式=0的各技术参量。

P_FsStf0=(+0.00,+0.01,+0.00,+0.00,+0.00,+0.00)(0,0) '——刚度系数(设置Y轴=0.01(N/mm))。

P_FsDmp0=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——阻尼系数(不设定)。

P_FsMod0=(+0.00,+1.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——力觉控制模式(设置Y轴=作用力控制,因为需要保持Y向压力)。

M_FsCod0=1 '——设置采用力觉直交坐标系。

'——设置控制特性=0的各技术参量。

P_FsGn0=(+0.00,+1.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——增益(设置Y轴=1.0(10-3mm/N))

P_FsFLm0=(+20.00,+0.50,+20.00,+5.00,+5.00,+5.00)(0,0) '——设置作用力检测设定值(设置Y=0.5(N))

P_FsFCd0=(+0.00,+2.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——设置作用力指令(设置Y=2.0(N))

'——主程序。

Def Act 1,M_FsLmtS=1 GoTo *XMOV,S '——定义Act 1:如果“作用力当前值”超过“检测设定值”的时候,跳转执行*XMOV,S中断程序。

FsLog On '——开始采集力觉日志数据。

Fsc On,0,0,1 '——力觉控制ON,控制模式组号=0,控制特性组号=0,零点清零。

P1=P_Curr '——设置P1=位置当前值。

P1.Y=P1.Y+200 '——定义P1.Y。

Spd 5 '——设置速度。

Act 1=1 '——Act 1中断区间起点。

Mvs P1 '——移动到P1点。在动作中如果检测到与对象物接触,则执行跳转处理。

Fsc Off '——力觉控制OFF。

FsLog Off,7 '——结束力觉日志数据采集,创建日志文件No.7。

Act 1=0 '——Act 1中断区间终点。

End '——主程序结束。

'——中断程序。

*XMOV

P2=P_FsCurP '——设置P2为“力觉指令位置”。

P2.X=P2.X+100 '——设置P2.X的位置。

FsGChg 5,100,2 '——(FsGChg——切换控制特性指令)切换位置=5%,切换时间100ms,切换后控制特性组号=2。

Mvs P2 '——移动到P2点。在Y轴方向上保持施加2.0N的力,往X轴方向移动。

Fsc Off '——力觉控制OFF。

FsLog Off,7 '——结束力觉日志数据的采集,创建日志文件No.7。

FsOutLog 7 '——通过FTP传送日志文件No.7到电脑上。

End '——结束。

4.7.2 样例程序2

(1)工作要求

机器人在XY方向处于弹性工作状态,在Z轴方向上执行插入动作。插入时,如果作用力超过设置的“检测值”时,立即报警。如图4-7所示。

图4-7 样例程序2的动作过程示意图

(2)样例程序

'——设置控制模式=0的各技术参量。

P_FsStf0=(+0.01,+0.01,+0.00,+0.00,+0.00,+0.00)(0,0) '——刚度系数[设置X、Y=0.01(N/mm)]。

P_FsDmp0=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——阻尼系数(不设置)。

P_FsMod0=(+2.00,+2.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——力觉控制模式(X、Y轴=2:刚度控制)。

M_FsCod0=0 '——使用力觉工具坐标系。

'——设置控制特性=0的各技术参量。

P_FsGn0=(+80.00,+80.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——增益[设置X、Y轴=80(10-3mm/N)]。

P_FsFLm0=(+20.00,+20.00,+10.00,+5.00,+5.00,+5.00)(0,0) '——作用力检测设定值[设置Z轴=10(N)]。

P_FsFCd0=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——作用力指令(未设置)。

'——主程序。

Def Act 1,P_FsLmtX.Z=1 GoTo *ESCP,S '——定义Act 1:如果Z轴方向“实际作用力”超过“检测设定值”时,跳转到中断程序*ESCP,S。

Mov P1 '——移动到P1点。

FsLog On '——开始采集力觉日志数据。

Fsc On,0,0,1 '——力觉控制ON,控制模式组号=0,控制特性组号=0,零点清零。

Spd 5 '——设置速度。

Act 1=1 '——Act 1中断区间起点。

Mvs P2 '——移动到P2点。在Z轴方向上执行插入动作,Z轴上作用力如果超过“检测设定值”,执行中断插入处理。

Fsc Off '——力觉控制OFF。

FsLog Off,1 '——结束力觉日志数据的采集,创建日志文件No.1。

Act 1=0 '——Act 1中断区间终点。

End '——主程序结束。

'——中断插入程序。

*ESCP

Fsc Off '——力觉控制OFF。

Spd 50 '——设置速度。

Mvs P1 '——退回到插入开始位置P1。

FsLog Off,1 '——结束力觉日志数据采集,创建日志文件No.1。

FsOutLog 1 '——通过FTP传送日志文件No.1到电脑上。

Error 9100 '——报警L9100发生。

End——程序结束。

4.7.3 样例程序3

(1)工作要求

机器人探索XY平面上的孔。发现孔的时候,算出该中心位置的XY坐标值。动作过程如图4-8所示。

图4-8 机器人探索XY平面上的孔

(2)样例程序

'——设置控制模式=0的各技术参量。P_FsStf0=(+0.00,+0.00,+1.00,+0.00,+0.00,+0.00)(0,0) '——刚度系数[设置Z轴=1(N/mm)]。

P_FsDmp0=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——阻尼系数(未设置)。

P_FsMod0=(+0.00,+0.00,+2.00,+0.00,+0.00,+0.00)(0,0) '——力觉控制模式(设置Z轴为刚度控制)。

M_FsCod0=1 '——设置采用力觉直交坐标系。

'——设置控制特性=0的各技术参量。P_FsGn0=(+0.00,+0.00,+40.00,+0.00,+0.00,+0.00)(0,0) '——增益[(Z轴=40(10-3mm/N)]

P_FsFLm0=(+20.00,+20.00,+5.00,+5.00,+5.00,+5.00)(0,0) '——设置“作用力检测设定值”[设置Z轴=5(N)]。

P_FsFCd0=(+0.00,+0.00,+0.00,+0.00,+0.00,+0.00)(0,0) '——作用力指令(未指定)。

'——主程序。

Def Act 1,P_FsLmtR.Z=1 GoTo *PCEN,S '——定义Act 1:如果Z轴作用力大于“作用力检测设定值”时,跳转执行中断程序*PCEN,S。

P2=P1 '——设置P2点。

P2.X=P2.X+100 '——设置P2点X值(X向探索行程100mm)。

Fsc On,0,0,1 '——力觉控制ON。控制模式组号=0,控制特性组号=0,零点清零。

Mvs P1 '——移动到探索开始位置P1(探索平面在Z向-10mm的位置,往Z方向推入)。

Spd 5 '——设置速度。

Act 1=1 '——Act 1中断区间起点。

For M1=1 To 10 '——Y方向上每隔5mm执行探索孔的位置。

Mvs P1 '——移动到P1点。

Mvs P2 '——移动到P2点。

P1.Y=P1.Y+5 '——设置P1.Y的数值。

P2.Y=P1.Y '——设置P2.Y的数值。

Mvs P2 '——移动到P2点。

Mvs P1 '——移动到P1点。

P1.Y=P1.Y+5 '——设置P1.Y的数值。

P2.Y=P1.Y '——设置P2.Y的数值。

Next M1

Act 1=0 '——Act 1中断区间终点。

Fsc Off '——力觉控制OFF。

End '——主程序结束。

'——中断程序。

*PCEN

Dim PX(2),PY(2) '——定义数组。

P0=P_Curr '——设置P0位置。以探索到孔,停止的位置为基准。

PX(1)=P0 '——设置PX(1)位置。

PX(2)=P0 '——设置PX(2)位置。

PY(1)=P0 '——设置PY(1)位置。

PY(2)=P0 '——设置PY(2)位置。

PX(1).X=P0.X+10 '——算出基准位置的X、Y方向上±10mm的位置。

PX(2).X=P0.X-10 '——设置PX(2)位置。

PY(1).Y=P0.Y+10 '——设置PY(1)位置。

PY(2).Y=P0.Y-10 '——设置PY(2)位置。

Fsc Off '——力觉控制OFF。

P_FsFLm0=(+2.00,+2.00,+5.00,+5.00,+5.00,+5.00)(0,0) '——X、Y轴方向的“作用力检测设定值”变更为2(N)。

Fsc On,0,0,1 '——力觉控制ON。

MFLG=0 '——设置MFLG=0。

For M1=1 To 2

Mvs PX(M1) WthIf P_FsLmtR.X=1,Skip '——在向PX(M1)的移动过程中,如果X轴上的作用力超过“作用力检测设定值”,就执行跳转。

IfM_SkipCq=1 Then '——如果执行了跳转,则。

PX(M1)=P_FsLmtP '——设置PX(M1)保持为第一次“超过作用力检测设定值的位置”。

MFLG=MFLG+1 '——设置MFLG。

EndIf

Mvs P0 '——移动到P0点。

Fsc Off '——为了复位P_FsLmtP,使力觉控制从无效→有效。

Fsc On,0,0,1 '——力觉控制ON。

Next M1

For M1=1 To 2

Mvs PY(M1) WthIf P_FsLmtR.Y=1,Skip '——在向PY(M1)的移动过程中,如果Y轴上的作用力超过“作用力检测设定值”,就执行跳转。

If M_SkipCq=1 Then '——如果执行了跳转,则。

PY(M1)=P_FsLmtP '——跳转的时候,保持PY(M1)=超过作用力检测设定值的位置。

MFLG=MFLG+1 '——设置MFLG。

EndIf

Mvs P0 '——移动到P0。

Fsc Off '——力觉控制OFF。

Fsc On,0,0,1 '——为了复位P_FsLmtP,使力觉控制从无效→有效。

Next M1

If MFLG=4 Then '——找到4个点。

PTMP=(PX(1)+PX(2))/2 '——设置PTMP。

P0.X=PTMP.X '——设定X轴方向的中心位置为P0。

PTMP=(PY(1)+PY(2))/2 '——设置PTMP。

P0.Y=PTMP.Y '——设定Y轴方向的中心位置为P0。

Else '——没有找到4个点。

Error 9100 '——报警L9100。

EndIf '——结束。

End '——结束。

4.7.4 样例程序4

(1)工作要求及过程

Z轴方向上以指定的速度动作,接触工件对象物。接触工件后,如果机器人的Z向位置和传感器数据满足所规定的条件,保持Z向的推入,Y轴方向开始动作。如图4-9所示。

图4-9 推压动作示意图

(2)样例程序

'——设置控制模式=0的各技术参量。

M_FsCod0=0 '——使用力觉工具坐标系。

P_FsMod0=(0,1,1,0,0,0)(0,0) '——设置Y,Z轴方向为“作用力控制”。

'——设置控制特性=0的各技术参量。

P_FsFCd0=(0,0,5,0,0,0)(0,0) '——设置Z轴方向作用力指令=5N。

P_FsSpd0=(0,0,10,0,0,0)(0,0) '——设置Z轴方向的速度=10mm/s。

P_FsSwF0=(0,0,0.5,0,0,0)(0,0) '——设置Z轴方向的模式切换判定值=0.5N。

P_FsGn0=(0,0,10,0,0,0)(0,0) '——设定Z轴方向的力觉控制增益=10×10-3mm/N。

:'——为了使Y轴方向不动作,指定为0。

'——设置控制特性=-1的各技术参量。

P_FsFCd1=(0,3,5,0,0,0,0,0)(0,0) '——设置Y轴方向作用力指令=3N,Z轴方向=5N。

P_FsSpd1=(0,20,0,0,0,0,0,0)(0,0) '——设置Y轴方向的速度=20mm/s。

,为了使Z轴方向继续执行作用力控制,设置0mm/s。

P_FsSwF1=(0,2,0,0,0,0,0,0)(0,0) '——设定Y轴方向模式切换判定值=2N。

P_FsGn1=(0,10,10,0,0,0)(0,0) '——设定Y轴方向的力觉控制增益=10×10-3mm/N(往Y轴方向动作)。

'——主程序。

Def MoTrg 1,(P_Fbc.Z<100) And (P_FsCurD.Z>4.8) '——定义1#Mo组合条件:如果Z向行程小于100,同时Z向作用力大于4.8N。

SetMoTrg 1 '——设置1#Mo组合条件有效。

Fsc On,0,0,1 '——力觉控制ON。控制模式组号=0,控制特性组号=0。

Wait M_MoTrg(1)=1 '——如果组合条件1#Mo=ON,表示在Z轴方向动作接触到对象物。

Dly 3 '——(暂停)接触后,等待调整。

FsCTrg 1,100,-1 '——1# Mo=ON后,切换控制特性,控制特性组号=-1。

:'——Z轴方向上以5N的力推入的同时,在Y轴方向上开始动作。