一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种电动机堵转条件下足式机器人物体追踪自适应控制方法

2022-08-13 11:21:02 来源:中国专利 TAG:


1.本发明涉及智能机器人技术领域,特别涉及一种电动机堵转条件下足式机器人物体追踪自适应控制方法。


背景技术:

2.在机器人运动的过程中,由于外界或内在的因素,不可避免会遇到损伤情况,如电动机堵转等。对于足式机器人来说,当腿部的电动机堵转后,如果其他电动机仍然按照原有指令运行,会导致机器人偏离预定的轨迹,这阻碍了机器人被可靠地部署在真实环境中。为了能够到达预期目标,机器人需要自适应调整其控制策略。
3.传统的机器人损伤恢复包含两个步骤,首先是自我诊断,然后根据诊断结果选择最合适的替代策略,这个替代策略是预先设计的。然而,替代策略难以设计,因为损坏情况会随着机器人复杂度的增加而实现指数增长,因此很难事先考虑到所有可能的情况。此外,由于传感器以及外界环境的噪声,自我诊断的结果也不一定时刻准确。这些都使得传统方法经常失效。
4.自从alphago重新点燃了世人对人工智能的热情,作为其核心技术之一的深度强化学习便吸引了无数关注目光,它是机器学习和自动控制领域的重要研究方向,也是实现强人工智能的重要手段,在智能机器人领域受到了学术界与工业界的广泛重视。在足式机器人控制领域,在大规模并行仿真环境的基础上,通过设计合理的奖励函数,实现了足式机器人在复杂多变环境下的自主运动,取得了令人瞩目的成果。然而,大部分方法都未将机器人损伤情况加以考虑。在野外作业环境下,机器人电动机受损而造成堵转的现象难免发生,因此,能够适应电动机堵转条件下的足式机器人自适应控制方法具有重要的意义与应用价值。


技术实现要素:

5.针对现有足式机器人控制方法未考虑到机器人电动机堵转条件下的运动控制问题,本发明提供一种电动机堵转条件下足式机器人物体追踪自适应控制方法。
6.考虑到分层强化学习算法的优点和限制,本发明所采用的技术方案是基于分层强化学习思想,结合双源无模型离策略强化学习方法与基于模型的强化学习算法对其进行改进。首先基于双源无模型离策略强化学习算法得到机器人的上层控制指令,然后基于上层控制指令选择对应的下层奖励函数,最后结合前向动力学模型与交叉熵优化算法得到机器人电动机的位置控制指令。本发明将复杂任务分解为具体子任务进行解决,缓解了强化学习训练过程中正样本少,回报值稀疏问题,大大加速了训练流程。
7.为了实现上述目的,本发明采用如下技术方案:
8.一种电动机堵转条件下足式机器人物体追踪自适应控制方法,包括以下步骤:
9.(1)构建电动机堵转条件下足式机器人动力学仿真环境;
10.(2)使用多层感知器构建足式机器人的前向动力学模型;
11.(3)基于双源无模型离策略强化学习方法训练上层控制器,所述的上层控制器用于根据机器人与环境的交互数据输出上层控制指令;
12.(4)当需要对电动机位置控制指令进行选择时,首先利用训练好的上层控制器得到上层控制指令,并根据该指令得到对应的下层奖励函数,利用步骤(2)中得到的前向动力学模型,预测在当前状态下,当执行一组从随机高斯分布下采样得到的动作后的状态增量,并基于该状态增量与下层奖励函数获得对应动作的回报值,以增大回报值为目标,不断优化动作分布的均值与方差,直到达到指定轮数,将最后一轮分布的动作的均值作为机器人电动机下一步执行的动作。
13.作为本发明的优选,所述的步骤(1)具体为:
14.构建足式机器人的基座、左前肢、左前十字连接件、右前肢、右前十字连接件、左后肢、左后十字连接件、右后肢、右后十字连接件、摄像头构件的三维模型,并导出为相应的.stl文件;
15.构建足式机器人的.xml文件,首先在《asset》标签下导入上一步构建的.stl文件,然后在《worldbody》标签下使用限位转动关节连接各个构件,最后在《actuator》标签下定义限位转动关节的各个参数;当.xml文件构建完毕后,将其加载至物理仿真环境中,检查各个构件位姿是否满足预期要求,若不满足,则调整《worldbody》标签下《body》标签中的quat属性值调节姿态,pos属性值调节位置,直到各个构件达到预期位姿;
16.构建仿真环境与算法的交互接口,reset(
·
)用于初始化仿真环境的状态,close(
·
)用于关闭仿真环境模型,step(
·
)用于执行一步动作,change_env(
·
)用于实现电动机堵转条件,change_env(
·
)将在reset(
·
)函数中被调用。
17.作为本发明的优选,所述的前向动力学模型的输入为足式机器人当前状态和机器人在当前状态下执行的动作前向动力学模型的输出为机器人执行当前动作后的预测状态变化量根据预测状态变化量得到机器人下一状态
18.前向动力学模型的训练过程为:
19.首先获取机器人当前状态并给定一个随机动作机器人在动力学仿真环境下与环境进行交互,得到交互后的下一步状态循环操作,得到一系列交互样本作为训练数据集,对前向动力学模型进行第一轮训练;
20.利用第i轮训练后的前向动力学模型和交叉熵优化算法采集用于执行第i 1轮训练的数据集,方法为:获取机器人当前状态并给出一组在随机高斯分布下采样得到的动作值,利用第i轮训练后的前向动力学模型得到对应每一个动作的预测状态根据预测状态得到下层奖励函数的取值;以增大下层奖励函数取值为目标,不断优化动作分布的均值与方差,当达到指定轮数后,将最后一轮动作分布的均值作为最优动作,由机器人当前状态、最优动作、机器人执行最优动作后的下一状态构成交互样本作为训练数据集,对前向动力学模型进行第i 1轮训练,i≥1;重复该过程,直至达到预设训练轮数或收敛;
21.所述的训练过程的损失函数为预测状态变化量与实际状态变化量δ
t
的均方误差值和网络权重参数的平方和。
22.作为本发明的优选,所述的机器人当前状态包括机器人基座质心的速度、欧拉角、旋转矩阵,以及所有电动机的位置及速度;动作为机器人所有电动机的位置控制指令。
23.作为本发明的优选,所述的上层控制指令包括:前进指令、后退指令、左转指令、右转指令和静止指令。
24.作为本发明的优选,所述的双源无模型离策略强化方法基于sac-discrete模型实现,所述sac-discrete模型的训练过程包括:
25.第一阶段:获取动力学仿真环境下由机器人上安装的摄像头拍摄的前方图像,得到机器人与追踪目标之间的相对距离d和相对角度θ,基于有限状态机原理构建训练数据,包括:
26.d≤20cm条件下,当|θ|≤15
°
时,执行后退指令,当θ>15
°
时,执行左转指令,当θ<-15
°
时,执行右转指令;
27.在d≥25cm条件下,当|θ|≤18
°
时,执行前进指令,当θ>18
°
时,执行左转指令,当θ<-18
°
时,执行右转指令;
28.在20cm<d<25cm条件下,当θ>10
°
时,执行左转指令,当θ<-10
°
时,执行右转指令,当|θ|≤10
°
时,执行静止指令;
29.将机器人与追踪目标之间的相对距离d和相对角度θ拼接在一起作为强化学习中的机器人与环境的交互数据,称为状态将上层控制指令作为强化学习中的动作根据机器人与追踪目标之间的关系设计上层奖励函数构建用于训练sac-discrete模型的训练样本利用训练样本对sac-discrete模型进行第一阶段训练;
30.第i 1阶段:使用经过第i阶段训练后的sac-discrete模型采集用于第i 1阶段训练的训练样本,具体为:
31.获取动力学仿真环境下由机器人上安装的摄像头拍摄的前方图像,得到机器人与追踪目标之间的相对距离d和相对角度θ,将机器人与追踪目标之间的相对距离d和相对角度θ拼接在一起作为强化学习中的机器人与环境的交互数据,称为状态将状态作为第i阶段训练后的sac-discrete模型的输入,由sac-discrete模型输出动作根据机器人与追踪目标之间的关系设计上层奖励函数构建用于第i 1阶段训练的训练样本利用训练样本继续对sac-discrete模型进行第i 1阶段训练;i≥1;重复该过程,直至达到预设训练轮数或收敛。
32.作为本发明的优选,所述的上层奖励函数的设计方法为:
33.设定机器人与追踪目标之间的最佳距离为d
opt
,当机器人与追踪目标相撞时,上层奖励函数当追踪目标离开机器人视野时,上层奖励函数其他情况下,上层奖励函数作为本发明的优选,所述的步骤3中,基于双源无模型离策略强化学习方法得到上层控制指令,当上层控制指令为静止指令时,直接令机器人保持上一步的电动机位置即可;
34.当上层控制指令为前进指令或者后退指令时,上层奖励函数为其中w
i,i=1,2,3,4
表示权重系数,δx
base
表示机器人基座质心在x轴方向前进的距离,(r,p,y)表示机器人基座质心的欧拉角,表示所有关节速度之和;
35.当上层控制指令为左转或者右转指令时,下层奖励函数设计为其中,y
des
表示目标转向角。
36.9.根据权利要求1所述的一种电机堵转条件下足式机器人物体追踪自适应控制方法,其特征在于,当使用交叉熵优化方法进行电动机动作选择时,首先给出一组在随机高斯分布下采样得到的动作值,针对每个动作,结合当前状态利用前向动力学模型预测下一步状态
37.基于上层控制指令确定下层奖励函数,并基于预测的下一步状态计算下层奖励函数的取值;
38.在得到每一组电动机动作对应的下层奖励函数取值后,挑选出奖励值最高的前20%的奖励值所对应的动作,计算出这些动作的均值与方差,利用高斯分布拟合这些动作的分布,接下来从这个高斯分布中进行采样,得到一组新的动作;
39.重复上述步骤,直到达到预定步数,将最新的高斯分布的均值作为电动机下一步执行的动作。
40.与现有技术相比,本发明提供的一种电动机堵转条件下足式机器人物体追踪自适应控制方法,具有如下优点:
41.(1)本发明采用分层强化学习算法(上层基于双源无模型离策略强化学习方法,下层基于模型的强化学习),实现了在足式机器人电动机堵转的情况下仍能够实现目标追踪任务,解决了在强化学习任务中负样本过多,奖励稀疏的问题。
42.(2)本发明使用基于双源无模型离策略强化学习方法学习上层控制指令,经验储存池中的数据部分来自于有限状态机,部分来自于强化学习算法与环境的交互,提升了样本的多样性,有助于训练更加鲁棒的上层控制指令。
43.(3)本发明使用基于模型的强化学习方法训练机器人下层运动指令,训练好的动力学模型具有较强的泛化性,即使遇到训练集中没有包含的电动机堵转场景,仍能够得到较好的预测值;此外,训练好的动力学模型适用各种上层控制指令,只需要更改对应的奖励函数即可,可扩展性更强,适合迁移。
附图说明
44.图1为本发明的整体流程图;
45.图2为双源无模型离策略强化学习算法网络结构,其中实线代表actor网络损失函数的计算流程,虚线代表critic网络损失函数的计算流程;
46.图3为前向动力学模型的网络结构。
具体实施方式
47.下面结合具体实施例,进一步阐释本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
48.一种电动机堵转条件下足式机器人物体追踪自适应控制方法,基于分层强化学习算法,下层使用基于模型的强化学习方法,使得机器人能够在电动机堵转条件下仍然能够按照预期指令行走,上层使用双源无模型强化学习方法,使用有限状态机交互数据以及算法自身交互数据作为训练数据。包括以下步骤:
49.步骤一:
50.基于mujoco构建电动机堵转条件下足式机器人动力学仿真环境,使用solidworks软件构建足式机器人的基座、左前肢、左前十字连接件、右前肢、右前十字连接件、左后肢、左后十字连接件、右后肢、右后十字连接件、摄像头等10个构件的三维模型,并导出为.stl文件。
51.构建足式机器人的.xml文件,首先在《asset》标签下导入上一步构建的10个.stl文件,然后在《worldbody》标签下使用限位转动关节连接各个构件,最后在《actuator》标签下定义限位转动关节的各个参数。具体来说,在连接各个构件时,a_motor_1用来连接基座与左前十字连接件,其索引值为0,(后面电动机的索引值依次加一,不再赘述),a_motor_2用来连接左前十字连接件与左前肢,b_motor_1用来连接基座与右前十字连接件,b_motor_2用来连接右前十字连接件与右前肢,c_motor_1用来连接基座与左后十字连接件,c_motor_2用来连接左后十字连接件与左后肢,d_motor_1用来连接基座与右后十字连接件,d_motor_2用来连接右后十字连接件与右后肢,其中a_motor_1,b_motor_1,c_motor_1,d_motor_1的运动范围为-90
°
到90
°
,a_motor_2,b_motor_2,c_motor_2,d_motor_2的运动范围为-90
°
到20
°
,运动范围的限定保证了机器人在运动过程中不会对周围其他构件行成干涉。
52.当.xml文件构建完毕后,将其加载至mujoco物理仿真环境中,检查各个构件位姿是否满足要求,若不满足,则调整《worldbody》标签下《body》标签中的quat属性值调节姿态,pos属性值调节位置,直到各个构件达到预期位姿。
53.基于gym构建仿真环境与算法交互的接口,其中reset(
·
)用于初始化仿真环境的状态,close(
·
)用于关闭仿真环境模型,step(
·
)用于执行一步动作,change_env(
·
)用于实现电动机堵转条件,change_env(
·
)将在reset(
·
)函数中被调用。当算法与环境交互时,首先执行reset(
·
)函数,将仿真环境中的机器人质心位置恢复至运动起始点,并对各个关节进行复位,然后调用chang_env(
·
)函数,在0-7中任选一个(或两个)数字,代表电动机索引值,被选中的电动机所对应的动作指令被重置为0,表示电动机被堵转,无法执行原有动作,为了可视化被堵转的电动机,使用gym提供的geom_rgba接口改变堵转电动机所连接的下一级构件的颜色(如a_motor_1电动机堵转,则将左前十字连接件外观颜色改为红色,b_motor_2电动机堵转,则将右前肢外观颜色改为红色)。reset(
·
)函数会返回仿真环境中当前的状态给对应的控制算法,控制算法根据当前状态输出动作值,step(
·
)函数执行该动作值,并将新得到的状态返回给控制算法,不断循环,直至达到预定的最大部属,结束该轮状态收集,使用close(
·
)函数关闭仿真环境模型。
54.步骤二:
55.使用步骤一所构建的电动机堵转条件下足式机器人动力学仿真环境收集机器人与环境交互的数据,所收集的数据被用来当作前向动力学模型的训练集与验证集,此时限制机器人堵转的电动机的索引值在0,3,4,7四个值范围内,其余索引值将对应测试集。
56.在第一轮收集时,由于尚未有经过训练的动力学模型,无法采用交叉熵方法得到机器人运动指令,因此使用随机动作进行交互数据的收集,例如:首先获取机器人当前状态并给定一个随机动作机器人在动力学仿真环境下与环境进行交互,得到交互后的预测状态循环操作,得到一系列交互样本作为训练数据集,对前向动力学模型进行第一轮训练。需要注意的是,在执行随机动作时,对机器人的关节要加以安全限制,防止机器人在运动过程中造成侧翻,导致失败样本过多,从而引起稀疏回报问题。
57.从第二轮收集开始,由于已经有了经过训练的前向动力学模型,因此使用交叉熵优化方法得到优化后的机器人运动指令进行交互数据的收集,其中交互数据包括当前状态在当前状态下执行的动作以及执行完动作后所达到的下一个状态其中状态包括机器人基座质心的速度、欧拉角及旋转矩阵,还有八个电动机的位置及速度,为机器人八个电动机的位置控制指令。当收集的交互数据的数量达到预设的最大轨迹长度,截至该轮收集,然后对所收集的数据进行处理,具体来说,用减去对应项的值,得到与二者维度相同的状态变化量用于接下来的动力学模型建立。
58.在本发明的一项具体实施中,从第二轮收集开始,可不断迭代训练前向动力学模型,利用第i轮训练后的前向动力学模型和交叉熵优化算法采集用于执行第i 1轮训练的数据集,方法为:获取机器人当前状态并给出一组在随机高斯分布下采样得到的动作值,利用第i轮训练后的前向动力学模型得到对应每一个动作的预测状态根据预测状态得到下层奖励函数的取值;以增大下层奖励函数取值为目标,不断优化动作分布的均值与方差,当达到指定轮数后,将最后一轮动作分布的均值作为最优动作,由机器人当前状态、最优动作、机器人执行最优动作后的下一状态构成交互样本作为训练数据集,对前向动力学模型进行第i 1轮训练,i≥1;重复该过程,直至达到预设训练轮数或收敛;
59.基于监督学习的思想,使用多层感知器构建机器人前向动力学模型,输入为和拼接之后的结果,输出为机器人执行当前动作后的预测状态变化量本实施例中,隐藏层维度为(200,200,200,200)。损失函数定义为模型的预测输出与实际状态变化量δ
t
的均方误差与网络权重参数的平方和,优化器采用adam优化器,学习率采用0.001,对前向动力学网络参数进行更新,直至达到最大迭代次数或者收敛为止。
60.步骤三:
61.基于双源无模型强化学习算法,训练机器人上层控制指令。上层控制指令包括:前进指令、后退指令、左转指令、右转指令和静止指令。首先使用摄像头获取前方图像,通过图像处理方法得到机器人与追踪目标之间的相对距离d和相对角度θ,基于有限状态机原理,在d≤20cm条件下,当|θ|≤15
°
时,执行后退指令,当θ>15
°
时,执行左转指令,当θ<-15
°
时,执行右转指令;在d≥25cm条件下,当|θ|≤18
°
时,执行前进指令,当θ>18
°
时,执行左转指令,当θ<-18
°
时,执行右转指令;在20cm<d<25cm条件下,当θ>10
°
时,执行左转指令,当θ<-10
°
时,执行右转指令,当|θ|≤10
°
时,执行静止指令。
62.将机器人与目标之间的相对距离d和相对角度θ拼接在一起作为强化学习中的机器人与环境的交互数据,称为强化学习状态机器人追踪上层控制指令作为强化学习的动作设定机器人与目标物之间的最佳距离为d
opt
,当机器人与目标物相撞时,奖励函数当目标物离开机器人视野时,奖励函数其他情况下,奖励函数基于有限状态机得到动作,收集交互数据存储到离策略强化学习算法sac-discrete的经验储存池中。
63.在训练强化学习算法时,首先使用上述中基于有限状态机原理得到的交互数据进行第一阶段的训练,初始化网络参数,当训练轮数达到预定轮数时,再使用sac-discrete算法得到的动作与环境交互并收集交互数据,然后用新收集的数据进行sac-discrete算法中网络的参数。
64.在本发明的一项具体实施中,使用经过第i阶段训练后的sac-discrete模型采集用于第i 1阶段训练的训练样本,具体为:
65.获取动力学仿真环境下由机器人上安装的摄像头拍摄的前方图像,得到机器人与追踪目标之间的相对距离d和相对角度θ,将机器人与追踪目标之间的相对距离d和相对角度θ拼接在一起作为强化学习中的机器人与环境的交互数据,称为状态w
i,i=1,2,3,4
;将状态作为第i阶段训练后的sac-discrete模型的输入,由sac-discrete模型输出动作δx
base
,根据机器人与追踪目标之间的关系设计强化学习奖励函数,构建用于第i 1阶段训练的训练样本利用训练样本继续对sac-discrete模型进行第i 1阶段训练;i≥1;重复该过程,直至达到预设训练轮数或收敛。
66.如图2所示,sac-discrete采用actor-critic架构,包含一个actor网络,两个critic网络,两个目标critic网络。其中acotr网络的输入为输出为选择每一个动作的概率,隐藏层的网络维度为(256,256),两个critic网络(critic网络1,critic网络2)的输入为输出为每一个离散动作对应的q值,隐藏层的维度为(256,256)。在计算actor网络的损失函数时,首先将当前状态输入到critic网络1和critic网络2中,得到q1和q2,选择这两组q值中较小的一组,记为q
min
,然后将当前状态输入到actor网络中,得到选择每一个动作的概率利用该概率值以及q
min
计算得到actor网络的损失函数,记为actor_loss。在计算critic网络的损失函数时,首先将下一时刻状态输入到目标critic网络1和目标critic网络2中,并将输出的结果取较小值记为targetq
min
,并结合奖励值计算目标q值,记为q
target
,然后将当前时刻状态输入到critic网络1和critic网络2中,得到q1和q2,q1与q
target
取均方差作为critic网络1的损失函数,q2与q
target
取均方差作为critic网络2的损失函数。目标critic网络1的参数每隔一段时间从critic网络1的参数中按照一定比例进行复制,同理,目标critic网络2的参数每隔一段时间从critic网络2的参数中按照一定
比例进行复制,因此目标critic网络1和目标critic网络2没有定义损失函数。训练的过程采用批训练的方法,批量大小设置为64,学习率设置为0.0005。
67.步骤四:
68.基于上层控制指令设计机器人下层奖励函数,当机器人需要执行前进指令或者后退指令时,奖励函数设计为其中w
i,i=1,2,3,4
表示权重系数,δx
base
表示机器人基座质心在x轴方向前进的距离,(r,p,y)表示机器人基座质心的欧拉角,表示所有关节速度之和,这个奖励函数的意义在于鼓励机器人沿x轴移动,尽量减小沿着xyz轴的旋转,以及尽量减小关节运动的速度,当执行前进指令时,w1取正数,当执行后退指令时,w1取负数。当机器人需要执行左转或者右转指令时,奖励函数设计为其中当需要执行左转指令时,转向角y
des
=-30
°
,当需要执行右转指令时,转向角y
des
=30
°

69.当使用交叉熵优化算法进行动作选择时,首先基于步骤三得到训练好后的上层控制器,结合当前状态得到机器人需要执行的上层控制指令,并选择相应的下层奖励函数。然后初始化一组随机动作,针对每个动作,结合当前状态基于步骤二中得到的前向动力学模型预测下一步状态并计算下层奖励函数的取值,在得到每一个动作的取值后,挑选出奖励值最高的前20%的奖励值所对应的动作,计算出这些动作的均值与方差,利用高斯分布拟合这些动作的分布,接下来从这个高斯分布中进行采样,得到一组新的动作,重复上述步骤,得到新的高斯分布,不断重复此过程,直到达到预定步数,达到预定步数后,将最新的高斯分布的均值作为机器人电动机的位置控制指令。
70.以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献