论文部分内容阅读
本文以上海交通大学与日本株式会社安川电机合作的国际项目“双臂轮式移动服务型机器人图形化编程与三维仿真”为课题背景,围绕着双臂轮移动机器人SmartPal在三维仿真环境下需要解决的碰撞检测问题,进行了基于Vclip算法的机器人碰撞检测研究。实现了在普通PC机上双臂移动机器人SmartPal的本体与手臂的避碰及与环境的避碰。为了三维仿真环境中提高碰撞检测的实时性,根据虚拟机器人手臂,身体,抓手和虚拟场景中的物体不同的精度要求,提出了采用不同的包围盒算法和利用局部搜索方法,解决了在PC机上完成了机器人SmartPal碰撞检测的三维仿真。论文中针对双臂轮移动机器人SmartPal存在非凸多面体的情况,提出了非凸模型的碰撞检测方法,采用VRML标准层次结构对非凸模型进行分解,转换为一系列简单的结构子模型,并为每个子模型构造对应的AABB或OBB包围盒。AABB包围盒构造简单计算效率高但精度低,OBB包围盒紧密性好但由于其构造复杂所耗费时间较长。根据实际应用需要,设计了碰撞模型转化阈值k(本文中根据机器人抓取需要设定为5mm),当检测到距离大于等于k时调用AABB包围盒,距离小于k时则调用其OBB包围盒计算,这样保证高精度的前提条件下,有效地满足了碰撞检测的实时要求,同时也解决了一般碰撞检测算法只适用于凸多面体的不足。对凸多面体则根据模型特点直接构造其相应的包围盒。利用高效的Vclip碰撞库实现包围盒间的碰撞计算。该碰撞检测方案的一个具体应用是根据手臂运动学利用碰撞检测信息实现了SmartPal抓手端杯的操作,且试验表明满足项目的端杯实时性要求。仿真试验中分别测试了机器人在抓杯过程中采用本文算法和OBB层次包围盒树算法的碰撞检测时间,随着试验场景中模型面片数的增加,本文所提算法的效率要明显优于OBB层次包围盒树算法。试验同时测试了非凸模型分别采用基于VRML标准层次结构分解和表面凸分解两种算法构造凸包所需时间,结果表明所提出的VRML标准层次结构分解算法在处理非凸体过程中能更好的满足实时性要求。