kuka子程序,实现当前位置的一个方块运动

     刚刚开设这个专栏,之后会不断的写一些自己在自动化领域从业10多年里的一些经验和典型程序。个人能力一般不是什么大牛,主要是做过的项目涉及的领域比较多,各种技术、设备、程序等也算接触的不少,谨以发表一些自己的看法,有贻笑大方之处,请多包涵。

     几天刚刚开通,准备不足,先写一个小程序留个脚印吧,之后会不断的写一下比较感兴趣的程序及技术,或者有一定代表性实用性的程序,希望对一些初入行业的朋友们有所帮助,对一些从业者们有所借鉴吧。

下边这是一段简单的带输入参数的库卡机器人子程序,在机器人程序中走到一个空间位置后调用该程序,用以实现以该点为几个角的长方形运动。

其中的参数dx,dy,是长方形的边长,可以根据运行到起始点时的基座标系及dx,dy的正负判断长方形的具体位置及大小。

程序中系统参数$POS_ACT是读取当前机器人在笛卡尔坐标系下的空间位置,也就是三维坐标,得到的值是包含xyzabc的空间位置,我们把该当前位置分别赋值给pos_weld1,pos_weld2,pos_weld3三个位置变量,在通过计算分别加上dx,dy,改变三个点在基座标系里的位置,使这三个点和原来的初始点pos_act就构成了一个长方形,进而通过最后的lin直线运动到三个点就完成了一个长方形运动,当然最后可以再走一个点回到初始位置形成一个闭环的长方形。

DEF abc(dx:in,dy:in )
real dx,dy
frame pos_weld1,pos_weld2,pos_weld3
$acc.cp=1.0
$vel.cp=0.3
$apo.cptp=100
$apo.cvel=100
$apo.cdis=1
;$base=base_data[1]

pos_weld1=$pos_act
pos_weld2=$pos_act
pos_weld3=$pos_act
pos_weld1.x=pos_weld1.x+dx
pos_weld1.y=pos_weld1.y
pos_weld2.x=pos_weld2.x+dx
pos_weld2.y=pos_weld2.y+dy
pos_weld3.x=pos_weld3.x
pos_weld3.y=pos_weld3.y+dy

lin pos_weld1 c_dis
lin pos_weld2 c_dis
lin pos_weld3 c_dis

END

程序中用到了一些系统变量,我们在程序里直接赋值了,

$acc.cp,$vel.cp是设定直线运动的加速度、速度的值。

$apo参数是用于设定点运动的逼近特性的,最后的直线运动,采用的是lin c_dis,说明逼近是采用了$apo.cdis=1这个距目标点1mm进行逼近运动。

该矩形运动原理就是通过当前位置的坐标值计算出新的点的坐标值,按照设定的目标点依次运动就可以实现想要的运动形式。

给程序可以应用到激光切割,机器人涂胶、打磨等多个领域。当然具体的运动不会是就这样简单的一个正方形,可以基于实际产品随便编辑运动的轨迹。

程序中还可以加入一些逻辑判断,实现控制轨迹的方向变化,重复运行的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值