一种基于OSG的自适应虚拟夹具的构造方法与流程

文档序号:11078633阅读:448来源:国知局
一种基于OSG的自适应虚拟夹具的构造方法与制造工艺

机器人遥操作虚拟在轨维护训练系统



背景技术:

虚拟夹具是遥操作领域中一个很重要的辅助手段,特别是控制机械臂在虚拟场景中运动的时候,虚拟夹具可以限制机械臂的运动空间,并利用一定的虚拟夹具的引导算法来导引机械臂手部的运动,从而帮助操作者控制机器人能够更好更快的完成任务,提高工作效率。虚拟夹具在基于虚拟场景的机器人遥操作系统已经得到了较好的应用和发展。然而传统的虚拟夹具存在诸多的弊端:不能根据环境变化调节虚拟夹具结构,不同的环境下需要更换虚拟夹具。

虽然虚拟夹具具有各种各样的形态,但是其最终目的都是为了能让目标执行器能够在虚拟夹具内部的安全范围内运动,将机械臂末端在靠近目的地的过程中,避免其穿出虚拟夹具从而和外部环境发生碰撞,这样可以很好地保护机械臂。本文提出了自适应虚拟夹具的方法,具有根据环境变化动态调整虚拟夹具的功能。可以不需要对虚拟夹具进行建模,而是当外界变化的时候,可以自适应的调整夹具的形态,来调整机械臂的运动策略。



技术实现要素:

本发明的目的是通过一定的策略选择合适形状的虚拟夹具和复杂情况下虚拟管道状虚拟夹具的构建过程。

本发明采用如下的技术方案:构建具有力反馈的OSG虚拟仿真环境,通过力反馈设备控制机械臂末端运动,给定机械臂末端的起始点和目标点,要让机械臂从起始点运动到目标点,先通过OSG碰撞检测库的射线穿透的方法,判断两点之间是否存在障碍物,若不存在则建立简单形状如圆柱体的虚拟夹具,否则通过射线穿透方法确定出障碍物的尺寸,然后在障碍物的周围确定出一个一系列安全关键点,然后只需要构建起始点到关键点、关键点之间和关键点到目标点的虚拟管道即可。

本发明的优点有:

本发明虚拟夹具的形状可以自适应环境的变化,环境简单则建立简约夹具,环境复杂就建立管道夹具,并且复杂情况下能够确定出一条安全且较短的路径,相比传统单一的虚拟夹具方法,大大提高了虚拟夹具的构建效率和操作效率。

附图说明

图1是虚拟夹具选择策略图

图2虚拟管道空间位姿确定算法流程图

图3是未知复杂环境的虚拟管道位姿确定图

具体实施方式

射线检测技术是本专利需要使用的检测技术。OSG三维引擎库里面提供了osgUtil工具类,它可以判断一条射线是否和物体相交,若相交的情况下能够提供相交点准确位置信息。虚拟场景中的射线是碰撞检测相交测试的基础,然而线段又提供了一种定义射线的方法,当相交发生的时候,可以通过检测线段的相交情况来检测射线相交并且执行响应的操作。osgUtil交点类提供了射线或者线段与场景中的三维模型相交的信息,即具体的碰撞点的世界坐标下的位置坐标和碰撞的法线方向。通过给定起始点和终点,建立它们之间的射线即可判断该射线对应的线段之间是否存在其他的模型。

在OSG中射线检测方法具体实现如下:(1)建立起点和终点之间的射线,PointA和PointB分别表示起点和终点,即osg::ref_ptr<osg::LineSegment>line=newosg::LineSegment(pointA,pointB);(2)将射线加入到相交遍历器中,即osgUtil::IntersectVisitor ivMul;ivMul.addLineSegment(line);(3)判断射线是否与模型相交,即如果ivMul.hits()返回true则相交,否则不相交;(4)如果相交,求出第一个碰撞点,由ivMul.getHitList(line)可以得到与模型的一系列碰撞点的迭代的集合,然后遍历迭代器即可求得所有的碰撞点的信息,即osgUtil::IntersectVisitor::HitList::iterator it,point=it->getWorldIntersectPoint();求出每个点和起始点A的距离,然后将距离最短的点作为第一个碰撞点即图2中的P点输出。

