一种基于SAC的水下机器人自主控制方法与流程

文档序号:29735058发布日期:2022-04-21 15:46阅读:148来源:国知局
一种基于SAC的水下机器人自主控制方法与流程
一种基于sac的水下机器人自主控制方法
技术领域
1.本发明涉及水下机器人行为控制的技术领域,尤其涉及一种基于sac的水下机器人自主控制方法。


背景技术:

2.机器人技术迅速发展,其应用场景更加精细化,功能性要求越来越高,控制精度和实时反馈等需求明显提升。随着模式识别技术发展与深度学习算法的日趋成熟,机器人控制迎来了新的发展机遇,传统的被动接受指令,亦步亦趋的机器人控制模式正在被改变,半自动和全自动自主学习逐步嵌入到机器人控制系统中。
3.但在水下的动态环境中,水下场景复杂需要进行高纬度的动态决策,使得传统机器人控制策略容易陷入局部最优,且机器人各部件之间不存在交互性。
4.鉴于此,本发明提供一种基于sac的水下机器人自主控制方法,通过构建智能体分解模型对水下机器人进行分解处理,将水下机器人控制策略优化问题转换为多智能体控制策略优化问题,从而利用强化学习方法寻找智能体控制的最优策略,实现水下机器人的实时自主控制。


技术实现要素:

5.本发明提供一种基于sac的水下机器人自主控制方法,目的在于(1)将水下机器人控制策略优化问题转换为多智能体控制策略优化问题;(2)利用sac方法寻找智能体控制的最优策略,实现水下机器人的实时自主控制。
6.为实现上述目的,本发明提供的一种基于sac的水下机器人自主控制方法,包括以下步骤:
7.s1:构建智能体分解模型,利用智能体分解模型将水下机器人分解为若干智能体;
8.s2:构建注意力图神经网络模型,将智能体状态映射为智能体依赖关系图;
9.s3:以水下环境状态为输入,多智能体动作选择组合为输出,构建水下机器人控制策略模型;
10.s4:根据映射得到的智能体依赖关系图确定智能体执行动作的反馈收益,以智能体反馈收益为基础构建水下机器人控制策略模型的目标函数,并利用sac算法对目标函数进行求解,得到水下机器人最优控制策略。
11.作为本发明的进一步改进方法:
12.所述s1步骤中利用智能体分解模型将水下机器人分解为若干智能体,包括:
13.利用智能体分解模型将水下机器人分解为若干智能体,所述智能体为机器人的关节部位,对水下机器人进行智能体分解的公式为:
14.divide(s)=s1,s2,

,sk,

,sn15.其中:
16.sk表示水下机器人第k个智能体的状态,sn表示水下机器人第n个智能体的状态,n
为分解得到的智能体总数,即水下机器人关节部位总数;所述第k个智能体即为水下机器人的第k个关节部位;
17.s表示水下机器人状态,divide(s)表示将水下机器人状态分解为n个智能体的状态;分解后智能体所对应的动作信息为:
18.divide(a)=a1,a2,

,ak,

