一种机械臂在线避障运动规划方法与流程

文档序号:18666505发布日期:2019-09-13 20:13阅读:557来源:国知局
一种机械臂在线避障运动规划方法与流程
本发明涉及机械臂运动规划
技术领域
,尤其涉及一种机械臂在线避障运动规划方法。
背景技术
:运动规划是机器人研究的基本问题,早期的运动规划主要针对移动机器人,将移动机器人看做二维平面的一个质点,寻找一条从起始点到目标点的无碰撞路径。目前针对移动机器人的路径规划方法已经非常丰富,目前该类方法主要有dijkstra算法、a*算法、人工势场法、群智能算法等。针对机械臂这样的多输入多输出、非线性、强耦合的高维复杂系统,这些方法分别存在相应时间长、计算量大、易陷入局部最优等缺点,不能实现机械臂工作的在线避障。因此机械臂在线实时避障运动规划是机械臂控制的一个关键问题。基于随机采样的方法prm(probabilisticroad-map)和rrt(rapidly-exploringrandomtree)算法凭借强大的搜索能力和不需要对障碍物进行精确建模的优点广受学者们的喜爱,也更适合于机械臂这样的高维空间。prm算法分为两个步骤,首先在可行解空间内随机采样一定数量的点,然后将这些采样点连接并寻找最短路径。采样点过多会降低最短路径的寻找速度,难以达到机械臂在线实时运动的要求。rrt算法速度较快,rrt*对其节点连接方式进行了改进,使得rrt*具有渐进寻优的能力。技术实现要素:本发明要解决的技术问题是针对上述现有技术的不足,提供一种机械臂在线避障运动规划方法,通过预规划和重规划两个阶段,在规划过程中将若干个节点输入给轨迹规划器,宏观上实现机械臂在线实时避障运动。为解决上述技术问题,本发明所采取的技术方案是:一种机械臂在线避障运动规划方法,包括以下步骤:步骤1:利用d-h法对六自由度机械臂进行建模,对障碍物使用轴向包围盒和球形包围盒技术建立模型,给出笛卡尔空间的起始点和目标点坐标;步骤2:初始化机械臂的工作环境和参数,确定障碍物位置,逆解确定关节空间中的机械臂运动路径的起始点qinit和目标点qgoal,确定扩展步长r,邻域半径r,并初始化仅包含起始节点的搜索树和最大迭代次数maxattempts,进入预规划阶段;所述关节空间,对于一个具有n个自由度的的操作臂来说,它的所有连杆位置由一组n个关节变量来确定,这样的一组变量通常被称为n×1的关节矢量,所有关节矢量组成的空间称为关节空间;步骤3:预规划阶段,在关节空间内以概率α向目标点采样,以概率1-α在自由空间内随机采样,得到新采样点qrand,对搜索树中节点遍历求得距离qrand最近的节点qnearest,从qnearest向qrand以扩展步长r扩展得到新节点qnew;步骤4:计算距离新节点qnew小于r的邻域集合qnear,在qnear内找出节点成本与该节点到qnew距离之和最小的节点作为qnew的父节点qparent;所述节点成本描述了两个节点q1c和q2c间的距离信息,具体计算方式为:其中,其中,d1为关节空间的欧式距离,d2为关节角对应机械臂末端位置的欧式距离,δθ为关节角对应机械臂末端姿态的欧式距离,(x1,y1,z1)和(x2,y2,z2)分别为两个节点对应机械臂末端在笛卡尔空间的坐标,r′1、p1、y′1和r′2、p2、y′2分别为绕z、y、x轴的旋转角,α、β、γ均为权重系数;步骤5:对新节点qnew与其父节点qparent形成的路径做碰撞检测,如果发生碰撞,则返回步骤3重新采样;否则将新节点qnew与其父节点qparent形成的路径添加进搜索树中,并对邻域集合qnear中每个节点进行遍历,如果邻域集合qnear中节点qnear的成本小于新节点qnew的成本与两者形成路径距离之和,则用qnew代替qnear原来的父节点,并更新其对应的成本;所述碰撞检测的具体方法为:对障碍物使用轴向包围盒或球形包围盒包络,对机械臂连杆使用圆柱体进行包络,然后根据轴向包围盒是否与圆柱体相交、球心与圆柱体中心线的直线距离是否小于两者半径之和来判断是否发生碰撞;步骤6:判断新节点qnew与目标节点之间的距离qgoal小于扩展步长r是否成立,如果成立并且qgoal与qnew形成的路径没有发生碰撞,则说明已经找到可到达目标点的路径,将qgoal添加进搜索树中并转到步骤8进入重规划阶段,否则执行步骤7;步骤7:判断搜索树中的节点数是否大于等于根据起点到目标点的距离及扩展步长确定的机械臂运动路径点数k,如果是,则在建立好的搜索树中规划出k个节点,形成机械臂运动的路径点序列,并将路径点序列送到轨迹规划器中控制机械臂运动,循环执行步骤3至步骤7直到跳出循环进入重规划阶段或达到最大迭代次数中止,否则,重新执行步骤3;步骤8:重规划阶段,更新目标点qgoal、机械臂位置qa和障碍物位置;步骤9:在搜索树中从qgoal反向检索得到通向目标节点的路径,在此路径上选取一个节点作为信标qbeacon,以概率α在以r为半径,qbeacon为圆心的超椭球内随机采样,以概率1-α在自由空间内随机采样,按照步骤3-5的方法生成新节点并连接,规划出新路径;步骤10:按照三角形定理“两边之和大于第三边”去掉新路径中的中间点使得整条路径的总成本更小,对整条路径重新布线以优化路径;步骤11:在建立好的搜索树中重新规划出k个节点,形成机械臂运动的新路径点序列,当机械臂qa运动到新路径的起始节点q0时,将k个节点序列送到轨迹规划器中控制机械臂运动,并使用新路径的最后一个节点更新起始节点,即q0=qk,循环执行步骤8至步骤11直到机械臂qa运动到目标节点qgoal。进一步地,步骤7和步骤11所述在建立好的搜索树中规划出k个节点的具体方法为:(1)对路径点序列中机械臂所在的当前路径点qi-1,i=1,…,k,选择代价fc=cost(qi)+h(qi)最小的子节点作为下一路径点qi,h(qi)描述的是qi节点到目标节点的代价,(2)如果下一路径点qi是搜索树的叶子节点或其子节点已被标记,返回路径点序列并标记qi,否则执行(3);(3)如果新路径点qi比之前的路径点qi-1更接近目标点,则将新路径点qi加入路径点序列,更新路径点序列;(4)重复执行(1)至(3),直至得到k个路径点,并返回路径点序列。采用上述技术方案所产生的有益效果在于:本发明提供的一种机械臂在线避障运动规划方法,对rrt*进行改进并应用到机械臂空间,使其能够根据障碍物位置进行剪枝和重新搜索路径,规划过程中将节点送给机械臂轨迹规划器,实现在线避障运动规划;同时,在整个规划过程中机械臂始终处于移动状态,即使障碍物和目标节点发生移动,依然能够重新搜索路径,到达目标节点。附图说明图1为本发明实施例提供的一种机械臂在线避障运动规划方法的流程图;图2为本发明实施例提供的6自由度机械臂模型示意图;图3为本发明实施例提供的不同障碍物所采用的包围盒示意图,其中,(a)为采用轴向包围盒的障碍物a,(b)为采用球形包围盒的障碍物b,(c)为采用两种包围盒都可以的障碍物c;图4为本发明实施例提供的rrt*添加节点与重新布线过程示意图;图5为本发明实施例提供的碰撞检测过程的示意图;图6为本发明实施例提供的三维空间内采用三种算法的搜索结果对比图,其中,(a)为采用rrt算法,(b)为采用rrt*算法,(c)为采用本发明方法;图7为本发明实施例提供的重规划添加节点与路径优化示意图,其中,(a)为生成新节点并连接,(b)为对整条路径重新布线以优化路径;图8为本发明实施例提供的预规划路径与重规划路径的对比图,其中,(a)为预规划路径,(b)为重规划路径;图9为本发明实施例提供的实际环境下机械臂避障过程图,其中,(a)为机械臂的起始点位置,(b)为机械臂越过障碍物,(c)为机械臂到达目标点。图中:1、障碍物1;2、障碍物2;3、连杆i;4、连杆i-1。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本实施例中,一种机械臂在线避障运动规划方法,如图1所示,包括以下步骤:步骤1:利用d-h法对六自由度机械臂进行建模,对障碍物使用轴向包围盒和球形包围盒技术建立模型,给出笛卡尔空间的起始点和目标点坐标;本实施例中,首先建立6自由度机械臂模型,如图2所示,每个关节都是旋转关节,绕z轴旋转,其中(x0,y0,z0)是基坐标系,(x6,y6,z6)是末端坐标系。机械臂的d-h参数如表1所示,使用d-h参数就可以完成坐标变换过程:(1)将zi-1轴绕xi-1轴旋转αi-1,使得zi-1与zi平行或重合;(2)沿xi-1轴平移ai-1的距离,使得i-1轴坐标系与i轴坐标系原点重合;(3)绕zi轴旋转θi,使得xi-1轴与xi轴相互平行或重合;(4)沿zi轴平移di的距离,使得i-1轴坐标系与i轴坐标系完全重合。根据上述变换可将坐标系i-1变换到坐标系i,如下公式(1)所示:其中,sθ为sin(θ)简写,cθ为cos(θ)简写。分别计算机械臂各个连杆的变换矩阵,将所有的变换矩阵连乘就得到机械臂正运动学模型,即坐标系{n}相对于坐标系{0}的变换矩阵,如公式(2)所示:表1机械臂d-h参数本实施例中,不同类型的障碍物包围盒示意图如图3所示,障碍物a采用轴向包围盒,障碍物b采用球形包围盒,对于障碍物c,两种包围盒都可以,选择较为简单的球形包围盒。因此在对障碍物选择包围盒时,首先使用轴向包围盒,当其边长满足一定条件时,说明包围盒的边长值相近,此时改用球形包围盒更为合理。步骤2:初始化机械臂的工作环境和参数,确定障碍物位置,逆解确定关节空间中的机械臂运动路径的起始点qinit和目标点qgoal,确定扩展步长r,邻域半径r,并初始化仅包含起始节点的搜索树和最大迭代次数maxattempts,进入预规划阶段;所述关节空间,对于一个具有n个自由度的的操作臂来说,它的所有连杆位置由一组n个关节变量来确定,这样的一组变量通常被称为n×1的关节矢量,所有关节矢量组成的空间称为关节空间;本实施例中,在100×100×100的三维空间内,在不考虑机械臂姿态,只考虑空间位置的情况下,设置起始点qinit(10,10,10),目标点qgoal(90,90,90),扩展步长r=5,邻域半径r=15。步骤3:预规划阶段,在关节空间内以概率α向目标点采样,以概率1-α在自由空间内随机采样,得到新采样点qrand,对搜索树中节点遍历求得距离qrand最近的节点qnearest,从qnearest向qrand以扩展步长r扩展得到新节点qnew;本实施例中,在关节空间内以概率α向目标节点进行采样得到qrand,如式(3)所示,对搜索树中节点遍历求得距离qrand最近的节点qnearest,从qnearest向qrand以步长r扩展得到新节点qnew,如式(4)所示;其中,pr是一个0~1的随机值,α是人为设定的0~1之间的值;步骤4:计算距离新节点qnew小于r的邻域集合qnear,在qnear内找出节点成本与该节点到qnew距离之和最小的节点作为qnew的父节点qparent;所述节点成本描述了两个节点q1c和q2c间的距离信息,具体计算方式为:其中,其中,d1为关节空间的欧式距离,d2为关节角对应机械臂末端位置的欧式距离,δθ为关节角对应机械臂末端姿态的欧式距离,(x1,y1,z1)和(x2,y2,z2)分别为两个节点对应机械臂末端在笛卡尔空间的坐标,r′1、p1、y′1和r′2、p2、y′2分别为绕z、y、x轴的旋转角,α、β、γ均为权重系数。步骤5:对新节点qnew与其父节点qparent形成的路径做碰撞检测,如果发生碰撞,则返回步骤3重新采样;否则将新节点qnew与其父节点qparent形成的路径添加进搜索树中,并对邻域集合qnear中每个节点进行遍历,如果邻域集合qnear中节点qnear的成本小于新节点qnew的成本与两者形成路径距离之和,则用qnew代替qnear原来的父节点,并更新其对应的成本,如图4所示;所述碰撞检测的具体方法为:对障碍物使用轴向包围盒或球形包围盒包络,对机械臂连杆使用圆柱体进行包络,然后根据轴向包围盒是否与圆柱体相交、球心与圆柱体中心线的直线距离是否小于两者半径之和来判断是否发生碰撞;本实施例中,碰撞检测的示意图如图5所示,ai,bi是连杆i的两端,ωi是连杆i的半径,障碍物1使用球形包围盒,障碍物2使用轴向包围盒。针对球形包围盒的碰撞检测,如果障碍物1包络球球心p到连杆i的距离disi<r+ωi,说明连杆i与障碍物1发生碰撞,反之,则没有发生碰撞。针对轴向包围盒的碰撞检测,线段ab上任一点在障碍物的包围盒内,则说明连杆i与障碍物2发生碰撞。分别检测每个连杆,确定整个机械臂与障碍物是否发生碰撞。步骤6:判断新节点qnew与目标节点之间的距离qgoal小于扩展步长r是否成立,如果成立并且qgoal与qnew形成的路径没有发生碰撞,则说明已经找到可到达目标点的路径,将qgoal添加进搜索树中并转到步骤8进入重规划阶段,否则执行步骤7;步骤7:判断搜索树中的节点数是否大于等于根据起点到目标点的距离及扩展步长确定的机械臂运动路径点数k,如果是,则在建立好的搜索树中规划出k个节点,形成机械臂运动的路径点序列,并将路径点序列送到轨迹规划器中控制机械臂运动,循环执行步骤3至步骤7直到跳出循环进入重规划阶段或达到最大迭代次数中止,否则,重新执行步骤3;本实施例中,给出了如图6预规划阶段的搜索路径图,设置了7个障碍物,并与rrt、rrt*算法做了对比,可以看出,rrt搜索路径不够光滑,rrt*的搜索点几乎布满了整个空间,很多都是没必要的,本发明方法pre-planning在预规划阶段以概率α向目标点进行搜索,轨迹较为光滑,同时在自由空间也有一些搜索点,便于重规划进行扩展和重新布线。表2给出了三种算法运行的不同指标,可以看出针对7个障碍物的复杂环境,三种算法都有着较高的成功率。rrt*由于对父节点的选择做了改进,路径长度小于rrt,但运行时间较长,迭代次数更多。而本发明方法pre-planning在rrt*的基础上对采样方式做了改进,同时将前k个节点送给机械臂控制器,使其路径长度更短,成功率更高,迭代次数也最短,而运行时间与rrt相比变化不大。表2三种算法性能比较算法成功次数迭代次数运行时间/ms路径长度/cmrrt8807101190.10rrt*91053570170.82pre-planning10270116153.41步骤8:重规划阶段,更新目标点qgoal、机械臂位置qa和障碍物位置;步骤9:在搜索树中从qgoal反向检索得到通向目标节点的路径,在此路径上选取一个节点作为信标qbeacon,以概率α在以r为半径,qbeacon为圆心的超椭球内随机采样,如公式(9)所示,以概率1-α在自由空间内随机采样,按照步骤3-5的方法生成新节点并连接,如图7(a)所示,规划出新路径;步骤10:按照三角形定理“两边之和大于第三边”去掉新路径中的中间点使得整条路径的总成本更小,对整条路径重新布线以优化路径,如图7(b)所示;步骤11:在建立好的搜索树中重新规划出k个节点,形成机械臂运动的新路径点序列,当机械臂qa运动到新路径的起始节点q0时,将k个节点序列送到轨迹规划器中控制机械臂运动,并使用新路径的最后一个节点更新起始节点,即q0=qk,循环执行步骤8至步骤11直到机械臂qa运动到目标节点qgoal。步骤7和步骤11所述在建立好的搜索树中规划出k个节点的具体方法为:(1)对路径点序列中机械臂所在的当前路径点qi-1,i=1,…,k,选择代价fc=cost(qi)+h(qi)最小的子节点作为下一路径点qi,h(qi)描述的是qi节点到目标节点的代价,(2)如果下一路径点qi是搜索树的叶子节点或其子节点已被标记,返回路径点序列并标记qi,否则执行(3);(3)如果新路径点qi比之前的路径点qi-1更接近目标点,则将新路径点qi加入路径点序列,更新路径点序列;(4)重复执行(1)至(3),直至得到k个路径点,并返回路径点序列。本实施例给出了如图8所示的预规划与重规划的对比图,图8(a)是预规划给出的路径,当中间障碍物的变大后与规划路径发生冲突,在此基础上重新规划修改后面的路径,依然可以顺利完成避障,图8(b)所示。说明本发明方法可以很好地适应动态环境,能够完成动态避障任务。本实施例还给出了如图9所示的实际机械臂避障过程图,利用ros(robotoperatingsystem)中的运动规划库moveit!控制机械臂进行避障运动规划。长方体盒子为障碍物,图9(a)中方块位置为起始点,任务是将其移动到障碍物的另一侧,如图9(c)所示。通过对障碍物建模,对每一个路径点进行碰撞检测实现避障运动。在规划过程中,将k个节点送给轨迹规划器控制机械臂运动,实现了在线避障。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1