首页 > 专利 > 杭州电子科技大学 > 一种任务空间下的机械臂运动规划方法专利详情

一种任务空间下的机械臂运动规划方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2021-01-27
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-06-22
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-04-29
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2041-01-27
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202110110575.9 申请日 2021-01-27
公开/公告号 CN112894817B 公开/公告日 2022-04-29
授权日 2022-04-29 预估到期日 2041-01-27
申请年 2021年 公开/公告年 2022年
缴费截止日
分类号 B25J9/16 主分类号 B25J9/16
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 6
权利要求数量 7 非专利引证数量 0
引用专利数量 8 被引证专利数量 0
非专利引证
引用专利 CN111347429A、CN110900611A、CN108356819A、CN108942942A、CN111761582A、CN107607120A、CN111791234A、US2019070734A1 被引证专利
专利权维持 1 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 蒋旭平、刘壮、张波涛、汪江平、王坚 第一发明人 蒋旭平
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 5
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱亚冠
摘要
本发明涉及一种任务空间下的机械臂运动规划方法。本发明首先根据机械臂的结构,采用D‑H方法建立正运动学模型,在任务空间直接进行末端位姿的启发式搜索,通过对选取的待扩展节点进行梯度投影逆运动学计算获得关节角数据,在关节空间对待扩展节点进行碰撞检测,判断机械臂能否安全到达待扩展节点。最后,将发生碰撞的位姿映射到末端工作平面中进行局部最小判断。本发明的机械臂任务空间启发式搜索优化方法弥补了机械臂任务空间规划方法的不足,是一种能在任务空间快速搜索出可行路径的方法。本发明所提方法可以使机械臂避免陷入局部最优陷阱。
  • 摘要附图
    一种任务空间下的机械臂运动规划方法
  • 说明书附图:图1
    一种任务空间下的机械臂运动规划方法
  • 说明书附图:图2
    一种任务空间下的机械臂运动规划方法
  • 说明书附图:图3
    一种任务空间下的机械臂运动规划方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-04-29 授权