,an19.其中:
20.a表示水下机器人动作信息,divide(a)表示将水下机器人动作信息分解为n个智能体的动作信息;
21.ak表示水下机器人第k个智能体的动作信息;
22.在本发明一个具体实施例中,相较于传统技术,本发明将水下机器人控制策略优化问题转换为多智能体控制策略优化问题,即将nm维度的水下机器人控制策略优化问题降维为n
×
m维的多智能体控制策略优化问题,其中n表示水下机器人关节部位总数,m表示关节部位可以采取的动作总数,实现水下机器人控制策略优化的降维处理。
23.所述s2步骤中将智能体状态映射为智能体依赖关系图,包括:
24.构建注意力图神经网络模型,将每个智能体dk所对应的状态sk作为注意力图神经网络模型的输入,映射输出智能体状态对应的特征向量:
25.fk=conv(sk)
26.其中:
27.conv(
·
)表示卷积层,在本发明一个具体实施例中,所采用的是5*5大小卷积核的卷积层;
28.fk表示智能体dk所对应的状态sk的特征向量,在本发明一个具体实施例中,所有智能体状态所对应的特征向量等长;
29.注意力图神经网络模型对任意两组特征向量形成一组联合特征向量《fi,fj》,并计算联合特征向量中特征向量相似度:
[0030][0031]
其中:
[0032]
e表示特征向量的长度;
[0033]fi
(e)表示特征向量fi的第e个值,fj(e)表示特征向量fj的第e个值
[0034]
sim
ij
表示任意联合特征向量《fi,fj》中两组特征向量的相似度;
[0035]
根据联合特征向量中任意两组特征向量的相似度,计算得到特征向量所对应智能体的相似度:
[0036][0037]
其中:
[0038]
t表示转置;
[0039]wij
表示智能体di对智能体dj的权重;
[0040]
构建智能体依赖关系图为g=(d,w),其中g表示智能体依赖关系图,d={di|i∈n}表示智能体集合,w={w
ij
|i,j∈n},为智能体权重集合,权重w
ij
表示智能体di对智能体dj的重要程度。
[0041]
所述s3步骤中构建水下机器人控制策略模型,包括:
[0042]
所构建的水下机器人控制策略模型为:
[0043]
π(s
t+1
,a
t+1
)=sac((s
t
,a
t
),s
s,t
)
[0044]
(s
t
,a
t
)={(s1,a1),

,(sz,az),

,(s
t
,a
t
)}
[0045]
其中:
[0046]
(s
t
,a
t
)表示t时刻及之前的水下机器人状态信息、动作信息集合,(sz,az)表示z时刻水下机器人的状态sz以及动作信息az;
[0047]
(sz,az)={(s
1,z
,a
1,z
),(s
2,z
,a
2,z
),

,(s
n,z
,a
n,z
)},其中s
n,z
表示z时刻第n个智能体的状态,a
n,z
表示z时刻第n个智能体的动作信息;
[0048]ss,t
表示t时刻的水下环境状态;
[0049]
π(s
t+1
,a
t+1
)表示水下机器人控制策略模型输出的在t+1时刻的控制策略,包括智能体在t+1时刻采取的控制动作以及采取控制动作后的智能体状态。
[0050]
所述s4步骤中确定智能体执行动作的反馈收益,包括:
[0051]
确定智能体执行动作的收益值:
[0052][0053]
其中:
[0054]
l
i,t
表示t时刻第i个智能体的运行距离;
[0055]
则水下机器人在t时刻的收益值为:
[0056][0057]
确定水下机器人执行动作的反馈收益值:
[0058]rsoft
(s
t
,a
t
)=r
t
(s
t
,a
t
)+γh(π(
·
|s
t+1
))+(1-γ)h(π(
·
|s
s,t
))
[0059]
其中:
[0060]
γ为基于sac算法的水下机器人控制策略模型参数;
[0061]
h(π(
·
|s
t+1
))表示由水下机器人动作信息分布计算得到的熵,π(
·
|s
t+1
)表示智能体在各个状态下可能产生的动作信息及其概率,h(π(
·
|s
t+1
))=-log(π(a

|s
t+1
)),其中a

