服务机器人三维仿真中的碰撞检测研究
2019-06-03
苏州市产品质量监督检验院 江苏 苏州 215000
前言
因为服务机器人主要的应用目的就是为人们的生活提供便利,所以,在这种机器人的研究与制作过程中,也应该和传统的工业机器人存在很大的差别,使其在为人们提供服务的同时又不会对人们的生活环境造成多大的改变。在服务机器人的研究过程中,最应该注重的一个问题就是避免其自身的碰撞和与外界环境的碰撞,这样才可以有效保障其使用的安全性。而碰撞检测就是有效避免其发生碰撞的基础,所以在这种机器人的仿真过程中,一定要注重碰撞检测。
一、服务机器人自身碰撞检测
(一)检测的意义。在服务机器人的实际应用过程中,如果可以有效避免其身体的关节相互碰撞,不仅可以有效避免机器人被损坏的情况,同时也可以有效避免由于其自身碰撞失去平衡而造成的人员损伤和环境破坏[1]。所以在对这种机器人进行碰撞检测的过程中,相关人员应该对其自身碰撞的检测加以高度重视。
(二)检测的原理。在对这种机器人的关节碰撞进行检测的过程中,因为有一部分的关节会存在几何限制,所以这些关节的活动范围也会被限制住,活动的时候也就不会出现碰撞的情况,所以在检测的时候可以将其省略。如下图所示,在几何约束和运动约束的条件之下,这个机器人的上下手臂之间就不会出现碰撞情况。同样的道理,在这个机器人抓手、上下的手臂和上下半身也会受到几何约束以及运动自由度的约束,进而不会出现碰撞情况[2]。由此可以看出,在这个机器人中,只有抓手以及拇指之间可能会出现碰撞,其余的部位均不会出现,所以在检测的过程中可以省略对其他部位的检测,仅仅对可能会出现碰撞的部位进行检测。
图1 手臂关节图
由于左右手的上臂都会受到几何尺寸的约束作用,所以在两个手臂之中,J1位置、J2位置以及J3位置都不会发生碰撞。但是在实际的检测过程中,为了便于编程,则应该将这些个关节检测添加进去。在进行检测的过程中,为了让每一个关节碰撞发生的部位都可以更加直观地展示出来,所以会在两个手臂之间最近的点用绿色箭头做出标识,在手臂和身体之间最近的点用紫色箭头作为标识。
(三)检测的方法。在进行关节碰撞检测的过程中,因为对其最近的点所做出的标识太多,所以就难以判断有哪些会出现碰撞。基于这样的情况,在检测过程中,不仅应该将相应的警示通过控制台进行输出,同时也应该设计出一种比较醒目的方式来起到提示作用,这样才可以在出现碰撞问题的时候及时发出提示,通过这样的方式,用户就可以更方便地找到出现碰撞问题的关节。所以检测人员就对该提示方法进行了设置,在实际进行检测的时候,一旦在哪个部位出现了碰撞问题,发生碰撞的两个关节之间箭头标识就会立刻变成红色,这样就可以起到及时有效的提示作用。
在检测的过程中主要应用到的是VRML模型,在这个模型之中,所有的颜色信息都在shape节点之中进行储存,将这个模型在Java3D之中进行加载,就可以实现Branch Group节点的形成。而该模型之中的shape节点将会成为Java3D之中众多节点的一个,我们将其叫做shape3D节点。在进行试验的时候,如果想要将这个模型之中的颜色进行改变,就一定要将这个模型之中的shape3D节点全部改变过来。
二、机器人和环境的碰撞检测
(一)检测的意义。在对服务机器人进行仿真的过程中,一项最关键的内容就是避免其与周围的环境产生碰撞。因为这种机器人所执行的任务是为人服务,所以,一旦其碰撞到周围的环境,很可能打翻机器人手里的东西,损坏周边的事物,甚至会伤害到周围的人,这样的情况不仅会造成一定的经济损失,严重的情况下还会威胁到使用者和周围人们的安全。所以在进行仿真的过程中,将其与环境之间的碰撞情况进行检测是十分必要的一项内容,相关人员一定要对其加以重视。
(二)检测的方法。在进行检测的过程中,会将很多静止的物体放置在这个检测的环境之中,因此位置信息只进行一次读取即可,在将Poly Tree环境构建好之后,就不需要再次进行环境的更新。因为机器人有着运动性的特点,其每个关节在运动的过程中都会在相对位置方面发生实时变化,所以在对其进行碰撞检测之前,应该对其每一帧的运动进行获取。
在刚开始进行检测的时候,相关的程序一定要先对这个模型进行初始化。初始化完成以后就可以在仿真之中将浪费资源和时间的工作分离出来,进而让系统实现实时性的进一步提升。在开始检测的时候,一定要对机器人在每一帧的运动之中进行关节姿势的数据信息获取,并通过Poly Tree来代表接受检测的机器人。检测的过程中一旦有碰撞情况发生,系统就会立即发出相应的警告,进而对下一步应该采取的行为进行提醒,在这个提醒界面之中,检测人员可以选择将规划的方案重新进行设计,也可以选择继续进行检测,暂时忽略掉这个碰撞,还可以选择将这个程序终止。在这个检测系统之中,会将这种机器人和周边环境之间最近的点用红色带有箭头的实线标出来,如果两个点之间有着十分小的距离,就说明这个机器人在这一点可能会和周围的环境之间出现碰撞的情况。
结束语
在当今的经济社会之中,科学技术也在不断发展,而随着人们生活质量的提升,人们对于服务的需求也越来越高。基于这样的情况,服务类的机器人也开始逐渐走进人们的生活。这种机器人的应用使得当今社会人们的生活实现了更大的便利,因此越来越多的人开始关注服务机器人。因为这种机器人主要的应用目的就是为人们服务,所以在应用的过程中,安全性与实用性是最需要注重的问题。基于这一情况,在对这种机器人进行仿真的过程中,相关人员一定要对其自身的碰撞检测及其与环境之间的碰撞检测加以重视,这样才能有效保障其良好的使用性能与安全性能。