2 2021-06-22 实质审查的生效 IPC(主分类): B25J 9/16 专利申请号: 202110110575.9 申请日: 2021.01.27
3 2021-06-04 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种任务空间下的机械臂运动规划方法,该方法包括以下步骤:
步骤(1)、采用D‑H法建立机械臂的正运动学模型,并构建障碍物模型;将障碍物的位置数据保存至不可行集合Closed表,其中障碍物的位置数据包括障碍物的中心、半径信息;同时根据机械臂的正运动学模型计算出初始状态的末端执行器位姿pf,其中位姿包括姿态信息和位置坐标信息;
步骤(2)、将pf的三维姿态信息采用欧拉角表示,初始化时将机械臂当前末端执行器的位姿pc设置为pf的位姿信息如下:
pf=(xf,yf,zf,αf,βf,γf)  式(3)
其中xf,yf,zf表示pf的三维坐标信息,αf,βf,γf表示pf的欧拉角;
*
步骤(3)、使用任务空间下的启发式搜索算法ARA 对机械臂末端执行器位姿进行规划,更新待扩展节点列表PNEXT;
步骤(4)、判断是否遍历列表PNEXT中所有节点:
比较v和u的大小,若v≤u则将列表PNEXT的第v个节点设为子节点pnext,执行步骤(5)‑(6),若v>u则将可行集合OPEN表中代价函数最小的节点更新为机械臂当前末端执行器位姿pc,返回步骤(3);
步骤(5)、对子节点pnext进行碰撞检测:
5‑1对节点pnext采用梯度投影法进行逆运动学计算,得到一组最优的逆运动学解,即为关节角解;将这组关节角解通过D‑H正运动学计算得到机械臂所有关节的三维坐标;
5‑2根据5‑1得到的机械臂所有关节的三维坐标构建各关节的机械臂构型;然后对各关节的机械臂构型进行碰撞检测,判断节点pnext是否会与障碍物发生碰撞,具体步骤如下:
5‑2‑1选取相邻两个关节Ja,Jb之间的机械臂构型L,设安全距离r为障碍物半径加上ε倍的机械臂构型半径:
r=ro+ε·rl  式(7)
其中ro表示障碍物半径,rl表示机械臂构型半径,ε为人为设定参数;
5‑2‑2计算构型L到障碍物中心的距离s;如果s>r,表示未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(7);若s≤r,则首先计算以障碍物中心为顶角,障碍物中心与两个关节连接的线段为边的夹角∠MON,并计算构型L距离障碍物中心obs为s时的最大安全角δ,若夹角∠MON小于最大安全角δ则认为未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(7);若夹角∠MON大于等于最大安全角δ则发生碰撞,进行步骤(6);
步骤(6)、发生碰撞后需要判断是否会出现机械臂构型无法绕开障碍物的情况,进行局部最小检测,具体步骤如下:
6‑1建立以当前末端执行器位姿pc的三维坐标信息(xc,yc,zc),目标位置pt的三维坐标信息(xt,yt,zt),以机械臂的基座中心为原点po(0,0,0)构成末端工作平面OCT;
6‑2将障碍物及机械臂构型投影到该平面OCT中,球形障碍物在平面中的投影是以障碍中心的投影点po'为圆心,以障碍物半径ro为半径的圆形障碍物obs’;机械臂构型在平面中的投影是各关节角在平面的投影点所组成的新的构型L‘;
6‑3观察投影后的机械臂构型L‘是否与投影后的障碍物obs’发生碰撞:对L‘和obs’使用步骤(5)的方法进行碰撞检测;若构型L‘与obs’发生碰撞,表示机械臂构型无法绕开障碍物;将待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(4);若未发生碰撞,判断机械臂构型L‘是否将障碍物obs’包围,步骤如下:
根据目标位置pt和障碍物中心po'得向量 计算在 垂直方向上的单位向量根据障碍物中心po'和原点Po得向量 根据障碍物中心po'和当前节点坐标pc得向量计算 和 的数量积与 和 的数量积的乘积F:
若F<0,则认为机械臂构型L‘包围了障碍物obs’,这种情况表示机械臂构型无法绕开障碍物;因此将这些会造成局部最小问题的待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(4);若F≥0,则认为机械臂构型L‘未包围障碍物obs’,表示机械臂构型可以绕开障碍物;将节点pnext舍去,当作未查询过的节点,更新v=v+1,返回步骤(4);
步骤(7)、判断可行集合OPEN表中含有目标节点,若是则在可行集合OPEN表中采用回溯父节点的方式从目标节点回溯到初始节点得到一条安全的机械臂运动路径,反之则更新v=v+1,返回步骤(4)。

2.如权利要求1所述的一种任务空间下的机械臂运动规划方法,其特征在于步骤(1)通过机械臂的每个关节Ji的构型与运动信息获得各关节的运动变换矩阵Ai,通过公式(1)得到变换矩阵
其中1≤i≤j,j表示机械臂关节自由度; 表示pf的三维姿态信息。

3.如权利要求2所述的一种任务空间下的机械臂运动规划方法,其特征在于步骤(3)具体是:
3‑1初始化:将待扩展节点列表PNEXT设置为空列表,PNEXT节点数目u=0,循环参数v=1;
3‑2将机械臂当前末端执行器位姿pc各自加减一个单位获得12个周边节点信息;将上述
12个周边节点中不在不可行集合Closed表中的节点加入到待扩展节点列表PNEXT;
PNEXT={p1,p'1;p2,p'2;…;pv,p'v;…;pu,p'u},u≤12  式(4)
其中pv表示周边节点,p'v表示pv的父节点;
同时将待扩展节点列表PNEXT中不在可行集合OPEN表的节点进行初始化操作:将父节点设为空,原有代价函数F(pv)old设为无穷大;然后计算待扩展节点列表PNEXT所有节点的新代价函数F(pv)new;
F(pv)new=G(pv)+H(pv)  式(5)
F(pv)old=G(pv)old+H(pv)  式(6)
其中G(pv)表示从初始节点到pc的代价值加一,H(pv)表示pv到目标节点的欧式距离,初始节点为初始状态的末端执行器位姿pf,目标节点为机械臂末端执行器最终要到达的位姿;G(pv)old表示初始节点到p'v的代价值加一;
3‑3比较待扩展节点列表PNEXT中所有节点的F(pv)old和F(pv)new,如果F(pv)old>F(pv)new,将父节点p'v改为当前节点pc,同时将pv的F(pv)old赋值为F(pv)new,反之不做变化。