表示任意的水下机器人动作信息。
[0062]
所述s4步骤中以智能体反馈收益为基础构建水下机器人控制策略模型的目标函数,包括:
[0063]
构建水下机器人控制策略模型的目标函数:
[0064]
maxr
soft
(s
t
,a
t
)+r
t
(s
t
,a
t
)-γr
soft
(s
t+1
,a
t+1
)
[0065]
其中:
[0066]rsoft
(s
t
,a
t
)表示在t+1时刻采取动作后带来的反馈收益;
[0067]-(r
t
(s
t
,a
t
)+γr
soft
(s
t+1
,a
t+1
))表示执行控制策略后导致的误差;
[0068]
所述目标函数保证了最终输出的控制策略具有较大收益以及较小误差。
[0069]
所述s4步骤中利用sac算法对目标函数进行求解,得到水下机器人最优控制策略,包括:
[0070]
利用sac算法计算每个智能体的熵状态价值函数q
soft
(s
i,t
,a
i,t
)以及状态动作价值函数v
soft
(s
i,t
):
[0071][0072][0073]vsoft
(s
i,t
)=e
at~a
[q
soft
(s
i,t
,a
i,t
)-log(π(a
i,t
|s
i,t
))]
[0074]
其中:
[0075]
以及为sac算法中构建的不同参数的熵状态价值函数,选取两者值最小的函数作为熵状态价值函数q
soft
(s
i,t
,a
i,t
);在本发明一个具体实施例中,所构建的熵状态价值函数中智能体在t+1时刻的状态服从t+1时刻前智能体的状态分布,智能体在t+1时刻的动作服从t+1时刻前智能体的动作分布;
[0076]at
~a表示智能体在t时刻的动作服从t时刻前智能体的动作分布;
[0077]
对每个智能体的熵状态价值函数以及状态动作价值函数进行更新迭代,设置参数γ的范围为[0,1],直到得到满足目标函数最大的(s
t+1
,a
t+1
),并输出在t+1时刻的控制策略π(s
t+1
,a
t+1
),所述熵状态价值函数以及状态动作价值函数的更新公式为:
[0078][0079]
将满足上述更新公式最小的参数γ作为模型参数;
[0080]
根据所构建的模型,选取使得目标函数最大的t+1时刻水下机器人控制策略π(s
t+1
,a
t+1
);
[0081]
在本发明一个具体实施例中,水下机器人分解得到的智能体在t+1时刻执行模型输出的控制动作,执行动作后感知在t+1时刻的水下环境状态,从而将t+1时刻及之前的智能体状态信息、动作信息集合以及水下环境状态作为水下机器人控制策略模型的输入,输出下一时刻水下机器人控制策略,实现水下机器人的实时自主控制。
[0082]
相对于现有技术,本发明提出一种基于sac的水下机器人自主控制方法,该技术具有以下优势:
[0083]
首先,本方案提出一种智能体分解模型实现水下机器人自主控制问题的降维,通过利用智能体分解模型将水下机器人分解为若干智能体,所述智能体为机器人的关节部位,所述对水下机器人进行智能体分解的公式为:
[0084]
divide(s)=s1,s2,

,sk,

,sn[0085]
其中:sk表示水下机器人第k个智能体的状态,sn表示水下机器人第n个智能体的状态,n为分解得到的智能体总数,即水下机器人关节部位总数;所述第k个智能体即为水下机器人的第k个关节部位;s表示水下机器人状态,divide(s)表示将水下机器人状态分解为n个智能体的状态;则分解后智能体所对应的动作信息为:
[0086]
divide(a)=a1,a2,

,ak,

,an[0087]
其中:a表示水下机器人动作信息,divide(a)表示将水下机器人动作信息分解为n个智能体的动作信息;ak表示水下机器人第k个智能体的动作信息;相较于传统技术,本方
案将水下机器人控制策略优化问题转换为多智能体控制策略优化问题,即将nm维度的水下机器人控制策略优化问题降维为n
×
m维的多智能体控制策略优化问题,其中n表示水下机器人关节部位总数,m表示关节部位可以采取的动作总数,实现水下机器人控制策略优化的降维处理。
[0088]
同时,本方案提出一种水下机器人控制策略模型,所构建的水下机器人控制策略模型为:
[0089]
π(s
t+1
,a
t+1
)=sac((s
t
,a
t
),s
s,t
)
[0090]
(s
t
,a
t
)={(s1,a1),

,(sz,az),

,(s
t
,a
t
)}
[0091]
其中:(s
t
,a
t
)表示t时刻及之前的水下机器人状态信息、动作信息集合,(sz,az)表示z时刻水下机器人的状态sz以及动作信息az;(sz,az)={(s
1,z
,a
1,z
),(s
2,z
,a
2,z
),

,(s
n,z
,a
n,z
)},其中s
n,z
表示z时刻第n个智能体的状态,a
n,z
表示z时刻第n个智能体的动作信息;s
s,t
表示t时刻的水下环境状态;π(s
t+1
,a
t+1
)表示水下机器人控制策略模型输出的在t+1时刻的控制策略,包括智能体在t+1时刻采取的控制动作以及采取控制动作后的智能体状态。通过确定智能体执行动作的收益值:
[0092][0093]
其中:l
it
表示t时刻第i个智能体的运行距离;则水下机器人在t时刻的收益值为:
[0094][0095]
从而确定水下机器人执行动作的反馈收益值:
[0096]rsoft
(s
t
,a
t
)=r
t
(s
t
,a
t
)+γh(π(
·
|s
t+1
))+(1-γ)h(π(
·
|s
s,t
))
[0097]
其中:γ为基于sac算法的水下机器人控制策略模型参数;h(π(
·
|s
t+1
))表示由水下机器人动作信息分布计算得到的熵,π(
·
|s
t+1
)表示智能体在各个状态下可能产生的动作信息及其概率,h(π(
·
|s
t+1
))=-log(π(a

|s
t+1
)),其中a

