基于AABB包围盒的双机械臂避碰技术的研究
2020-07-30干智峰
干智峰
摘 要
机械臂避碰技术能够保证机械臂在工作过程中的安全,对于增强机械臂在整个应用领域中的安全性具有重要意义。本文基于双机械臂的D-H模型和AABB包围盒技术提出了双机械臂避碰方法。并通过MATLAB和Adams联合仿真对双机械臂避碰方法进行了验证。仿真结果显示,该方法实现了双机械臂之间的碰撞检测,能够防止机械臂在运动过程中发生碰撞。
关键词
机械臂;D-H模型;AABB包围盒;MATLAB Adams
中图分类号: TP242 文献标识码: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 17 . 34
Abstract
The collision avoidance technology of the manipulator is effective enough to ensure the safety of the manipulator in the working process, which is of great significance to enhance the safety of the manipulator in the whole application field. Based on the D-H model of double manipulator and AABB bounding box technology, this paper presents a collision avoidance method of double manipulator. The collision avoidance method of double manipulator is verified by the joint simulation of MATLAB and Adams. The simulation results show that the collision detection between the two manipulators is fully realized by this method, which can prevent the collision of the two manipulators in the process of movement.
Key words
Robotic arm; D-H model; AABB enclosure; MATLAB Adams
0 引言
随着机械臂和多机械臂系统在实际生产中大量应用,人们对机械臂在使用过程中的安全性也提出了更高的要求。其中最重要的就是要防止机械臂在运动过程中发生碰撞。
机械臂避碰算法的核心是机械臂碰撞检测算法。通过碰撞检测算法提前对机械臂的位置状态进行预判,进而防止机械臂发生碰撞。在碰撞检测算法中主要可以分为:空间剖分法和层次包围盒方法两大类。其中层次包围盒法的应用非常普遍,且其非常适用于复杂环境中的碰撞检测。由于机械臂具有复杂的几何结构和运动,所以在本文中,采用包围盒技术对运动中的两个机械臂进行碰撞检测。
1 AABB包围盒碰撞检测方法简介
AABB包围盒的碰撞检测,是基于分离轴定理。该包围盒构造方法简单,只需要找出其在坐标轴上投影的最大值和最小值即可,具有非常好的简单性。此外,当将AABB包围盒用于变形物体的时候,不需要重新构造包围盒。只需将变形后物体中变形的基本集合元素进行更新,然后自下向上重新构造包围盒形成父节点,最后对整个包围盒进行更新。
2 基于AABB包围盒的双机械臂避碰技术
2.1 机械臂包围盒构建方式
双机械臂避碰技术的核心是双机械臂包围盒的碰撞检测。首先需要为机械臂建立AABB包围盒。如何用简单的方法,建立具有良好紧密性的包围盒是碰撞检测的关键。为了提高包围盒对机械臂包围的紧密性,结合机械臂的几何特性,本文提出采用分段建模的方式,对整个机械臂进行建模。
在对机械臂进行分段的时候,充分考虑了机械臂的特点,对机械臂进行D-H建模,将D-H模型关节坐标系作为每段的分割节点,依次将机械臂分割成了六段,并将这六段分别基于不同的D-H模型的关节坐标系进行建模。
2.2 机械臂AABB包围盒的建立
2.2.1 機械臂D-H模型
在本文中,采用了KUKA KR16机器人进行D-H建模。
KR16机器人共有六个串联旋转关节。前三个关节用来控制机器人末端执行器的位置,后三个关节用来确定末端执行器的姿态。建立的模型如图1所示。
2.2.2 建立包围盒层次树
机械臂包围盒层次树构造过程如下:
(1)根据机械臂的几何模型建立D-H模型,根据模型对机械臂进行分段;
(2)对某一分段的物体建立包围盒;将该包围盒作为层次包围盒树的根;
(3)根据最长轴方法,确定分段包围盒的最长轴,将此轴作为分割轴;
(4)根据包围盒中值法确定分割轴上的分割点,定位分割平面;
(5)应用划分出来的分割平面,将分段包围盒划分为了两个子集;
(6)把步骤5的子集作为根节点,返回(3)直到包围盒树达到要求的深度;
(7)返回步骤2直到所有分段的包围盒层次树都构建完成。
根据这种方法做出的层次包围盒树,是一棵完全二叉树。如图2为机器人末端执行器的包围盒层次树示意图。
2.3 双机械臂碰撞检测方法的实现
包围盒的碰撞检测将采用全局搜索和局部检索的碰撞检测方式。全局搜索是指通过包围盒快速排除多数明显不相交的对象;而局部检索是全局搜索的后续阶段,采用局部检索对可能相交的物体进行进一步检测。
2.3.1 AABB包围盒全局搜索
双机械臂碰撞检测改进的全局搜索的主要包含以下几个步骤,首先为机器人A、B计算AABB分段包围盒,分别建立包围盒在全局坐标系下的X、Y、Z轴上的投影列表XA、YA、ZA、XB、YB、ZB,并对列表进行第一次排序。之后对X、Y、Z轴三个轴进行划分,得到机器人A、B在X、Y、Z轴三个轴投影到子序列。将对应区域的子序列进行二次排序后,将子列表进行重新组合得到列表XO、YO、ZO。检查在三个列表中是否有重叠区域。当在三个列表上都重叠的时候,就说明包围盒重叠了。利用全局搜索可以快速地排除大量明显不相交的包围盒。
2.3.2 运用分离轴定理逐步求精
根据全局搜索确定了进一步碰撞检测的对象后,将采用分离轴定理对包围盒进行碰撞检测。
对于AABB包围盒,在选取分离轴的时候,只需要分别取第一个包围盒中三个相互垂直的边,第二个包围盒中三个相互垂直的边,以及第一个包围盒三个边中的任意一个边和第二个包围盒三个边中的任意一个边所决定的平面的法线。按照这种做法,一共能够计算出9个分离轴。所以,一共需要检测15个分离轴。
首先任选一个分离轴,将机器人A的包围盒顶点投影到选定分离轴,然后求出这六个值的最大值和最小值。同理,用同样的方法求出机器人B的包围盒投影到分离轴上的最大值和最小值,通过计算两个包围盒在分离轴上的投影范围,记录包围盒在这个分离轴上的投影是否重叠。重复上述过程,直到将15个分离轴全部检测。根据投影重叠进而判断包围盒是否发生碰撞。
3 双机械臂避碰仿真实验
在本节中,采用MATLAB和Adams联合仿真来验证双机械臂避碰方法。
在联合仿真实验中,设置多个场景来验证算法的有效性。图3(a)是机械臂的包围盒没有发生碰撞的场景。图3(b)显示的是机械臂的包围盒在空间中的位置映射。如图3所示,双机械臂的包围盒没有发生碰撞,双机械臂保持运动。
如图4所示,机械臂分段包围盒层次树的根包围盒发生了碰撞。
如图5(a)所示,当机械臂分段包围盒层次树的根包围盒发生碰撞,此时,如图5(b)所示,碰撞的包围盒层次树会向下遍历,对子包围盒进行碰撞检测。如果子包围盒没有发生碰撞,即说明机械臂运行安全,机械臂会继续运动。如果叶子结点包围盒发生碰撞,则会给出碰撞信号,使机械臂停止运动。
图6(a)表示的是计算得到的机械臂间包围盒最小距离与时间的函数图像,图6(b)表示的是碰撞检测状态图像。从图6可以看出,在机械臂运动的过程中,包围盒发生了碰撞,且包围盒的叶子结点发生了碰撞,系统给出了碰撞信号。
图7是层次包围盒树的碰撞检测对比图。如图7(a)所示,在图中共有两处的包围盒有重叠,在第一处的包围盒层次树的叶子结点包围盒发生了碰撞,而在第二处,叶子节点包围盒并没有发生碰撞。从图7(b)可以看出,只有第一处包围盒距离为零时给出了碰撞信号,而第二处并没有给出信号。
根据上述的仿真试验,可以根据AABB包围盒对双机械臂进行碰撞检测,当包围盒的叶子结点发生碰撞的时候,算法会给出碰撞信号。在实际应用中,可以根据碰撞信号,提前对机械臂采取制动措施,防止机械臂发生碰撞。
4 小结
本文重点介绍了应用在双机械臂避碰中的基于AABB包围盒的双机械臂避碰算法。重点研究了避碰算法中核心的基于AABB包围盒的碰撞检测算法。剖析了AABB包围盒的建立方法,并结合机械臂的结构特性,提出采用分段建模的方式对机械臂包围盒的构造方法。此外,还详细研究了双机械臂基于AABB包围盒的碰撞检测方法。最后通过MATLAB和Adams联合仿真对双机械臂的避碰算法进行了验证。仿真结果显示,基于AABB包围盒的双机械臂避碰方法能够有效地检测到双机械臂包围盒的碰撞,并给出避碰信号。
参考文献
[1]黄可.层次包围盒的碰撞检测算法研究[J].中国科技信息, 2010(17):97-98.
[2]Barnes,Noble.Websters New Universal Unabridged Dictionary[J],New York,1989:P1-2.
[3]Zhao W, Wen R. The Algorithm of Fast Collision Detection Based on Hybrid Bounding Box[C].International Conference on Computer Science and Electronics Engineering. IEEE, 2012:547-551.
[4]熊玉梅.虛拟环境中物体碰撞检测技术的研究[D].上海大学, 2011.
[5]Ning T, Guo C. Optimization of collision detection method using hybrid bounding box[J]. Computer Engineering & Applications, 2011, 47(1):1-3.
[6]谢斌斌.基于包围盒的碰撞检测技术的研究[D].哈尔滨工程大学,2015.
[7]王晓荣,王萌,李春贵.基于AABB包围盒的碰撞检测算法的研究[J].计算机工程与科学,2010,32(4):59-61.