CS运动到达时提前触发信号
1. 简介
EC机器人在运动指令中有TRIGGER指令,可以在到达点位前满足距离或时间的条件触发IO状态。
在CS机器人指令中就没有这个指令,我们就可通过本文方式实现通过距离判断提前触发IO状态
2. 操作流程
1、树状图中编写
程序具体实现如下:
flag_1:标志位,是用于控制仅 路点_1到路点_2过程中满足条件才触发,其他位置接近路点_2不触发
路点2添加Until的已到达路点模式会保证一定准确到达路点,在到达路点后添加一个动作,标志位置0,保证其他位置不会触发事件
事件:事件中判断标志位为0,判断两个工具之间的距离<设定的距离,两个都为True时触发事件中的程序,设置IO信号
point_dist()计算直线距离,不考虑位姿
也可使用pose_dist(),计算距离时考虑位姿
2、脚本编写方式
脚本如下:
#P:需提前触发信号路点
#L:触发距离,单位为m
#O:触发输出,填写输出信号0-15
def trigger(P,L,O):
global flag
if flag==1:
pose1=get_actual_tcp_pose()
l1=point_dist(P,pose1)
if l1<l:< p="" style="box-sizing: border-box;">
set_standard_digital_out(O,False)
flag=0
程序中使用脚本,要现在全局变量中创建一个变量flag,
在线程中调用函数,分别填入(标志位变量,需提前触发路点,触发距离,触发输出信号0-15)