1.一种基于最优导纳参数的自适应人机协作控制方法,具体步骤如下:步骤1:描述具有HRC任务的机器人动力学模型和用于机器人导纳控制的机器人导纳模型;
机器人动力学模型为:
其中q, 分别为关节角、速度和加速度矢量;x, 分别为末端执行器位p×p
置、速度和加速度矢量;M(q)∈R 为对称惯性矩阵, 为科氏力和向心力的矢p n×p p n量,G(q)∈R表示重力矢量,J(q)∈R 为雅可比矩阵,τ∈R为机器人控制输入力矩,fh∈Rn为由操作者产生的相互作用力,Gh∈R 表示人的输入力增益,κ(·)为逆运动学的解,p为机器人关节的数量,n表示笛卡尔空间中的维数;
机器人导纳模型描述为:
其中xm是期望参考轨迹,即机器人导纳模型和xd的输出是预定的任务轨迹,Md,Bd和Kd分别代表期望的惯性、阻尼和刚度系数; 是系统辅助力,对应于xm和xd的关节坐标可以表示为qm和qd;
步骤2:设计基于BLF的机器人自适应约束控制器的内环;
内环设计的目的是使机器人的行为跟踪规定的机器人导纳模型的输出,并保持在一个安全工作空间内;不需要任务信息,只需关注于最小化规定的机器人导纳模型输出与机器人实际运动之间的跟踪误差;具体步骤如下:步骤2‑1:将节点约束设为|q|<kl,其中kl=[kl1,...,klp]为约束边界;取q1=q,机器人动力学(1)可以表示为:定义跟踪误差e1=q1‑qm,e2=q2‑α,其中,其中,ki(i=1,…,p)是正常数, 代表跟踪误差的约束条件,其中是由qm的最大绝对值组成的向量;对e2相对于时间求微分:步骤2‑2:构造一个log型BLF候选V1,如下所示:对V1相对于时间求微分得到:
步骤2‑3:设计另一个BLF候选V2:对V2相对于时间求微分得到:
根据摩尔‑彭罗斯伪逆性质可以得到:T
当e2=[0 0...0]时,等式(11)满足 因此系统渐进稳定;然而,e2=T
[0 0...0]的情况在实际中几乎是不可能的;
步骤2‑4:对于其他情况,设计基于模型的控制器如下:其中, 代表 的伪逆,K2是满足 的增益矩阵;将(13)代入(11)得到可见控制器(13)可以使系统稳定;另外,根据BLF的性质,误差e1i满足‑kbi<e1i<kbi;因此,关节状态保持在区间|q1i|<kli;
步骤2‑5:将控制器(13)改写为:由于在实际应用中,公式(1)中机器人模型总是未知的;考虑到神经网络可以逼近任何未知的连续函数,故将控制器改为公式(15);其中 是神经网络的输入,S(·)表示径向基函数, 是估计的神经网络权重,l是神经网络节点数量, 表*T *T示理想的W S(Z)的近似; 和W S(Z)之间的关系由下给出:*
其中W表示理想的神经网络权重,ε(Z)是近似误差;设计神经网络权值的更新规则为:其中 表示 的第i列, 是常值增益矩阵,σi是提高系统鲁棒性的一个小的正常数;
步骤2‑6:给出候选BLF的V3为:其中 对V3相对时间微分并结合等式(14)‑(16),可以得到:进一步根据(11)的性质,得到:其中,
λmin(·)和λmax(·)分别表示矩阵的极小特征值和极大特征值;所有误差信号都是半全局一致最终有界;
步骤3:设计基于积分强化学习的任务优化的外环:在外环设计中,对导纳模型的参数进行优化,以使任务跟踪误差和交互力最小;将导纳参数优化问题转化为LQR问题,在不考虑系统模型的情况下,采用积分强化学习的方法求解;系统辅助力的设计具体步骤如下:步骤3‑1:设计系统辅助力:
当手臂执行简单任务时,定义人手臂阻抗模型为(Kus+Kp)fh=keed, (22)其中Ku,Kp,ke表示不同操作者和任务的位置矩阵,ed为跟踪误差,定义为ed=xd‑xm, (23)让 其中 xd和xm分别表示特定任务轨迹和期望轨迹,式(22)可以写成:将导纳模型(3)改写为如下状态空间方程:其中
从式(28),可以得到:
为了设计辅助力,假设系统是稳定的,即xm→xd;因此可以得到:步骤3‑2:设计最优控制器:
将HRC系统的性能函数定义为该系统的状态空间模型T
其中Q=diag(Qd,Qh), R=R >0;将性能函数优化问题转化为LQR问题,最优控制器设计为
其中P是代数黎卡提方程的解;
T ‑1 T
PA+AP‑PBR BP+Q=0, (35)‑1 T
矩阵R BP包含了机器人导纳模型的参数和人的增益Gh;结合方程(27)和(34)可以得到通过求解式(36),可以得到最优导纳参数;
步骤4:利用积分强化学习求解LQR问题:由于系统矩阵A和B中存在未知参数,采用一种基于值迭代的积分强化学习算法来估计最优控制器;导纳参数优化的具体算法如下:步骤4‑1:从允许控制策略u=KkX+e开始,其中Kk包含初始导纳参数,e为探索噪声,选择设置迭代参数k,q为0;
步骤4‑2:在时间间隔t∈[th‑1,th],h=1,2,...内收集系统状态;
步骤4‑3:收集到足够的系统状态后,用下面的贝尔曼方程求解Hk和Kk:T
其中Hk=APk+PkA
步骤4‑4:更新 为 其中∈k是步长;
步骤4‑5:如果 则将Pk+1更新为P0,q更新为q+1,k更新为k+1,执行第3步,其中Bq是有界的非空集合;
*
步骤4‑6:如果 其中ε是一个小的常数,使用u =‑KkX作为估计的最优策略;然后求解 得到估计的最优导纳参数c;否则,将Pk+1更新为k更新为k+1,执行步骤3。