4.如权利要求3所述的一种任务空间下的机械臂运动规划方法,其特征在于步骤(5‑2‑
2)中以障碍物中心为顶角,障碍物中心与两个关节连接的线段为边的夹角∠MON具体是:
其中M为关节Ja的中心点,N是关节Jb的中心点,O是障碍物的中心,a是障碍物中心到关节Ja的距离;b是障碍物中心到关节Jb的距离;l为机械臂构型L的长度。

5.如权利要求3或4所述的一种任务空间下的机械臂运动规划方法,其特征在于步骤(5‑2‑2)中最大安全角δ具体是:
其中s为障碍物中心到构型L的距离,r表示距离障碍物中心的安全距离,l表示构型L的长度。

6.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1‑5中任一项所述的方法。

7.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1‑5中任一项所述的方法。
说明书

技术领域

[0001] 本发明属于自动化技术领域,涉及一种任务空间下的机械臂运动规划方法。

背景技术

[0002] 机械臂是服务机器人对目标执行操作的核心部件,也是自动化生产线上的关键设备。在完成复杂任务时,机械臂的运动规划需要面临一些末端位置和姿态的约束。末端执行器在精准的抓取、切割、焊接等任务中均需满足末端位置和姿态约束。目前基于关节空间的运动规划方法,然而,在关节空间描述的任务约束下,难以进行复杂的运动规划。因此,在任务空间下构建机械臂的运动规划方法对于机器人执行末端约束下的任务具有重要意义。

发明内容

