近年来,为满足机器人日益增长的任务复杂度需求,人们通过增加关节数量来设计双臂冗余机械臂以提升机器人的操作灵活度[1-2].而双臂协同操作中的自避碰作为任务完成及运动规划的先决条件之一,也引起了学者们的广泛研究[3-7].目前机器人实现自避碰常用的方法有基于构型空间的几何计算[8-9]、人工势场、梯度搜索法等[10-13].这些方法中机器人实现自避碰的前提多为计算出机械臂构型空间的最小距离,传统的FCL(柔性碰撞库)等基于几何距离计算的方法虽然提供了机械臂包围盒距离计算方法,但其研究重点并未在机械臂避碰规划上[14].而基于包围盒距离检测的梯度下降法/人工势场法等搜索式实时计算方法常常因为冗余机械臂关节数量的增加而导致计算量过大,提升规划的计算负荷[12,15];openrave和ROS中的OMPL(开源运动规划库)库等类似的RRT式搜索算法虽然借用八叉树等方式提升了规划效率,但其针对双臂协同操作的规划成功率还有待提升,尤其是面向须要进行多次规划的复杂任务[16-17].此外神经网络路径规划方法及强化学习的轨迹跟踪控制器等也逐渐被应用到机器人的操作控制中[18-21],但强化学习方法多用于末端位姿的规划,并未对多双臂自避碰问题进行过多探索.而基于神经网络的方式更多关注于位置跟踪控制中的权重更新,面临冗余机械臂自避碰问题会引发维度灾难[22].本研究提出基于任务空间关节距离离线数据集的强化学习自主自避碰策略D-DDPG,通过传统的包围盒的方式获取机器人在可达空间内运动时双臂各关节距离,并借鉴DDPG算法[23]常用的状态函数数据的方式建立可达空间关节距离离线数据集,借助DDPG算法以数据集内关节角为输入,以最小距离变化、机械臂灵活度等为参数构建奖励函数,驱动主臂训练得到自避碰模型.在操作臂进行运动规划前,通过调用自避碰模型驱动非操作臂主动运动到操作臂非操作空间,以此方式代替实时计算的双臂冗余机械臂的自避碰规划模式.1 D-DDPG主动自避碰策略1.1 自避碰问题描述如图1所示,当机器人接收路径规划指令时首先判断是否处于与训练模式,当处于训练模式时,借助包围盒建立任务空间内双臂关节角与最小关节距离的数据描述,并将数据描述存储为可构成DDPG算法观测值的数据式,通过离线训练的方式生成主动自避碰模型.机械臂接到路径规划指令且处于非训练模式时,先将操作臂的目标位姿发送给此模型,生成非操作臂的运动关节角,再对操作臂进行路径规划,此种方式生成的操作臂路径虽未进行避障计算,但非操作臂已主动运动到其任务空间之外,通过此种实现自避碰规划除体现出自主性之外,还大幅简化了双臂操作中的自避碰规划计算问题.10.13245/j.hust.210301.F001图1D-DDPG主动自避碰控制原理图首先将双臂自避碰问题描述为马尔可夫决策问题,设每个时间步长智能体所执行的动作为at,所对应的状态为st=θ,d,dmin,Ki,P,Q,(1)式中:θ为机械臂当前关节角;d为各关节间包围盒最小距离;dmin为当前状态下各关节最小距离d中的最小值;Ki为dmin所对应的关节编号;P为机械臂末端位置,包含x,y,z的坐标值;Q为机械臂末端姿态,以四元数方式x,y,z,w表示.动作为at=Δθ,ΔP,ΔQ,奖励值为Rk=rk+γrk-1+⋯+γN-krN,(2)式中:γ∈[0,1]为衰减因子;第k步长的回报为 rk=-exp(dmin|st=s)-me(Pst=s-P0)2+mk∑j=07(θjst=s-θj0)2+wf(s) , (3)其中,s为当前时刻状态,P0和θj0分别为初始时刻的末端位姿和机械臂当前关节角,Pst=s和θjst=s分别为当前状态下末端位姿和机械臂当前关节角,me和mk分别为末端位置变化和关节角变化在奖励函数中所占权重,经反复测试,分别取值为0.5和0.1,w为权重矩阵,f(s)为最小距离所在关节状态变化函数,其取值为0或1,其取值原则为f(s)=0 (arg(f(st))≠arg(f(st-1))) ,1 (arg(f(st))=arg(f(st-1))) . (4)由于机器人本体距离关系及在操作中靠近基座躯干的3个关节与本体和另一条臂前3个关节发生碰撞的概率极低,因此w根据如下公式做调节w=l1 (∃i≤3|arg(mini,j(dij)) ;l2 (∃i3|arg(mini,j(dij)) , (5)式中:l1为当最小距离所在两个关节中包含前3个关节时的权重系数;l2为最小距离所在2个关节中不包含前3个关节时的权重系数,根据经验设置l1l2;dij为第i和第j两个关节间的距离,i和j为操作臂关节指数.1.2 双臂机器人任务空间的关节距离描述根据FCL库包围盒建立规则建立机器人双臂包围盒模型,并完成可视化显示.已知关节a和关节b在时间段[t0,t1]内的运动轨迹为Da(t)和Db(t),则关节a和关节b在此运动过程中的最近距离为d=inf{||x-y||2: x∈Da(t),y∈Db(t)}.(6)由机器人运动学可知:若已知关节角为θt0,式(6)中的Da(t)在t0时刻的位姿坐标为Et0,则存在关节角θ0满足Et0=f(θt0),(7)上式的泰勒级数展开形式为Et0=f(θ0)+J(θ0)(θt0-θ0)+H,(8)式中:H为泰勒级数展开的高阶项;J为关节和其前n个关节构成的运动链的雅可比矩阵,其展开形式为J=∂fk1∂θ1∂fk1∂θ2⋯∂fk1∂θn∂fk2∂θ1∂fk2∂θ2⋯∂fk2∂θn⋯∂fkm∂θ1∂fkm∂θ2⋯∂fkm∂θn.(9)若已知t时刻机器人的关节角θt,则包围盒中心的位姿坐标(Obki,Ebki)可表示为Ebki= [fki(θt)+fki+1(θt)]/2 (in), fki(θt)+T(i) (i=n); (10)Obki=fki(θt),(11)式中:Ebki为第i个关节的x,y,z坐标;T(i)为包围盒沿轴向的偏置,这里将其设为常数值,大小为包围盒轴向长度的1/2;Obki为包围盒方向;n为关节数量.1.3 D-DDPG主动自避碰策略策略1通过关节遍历的方式按照一定采样密度生成关节状态数据集S,并存储到本地,由策略1和式(1)可以看出:S中包含生成奖励函数的所有必备参数,因此通过读取数据集,结合随机采样的方式为DDPG传入训练数据,由于该方式核心是从数据集上学习权重的模式构建主动自避碰策略,因此将该方法称之为D-DDPG.大致步骤如下:步骤1 基于式(1)的数据格式并借助策略1的步骤构建数据集,此数据集的核心数据为关节角和与之对应的各关节间最小距离;步骤2 构建DDPG网络,设计合适的学习率、衰减因子等参数,根据自避碰任务设置合理的奖励函数(式(4));步骤3 训练得到主动自避碰模型;步骤4 调用主动自避碰模型,使之处于实时等待路径规划请求模式;步骤5 路径规划请求指令同时发给路径规划库(无自避碰规划)及主动自避碰模型,模型规划库负责将操作臂规划到目标点,主动自避碰模型负责生成一组非操作臂运动关节角,在操作臂运动之前将非操作臂驱离任务空间,从而实现自避碰规划.2 实验结果及分析以双臂机器人操作臂单点运动和多点连续运动分别验证D-DDPG策略在双臂协调操作中操作臂动作,非操作臂不参与任务以及操作臂动作,非操作臂等待任务这两种场景中的适用性.DDPG网络结构中参数设置为学习率分别设置为1×10-4(actor,行为)和1×10-3(critic,评判),衰减因子设置为0.95,记忆池的大小设置为2 000,每一次从中抽取64条进行学习更新,网络运行回合数为60次,每一回合运行3 000个时间步.以仿真实验为训练环境完成主动自避碰训练后进行测试,因此实验须要在配置GTX1060显卡的电脑笔记本上安装双臂机器人物理仿真环境,此外为完成关节间距离实时估计以及强化学习训练.训练中将在非训练周期结束情况下提前到达满足的位置时奖励值设为100.如图2所示,训练在达到第15个训练周期后逐渐收敛,虽然在第43个周期存在波动,但是该过程为预测过程中的正常扰动,且奖励值低于-1 000表示在利用训练权重推断的避障关节角发生了和右臂碰撞的情况(如发生一次碰撞奖励值为-1 000).在60个周期后存储模型并利用该模型进行了单次运动和连续运动情况下的避障测试,如图3所示.10.13245/j.hust.210301.F002图2训练过程中奖励值变化10.13245/j.hust.210301.F003图3单次避障规划如图3所示,机械臂右臂想到达图3(a)所示位姿,此时左臂在目标点附近,传统的规划方式成功率不高,且左臂在此情况下不参与任务,单独在规划左臂到对右臂运动无影响的位置增加了任务复杂度.因此在机械臂右臂进行运动规划的同时,把目标位姿传给自避碰模型,自动生成一组左臂的关节角,确保在右臂达到目标位姿的过程中左臂在不增加任务规划计算负荷的前提下已提前到达1个非障碍位置.图4为重复上述实验10次中左臂7个关节角所运动到的位置,图5为在预测生成图4中关节角的过程中的部分观测值.从图4不难看出:当任务不发生变化时(右臂目标位置),10次重复实验中所预测的关节角的变化值在1/1 000 rad量级,可认为不发生变化.图5中关节角变化的物理含义为7个关节角与起始位置差的平方和,最小距离为右臂与左臂关节间距离的最小值.图3(a)与图3(b)两种情况下双臂的最小距离分别为0.021和0.290 m,13.8倍的最小距离变化可以给后续的右臂的运动提供更大的工作空间,只是左臂末端位姿误差会引起奖励值偏低.但左臂在此情况下不与右臂有协同约束,因此不会引起后续运动耗能问题.实验结果也表明连续路径条件下训练的模型同样适用于单次运动的避障预测.10.13245/j.hust.210301.F004图4单次避障测试关节角预测值10.13245/j.hust.210301.F005图5单次避障测试观测值连续路径避障测试以图3(a)为起始位置,右臂依次完成图6所示3个路径点的连续路径,具体为:A(位置为[0.654 7,0.221 3,0.198 2],姿态为[0.014 9,0.716 5,0.696 2,0.039 1]);B(位置为[0.598 8,0.285 3,0.352 5];姿态为[0.426 6,0.679 2,0.591 7,-0.079 4]);C(位置为[0.394 8,0.303 8,0.517 7],姿态为[0.178 7,0.583 5 ,0.769 0 ,-0.189 7]).假设左臂在右臂完成运动后有特定的协同任务,因此在右臂完成规划前,需要左臂通过训练模型推测出与起始点末端位姿误差较小且不会与右臂发生碰撞的关节角,以保证任务完成效率.10.13245/j.hust.210301.F006图6连续路径避障规划 (a) A (b) B (c) C 图7为重复上述实验10次中左臂7个关节角所运动到的位置,图8为在预测生成图9中关节角的过程中的部分观测值.图7再次证明图4中此避碰模型的可靠性,即针对同一避碰任务(这里为右臂目标点固定),左臂预测的关节角度具有不变性,从而避免因模型预测结果随机导致左臂运动到右臂任务空间内而发生碰撞.由图8可看出:在保证右臂路径上与左臂无碰撞的前提下,使路径点上最小距离稳定在0.05 m.在最小距离提升了2.38倍的同时末端位姿变化值为1.38(x,y,z值变化的平方和).试验结果表明在样本基础上训练的自避碰模型可用于双臂协同操作非紧协调任务中的自避碰操作.10.13245/j.hust.210301.F007图7连续路径避障关节角预测值10.13245/j.hust.210301.F008图8连续路径避障测试观测值3 结论通过建立关节角度与关节间最小距离描述数据集,结合包围盒距离计算和强化学习算法的优势提出了D-DDPG主动避碰策略.借助此策略生成的主动避碰模型,机械臂可在操作臂完成规划前主动驱动非操作臂运动运动到非任务工作空间内.此方式避免了操作臂路径规划中的避障运算,从而减少计算负荷.实验结果表明:D-DDPG策略在连续路径避障测试中可在保证任务非操作臂末端位姿误差为1.38的前提下,保证任务执行臂在路径运动过程中最小关节距离提升到初始位置的2.38倍.此外连续路径条件下训练的主动避障模型同样在单目标点的测试实验中表现出鲁棒性.由此证明:D-DDPG可通过非操作臂主动避让的策略,在双臂操作任务中减轻机械臂规划计算负荷.
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读
复制地址链接在其他浏览器打开
继续浏览