表示任意的水下机器人动作信息。进而本方案以智能体反馈收益为基础构建水下机器人控制策略模型的目标函数:
[0098]
maxr
soft
(s
t
,a
t
)+r
t
(s
t
,a
t
)-γr
soft
(s
t+1
,a
t+1
)
[0099]
其中:r
soft
(s
t
,a
t
)表示在t+1时刻采取动作后带来的反馈收益;-(r
t
(s
t
,a
t
)+γr
soft
(s
t+1
,a
t+1
))表示执行控制策略后导致的误差;所述目标函数保证了最终输出的控制策略具有较大收益以及较小误差。最终本方案利用sac算法计算每个智能体的熵状态价值函数q
soft
(s
i,t
,a
i,t
)以及状态动作价值函数v
soft
(s
i,t
):
[0100][0101][0102]vsoft
(s
i,t
)=e
at~a
[q
soft
(s
i,t
,a
i,t
)-log(π(a
i,t
|s
i,t
))]
[0103]
其中:以及为sac算法中构建的不同参数的熵状态价值函数,选取两者值最小的函数作为熵状态价值函数q
soft
(s
i,t
,a
i,t
);a
t
~a表示智能体在t时刻的动作服从t时刻前智能体的动作分布;对每个智能体的熵状态价值函数以及状态动作价值函数进行更新迭代,设置参数γ的范围为[0,1],直到得到满足目标函数最大的(s
t+1
,a
t+1
),并输出在t+1时刻的控制策略π(s
t+1
,a
t+1
),所述熵状态价值函数以及状态动作
价值函数的更新公式为:
[0104][0105]
将满足上述更新公式最小的参数γ作为模型参数;根据所构建的模型,选取使得目标函数最大的t+1时刻水下机器人控制策略π(s
t+1
,a
t+1
)。相较于传统方案,在本方案所提出的水下机器人控制策略模型中,水下机器人分解得到的智能体在t+1时刻执行模型输出的控制动作,执行动作后感知在t+1时刻的水下环境状态,从而将t+1时刻及之前的智能体状态信息、动作信息集合以及水下环境状态作为水下机器人控制策略模型的输入,输出下一时刻水下机器人控制策略,实现水下机器人的实时自主控制。
附图说明
[0106]
图1为本发明一实施例提供的一种基于sac的水下机器人自主控制方法的流程示意图;
[0107]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0108]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0109]
s1:构建智能体分解模型,利用智能体分解模型将水下机器人分解为若干智能体,将水下机器人控制策略优化问题转化为多智能体策略优化问题。
[0110]
所述s1步骤中利用智能体分解模型将水下机器人分解为若干智能体,包括:
[0111]
利用智能体分解模型将水下机器人分解为若干智能体,所述智能体为机器人的关节部位,对水下机器人进行智能体分解的公式为:
[0112]
divide(s)=s1,s2,

