运动指令
指令列表
运动指令用于控制机械臂进行运动,使用前请阅读通用说明。
指令 | 功能 |
---|---|
MovJ | 关节运动 |
MovL | 直线运动 |
Arc | 圆弧插补运动 |
Circle | 整圆插补运动 |
MovJIO | 关节运动并输出DO |
MovLIO | 直线运动并输出DO |
StartPath | 复现录制的运动轨迹 |
GetPathStartPose | 获取轨迹的起始点 |
PositiveKin | 将关节角度正解为位姿 |
InverseKin | 将位姿逆解为关节角度 |
MovJ
原型:
MovJ(point, {user = 1, tool = 0, a = 20, v = 50, cp = 100, stopcond = "expression"})
描述:
从当前位置以关节运动方式运动至目标点。
必选参数:
- point:目标点。
可选参数:
- user:目标点的用户坐标系。
- tool:目标点的工具坐标系。
- a:执行该条指令时的机械臂运动加速度比例。取值范围:(0,100]
- v:执行该条指令时的机械臂运动速度比例。取值范围:(0,100]
- cp:平滑过渡比例。取值范围:[0,100]
- stopcond:停止条件表达式,满足该条件时会结束当前运动去执行下一条指令。 详细介绍请参见通用说明。
示例:
-- 机械臂以默认设置关节运动至P1点。
MovJ(P1)
-- 机械臂以默认设置关节运动至指定关节角。
MovJ({joint={0,0,90,0,90,0} })
-- 机械臂关节运动至指定位姿,位姿对应用户坐标系1和工具坐标系1,运动加速度与速度均为50%,平滑过渡比例为50%。
MovJ({pose={300,200,300,180,0,0} },{user=1,tool=1,a=50,v=50,cp=50})
-- 先定义点位再在运动指令中调用,运行效果和上一条指令相同。
customPoint={pose={300,200,300,180,0,0} }
MovJ(customPoint,{user=1,tool=1,a=50,v=50,cp=50})
-- 机械臂关节运动至P1点,运动过程中DI1为ON时会结束当前运动。
MovJ(P1,{stopcond="DI(1) == ON"})
MovL
原型:
MovL(point, {user = 1, tool = 0, a = 20, v = 50, speed = 500, cp = 100, r = 5, stopcond = "expression"})
描述:
从当前位置以直线运动方式运动至目标点。
必选参数:
point:目标点。
可选参数:
- user:目标点的用户坐标系。目标点为关节变量时,坐标系参数无效。
- tool:目标点的工具坐标系。目标点为关节变量时,坐标系参数无效。
- a:执行该条指令时的机械臂运动加速度比例。取值范围:(0,100]
- v:执行该条指令时的机械臂运动速度比例,与speed互斥。取值范围:(0,100]
- speed:执行该条指令时的机械臂运动目标速度,与v互斥,若同时存在以speed为准。取值范围:[1, 最大运动速度],单位:mm/s
- cp:平滑过渡比例,与r互斥。取值范围:[0,100]
- r:平滑过渡半径,与cp互斥,若同时存在以r为准。取值范围:[0,100],单位:mm
- stopcond:停止条件表达式,满足该条件时会结束当前运动去执行下一条指令。 详细介绍请参见通用说明。
示例:
-- 机械臂以默认设置直线运动至P1点。
MovL(P1)
-- 机械臂500m/s的绝对速度直线运动至P1点。
MovL(P1,{speed=500})
-- 机械臂以默认设置直线运动至指定关节角。
MovL({joint={0,0,90,0,90,0} })
-- 机械臂直线运动至指定位姿,位姿对应用户坐标系1和工具坐标系1,运动加速度与速度均为50%,平滑过渡半径为5mm。
MovL({pose={300,200,300,180,0,0} },{user=1,tool=1,a=50,v=50,r=5})
-- 先定义点位再在运动指令中调用,运行效果和上一条指令相同。
customPoint={pose={300,200,300,180,0,0} }
MovL(customPoint,{user=1,tool=1,a=50,v=50,r=5})
-- 同时携带speed和v,speed生效,同时控制器会打印对应的警告日志。
-- 同时携带cp和r,r生效,同时控制器会打印对应的警告日志。
MovL(P1,{v=50,speed=500,cp=60,r=5}) -- 执行时可选参数仅speed和r生效
-- 机械臂直线运动至P1点,运动过程中DI1为ON时会结束当前运动。
MovL(P1,{stopcond="DI(1) == ON"})
Arc
原型:
Arc(P1, P2, {user = 1, tool = 0, a = 20, v = 50, speed = 500, cp = 100, r = 5, stopcond = "expression"})
描述:
从当前位置以圆弧插补方式运动至目标点。
需要通过当前位置,P1,P2三个点确定一个圆弧,因此当前位置不能在P1和P2确定的直线上。
运动过程中的机械臂末端姿态通过当前点和P2点的姿态插补算出,P1点的姿态不参与运算(即运动过程中机械臂到达P1点时的姿态可能与示教姿态不同)。
必选参数:
-
P1:圆弧中间点。
-
P2:目标点。 可选参数:
-
user:目标点的用户坐标系。
-
tool:目标点的工具坐标系。
-
a:执行该条指令时的机械臂运动加速度比例。取值范围:(0,100]
-
v:执行该条指令时的机械臂运动速度比例,与speed互斥。取值范围:(0,100]
-
speed:执行该条指令时的机械臂运动目标速度,与v互斥,若同时存在以speed为准。取值范围:[1, 最大运动速度],单位:mm/s
-
cp:平滑过渡比例,与r互斥。取值范围:[0,100]
-
r:平滑过渡半径,与cp互斥,若同时存在以r为准。取值范围:[0,100],单位:mm
-
stopcond:停止条件表达式,满足该条件时会结束当前运动去执行下一条指令。 详细介绍请参见通用说明。
示例:
-- 机械臂运动至P1,然后经由P2以默认设置圆弧运动至P3。
MovJ(P1)
Arc(P2,P3)
-- 机械臂运动至P1,然后经由点{300,200,300,180,0,0}圆弧运动至P3,用户坐标系与工具坐标系都为1,运动加速度与速度均为50%。
MovJ(P1)
Arc({pose={300,200,300,180,0,0} },P3,{user=1,tool=1,a=50,v=50})
-- 机械臂运动至P1,然后经由P2以默认设置圆弧运动至P3,运动过程中DI1为ON时会结束当前运动。
MovJ(P1)
Arc(P2,P3,{stopcond="DI(1) == ON"})
Circle
原型:
Circle(P1, P2, Count, {user = 1, tool = 0, a = 20, v = 50, speed = 500, cp = 100, r = 5, stopcond = "expression"})
描述:
从当前位置进行整圆插补运动,运动指定圈数后重新回到当前位置。
需要通过当前位置,P1,P2三个点确定一个整圆,因此当前位置不能在P1和P2确定的直线上,且三个点确定的整圆不能超出机械臂的运动范围。
运动过程中的机械臂末端姿态通过当前点和P2点的姿态插补算出,P1点的姿态不参与运算(即运动过程中机械臂到达P1点时的姿态可能与示教姿态不同)。
必选参数:
-
P1:整圆定位点1。
-
P2:整圆定位点2。
-
Count:进行整圆运动的圈数,取值范围1~999。 可选参数:
-
user:目标点的用户坐标系。
-
tool:目标点的工具坐标系。
-
a:执行该条指令时的机械臂运动加速度比例。取值范围:(0,100]
-
v:执行该条指令时的机械臂运动速度比例,与speed互斥。取值范围:(0,100]
-
speed:执行该条指令时的机械臂运动目标速度,与v互斥,若同时存在以speed为准。取值范围:[1, 最大运动速度],单位:mm/s
-
cp:平滑过渡比例,与r互斥。取值范围:[0,100]
-
r:平滑过渡半径,与cp互斥,若同时存在以r为准。取值范围:[0,100],单位:mm
-
stopcond:停止条件表达式,满足该条件时会结束当前运动去执行下一条指令。 详细介绍请参见通用说明。
示例:
-- 机械臂运动至P1,然后进行沿着P1,P2,P3确定的整圆运动一圈。
MovJ(P1)
Circle(P2,P3,1)
-- 机械臂运动至P1,然后沿着P1,点{300,200,300,180,0,0},P3确定的整圆运动10圈,用户坐标系与工具坐标系都为1,运动加速度与速度均为50%。
MovJ(P1)
Circle({pose={300,200,300,180,0,0} },P3,10,{user=1,tool=1,a=50,v=50})
-- 机械臂运动至P1,然后进行沿着P1,P2,P3确定的整圆运动一圈,运动过程中DI1为ON时会结束当前运动。
MovJ(P1)
Circle(P2,P3,1,{stopcond="DI(1) == ON"})