一种基于时空平滑度分析的水下机器人强化学习控制方法

未命名 10-18 阅读:151 评论:0


1.本发明属于水下机器人控制领域,具体为一种基于时空平滑度分析的水下机器人强化学习控制方法。


背景技术:

2.水下机器人可以辅助和代替人类潜水员进行危险的水下作业。目前水下机器人已经在海洋资源科考、海洋事故调查、海洋工程等方面展开了应用。由于水下机器人的推进器存在复杂的耦合关系,水下环境存在多种复杂干扰,其姿态和位置控制存在较大的困难,传统的控制技术难以达到理想的控制效果。近年来,深度学习、强化学习等机器学习技术能够通过基于数据学习的方法对复杂的被控对象进行控制。针对水下机器人的控制问题,基于强化学习的控制技术已经在仿真模拟环境中取得了一定的效果。
3.基于强化学习的水下机器人控制方法的目标是使水下机器人在无人干预的情况下自主到达目标位置和姿态。然而现有的方法仍然存在控制量震荡,控制精度差等问题。首先由于强化学习的控制动作直接来源于神经网络的输出,并未考虑控制量的连续性和平滑度问题,因此可能输出高频震荡的控制量,在实际应用中可能造成推进器的过度损耗。另外,基于强化学习的水下机器人控制方法由于值函数的拟合误差,往往存在位置和姿态的稳态误差,导致控制精度较差。针对现有控制方案的两个不足,亟需研发一种改进的水下机器人控制方法,提升控制量的平滑程度,同时提高控制精度,以满足水下机器人实际应用中的需求。


技术实现要素:

4.为了解决水下机器人电机驱动信号不平滑,控制存在稳态误差,导致机器人推进器过度损耗且不能准确完成位置和姿态控制目标的问题,本发明提出了一种基于时空平滑度分析的水下机器人强化学习控制方法,通过结合时间平滑度和空间平滑度分析,效削弱电机信号中的震荡现象,通过在强化学习基于神经网络的控制器中引入积分补偿器,补偿由于值函数拟合误差带来的稳态误差,从而保证控制的稳定性和精确度。另外,本发明在控制过程中对水下机器人的动力学模型进行动态拟合,并通过动力学模型获得用于强化学习训练的经验数据,通过扩充训练数据的方法提高强化学习算法的学习效率。
5.为实现上述目的,本发明采取的技术方案是:
6.一种基于时空平滑度分析的水下机器人强化学习控制方法,包括如下步骤:
7.步骤s1,构建水下机器人的仿真环境,其中机器人的六自由度运动模型表示为:
[0008][0009]
其中η=[x,y,z,φ,θ,ψ]
t
,x,y,z表示水下机器人的位置坐标,φ,θ,ψ表示水下机器人的转向角,为其对应的一阶导数,v表示水下机器人在机器人体坐标系下的速度和转
和奖励函数值r保存至仿真训练的数据库中;
[0026]
步骤s3-5,当仿真时长到达5秒时结束本轮实验,实验到达一定次数后进入下一步骤s4;
[0027]
步骤s3-6,利用仿真得到的数据更新水下机器人的模型网络,根据已有的下一时刻的系统状态量s’,采用梯度下降法对f(s,a|b)的参数b进行更新;
[0028]
步骤s3-7,随机初始化当前系统状态量s,将系统状态量s和机器人控制量a输入至水下机器人动力学的模型网络得到下一时刻系统状态量s’和奖励函数值r,将[s,a,s’,r]保存至仿真训练的数据库中。
[0029]
作为本发明进一步改进,步骤s4具体步骤如下;
[0030]
步骤s4-1,从仿真训练的数据库中随机抽取部分数据;
[0031]
步骤s4-2,利用采样数据更新水下机器人的主评价器网络参数,根据策略梯度法对主评价器网络q(s,a|w1)的参数w1进行更新;
[0032]
步骤s4-3,更新水下机器人的目标评价器网络参数,根据如下公式对目标评价器网络q(s,a|w2)的参数w2进行更新:
[0033]
w2←
βwi+(1-β)w2[0034]
其中β表示参数的更新速率;
[0035]
步骤s4-4,利用采样数据更新水下机器人的控制器网络参数,加入针对非平滑的电机驱动信号的优化策略,在控制器网络更新过程中引入电机使用率控制参数pu,以及电机驱动信号空间平滑度参数ps和时间平滑度参数p
t
,其中pu用于防止电机使用率超过限制,ps和p
t
用于平滑电机驱动信号,用如下公式计算:
[0036][0037]
p
t
=d
t
(π(s|μ),π(s’|μ))
[0038]
其中ds,d
t
表示均方根误差函数,表示施加噪音后的系统状态量,根据该电机驱动力优化策略以及策略梯度算法对控制器网络π(s|μ)的参数μ进行更新。
[0039]
作为本发明进一步改进,步骤s5具体方法为,在仿真环境中设定随机的目标位置,使用训练完成的控制器进行水下机器人的位置控制,统计该控制过程中的奖励函数值总和。若经过多轮训练更新得到的控制器在任务中的平均奖励函数值总和大于阈值,则判断其已经完成仿真训练,可以在真实环境中执行任务,进行步骤s6;否则返回步骤s3继续收集数据并训练。
[0040]
作为本发明进一步改进,步骤s6具体步骤如下;
[0041]
s6-1,在真实环境中随机初始化水下机器人的目标位置[xd,yd,zd];
[0042]
s6-2,加入积分补偿器以消除水下机器人位置控制中的稳态误差,对当前时刻的系统状态量s中的误差项[xe,ye,ze]分别进行积分得到补偿器输出[xi,yi,zi],积分后的系统状态量变为在积分补偿器中加入积分限幅算法以防止积分饱和,当系统的积分累积过大时停止积分运算;
[0043]
s6-3,将积分后的系统状态量si输入至水下机器人的控制器得到螺旋桨的推进力控制量a;
[0044]
s6-4,使用仿真环境进行水下机器人的动力学计算,将机器人控制量a输入环境得
到下一时刻的系统状态量s’以及奖励函数值r;
[0045]
s6-5,反复执行步骤s6-1到步骤s6-5直到完成任务需求。
[0046]
本发明采用的技术是使用基于时空平滑度分析的强化学习算法构建水下机器人的控制器,利用深度神经网络将水下机器人的运动状态映射到水下机器人的推进器的控制量,最终得到满足控制需求的控制器。本发明将积分补偿器加入至控制器以消除稳态误差,并加入积分限幅算法防止积分饱和。本发明利用时空平滑度分析方法,对输出的电机驱动信号进行平滑操作,在避免推进器过驱动的同时保证了电机驱动信号的空间平滑度和时间平滑度。
[0047]
与最接近的现有技术相比,本发明提供的技术方案具有的有益效果是:
[0048]
1)本发明中加入了对非平滑的电机驱动信号的优化策略,用于限制并削弱无规律、震荡的电机驱动信号,使其符合真实环境需求,保证了水下机器人位置控制过程中的稳定性;
[0049]
2)本发明中在强化学习框架中加入了积分补偿器,用于消除水下机器人位置控制任务中的稳态误差,保证了控制的准确性,使水下机器人无误差的达到指定位置;
[0050]
3)本发明加入了拟合水下机器人动力学的模型网络,基于动力模型以模拟仿真环境进行交互,获得了大量可用于强化学习训练的额外数据,加速了算法的运行效率。
附图说明
[0051]
图1为本发明方法流程示意图。
具体实施例
[0052]
下面结合附图1与具体实施方式对本发明作进一步详细描述,本专利提供一种基于时空平滑度分析的水下机器人强化学习控制方法。
[0053]
步骤s1,构建水下机器人的仿真环境,其中机器人的六自由度运动模型表示为:
[0054][0055]
其中η=[x,y,z,φ,θ,ψ]
t
,x,y,z表示水下机器人的位置坐标,φ,θ,ψ表示水下机器人的转向角,为其对应的一阶导数,v表示水下机器人在机器人体坐标系下的速度和转向率,为其对应的一阶导数。j(η)是惯性坐标系到机器人体坐标系的坐标转换矩阵,并且是η的函数;m为水下机器人的惯性矩阵;c(v)矩阵描述了水下机器人运动中的向心力和科里奥利力的影响,并且是v的函数;d(v)矩阵是阻尼矩阵,表示了水对水下机器人的阻尼特性,同样是v的函数;g(η)表示水下机器人的恢复力矩阵,并且是η的函数;τb表示水下机器人推进器的推进力;
[0056]
步骤s2,构建奖励函数,并设计水下机器人的评价器和控制器,以及用于拟合动力学的模型网络;
[0057]
步骤s3,在仿真环境中执行多轮位置控制实验,每次实验保存相关实验数据用于后续的评价器和控制器训练,利用实验数据对动力模型网络进行训练,利用动力模型网络扩充数据集;
[0058]
步骤s4,利用步骤s3中的数据对水下机器人的评价器和控制器进行训练,通过策略梯度算法对网络中的参数进行更新;
[0059]
步骤s5,对步骤s4所得的控制器进行测试,判断其是否达到任务指标。
[0060]
步骤s6,在真实环境中使用控制器对水下机器人进行位置控制。
[0061]
步骤s2具体步骤如下;
[0062]
步骤s2-1,构建奖励函数,该函数设置为目标位置水下机器人的当前位置与目标位置(xd,yd,zd)间的距离,表示为:
[0063][0064]
步骤s2-2,构建水下机器人的控制器,其使用神经网络表示,该网络包含一个输入层、两个隐含层和一个输出层,该网络的输入为当前的系统状态其中xe,ye,ze分别表示当前位置和目标位置之间的距离,第一个隐含层包括400个隐节点,第二个隐含层包括400个隐节点,前两层之间的激活函数采用tanh函数,该网络的输出为水下机器人螺旋桨的推进力控制量a=τb,激活函数为sigmoid函数,控制器网络整体表示为:a=π(s|μ),其中μ表示网络中的权值参数,μ初始值为随机值。
[0065]
步骤s2-3,构建水下机器人的评价器,其使用神经网络表示,评价器网络包含两个结构完全相同的神经网络,分别为主评价器网络和目标评价器网络,两个网络的结构包含一个输入层、两个隐含层和一个输出层,网络输入为当前系统状态和控制量第一个隐含层包括200个隐节点,第二个隐含层包括200个隐节点,前两层之间的激活函数采用tanh函数,网络输出表示为状态-动作价值,主评价器网络表示为q(s,a|w1),其中w1表示该网络的权值参数,w1初始值为随机值;目标评价器网络表示为q(s,a|w2),其中w2表示该网络的权值参数,w2初始值与w1相等。
[0066]
步骤s2-4,构建用于拟合水下机器人动力学的模型网络,其使用神经网络表示,该网络的输入为当前系统状态和控制量输出表示为下一时刻的系统状态量和对应的奖励值,模型网络表示为f(s,a|b),其中b表示网络的权值参数,b初始值为随机值。
[0067]
步骤s3具体步骤如下;
[0068]
步骤s3-1,在仿真环境中随机初始化水下机器人的目标位置[xd,yd,zd];
[0069]
步骤s3-2,将当前的系统状态量s输入至水下机器人的控制器得到螺旋桨的推进力控制量a;
[0070]
步骤s3-3,使用仿真环境进行水下机器人的动力学计算,将机器人控制量a输入环境得到下一时刻的系统状态量s’以及奖励函数值r;
[0071]
步骤s3-4,将当前时刻的系统状态量s和控制量a,以及下一时刻的系统状态量s’和奖励函数值r保存至仿真训练的数据库中。
[0072]
步骤s3-5,当仿真时长到达5秒时结束本轮实验,实验到达一定次数后进入下一步骤s4。
[0073]
步骤s3-6,利用仿真得到的数据更新水下机器人的模型网络,根据已有的下一时刻的系统状态量s’,采用梯度下降法对f(s,a|b)的参数b进行更新。
[0074]
步骤s3-7,随机初始化当前系统状态量s,将系统状态量s和机器人控制量a输入至
水下机器人动力学的模型网络得到下一时刻系统状态量s’和奖励函数值r,将[s,a,s’,r]保存至仿真训练的数据库中。
[0075]
步骤s4具体步骤如下;
[0076]
步骤s4-1,从仿真训练的数据库中随机抽取部分数据;
[0077]
步骤s4-2,利用采样数据更新水下机器人的主评价器网络参数,根据策略梯度法对主评价器网络q(s,a|w1)的参数w1进行更新;
[0078]
步骤s4-3,更新水下机器人的目标评价器网络参数,根据如下公式对目标评价器网络q(s,a|w2)的参数w2进行更新:
[0079]
w2←
βw1+(1-β)w2[0080]
其中β表示参数的更新速率;
[0081]
步骤s4-4,利用采样数据更新水下机器人的控制器网络参数,加入针对不平滑的电机驱动信号的优化策略,在控制器网络更新过程中引入电机使用率控制参数pu,以及电机驱动信号空间平滑度参数ps和时间平滑度参数p
t
,其中pu用于防止电机使用率超过限制,ps和p
t
用于平滑电机驱动信号,用如下公式计算:
[0082][0083]
p
t
=d
t
(π(s|μ),π(s’|μ))
[0084]
其中ds,d
t
表示均方根误差函数,表示施加噪音后的系统状态量,根据该电机驱动力优化策略以及策略梯度算法对控制器网络π(s|μ)的参数μ进行更新。
[0085]
步骤s5具体方法为,在仿真环境中设定随机的目标位置,使用训练完成的控制器进行水下机器人的位置控制,统计该控制过程中的奖励函数值总和。若经过多轮训练更新得到的控制器在任务中的平均奖励函数值总和大于阈值,则判断其已经完成仿真训练,可以在真实环境中执行任务,进行步骤s6;否则返回步骤s3继续收集数据并训练。
[0086]
步骤s6具体步骤如下;
[0087]
s6-1,在真实环境中随机初始化水下机器人的目标位置[xd,yd,zd];
[0088]
s6-2,加入积分补偿器以消除水下机器人位置控制中的稳态误差,对当前时刻的系统状态量s中的误差项(xe,ye,ze)分别进行积分得到补偿器输出(xi,yi,zi),积分后的系统状态量变为在积分补偿器中加入积分限幅算法以防止积分饱和,当系统的积分累积过大时停止积分运算;
[0089]
s6-3,将积分后的系统状态量si输入至水下机器人的控制器得到螺旋桨的推进力控制量a;
[0090]
s6-4,使用仿真环境进行水下机器人的动力学计算,将机器人控制量a输入环境得到下一时刻的系统状态量s’以及奖励函数值r;
[0091]
s6-5,反复执行步骤s6-1到步骤s6-5直到完成任务需求。
[0092]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。

