作者简介:霍希建(1986-),男,博士研究生.研究方向:仿人机器人,机械臂设计与控制.E-mail:huoxijian@163.com
针对7R仿人机械臂运动优化问题,建立了基于臂角参数的逆运动学封闭解,并采用解析法确定了关节限位约束下臂角参数的有效范围。此外,定义了一种新的关节位置评价函数,将避关节限位的优化指标转化为虚拟转矩。在此基础上,提出一种自寻优方法,用于解决机械臂避关节限位的运动优化问题。仿真结果表明:本文方法能准确地确定臂角的有效范围,同时能快速有效地完成机械臂运动学优化任务。
To solve the kinematic optimization problem of the 7R humanoid arm, the closed-form solutions to the inverse kinematics based on the arm angle parameter were established. The range of the feasible arm angle corresponding to joint limits was determined using analytical methods. Besides, a new function was defined, which is used to evaluate the joint angles, and the optimal indexes of joint limits avoidance were transformed into virtual torques. Based on this, the self-optimizing method was proposed to solve the kinematic optimization problem of joint limits avoidance. Simulations demonstrate that the proposed method can determine the feasible range of the arm angle accurately and implement the kinematic optimization of the humanoid arm efficiently.
7R仿人机械臂为冗余自由度机械臂, 其逆运动学问题通常伴随有二次任务的优化。由于机械结构的限制和仿人特性的要求, 机械臂各关节的运动范围都会受到一定程度的限制[1]。因此, 避关节限位成为七自由度机械臂运动优化的一个重要问题。
七自由度机械臂运动优化方法很多, 其中, 微分逆运动方法是将运动优化任务投影到雅克比矩阵零空间, 在速度/加速度水平实现的运动控制方法[2, 3]。该类方法无法确定逆运动学的全部可行解, 且在奇异点附近的数值稳定性与计算精度难以同时获得最佳效果。运动学逆变换方法是在位置水平直接对运动学方程进行求解, 包括参数化封闭解方法和数值方法。前者是通过引入一个附加参数(如参数化关节[4]、臂角[1]等), 建立机械臂逆运动学的参数化解析解, 在此基础上采用代数法或搜索算法完成运动优化任务[5, 6]。该方法计算简单, 可以快速确定所有可行的关节位置解。但该方法只适用于具有特殊构型的七自由度机械臂。数值方法是采用迭代法[7]或智能算法[8, 9]在运动方程约束下对二次优化任务进行求解。该方法适用于任意构型的机械臂, 但计算精度与复杂性之间难以同时获得最佳效果。人工神经网络[10]凭借其较强的并行计算与数值逼近能力常用于解决机械臂的运动优化问题, 但该方法计算精度较低, 不适用于精细任务操作。此外, 由上述不同方法组合而成的混合算法也常用于解决机械臂运动优化问题, 以弥补单一方法的不足[11, 12]。
本文以七自由度仿人机械臂为研究对象, 建立了臂角有效范围的求解方法, 并采用自寻优方法实现了机械臂避关节限位的运动优化。
七自由度仿人机械臂通常采用S-R-S(spherical-roll-spherical)构型, 该构型在消除内部奇异、运动学计算及结构复杂性等方面具有诸多优势。本文所述7R(revolute joint)机械臂由7个独立的旋转关节构成, 前3个关节轴线交于一点等效为球型肩关节, 以模拟人体肩部的外展-内收运动、屈-伸运动、上臂的内-外旋运动。后3个关节构成虚拟球型腕关节, 实现腕部的外展-内收运动、屈-伸运动及反掌运动, 如图1所示。在此基础上, 参考人体运动学, 确定了机械臂各连杆的尺寸及关节活动范围。
为了描述机械臂末端的运动, 建立了机械臂DH坐标系, DH参数如表1所示。
机械臂关节空间到笛卡尔空间的映射关系可由正运动学方程表示为:
式中
给定三维空间内期望的末端位姿, S-R-S构型机械臂存在自运动。定义前3个关节轴线的交点为肩部S, 后3个关节轴线的交点为腕部W, 第3、4关节轴线交点为肘部E。则机械臂的自运动表现为:在基坐标系Σ 0内机械臂绕
式中:O为3× 1零向量
设
由图2可知, 关节4的角度θ 4与机械臂自运动无关, 即θ 4由Δ SEW唯一确定。
此外, 机械臂腕部W的位置与姿态是解耦的, 即前4个关节确定腕部位置
根据方程(2)可知, 在臂角为ϕ 的臂平面内, 坐标系Σ 3相对基坐标系Σ 0的姿态可通过参考平面内的旋转矩阵
在此基础上, 将矩阵R
As=
Bs=-
Cs=
式中:0USW为
由于
式中:asij、bsij、csij分别是矩阵As、Bs和Cs中的第(i, j)元素。
根据方程(1)和(5), 坐标系Σ 7相对基坐标系Σ 0的姿态可表示为:
将As、Bs和Cs代入上述方程
式中:Aw=3R4T· AsT· 0R7;
Bw
Cw
在此基础上, 腕部各关节角度与臂角ϕ 的函数关系为:
式中:awij、bwij、cwij分别是矩阵Aw、Bw和Cw中的第(i, j)元素。
至此, 确定了仿人机械臂基于臂角ϕ 的参数化逆运动学封闭解。该封闭解引入双变量反正切函数, 简化了计算过程中运动学逆解的判断过程, 避免了可行解的丢失。因此, 给定工作空间内期望末端位姿及臂角ϕ , 根据封闭解方程可以快速地确定机械臂的各关节位置。
理论上, 对应机械臂工作空间内的一个末端位姿, S-R-S机械臂可绕
机械臂逆运动学封闭解包含3种形式:θ 2与θ 6为关于ϕ 的余弦函数形式; θ 1、θ 3、θ 5和θ 7均为关于ϕ 的反正切函数形式; θ 4是关于末端位置的函数, 与臂角参数无关。首先定义如下参数:θ i_max和θ i_min分别为关节i活动范围的上、下极限, 关节活动范围θ i_min≤ θ i≤ θ i_max, 关节i对应的臂角有效范围为Ψ i。下面分别对不同的函数形式进行分析, 确定关节限位与臂角有效范围之间的映射关系。
(1)余弦函数形式
根据方程(7)和(10), θ 2、θ 6与臂角ϕ 之间的函数关系可统一写成如下形式:
若
sin
式中:φ =arctan2
因此, 确定臂角ϕ 的有效范围问题转化为求解不等式:
令hϕ =ϕ +φ , 则hϕ 的最大值与最小值可以表示为:
不等式(13)的解集存在以下情况:
(a)Hmin> 1或Hmax< -1, 则Ψ i=∅;
(b)Hmin=-1且Hmax=1, 则Ψ i=
(c)Hmin≥ 0且Hmax≥ 0, 则
hϕ ∈
(d)Hmin≤ 0且Hmax≥ 0, 则
hϕ ∈
(e)Hmin< 0且Hmax< 0, 则
hϕ ∈
若
(2)反正切函数形式
根据方程(6)(8)(9)和(11), θ 1、θ 3、θ 5和θ 7与臂角ϕ 之间的函数关系可统一写成双变量反正切函数形式:
式中:θ '是与θ i有关的关节变量, 文中指θ 2或θ 6。
鉴于正切函数特性, 将关节活动范围投影至4个象限。
若ansinϕ +bncosϕ +cn≠ 0, 则求解关节i在第K
(I):
θ '∈
和
(II):
θ '∈
式中:
A1=
A2=
C1=cm-htan_maxcn, C2=cm-htan_mincn,
φ 1=arctan2
φ 2=arctan2
设上述不等式I与不等式II对应的解集分别为
若ansinϕ +bncosϕ +cn=0, 则关节角θ i为常数, 机械臂处于奇异位型, Ψ i=
根据方程(14)(15)可知, θ 2会影响肩部关节变量θ 1、θ 3与臂角有效范围的关系, 即肩部3个关节与臂角有效范围之间存在耦合关系。设sinθ 2≥ 0时, 肩部3个关节对应的臂角ϕ 的有效范围分别为
同理, 腕部3个关节对应的臂角有效范围可以表示为:
因此, 对应机械臂期望的末端位姿点, 臂角的有效范围Ψ 可以表示为
对应工作空间内机械臂末端的一个期望位姿, 给定任意臂角ϕ ∈ Ψ , 即可根据逆运动学封闭解方程确定机械臂各关节角度。由于机械臂关节处于远离关节限位时具有较好的操作能力, 而臂角ϕ 与关节θ 映射关系非常复杂, 如何在臂角有效范围内确定最优的臂角值以避开关节限位, 显得非常必要。
机械臂避关节限位的运动优化问题通常等效为远离关节限位的运动优化问题, 即运动优化过程中, 关节位置距离极限位置越远, 关节位置的适应度越高。这种评价指标计算量大, 并且影响其他任务的优化效果。针对这一弊端, 本文在传统人工势场的基础上, 将关节活动范围划分为工作区和危险区, 将关节极限位置视为“ 斥力源” 。危险区与关节极限位置相连, 该区域内的关节位置与关节极限位置之间的距离均小于预设的安全阈值, 关节位置会受到远离关节限位的斥力作用, 且距离极限位置越近, 斥力作用越显著。在关节危险区内需要进行避关节限位的运动优化。而工作区内的关节位置距离关节限位均大于预设的安全裕度, 关节位置不受虚拟力作用, 无需进行运动优化。关节活动范围划分方式如图3所示。
在此基础上, 本文将关节活动范围内关节位置的评价指标等效为虚拟转矩, 其函数形式表示为:
式中:ρ L, i为关节i的工作区下边界距离关节活动范围下限的距离; ρ U, i为关节i的工作区上边界距离关节活动上限的距离。
实质上, ρ L, i和ρ U, i代表机械臂关节运动优化的安全裕度。ρ L, i和ρ U, i的取值需要根据机械臂操作任务、工作环境及关节活动范围等因素综合确定。例如, 关节运动速度较大、关节活动范围较大或运动优化任务较少时, 安全裕度可以取较大值, 反之, 则应该取较小值。
对于7R仿人机械臂, 由于肘部关节(第4关节)不参与机械臂的自运动, 因此, 机械臂运动优化过程中不考虑肘部关节的影响。综合其他各关节对应的虚拟转矩, 机械臂在基坐标系中的等效转矩M及其沿
式中:γ 为
机械臂在等效转矩Meq驱动下, 臂角ϕ 会向着
设当前臂角值及下一时刻的臂角值分别为ϕ
ϕ
式中:λ > 0为优化步长或优化速率, λ 越小, 运动优化速度越慢, 数值稳定性也越好。
为了验证上述逆运动学方法的有效性, 本文以哈尔滨工业大学自主研制的7R仿人机械臂为研究对象, 通过数值仿真加以验证。
在关节活动范围内任选一组关节解, 则对应的机械臂末端位置
不考虑关节限位, 任取一个臂角ϕ =π /10
对应上述
Ψ S=
Ψ W=
则机械臂整体的臂角有效范围为:
为了验证所得结果的正确性, 本文采用数值方法获得臂角ϕ 与逆运动学可行解之间的关系, 具体计算流程如图4所示。所得臂角的有效范围如图5所示。可以发现, 式(17)表示的臂角有效范围与图5所示结果完全一致, 从而验证了本文方法的有效性。
考虑机械臂各关节限位, 从表2所示运动学逆解中任取一组可行解θ init, 采用自寻优方法进行避关节限位的运动优化。
θ init=
鉴于机械臂关节活动范围较大, 各关节的安全裕度设置为同一值, 即ρ U=ρ L=π /6
在此基础上, 以θ init为初始状态, 采用自寻优方法, 经过26步迭代计算, 最终完成机械臂的运动优化。优化后的运动学逆解为:
θ opt=
在此基础上, 根据式(18)分别计算初始解θ init、优化解θ opt与关节极限位置之间的最小距离Δ θ , 计算结果如图6所示。
Δ θ init=
Δ θ opt=
对比Δ θ init和Δ θ opt, 可以得出如下结论:
(1)机械臂位于初始位形时, 关节1、关节3均位于关节活动范围的危险区, 且关节位置距离极限位置较近。采用自寻优方法完成运动优化之后, 关节1、关节3均由关节危险区转化至关节工作区, 且距离关节极限位置较远。
(2)优化后的关节2、关节5仍处于关节工作区, 并且与初始解相比, 优化解至关节限位的距离变大。
(3)在运动优化前、后, 关节6都位于关节危险区, 但与初始解相比, 优化解至关节限位的距离有所增加。由图4计算流程可以得到对应该末端位姿的关节6的全部可行解, 且关节最小值(θ 6=1.2459 rad)至关节限位的距离最大, 如图7所示。由于优化后的关节位置非常接近关节6的最小值, 因此, 优化后的关节6已实现最大程度的避关节限位的优化。
(4)与初始解相比, 优化后的关节7至关节限位的距离有所减小, 这是为了实现关节6的避极限目标所进行的折中。但是, 优化后的关节7仍处于关节工作区内, 并且该关节的工作性能未受影响。
(5)关节4不参与机械臂的自运动, 因此在运动优化过程中, 关节4的位置保持不变。
综上可以看出, 自寻优方法有效地实现了7R仿人机械臂避关节限位的运动优化。
(1)建立了基于臂角参数的7R仿人机械臂逆运动学封闭解。引入双变量反正切函数, 简化了计算过程中逆解的判断过程, 避免了可行解的丢失。
(2)建立了关节限位约束下臂角有效范围的求解方法。与现有方法相比, 避免了复杂的函数求导运算, 简化了计算过程。
(3)构建了一种新的避关节限位的评价指标, 并提出一种自寻优方法, 可以快速有效地实现仿人机械臂的运动优化。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|