[0003] 本发明的目标是构建任务空间下的机械臂启发式搜索运动规划方法,并对其优化。首先,在任务空间直接进行末端位姿的启发式搜索,然后,对球形包络后的障碍物与机械臂进行碰撞检测。最后将发生碰撞的位姿映射到末端工作平面中进行局部最小判断。该方法能有效避免机械臂在任务空间下采用启发式搜索规划时陷入局部最小状态的缺陷。在机械臂的任务空间中采用启发式搜索算法进行规划,具有规划速度快,能满足任务约束等优点。但是该方法容易陷入局部极小陷阱。本发明所提方法可以弥补该缺陷。
[0004] 本发明方法的步骤包括:
[0005] 步骤(1)、采用D‑H法(Denavit‑Hartenberg)建立机械臂的正运动学模型,并构建障碍物模型;将障碍物的位置数据保存至不可行集合Closed表,其中障碍物的位置数据包括障碍物的中心、半径信息;同时根据机械臂的正运动学模型计算出初始状态的末端执行器位姿pf,其中位姿包括姿态信息和坐标信息。
[0006] 通过机械臂的每个关节Ji的构型与运动信息获得各关节的运动变换矩阵Ai,通过公式(1)得到变换矩阵
[0007]
[0008]
[0009] 其中1≤i≤j,j表示机械臂关节自由度; 表示pf的三维姿态信息;(xf,yf,zf)表示pf的三维坐标信息;
[0010] 步骤(2)、将pf的三维姿态信息采用欧拉角表示。初始化时将机械臂当前末端执行器的位姿pc设置为pf的位姿信息如下:
[0011] pf=(xf,yf,zf,αf,βf,γf)  式(3)
[0012] 其中xf,yf,zf表示pf的三维坐标信息;αf,βf,γf表示pf的欧拉角;
[0013] 步骤(3)、使用任务空间下的启发式搜索算法ARA*(Anytime Repairing A*)对机械臂末端执行器位姿进行规划:
[0014] 3‑1初始化:将待扩展节点列表PNEXT设置为空列表,PNEXT节点数目u=0,循环参数v=1。
[0015] 3‑2将机械臂当前末端执行器位姿的6个自由度各自加减一个单位获得12个周边节点信息;将上述12个周边节点中不在不可行集合Closed表中的节点加入到待扩展节点列表PNEXT;
[0016] PNEXT={p1,p′1;p2,p′2;...;pv,p′v;...;pu,p′u},u≤12  式(4)[0017] pv表示周边节点,p′v表示pv的父节点。
[0018] 同时将待扩展节点列表PNEXT中不在可行集合OPEN表的节点进行初始化操作:将父节点设为空,原有代价函数F(pv)old设为无穷大;然后计算待扩展节点列表PNEXT所有节点的新代价函数F(pv)new;
[0019] F(pv)new=G(pv)+H(pv)  式(5)
[0020] F(pv)old=G(pv)old+H(pv)  式(6)
[0021] 其中,G(pv)表示从初始节点到pc的代价值加一,H(pv)表示pv到目标节点的欧式距离,初始节点为初始状态的末端执行器位姿pf,目标节点为机械臂末端执行器最终要到达的位姿;G(pv)old表示初始节点到p′v的代价值加一。
[0022] 3‑3比较待扩展节点列表PNEXT中所有节点的F(pv)old和F(pv)new,如果F(pv)old>F(pv)new,将父节点p′v改为当前节点pc,同时将pv的F(pv)old赋值为F(pv)new,反之不做变化。
[0023] 步骤(4)、判断是否遍历列表PNEXT中所有节点
[0024] 比较v和u的大小,若v≤u则对列表PNEXT的第v个节点设为子节点pnext,执行步骤(5)‑(6),若v>u则将可行集合OPEN表中代价函数最小的节点更新为机械臂当前末端执行器位姿pc,返回步骤(3)。
[0025] 步骤(5)、对子节点pnext进行碰撞检测:
[0026] 5‑1对节点pnext采用梯度投影法进行逆运动学计算,得到一组最优的逆运动学解,即为关节角解;将这组关节角解通过D‑H正运动学计算得到机械臂所有关节的三维坐标。
[0027] 5‑2根据5‑1得到的机械臂所有关节的三维坐标构建各关节的机械臂构型;然后对各关节的机械臂构型进行碰撞检测,判断节点pnext是否会与障碍物发生碰撞,具体步骤如下:
[0028] 5‑2‑1选取相邻两个关节Ja,Jb之间的机械臂构型L,设安全距离r为障碍物半径加上ε倍的机械臂构型半径:
[0029] r=ro+ε·rl  式(7)
[0030] 其中ro表示障碍物半径,rl表示机械臂构型半径,ε为人为设定,ε>1。
[0031] 5‑2‑2计算构型L到障碍物中心的距离s;如果s>r,表示未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(7);若s≤r,则首先计算以障碍物中心为顶角,障碍物中心与两个关节连接的线段为边的夹角∠MON,并计算构型L距离障碍物中心obs为s时的最大安全角δ,若夹角∠MON小于最大安全角δ则认为未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(7);若夹角∠MON大于等于最大安全角δ则发生碰撞,进行步骤(6)。
[0032]
[0033] 其中M为关节Ja的中心点,N是关节Jb的中心点,O是障碍物的中心,a是障碍物中心到关节Ja的距离;b是障碍物中心到关节Jb的距离;l为机械臂构型L的长度。
[0034]
[0035] 其中s为障碍物中心到构型L的距离,r表示距离障碍物中心的安全距离,l表示构型L的长度。
[0036] 步骤(6)、发生碰撞后需要判断是否会出现机械臂构型无法绕开障碍物的情况,进行局部最小检测,具体步骤如下:
[0037] 6‑1建立以当前末端执行器位姿pc的三维坐标信息(xc,yc,zc),目标位置pt的三维坐标信息(xt,yt,zt),以机械臂的基座中心为原点po(0,0,0)构成末端工作平面OCT。
[0038] Ax+By+Cz+D=0  式(10)
[0039] 6‑2将障碍物及机械臂构型投影到该平面OCT中,球形障碍物在平面中的投影是以障碍中心的投影点po′为圆心,以障碍物半径ro为半径的圆形障碍物obs’。机械臂构型在平面中的投影是各关节角在平面的投影点所组成的新的构型L‘。
[0040] 6‑3观察投影后的机械臂构型L‘是否与投影后的障碍物obs’发生碰撞:对L‘和obs’使用步骤(5)的方法进行碰撞检测。若构型L‘与obs’发生碰撞,则表示机械臂构型无法绕开障碍物。将待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(4)。若未发生碰撞,判断机械臂构型L‘是否将障碍物obs’包围,步骤如下:
[0041] a)根据目标位置pt和障碍物中心po′得向量 计算在 垂直方向上的单位向量[0042]
[0043] b)根据障碍物中心po′和原点Po得向量 根据障碍物中心po′和当前节点坐标pc得向量 计算 和 的数量积与 和 的数量积的乘积F:
[0044]
[0045] 若F<0,则认为机械臂构型L‘包围了障碍物obs’,这种情况表示机械臂构型无法绕开障碍物。因此将这些会造成局部最小问题的待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(4)。若F≥0,则认为机械臂构型L‘未包围障碍物obs’,机械臂构型可以绕开障碍物。将节点pnext舍去,当作未查询过的节点,更新v=v+1,返回步骤(4)。
[0046] 步骤(7)、,判断可行集合OPEN表中含有目标节点,若是则在可行集合OPEN表中采用回溯父节点的方式从目标节点回溯到初始节点得到一条安全的机械臂运动路径,反之则更新v=v+1,返回步骤(4)。
[0047] 本发明的另一个目的是提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述的方法。
[0048] 本发明的又一个目的是提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述的方法。
[0049] 本发明提出的机械臂任务空间运动规划优化方法弥补了现阶段机械臂关节空间规划方法很难描述任务约束的缺点,并有效地解决了任务空间启发式搜索规划算法中存在的末端执行器陷入局部最优陷阱的问题。
[0050] 本发明提出的机械臂任务空间运动规划方法,能够有效地控制机械臂,完成具有末端位姿约束特点的任务。