,sk,

,sn[0113]
其中:
[0114]
sk表示水下机器人第k个智能体的状态,sn表示水下机器人第n个智能体的状态,n为分解得到的智能体总数,即水下机器人关节部位总数;所述第k个智能体即为水下机器人的第k个关节部位;
[0115]
s表示水下机器人状态,divide(s)表示将水下机器人状态分解为n个智能体的状态;
[0116]
分解后智能体所对应的动作信息为:
[0117]
divide(a)=a1,a2,

,ak,

,an[0118]
其中:
[0119]
a表示水下机器人动作信息,divide(a)表示将水下机器人动作信息分解为n个智能体的动作信息;
[0120]ak
表示水下机器人第k个智能体的动作信息;
[0121]
在本发明一个具体实施例中,相较于传统技术,本发明将水下机器人控制策略优化问题转换为多智能体控制策略优化问题,即将nm维度的水下机器人控制策略优化问题降维为n
×
m维的多智能体控制策略优化问题,其中n表示水下机器人关节部位总数,m表示关节部位可以采取的动作总数,实现水下机器人控制策略优化的降维处理。
[0122]
s2:构建注意力图神经网络模型,将智能体状态映射为智能体依赖关系图。
[0123]
所述s2步骤中将智能体状态映射为智能体依赖关系图,包括:
[0124]
构建注意力图神经网络模型,将每个智能体dk所对应的状态sk作为注意力图神经网络模型的输入,映射输出智能体状态对应的特征向量:
[0125]fk
=conv(sk)
[0126]
其中:
[0127]
conv(
·
)表示卷积层,在本发明一个具体实施例中,所采用的是5*5大小卷积核的卷积层;
[0128]fk
表示智能体dk所对应的状态sk的特征向量,在本发明一个具体实施例中,所有智能体状态所对应的特征向量等长;
[0129]
注意力图神经网络模型对任意两组特征向量形成一组联合特征向量《fi,fj》,并计算联合特征向量中特征向量相似度:
[0130][0131]
其中:
[0132]
e表示特征向量的长度;
[0133]fi
(e)表示特征向量fi的第e个值,fj(e)表示特征向量fj的第e个值
[0134]
sim
ij
表示任意联合特征向量《fi,fj》中两组特征向量的相似度;
[0135]
根据联合特征向量中任意两组特征向量的相似度,计算得到特征向量所对应智能体的相似度:
[0136][0137]
其中:
[0138]
t表示转置;
[0139]wij
表示智能体di对智能体dj的权重;
[0140]
构建智能体依赖关系图为g=(d,w),其中g表示智能体依赖关系图,d={di|i∈n}表示智能体集合,w={w
ij
|i,j∈n},为智能体权重集合,权重w
ij
表示智能体di对智能体dj的重要程度。
[0141]
s3:以水下环境状态为输入,多智能体动作选择组合为输出,构建水下机器人控制策略模型。
[0142]
所述s3步骤中构建水下机器人控制策略模型,包括:
[0143]
所构建的水下机器人控制策略模型为:
[0144]
π(s
t+1
,a
t+1
)=sac((s
t
,a
t
),s
s,t
)
[0145]
(s
t
,a
t
)={(s1,a1),

,(sz,az),

,(s
t
,a
t
)}
[0146]
其中:
[0147]
(s
t
,a
t
)表示t时刻及之前的水下机器人状态信息、动作信息集合,(sz,az)表示z时刻水下机器人的状态sz以及动作信息az;
[0148]
(sz,az)={(s
1,z
,a
1,z
),(s
2,z
,a
2,z
),

,(s
n,z
,a
n,z
)},其中s
n,z
表示z时刻第n个智能体的状态,a
n,z
表示z时刻第n个智能体的动作信息;
[0149]ss,t
表示t时刻的水下环境状态;
[0150]
π(s
t+1
,a
t+1
)表示水下机器人控制策略模型输出的在t+1时刻的控制策略,包括智能体在t+1时刻采取的控制动作以及采取控制动作后的智能体状态。
[0151]
s4:根据映射得到的智能体依赖关系图确定智能体执行动作的反馈收益,以智能体反馈收益为基础构建水下机器人控制策略模型的目标函数,并利用sac算法对目标函数进行求解,得到水下机器人最优控制策略。
[0152]
所述s4步骤中确定智能体执行动作的反馈收益,包括:
[0153]
确定智能体执行动作的收益值:
[0154][0155]
其中:
[0156]
l
i,t
表示t时刻第i个智能体的运行距离;
[0157]
则水下机器人在t时刻的收益值为:
[0158][0159]
确定水下机器人执行动作的反馈收益值:
[0160]rsoft
(s
t
,a
t
)=r
t
(s
t
,a
t
)+γh(π(
·
|s
t+1
))+(1-γ)h(π(
·
|s
s,t
)/
[0161]
其中:
[0162]
γ为基于sac算法的水下机器人控制策略模型参数;
[0163]
h(π(
·
|s
t+1
))表示由水下机器人动作信息分布计算得到的熵,π(
·
|s
t+1
)表示智能体在各个状态下可能产生的动作信息及其概率,h(π(
·
|s
t+1
))=-log(π(a

|s
t+1
)),其中a

表示任意的水下机器人动作信息。
[0164]
所述s4步骤中以智能体反馈收益为基础构建水下机器人控制策略模型的目标函数,包括:
[0165]
构建水下机器人控制策略模型的目标函数:
[0166]
maxr
soft
(s
t
,a
t
)+r
t
(s
t
,a
t
)-γr
soft
(s
t+1
,a
t+1
)
[0167]
其中:
[0168]rsoft
(s
t
,a
t
)表示在t+1时刻采取动作后带来的反馈收益;
[0169]-(r
t
(s
t
,a
t
)+γr
soft
(s
t+1
,a
t+1
))表示执行控制策略后导致的误差;
[0170]
所述目标函数保证了最终输出的控制策略具有较大收益以及较小误差。
[0171]
所述s4步骤中利用sac算法对目标函数进行求解,得到水下机器人最优控制策略,包括:
[0172]
利用sac算法计算每个智能体的熵状态价值函数q
soft
(s
i,t
,a
i,t
)以及状态动作价值函数v
soft
(s
i,t
):
[0173][0174]
[0175]vsoft
(s
i,t
)=e
at~a
[q
soft
(s
i,t
,a
i,t
)-log(π(a
i,t
|s
i,t
)/]
[0176]
其中:
[0177]
以及为sac算法中构建的不同参数的熵状态价值函数,选取两者值最小的函数作为熵状态价值函数q
soft
(s
i,t
,a
i,t
);在本发明一个具体实施例中,所构建的熵状态价值函数中智能体在t+1时刻的状态服从t+1时刻前智能体的状态分布,智能体在t+1时刻的动作服从t+1时刻前智能体的动作分布;
[0178]at
~a表示智能体在t时刻的动作服从t时刻前智能体的动作分布;
[0179]
对每个智能体的熵状态价值函数以及状态动作价值函数进行更新迭代,设置参数γ的范围为[0,1],直到得到满足目标函数最大的(s
t+1
,a
t+1
),并输出在t+1时刻的控制策略π(s
t+1
,a
t+1
),所述熵状态价值函数以及状态动作价值函数的更新公式为:
[0180][0181]
将满足上述更新公式最小的参数γ作为模型参数;
[0182]
根据所构建的模型,选取使得目标函数最大的t+1时刻水下机器人控制策略π(s
t+1
,a
t+1
);
[0183]
在本发明一个具体实施例中,水下机器人分解得到的智能体在t+1时刻执行模型输出的控制动作,执行动作后感知在t+1时刻的水下环境状态,从而将t+1时刻及之前的智能体状态信息、动作信息集合以及水下环境状态作为水下机器人控制策略模型的输入,输出下一时刻水下机器人控制策略,实现水下机器人的实时自主控制。
[0184]
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0185]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0186]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1