技术特征:
1.一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:包括如下步骤:步骤s1,构建水下机器人的仿真环境,其中机器人的六自由度运动模型表示为:其中η=[x,y,z,φ,θ,ψ]
t
,x,y,z表示水下机器人的位置坐标,φ,θ,ψ表示水下机器人的转向角,为其对应的一阶导数,v表示水下机器人在机器人体坐标系下的速度和转向率,为其对应的一阶导数,j(η)是惯性坐标系到机器人体坐标系的坐标转换矩阵,并且是η的函数;m为水下机器人的惯性矩阵;c(v)矩阵描述了水下机器人运动中的向心力和科里奥利力的影响,并且是v的函数;d(v)矩阵是阻尼矩阵,表示了水对水下机器人的阻尼特性,同样是v的函数;g(η)表示水下机器人的恢复力矩阵,并且是η的函数;τ
b
表示水下机器人推进器的推进力;步骤s2,构建奖励函数,并初始化水下机器人强化学习算法的评价器和控制器,以及用于拟合动力学的模型网络;步骤s3,在仿真环境中执行多轮位置控制实验,每次实验保存相关实验数据用于后续的评价器和控制器训练,利用实验数据对动力模型网络进行训练,利用动力模型网络扩充数据集;步骤s4,利用步骤s3中的数据对水下机器人的评价器和控制器进行训练,通过策略梯度算法对网络中的参数进行更新;步骤s5,对步骤s4所得的控制器进行性能测试,判断其是否达到任务指标;步骤s6,在真实环境中使用控制器对水下机器人进行位置控制。2.根据权利要求1所述的一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:步骤s2具体步骤如下;步骤s2-1,构建奖励函数,该函数设置为目标位置水下机器人的当前位置[x,y,z]与目标位置[x
d
,y
d
,z
d
]间的距离,表示为:步骤s2-2,构建水下机器人的控制器,其使用神经网络表示,该网络的输入为当前的系统状态其中x
e
,y
e
,z
e
分别表示当前位置和目标位置之间的距离,该网络的输出为水下机器人螺旋桨的推进力控制量a=τ
b
,控制器网络整体表示为:a=π(s μ),其中μ表示网络中的权值参数,μ初始值为随机值;步骤s2-3,构建水下机器人的评价器,其使用神经网络表示,评价器网络包含两个结构完全相同的神经网络,分别为主评价器网络和目标评价器网络,两个网络的输入为当前系统状态和控制量输出表示为状态-动作价值,主评价器网络表示为q(s,a|w1),其中w1表示该网络的权值参数,w1初始值为随机值;目标评价器网络表示为q(s,a|w2),其中w2表示该网络的权值参数,w2初始值与w1相等;步骤s2-4,构建用于拟合水下机器人动力学的模型,其使用神经网络表示,该网络的输
入为当前系统状态和控制量输出表示为下一时刻的系统状态量和对应的奖励值,模型网络表示为f(s,a|b),其中b表示网络的权值参数,b初始值为随机值。3.根据权利要求1所述的一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:步骤s3具体步骤如下;步骤s3-1,在仿真环境中随机初始化水下机器人的目标位置[x
d
,y
d
,z
d
];步骤s3-2,将当前的系统状态量s输入至水下机器人的控制器得到推进器的推进力控制量a;步骤s3-3,使用仿真环境进行水下机器人的动力学计算,将机器人控制量a输入环境得到下一时刻的系统状态量s’以及奖励函数值r;步骤s3-4,将当前时刻的系统状态量s和控制量a,以及下一时刻的系统状态量s’和奖励函数值r保存至仿真训练的数据库中;步骤s3-5,当仿真时长到达5秒时结束本轮实验,实验到达一定次数后进入下一步骤s4;步骤s3-6,利用仿真得到的数据更新水下机器人的模型网络,根据已有的下一时刻的系统状态量s’,采用梯度下降法对f(s,a|b)的参数b进行更新;步骤s3-7,随机初始化当前系统状态量s,将系统状态量s和机器人控制量a输入至水下机器人动力学的模型网络得到下一时刻系统状态量s’和奖励函数值r,将[s,a,s’,r]保存至仿真训练的数据库中。4.根据权利要求1所述的一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:步骤s4具体步骤如下;步骤s4-1,从仿真训练的数据库中随机抽取部分数据;步骤s4-2,利用采样数据更新水下机器人的主评价器网络参数,根据策略梯度法对主评价器网络q(s,a|w1)的参数w1进行更新;步骤s4-3,更新水下机器人的目标评价器网络参数,根据如下公式对目标评价器网络q(s,a|w2)的参数w2进行更新:w2←
βw1+(1-β)w2其中b表示参数的更新速率;步骤s4-4,利用采样数据更新水下机器人的控制器网络参数,加入针对非平滑的电机驱动信号的优化策略,在控制器网络更新过程中引入电机使用率控制参数p
u
,以及电机驱动信号空间平滑度参数p
s
和时间平滑度参数p
t
,其中p
u
用于防止电机使用率超过限制,p
s
和p
t
用于平滑电机驱动信号,用如下公式计算:p
t
=d
t
(π(s|μ),π(s’|μ))其中d
s
,d
t
表示均方根误差函数,表示施加噪音后的系统状态量,根据该电机驱动力优化策略以及策略梯度算法对控制器网络π(sμ)的参数μ进行更新。5.根据权利要求1所述的一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:
步骤s5具体方法为,在仿真环境中设定随机的目标位置,使用训练完成的控制器进行水下机器人的位置控制,统计该控制过程中的奖励函数值总和。若经过多轮训练更新得到的控制器在任务中的平均奖励函数值总和大于阈值,则判断其已经完成仿真训练,可以在真实环境中执行任务,进行步骤s6;否则返回步骤s3继续收集数据并训练。6.根据权利要求1所述的一种基于时空平滑度分析的水下机器人强化学习控制方法,其特征在于:步骤s6具体步骤如下;s6-1,在真实环境中随机初始化水下机器人的目标位置[x
d
,y
d
,z
d
];s6-2,加入积分补偿器以消除水下机器人位置控制中的稳态误差,对当前时刻的系统状态量s中的误差项[x
e
,y
e
,z
e
]分别进行积分得到补偿器输出[x
i
,y
i
,z
i
],积分后的系统状态量变为在积分补偿器中加入积分限幅算法以防止积分饱和,当系统的积分累积过大时停止积分运算;s6-3,将积分后的系统状态量s
i
输入至水下机器人的控制器得到螺旋桨的推进力控制量a;s6-4,使用仿真环境进行水下机器人的动力学计算,将机器人控制量a输入环境得到下一时刻的系统状态量s’以及奖励函数值r;s6-5,反复执行步骤s6-1到步骤s6-5直到完成任务需求。

技术总结
本发明提供了一种基于时空平滑度分析的水下机器人强化学习控制方法,通过结合时间平滑度和空间平滑度分析,效削弱电机信号中的震荡现象,通过在强化学习基于神经网络的控制器中引入积分补偿器,补偿由于值函数拟合误差带来的稳态误差,从而保证控制的稳定性和精确度。另外,本发明在控制过程中对水下机器人的动力学模型进行动态拟合,并通过动力学模型获得用于强化学习训练的经验数据,通过扩充训练数据的方法提高强化学习算法的学习效率。数据的方法提高强化学习算法的学习效率。数据的方法提高强化学习算法的学习效率。


技术研发人员:王远大 杨嘉诚 孙佳 孙长银
受保护的技术使用者:东南大学
技术研发日:2023.07.17
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