每次虚拟物体在起始点向目标点靠近的过程中,可以通过某射线检测技术判断是否有障碍物体。如果它们之间没有其他的障碍物,证明物体在运动的过程中不会发生和其他的物体的碰撞,因此选用简单的圆柱体即可,其中圆柱体的两端分别为起始点和目标点,这样便可以快速引导物体运动到目标点,因为圆柱体比较单一、相对简单,所以虚拟夹具的算法复杂度比较低,性能也互相对提高。如果射线和其他的障碍物模型发生相交,证明环境中起始点和目标点之间存在一定的障碍物,这种情况,本文选用管道虚拟夹具,绕过障碍物,辅助物体到达目标点。其选择策略如图1所示。

对于没有障碍物的简单环境情况下,圆柱体状的虚拟夹具便可以快速帮助操作者将物体移动到目标点,其圆柱体的两端对应着起始点和目标点即可。对于复杂环境下分析虚拟管道的构建过程,具体虚拟管道空间位姿确定策略流程如图2所示。

未知环境虚拟管道确定示意图如图3所示,这里A表示目标物体的起始点,B表示物体的目标点。在虚拟场景中,操作者意图通过手控设备控制机械臂末端直接从A运动到B,通过形状选择的步骤可以通过射线穿透法发现AB射线之间存在相交的模型,即为障碍物。并且很容易确定射线和障碍物的相交点P的位置,由图3所示,确定出一系列的关键点P1、P2、P3…Pn,然后将虚拟管道AP1,P1P2,P2P3…PnB的管道拼接起来即可完成整个虚拟管道的构建。

对于每个关键点的确定,根据算法流程,可知是确定出此时障碍物,上侧、左侧,右侧、下侧的关键点P1,P11,P12,P13,其中P1和P13点在直线AB和z轴组成的平面上,P11和P12为过P点且垂直于上述平面的的平面上。然后比较∠PAP1、∠PAP11、∠PAP12和∠PAP13的大小,将最小的角度对应的点作为关键点。下面介绍P1点的具体求解方法,

假设A(x1,y1,z1),B(x2,y2,z2),通过射线AB和障碍物,可求得与障碍物相交点P(x3,y3,z3)。由于ABP1平面是平行于Z轴的,则平面ABP1的法向量如式(1)

垂直于AB射线的并且过B的向量为:

在图3中,B1、B2、B3、B4等点是在向量方向上距离B点10单位、20单位、30单位、40单位成等差数列的距离。已知B点和很容易可以求得B1、B2、B3、B4…Bn等的点坐标。此时,依次求得射线AB1、AB2、AB3、AB4、...ABn,计算是否与障碍物相交,直到当n=k时,射线不再与障碍物相交。如图3所示的情况下,n=4时,ABn不再与障碍物相交,在两个三角形ABB4和APP1中,由三角形相似性得到

考虑到虚拟管道的有一定的宽度,因此设置P1点在此基础上再偏移一定的阈值e,即满足

PP1=PP1+e (4)

根据P点坐标、PP1距离即可求得P1点坐标。

P11,P12和P13的求解类似方法和P1类似,将这四个点比较得到对应的点作为第一个关键点,将其设为P1,已知P1关键点位置,检测该关键点和目标点之间是否有障碍物,如果是,确定下一个关键点P2,其求解方法和求解P1方法相似,将P1点作为A点,使用递归的方法求解即可,否则退出递归即可。这样便可以确定出所有的关键点P1、P2…Pn。然后构建A、P1、P2…Pn、B相邻点构成的管道,拼接起来即可完成虚拟管道的空间位置确定。自此自适应虚拟夹具的形状选择空间位置均可以确定下来。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1