在工业机器人技术应用赛项国赛题里,有搬运芯片的要求。如果所有点位都用手动示教,会占用大量的时间。那么有没有一种快捷方式,可以提高定点效率,缩短手动示教的时间。当然是有的。就是利用功能程序计算出点位数据。
这里以圆形芯片的圆形阵列为例,具体方法如下:
通过示教点1,点2,用功能程序计算出剩余5个点位。
功能程序的原理是:已知两点的距离和夹角,利用三角函数计算出第三点的位置
一、列出所需变量:
变量名 类型 意义
point_1 robtarget 点位1
point_2 robtarget 点位2
target robtarget 目标点
m num 目标点位号
angle num 目标点与已知两点连线的夹角
length num 半径
tga num 夹角angle的tan值
二、编写计算功能程序calcyclepointcalcyclepoint (robtarget point_1, robtarget point_2, robtarget target,num m);
1 FUNC calcyclepoint (robtarget point_1, robtarget point_2, robtarget target,num m)
2 angle:= 0;
3 tga:=0;
4 target:= point_1 ;
5 pos1:= point_1. trans;
6 pos2:= point_2.trans ;
7 length:=distance(pos1,pos2);
8 tga:=( point_2. trans. y- point_1. trans .y)/( point_2. trans .x- point_1.trans .x);
9 angle := Atan(tga)+m*60;
10 target.trans. x:= point_1. trans.x+length*cos(angle);
11 target. trans.y:= point_1. trans.y+length*sin(angle);
12 RETURN target;
13 ENDFUNC
注释如下:
//1:功能程序名称和参数calcyclepoint(点位1,点位2,目标点,目标点序号)
2:夹角赋初值0
3:夹角tan值赋初始值0
4:点位1赋值给目标点过渡
5,6,7 :计算点位1点位2的距离length
8: 计算夹角tan值
9: 计算目标点夹角
10,11:赋值目标点位X,Y轴数据,确定目标点
12:返回目标点位置
三、最后循赋值一个存储点位的数组C即可
PROC c_point()
FOR i FROM -4 TO 1 DO
y:=i+5;
C{y}:=calcyclepoint(C_1,C_2,target,i);
ENDFOR
C{7} :=C_1;
ENDPROC
最后需要注意的是,圆心是起点,计算出的是圆上的点,所以圆心单独存给数组。
标签: 点位
②文章观点仅代表原作者本人不代表本站立场,并不完全代表本站赞同其观点和对其真实性负责。
③文章版权归原作者所有,部分转载文章仅为传播更多信息、受益服务用户之目的,如信息标记有误,请联系站长修正。
④本站一律禁止以任何方式发布或转载任何违法违规的相关信息,如发现本站上有涉嫌侵权/违规及任何不妥的内容,请第一时间反馈。发送邮件到 88667178@qq.com,经核实立即修正或删除。