论文部分内容阅读
服务机器人三维仿真中的碰撞检测所提供的距离信息对实现机器人与环境物体之间以及机器人自身关节之间进行避碰有重要作用,是机器人执行任务和路径规划的基础。因此一个完善的服务机器人仿真系统必须能进行实时的碰撞检测,包括机器人与环境之间的碰撞检测以及机器人各关节之间的碰撞检测。服务机器人三维仿真环境具有不确定性,需要针对用户需求实现多种多样的作业。这就要求服务机器人的碰撞检测系统具有很好的柔性和鲁棒性,较高的碰撞检测效率,具有处理不同的复杂环境的能力。同时还应有很好的碰撞检测精度。然而,目前主流的碰撞检测算法大多都只针对凸多面体,对非凸模型还没有完备的算法,并且一旦碰撞检测对象增多,碰撞检测效率明显下降,使得碰撞检测成为服务机器人仿真中的一个瓶颈。本文以上海交通大学与日本株式会社安川电机合作的国际项目“智能机器人编程环境的研究和开发”为课题背景,在对各类碰撞检测算法做出全面了解、透彻分析的基础上,结合服务机器人三维仿真的特点,设计、实现并验证了一套有效的碰撞检测方案:针对服务机器人仿真对实时性和算法健壮性的要求,选择了V-Clip作为碰撞检测算法。针对仿真中模型多为非凸模型,无法直接应用于碰撞检测算法的问题,根据仿真中使用到的VRML模型数据结构的特点,设计了一种完全由程序自动执行的模型凸分解方法,创建适用于碰撞检测的检测单元。为了提供机器人执行任务和路径规划所需要的距离信息,设计了机器人与环境模型之间以及机器人自身关节之间的碰撞检测系统。对碰撞检测效率随仿真中检测对象增多而迅速下降的问题,采用了包围盒技术实现粗检测与精检测区分的方式提高碰撞检测效率。为了解决复杂大环境的碰撞检测,设计了碰撞检测区域自动划分的方法。最后,为整个碰撞检测方案设计了简单友好的用户界面。通过仿真实验,该方案具有较高的碰撞检测精度,很好的实时性。由于对可能出现的异常情况进行了有效的处理,使得该方案具有很好的稳定性。碰撞检测用户界面简单易用,许多处理过程均由程序自动完成。因此,该方案保证了系统的柔性,适应于服务机器人仿真的特点。