实施方案

[0054] 下面结合具体实施例对本发明做进一步的分析。
[0055] 以一具体机械臂为例,如图1任务空间启发式搜索优化方法的实施步骤如下:
[0056] 步骤(1)、初始化机械臂系统及障碍物参数,具体操作如下:
[0057] 1‑1获得机械臂结构参数。即机械臂所对应的D‑H参数表。
[0058] 表1:机械臂的D‑H参数表
[0059]
[0060] 其中,0代表机械臂基座,1…6数字代表第1…6个关节。θ表示旋转关节的关节变量,d表示滑动关节的关节变量。q表示关节之间的距离。α表示关节之间的姿态变化量。
[0061] 1‑2对机械臂进行建模,将机械臂抽象为关节与关节间的圆柱形连杆组成的构型L。关节坐标由D‑H正运动学计算得出,构型连杆的半径为rl。
[0062] 1‑3对障碍物进行球形包络,得到障碍物球心坐标obs,障碍物半径为ro。
[0063] 步骤(2)、采用D‑H法(Denavit‑Hartenberg)建立机械臂的正运动学模型,并构建障碍物模型;将障碍物的位置数据保存至不可行集合Closed表,其中障碍物的位置数据包括障碍物的中心、半径信息;同时根据机械臂的正运动学模型计算出初始状态的末端执行器位姿pf,其中位姿包括姿态信息和坐标信息。
[0064] 通过机械臂的每个关节Ji的构型与运动信息获得各关节的运动变换矩阵Ai,通过公式(1)得到变换矩阵
[0065]
[0066]
[0067] 其中1≤i≤j,j表示机械臂关节自由度; 表示pf的三维姿态信息;(xf,yf,zf)表示pf的三维坐标信息;
[0068] 步骤(3)、将pf的三维姿态信息采用欧拉角表示。初始化时将机械臂当前末端执行器的位姿pc设置为pf的位姿信息如下:
[0069] pf=(xf,yf,zf,αf,βf,γf)  式(3)
[0070] 其中xf,yf,zf表示三维坐标信息,αf,βf,γf表示pf的欧拉角;
[0071] 步骤(4)、使用任务空间下的启发式搜索算法ARA*(Anytime RepairingA*)对机械臂末端执行器位姿进行规划:
[0072] 4‑1初始化:将待扩展节点列表PNEXT设置为空列表,PNEXT节点数目u=0,循环参数v=1。
[0073] 4‑2将机械臂当前末端执行器位姿的6个自由度各自加减一个单位获得12个周边节点信息;
[0074] p1=(xc+1,yc,zc,αc,βc,γc)
[0075] p2=(xc‑1,yc,zc,αc,βc,γc)
[0076] p3=(xc,yc+1,zc,αc,βc,γc)
[0077] p4=(xc,yc‑1,zc,αc,βc,γc)
[0078] p5=(xc,yc,zc+1,αc,βc,γc)
[0079] p6=(xc,yc,zc‑1,αc,βc,γc)
[0080] p7=(xc,yc,zc,αc+1,βc,γc)
[0081] p8=(xc,yc,zc,αc‑1,βc,γc)
[0082] p9=(xc,yc,zc,αc,βc+1,γc)
[0083] p10=(xc,yc,zc,αc,βc‑1,γc)
[0084] p11=(xc,yc,zc,αc,βc,γc+1)
[0085] p12=(xc,yc,zc,αc,βc,γc‑1)
[0086] 将上述12个周边节点中不在不可行集合Closed表中的节点加入到待扩展节点列表PNEXT;
[0087] PNEXT={p1,p′1;p2,p′2;...;pv,p′v;...;pu,p′u},u≤12  式(4)[0088] pv表示周边节点,p′v表示pv的父节点。
[0089] 同时将待扩展节点列表PNEXT中不在可行集合OPEN表的节点进行初始化操作:将父节点设为空,原有代价函数F(pv)old设为无穷大;然后计算待扩展节点列表PNEXT所有节点的新代价函数F(pv)new;
[0090] F(pv)new=G(pv)+H(pv)  式(5)
[0091] F(pv)old=G(pv)old+H(pv)  式(6)
[0092] 其中G(pv)表示从初始节点到pc的代价值加一,H(pv)表示pv到目标节点的欧式距离,初始节点为初始状态的末端执行器位姿pf,目标节点为机械臂末端执行器最终要到达的位姿;G(pv)old表示初始节点到p′v的代价值加一。
[0093] 4‑3比较待扩展节点列表PNEXT中所有节点的F(pv)old和F(pv)new,如果F(pv)old>F(pv)new,将父节点p′v改为当前节点pc,同时将pv的F(pv)old赋值为F(pv)new,反之不做变化。
[0094] 步骤(5)、判断是否遍历列表PNEXT中所有节点
[0095] 比较v和u的大小,若v≤u则对列表PNEXT的第v个节点设为子节点pnext,执行步骤(6)‑(7),若v>u则将可行集合OPEN表中代价函数最小的节点更新为机械臂当前末端执行器位姿pc,返回步骤(4)。
[0096] 步骤(6)、对子节点pnext进行碰撞检测:
[0097] 6‑1对节点pnext采用梯度投影法进行逆运动学计算,得到一组最优的逆运动学解,即为关节角解;将这组关节角解通过D‑H正运动学计算得到机械臂所有关节的三维坐标。
[0098] 6‑2根据6‑1得到的机械臂所有关节的三维坐标构建各关节的机械臂构型;然后对各关节的机械臂构型进行碰撞检测,判断节点pnext是否会与障碍物发生碰撞,具体步骤如下:
[0099] 6‑2‑1选取相邻两个关节Ja,Jb之间的机械臂构型L,设安全距离r为障碍物半径加上ε倍的机械臂构型半径:
[0100] r=ro+ε·rl  式(7)
[0101] 其中ro表示障碍物半径,rl表示机械臂构型半径,ε为人为设定,ε>1。
[0102] 6‑2‑2计算构型L到障碍物中心的距离s;如果s>r,表示未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(8);若s≤r,则首先计算以障碍物中心为顶角,障碍物中心与两个关节连接的线段为边的夹角∠MON(如图2),并计算构型L距离障碍物中心obs为s时的最大安全角δ,若夹角∠MON小于最大安全角δ则认为未发生碰撞,则将节点pnext加入到可行集合OPEN表中,执行步骤(8);若夹角∠MON大于等于最大安全角δ则发生碰撞,进行步骤(7)。
[0103]
[0104] 其中M为关节Ja的中心点,N是关节Jb的中心点,O是障碍物的中心,a是障碍物中心到关节Ja的距离;b是障碍物中心到关节Jb的距离;l为机械臂构型L的长度。
[0105]
[0106] 其中s为障碍物中心到构型L的距离,r表示距离障碍物中心的安全距离,l表示构型L的长度。
[0107] 步骤(7)、发生碰撞后需要判断是否会出现机械臂构型无法绕开障碍物的情况,进行局部最小检测,具体步骤如下:
[0108] 7‑1建立以当前末端执行器位姿pc的三维坐标信息(xc,yc,zc),目标位置pt的三维坐标信息(xt,yt,zt),以机械臂的基座中心为原点po(0,0,0)构成末端工作平面OCT。
[0109] Ax+By+Cz+D=0  式(10)
[0110] 满足如下约束:
[0111] A×0+B×0+C×0+D=0  式(11)
[0112] Axt+Byt+Czt+D=0  式(12)
[0113] Axc+Byc+Czc+D=0  式(13)
[0114] 令A=1,得D=0,
[0115] 7‑2如图3将障碍物及机械臂构型投影到该平面OCT中,球形障碍物在平面中的投影是以障碍中心的投影点po′为圆心,以障碍物半径ro为半径的圆形障碍物obs’。机械臂构型在平面中的投影是各关节角在平面的投影点所组成的新的构型L‘。
[0116] 7‑3观察投影后的机械臂构型L‘是否与投影后的障碍物obs’发生碰撞:对L‘和obs’使用步骤(6)的方法进行碰撞检测。若构型L‘与obs’发生碰撞,表示机械臂构型无法绕开障碍物。将待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(4)。若未发生碰撞,判断机械臂构型L‘是否将障碍物obs’包围,步骤如下:
[0117] a)根据目标位置pt和障碍物中心po′得向量 计算在 垂直方向上的单位向量[0118]
[0119] b)根据障碍物中心po′和原点Po得向量 根据障碍物中心po′和当前节点坐标pc得向量 计算 和 的数量积与 和 的数量积的乘积F:
[0120]
[0121] 若F<0,则认为机械臂构型L‘包围了障碍物obs’,这种情况表示机械臂构型无法绕开障碍物。因此将这些会造成局部最小问题的待扩展节点pnext加入到不可行集合Closed表中,更新v=v+1,返回步骤(5)。若F≥0,则认为机械臂构型L‘未包围障碍物obs’,表示机械臂构型可以绕开障碍物。将节点pnext舍去,当作未查询过的节点,更新v=v+1,返回步骤(5)。
[0122] 步骤(8)、判断可行集合OPEN表中含有目标节点,若是则在可行集合OPEN表中采用回溯父节点的方式从目标节点回溯到初始节点得到一条安全的机械臂运动路径,反之则更新v=v+1,返回步骤(5)。

附图说明

[0051] 图1为本发明的流程图;
[0052] 图2为夹角∠MON示意图;
[0053] 图3为投影至OCT平面示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号