您好,欢迎来到易配在线!登录 注册 经销商|联系我们|综合搜索
堡盟Baumer艾默生Emerson斯凯孚SKF安华高AVAGO台达DELTA步科Kinco飞凌FEILING山洋SANYO DENKI倍加福PEPPERL+FUCHS

CRT工业机器人控制代码的碰撞检测

2014/1/27 0:14:16              

0 引言

目前大多数碰撞检测方法都是通过物体的描述模型,直接针对三维物体进行的,如:八叉树法、离散矢量法、包容盒法㈨和扫描体法等。这种在三维物体间直接进行碰撞检测的计算量较大,有时为实现碰撞检测过程的可视化,不得不借助于高性能的图形工作站。为提高碰撞检测的效率,Cliffor A.Shaffer作出了有意的尝试。他在机器臂碰撞检测系统中采用八叉树模型来划分物体的运动空间,而非描述物体本身,使碰撞检测能够直接推进到可能发生碰撞的空间,提高了碰撞检测的效率。

本文以CRT工业机器人控制代码的图形验证为目的,以个人计算机为硬件基础,以降低碰撞检测过程的复杂程度为指导原则,从运动环境的角度出发,开展了碰撞检测方法的研究。

1 碰撞检测

如图1所示,三津公司的玻璃壳搬运用工业机器人是一种结构类似于SCARA(SelectivelyCompliant Arm for Assembly)机器人的操作机。一般的SCARA机器人的结构特点是具有两个平行的回转关节,其回转轴线a-a和b-b垂直于机座4的安装平面。大臂2和立柱3组成一组圆转关节,小臂1和大臂2组成另一组回转关节,且其轴线俨口平行于b-b。导柱5与小臂的滑套组成一组滑动关节。当驱动系统通电后,大臂和小臂分别绕轴线a-a、b-b旋转,导柱沿轴线rf作上下运动。而三津公司CRT生产线上的工业机器人与传统SCARA机器人不同的是:取消导柱5与小臂的运动,增加了立柱沿轴线a-a的上下运动。

图1 SCARA机器人

1.1 最大运动范围的分层处理

受Cliffor思想的启发,同时结合CRT工业机器人的具体特点,提出并建立了CRT工业机器人最大运动范围的空间分层索引模型,如图2所示。

图2 最大运动范围的分层模型

模型的建立方法:将CRT工业机器人最大运动范围用形状为圆柱体的最小包容盒包围,包容盒坐标轴方向与机器人坐标轴方向一致;然后,用垂直于Z轴的平面(图1所示吸盘轴线c的方向与Z轴方向平行),按高度Ah依次划分,其中1到行为各层的ID号。

建立最大运动范围空间分层索引模型的目的主要有两个:

(1)通过物体在模型空间中的位置,判断可能发生碰撞的空间(该空间由若干ID号标志),有效地避免了对各层的穷尽搜索,加速了碰撞检测的进程;

(2)当△h足够小时,可将各层当平面看待。这样,三维物体的碰撞问题可以转化到各平面层内解决,降低了碰撞检测的复杂程度。

1.2 各层内的碰撞检测

在CRT工业机器人运动中,吸盘、吸盘轴和吸盘吸附的玻璃壳都可能与周围的其他设备发生碰撞。为使碰撞检测能兼顾运动环境中的各种因素,同时也为了叙述上的方便,作者提出了“吸盘联体”和“环境联体”的概念,即:将吸盘、吸盘轴和吸盘吸附的玻璃壳看作一个整体,而将机器人周围的其他设备及设施看作另一个整体,共同参与到碰撞检测中。就CRT工业机器人而言,吸盘联体可简化为一回转体,其回转轴为吸盘轴。

在机器人运动过程中,当吸盘联体和环境联体占据同一层仇时,可能有碰撞发生。可以通过吸盘联体和环境联体在柳层截面之间的位置关系判断:如果两截面相交,则在该层内有碰撞发生;否则,无碰撞发生。具体判断方法如图3所示。

图3 层内的碰撞检测

图3(a)中,圆。和曲线C-分别是吸盘联体和环境联体在m层内截面的轮廓曲线。图3(b)中,圆。收缩成吸盘轴上一点o,曲线C。相应的放大成C2。具体放大方法是:让圆。的圆心在C,上运动,将圆0的外包络曲线C2作为C。放大后的曲线。通过这种措施,可将圆O和C。的碰撞问题转化成吸盘轴和m层的交点0与轮廓曲线C。之间的碰撞问题。这样,只需判断点0的坐标(z,y)是否在曲线c2内即可,降低了碰撞检测的复杂程度。

1.3 层内点与封闭曲线的位置关系

为充分保证生产过程的安全性,规定只要点和曲线发生接触,就有碰撞发生。具体计算过程分粗判和精判两步进行:

(1)粗判。该步骤的目的是为了减少不必要的精确计算,加速碰撞检测的进程。判据如下:

图4 层内点与封闭曲线的位置关系

则,表明点。位于曲线C上或曲线的封闭范围内,即有碰撞发生;否则,无碰撞发生。特殊情况:直线Y—Y0与曲线无交点,则没有碰撞发生;直线y=Y0与曲线有且只有一个交点,即直线与曲线相切时,发生碰撞。

1.4 算法描述与分析

在最大运动空间分层索引模型的基础上,开发了CRT工业机器人碰撞检测算法,如图5。图中,x-Zmax为吸盘联体在2方向上的最大值,^-Zmin。为环境联体在Z方向上的最小值,Zmax与Zmin表示机器人在z方向上的运动范围。

具体碰撞检测算法用伪码描述如下:

int IDmax;//可能发生碰撞的最大ID值

int IDmin//可能发生碰撞的最小ID值 

 

图5 层间的碰撞检测

至此,可以根据算法的计算结果判断控制代码是否有碰撞发生。

为实现整个运动过程的碰撞检测,需将相邻两行控制代码之间的位置细化成多个吸盘联体的运动位置(步长Aa可调),然后对细化后的每个位置应用本节中的算法进行碰撞检测。通过调整分层高度Ah和细化步长Aa,可以方便地改变碰撞检测的效率和精度,即Ah和△n越小检测精度越高,所需时间越长。

2 验证实例

图6为CRT工业机器人碰撞检测效果图。碰撞检测所需要的数据,单位为mm。

(1)最大运动空间(圆柱体):

圆柱体底面圆心:(0,0,900)

底面半径:1 000;

高:500;

(2)分层高度:1;

(3)测试代码:

其中,rXfilmpos=4 000脉冲,rYfilmpos=5 000脉冲时,有碰撞发生;rXfilmpos=4 300脉冲,rYfilmpos=6 700时,无碰撞发生。注意,这里的位置是控制代码中的原始数

  • 喜欢 ( 0 )
  • 不喜欢 ( 0 )

网友评论

(查看全部0条评论)

您好 ,喜欢这篇文章吗?  

您还未登录,登录后才可发表评论,请立即登录注册

站点地图| 会员服务| 关于网站| 招聘信息| 法律声明| 联系我们| 友情链接

邮箱:1010196856@qq.com 客服热线:0571-88802870(工作时间:周一至周五8:30至17:30)
Copyright@2014-2016 www.epiol.com All Rights Reserved 版权所有:杭州锐联工业科技有限公司   浙ICP备13025252号-2   公安机关互联网站安全 浙公网安备33010502003191号

微信扫一扫


技术咨询