论文部分内容阅读
碰撞检测是机器人仿真、虚拟现实、计算机可视化等领域中的关键问题,其基本任务是确定两个或多个物体之间是否发生接触或穿透。随着机器人仿真技术的发展,仿真环境对碰撞检测的精确性提出更高的要求,实现实时、精确的碰撞检测对提高仿真环境的真实性和沉浸感起着重要的作用。本文以现有的机器人仿真平台为背景,研究了在仿真工业机器人运动过程中机器人与周围环境之间和机器人自身关节之间的碰撞检测问题,提出一种有效的碰撞检测算法,从而在机器人仿真平台中实现了精确的碰撞检测。首先,本文针对RAPD算法进行了改进,提出一种基于AABB和OBB混合层次包围盒的碰撞检测算法。利用AABB包围盒构造简单和相交测试速度快的特点,在碰撞检测的初始阶段构造各物体的AABB包围盒进行粗略的碰撞检测,利用OBB包围盒紧密性好、测试准确率高的特点进一步构造各零件的OBB包围盒进行精确的碰撞检测。采用自顶向下的方法构造各物体的AABB-OBB混合层次包围体树。经过茶壶模型的碰撞检测实验验证,该算法具有较高的碰撞检测准确率和稳定性,但是在运行速度和存储需求方面还可以进一步优化。其次,本文针对基于AABB和OBB混合层次包围盒的碰撞检测算法进行了速度和存储方面的优化。速度优化:提出一种基于轴划分理论的希尔排序全局搜索算法对AABB包围盒的相交测试进行优化,采用基于时空相关性的加速遍历算法对混合层次包围体树进行遍历优化。存储优化:采用基于压缩存储根节点的方法进行根节点的存储优化,采用改进的基于压缩存储的三角形快速相交测试算法进行叶节点的存储优化。实验证明,经过速度优化和存储优化后的碰撞检测算法大大减少的层次包围体树的存储需求。最后,本文构建了BUAA六自由度工业机器人和变位机的工作场景,在机器人轨迹运动的过程中实现了机器人与变位机、地面等周围环境之间和机器人自身关节之间精确、快速的碰撞检测。