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

多智能体编队控制方法、装置及多智能体系统

2022-04-13 18:55:58 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种多智能体编队控制方法、装置及多智能体系统。


背景技术:

2.随着科学技术的发展,无人机、水下机器人、卫星、运输车辆等智能体在通信、计算机技术、生物学、社会行为学等各个领域,发挥着越来越重要的作用。相较于单一智能体,由多智能体组成的多智能体队列,有着单一智能体无法比拟的优势,在军事、航天、工业以及探测等各个领域有着更广泛的应用,例如:无人机队编队飞行、多个卫星协同运行、运输车队的编队运输、多个水下机器人协同进行海洋探测等等。
3.多智能体编队控制,指控制由多个智能体组成的智能体队列在保持目标队形的前提下,适应具体的约束条件并完成预设的作业任务。现有的多智能体编队控制方法主要包括领导者-跟随者方法、基于行为的方法和虚拟结构法。领导者-跟随者方法中,智能体队列中的领导者按照预设路径移动,智能体队列中的其余跟随者根据上述领导者的位置信息进行移动。但领导者-跟随者方法过于依赖领导者,在领导者失控的情况下,会对所有跟随者产生不良影响。基于行为的方法可以将多智能体编队控制解构为简单的基本行为,并通过融合上述基本行为实现编队控制,但基于行为的方法难以对智能体队列的整体行为进行控制。虚拟结构法可以将智能体队列视为一个整体进行控制,但虚拟结构法在控制智能体队列避开障碍时的局限性较强。因此,现有的多智能体编队控制方法在某些特殊场景下,多智能体编队控制的控制精度不高。


技术实现要素:

4.本发明提供一种多智能体编队控制方法、装置及多智能体系统,用以解决现有技术中在某些特殊场景下,多智能体编队控制的控制精度不高的缺陷,实现更精确的多智能体编队控制。
5.本发明提供一种多智能体编队控制方法,包括:
6.对于目标智能体队列中的每一智能体,基于所述目标智能体队列的目标运行轨迹以及所述每一智能体上一时刻的状态数据,获取所述每一智能体当前时刻的第一控制数据;
7.基于所述每一智能体对应的目标约束条件和admm算法,对所述第一控制数据进行优化,获取所述每一智能体当前时刻的第二控制数据;
8.基于所述第二控制数据,对所述每一智能体进行控制。
9.根据本发明提供的一种多智能体编队控制方法,所述基于所述第二控制数据,对所述每一智能体进行控制,具体包括:
10.获取所述每一智能体当前时刻对应的第一干扰数据和目标历史时段内所述每一智能体对应的第二干扰数据;
11.基于所述第一干扰数据和所述第二干扰数据,对所述第二控制数据进行修正,获取所述每一智能体当前时刻的第三控制数据;
12.基于所述第三控制数据,对所述每一智能体进行控制。
13.根据本发明提供的一种多智能体编队控制方法,所述基于所述每一智能体对应的目标约束条件和admm算法,对所述第一控制数据进行优化,获取所述每一智能体当前时刻的第二控制数据,具体包括:
14.基于所述目标约束条件和所述第一控制数据,获取所述每一智能体对应的目标函数;
15.基于admm算法对所述目标函数进行迭代计算,并获取所述迭代计算的结果,作为所述第二控制数据。
16.根据本发明提供的一种多智能体编队控制方法,所述基于所述第一干扰数据和所述第二干扰数据,对所述第二控制数据进行修正,获取所述每一智能体当前时刻的第三控制数据,具体包括:
17.基于所述第一干扰数据和所述第二干扰数据,获取所述每一智能体当前时刻对应的修正参数;
18.基于所述修正参数,对所述第二控制数据进行修正,获取所述第三控制数据。
19.根据本发明提供的一种多智能体编队控制方法,所述基于所述目标智能体队列的目标运行轨迹以及所述每一智能体上一时刻的状态数据,获取所述每一智能体当前时刻的第一控制数据,具体包括:
20.基于所述目标运行轨迹,构建目标计算模型;
21.将所述每一智能体上一时刻的状态数据,输入所述目标计算模型,获取所述目标计算模型输出的所述第一控制数据。
22.根据本发明提供的一种多智能体编队控制方法,所述基于所述目标运行轨迹,构建目标计算模型,具体包括:
23.基于所述目标运行轨迹,对预先构建的运动学模型进行线性化处理,获取线性化误差模型;
24.基于所述线性化误差模型,构建所述目标计算模型。
25.本发明还提供一种多智能体编队控制装置,包括:
26.数据获取模块,用于对于目标智能体队列中的每一智能体,基于所述目标智能体队列的目标运行轨迹以及所述每一智能体上一时刻的状态数据,获取所述每一智能体当前时刻的第一控制数据;
27.数据优化模块,用于基于所述每一智能体对应的目标约束条件和admm算法,对所述第一控制数据进行优化,获取所述每一智能体当前时刻的第二控制数据;
28.编队控制模块,用于基于所述第二控制数据,对所述每一智能体进行控制。
29.本发明还提供一种多智能体系统,包括:如上所述的多智能体编队控制装置和多个智能体。
30.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述多智能体编队控制方法的步骤。
31.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述多智能体编队控制方法的步骤。
32.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述多智能体编队控制方法的步骤。
33.本发明提供的多智能体编队控制方法、装置及多智能体系统,通过基于目标智能体队列的目标运行轨迹以及目标智能体队列中的每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据之后,基于每一智能体对应的目标约束条件和admm算法,对每一智能体当前时刻的第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据,并基于每一智能体当前时刻的第二控制数据,对每一智能体进行控制,能基于admm算法实现每一智能体对应的目标约束条件的解耦,能实现更精确的多智能体编队控制,能基于admm算法将复杂的问题分解为多个子问题,从而能降低计算难度、提高计算速度和效率,对计算设备的要求更低。
附图说明
34.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1是本发明提供的多智能体编队控制方法的流程示意图;
36.图2是本发明提供的多智能体编队控制装置的结构示意图;
37.图3是基于本发明提供的多智能体编队控制方法进行仿真获得的仿真结果的示意图之一;
38.图4是基于本发明提供的多智能体编队控制方法进行仿真获得的仿真结果的示意图之二;
39.图5是本发明提供的电子设备的结构示意图。
具体实施方式
40.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
42.图1是本发明提供的多智能体编队控制方法的流程示意图。下面结合图1描述本发明的多智能体编队控制方法。如图1所示,该方法包括:步骤101、对于目标智能体队列中的每一智能体,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,
获取每一智能体当前时刻的第一控制数据。
43.需要说明的是,本发明实施例中的智能体可以包括但不限于水下机器人、无人机、车辆以及卫星等智能实体。以下以智能体为水下机器人为例,说明本发明提供的多智能体编队控制方法。
44.水下机器人(autonomous underwater vehicles,auv)作为人类探索海洋的工具,在海洋监测、海洋采样、资源勘探和水下生物跟踪等方面都有着非常重要的应用。随着海洋渔业的智能化发展,水下机器人在鱼群探测、生物量评估、围网检测等方面也发挥着越来越重要的作用。然而,随着作业任务的复杂程度逐步提升,单个水下机器人在很多场合已无法满足作业需求。由多个水下机器人组成的水下机器人队列可以分布于探测区域的不同空间位置,在执行作业任务时相互协作,共同完成作业任务。水下机器人队列在大范围、高时效的海洋探测活动中,具有单个水下机器人无法比拟的优势。
45.水下机器人队列在执行某项作业任务时,通常需要保持某一预设队形。对水下机器人队列进行编队控制时,需要控制各水下机器人按照预设的轨迹运动,并控制各水下机器人之间的相对距离,以确保水下机器人队列在作业时保持预设的队形。
46.目标智能体队列,可以包括多个智能体,为本发明提供的多智能体编队控制方法的控制对象。基于本发明提供的多智能体编队控制方法,可以对目标智能体队列中的每一智能体进行控制,实现控制目标智能体队列中的多个智能体在保持预设队形的前提下,适应具体的约束条件并完成预先确定的目标作业任务。
47.本发明实施例中,目标智能体队列可以为由多个水下机器人组成的水下机器人队列。
48.基于上述水下机器人队列需要完成的作业任务,可以预先对水下机器人队列的运行轨迹进行规划,获取水下机器人队列的目标运行轨迹。水下机器人队列在执行目标作业任务时,可以按照目标运行轨迹运行。
49.对于水下机器人队列中的每一水下机器人,基于水下机器人队列的目标运行轨迹以及每一水下机器人上一时刻的状态数据,通过数值计算、数理统计等方法,可以获取每一水下机器人当前时刻的第一控制数据。
50.需要说明的是,每一水下机器人上一时刻的状态数据,可以是利用传感器、定位装置等预先采集到的,还可以是基于数值计算预先获得的。
51.需要说明的是,水下机器人的状态数据,可以包括水下机器人的位置信息以及姿态信息。水下机器人的位置信息以及姿态信息,可以通过水下机器人在预先构建的大地坐标系中的坐标以及对应的姿态角表示,例如:水下机器人上一时刻的状态数据,可以包括水下机器人上一时刻在大地坐标系中的坐标以及对应的姿态角;水下机器人当前时刻的状态数据,可以包括水下机器人当前时刻在大地坐标系中的坐标以及对应的姿态角。
52.需要说明的是,水下机器人的控制数据,可以包括水下机器人的速度和方位。水下机器人的速度和方位,可以通过预先构建的局部坐标系下各坐标轴对应的线速度和角速度表示。例如:水下机器人当前时刻的第一控制数据,可以包括水下机器人当前时刻在局部坐标系下各坐标轴对应的线速度和角速度。
53.步骤102、基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据。
54.admm算法,为交替方向乘子法(alternating direction method of multipliers)的简称,是一种求解优化问题的计算框架,适用于求解分布式凸优化问题,特别是统计学习问题。admm算法通过分解协调(decomposition-coordination)过程将大的全局问题分解为多个较小、较容易求解的局部子问题,并通过协调子问题的解而得到大的全局问题的解。
55.基于水下机器人队列中的各水下机器人对应的目标约束条件,可以对无人机队列的队形、运行参数以及运行轨迹等中的至少一个进行约束。通常情况下,目标约束条件会对无人机队列的队形进行约束。目标约束条件可以是根据实际情况预先确定的。
56.对于水下机器人队列中的每一水下机器人,基于该水下机器人对应的目标约束条件和admm算法,可以通过迭代计算,对该水下机器人当前时刻的第一控制数据进行优化,获取该智能体当前时刻的第二控制数据。
57.步骤103、基于每一智能体当前时刻的第二控制数据,对每一智能体进行控制。
58.具体地,对于水下机器人队列中的每一水下机器人,该水下机器人配置有本地控制器,可以对该水下机器人进行控制。
59.获取该水下机器人当前时刻的第二控制数据之后,可以直接将该水下机器人当前时刻的第二控制数据,发送至该水下机器人的本地控制器;还可以对该水下机器人当前时刻的第二控制数据进行数据处理之后,再发送至该水下机器人的本地控制器。
60.该水下机器人的本地控制器,可以响应于接收到的该水下机器人当前时刻的第二控制数据或经过数据处理后的该水下机器人当前时刻的第二控制数据,对该水下机器人进行控制,从而可以实现对水下机器人队列的编队控制。
61.本发明实施例通过基于目标智能体队列的目标运行轨迹以及目标智能体队列中的每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据之后,基于每一智能体对应的目标约束条件和admm算法,对每一智能体当前时刻的第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据,并基于每一智能体当前时刻的第二控制数据,对每一智能体进行控制,能基于admm算法实现每一智能体对应的目标约束条件的解耦,能实现更精确的多智能体编队控制,能基于admm算法将复杂的问题分解为多个子问题,从而能降低计算难度、提高计算速度和效率,对计算设备的要求更低。
62.基于上述各实施例的内容,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据,具体包括:基于目标运行轨迹,构建目标计算模型。
63.具体地,基于水下机器人队列的目标运行轨迹,可以通过数值计算的方法,构建目标计算模型。
64.目标计算模型,可以用于基于每一智能体上一时刻的状态数据,计算获得每一智能体当前时刻的第一控制数据。
65.将每一智能体上一时刻的状态数据,输入目标计算模型,获取目标计算模型输出的第一控制数据。
66.具体地,构建得到目标计算模型之后,对于水下机器人队列中的每一水下机器人,可以将该水下机器人上一时刻的状态数据,输入上述目标计算模型,获取上述目标计算模型输出的该水下机器人当前时刻的第一控制数据。
67.本发明实施例通过将每一智能体上一时刻的状态数据,输入基于每一智能体对应的目标运行轨迹构建的目标计算模型,获取每一智能体当前时刻的第一控制数据,能基于每一智能体上一时刻的状态数据更高效、更准确的获取每一智能体当前时刻的第一控制数据,能为多智能体编队控制提供数据基础。
68.基于上述各实施例的内容,基于目标运行轨迹,构建目标计算模型,具体包括:基于目标运行轨迹,对预先构建的运动学模型进行线性化处理,获取线性化误差模型。
69.具体地,可以用i标识水下机器人队列中的每一水下机器人,i可以取1,2,3

m,m为水下机器人队列中的水下机器人的总数。
70.水下机器人的运动学模型可以包括两个经典坐标系之间的转换,即局部坐标系与大地坐标系之间的转换。
71.可选地,可以预先构建大地坐标系和局部坐标系,并定义x=[x y z φ θ ψ]
t
为大地坐标系下的坐标和对应的姿态角,定义u=[uv_w p q r]
t
为局部坐标系下各坐标轴对应的线速度和角速度。局部坐标系到大地坐标系的转化关系如公式(1)所示:
[0072][0073]
其中,
[0074][0075][0076]
j1和j2分别为局部坐标系到大地坐标系的第一转换矩阵和第二转换矩阵;为水下机器人的横滚角;θ为水下机器人的纵倾角;ψ为水下机器人的偏航角。
[0077]
上述水下机器人的运动学模型为非线性模型,而非线性模型较为复杂,存在计算难度大、计算时间长等缺陷。本发明实施例中,可以对预先构建的水下机器人的运动学模型进行线性化处理。
[0078]
具体地,水下机器人队列的目标运行轨迹可以通过公式(2)表示:
[0079][0080]
公式(2)中,xr=[x
r y
r z
r φ
r θ
r ψr]
t
;ur=[u
r v
r w
r p
r q
r rr]
t
;χr表示参考量。
[0081]
采用一阶泰勒展开的方法,可以根据公式(1)和公式(2)推导得到水下机器人的线性化误差模型,上述线性化误差模型可以通过公式(3)表示:
[0082][0083]
其中,记为a,为b,则可以将公式(3)简写为公式(4):
[0084][0085]
公式(4)中,xe表示水下机器人的状态数据;ue表示水下机器人的控制数据;a表示水下机器人的状态数据对应的误差系数矩阵;b表示水下机器人的控制数据对应的误差系数矩阵。
[0086]
采用前向欧拉法,可以对公式(4)进行离散化处理,可以将水下机器人的线性化误差模型表示为公式(5):
[0087]
xe(k 1)=akxe(k) bkue(k)
ꢀꢀꢀꢀ
(5)
[0088]
其中,k表示上一时刻;k 1表示当前时刻;ak=ta i,bk=tb;t表示采样时间;i表示单位矩阵;xe(k 1)表示水下机器人当前时刻的状态数据;xe(k)表示水下机器人上一时刻的状态数据;ue(k)表示水下机器人上一时刻的控制数据。
[0089]
基于线性化误差模型,构建目标计算模型。
[0090]
基于公式(5)表示的水下机器人的线性化误差模型,可以构建目标计算模型,目标计算模型可以通过公式(6)表示:
[0091][0092]
式中,
[0093][0094][0095]
公式(6),表示预测时域内水下机器人的状态数据集合;表示预测时域内的水下机器人的控制数据集合;n
p
表示预测时域;xe(k 1|k)表示预测时域内水下机器人的状态数据集合中的第一组状态数据,还可以作为水下机器人当前时刻的状态数据;ue(k|k)表示预测时域内水下机器人的控制数据集合中的第一组控制数据,还可以作为水下机器人上一时刻的控制数据。
[0096]
对水下机器人队列进行编队控制时,控制需求可以包括但不限于控制水下机器人队列的实际运行轨迹与目标运行轨迹的偏差越小越好,以及每一水下机器人的控制数据尽可能的简洁,从而可以使得控制成本尽可能的低。水下机器人队列编队控制的控制需求可以通过公式(7)表示:
[0097][0098]
公式(7)中,q和r表示权重系数矩阵,q>0,r>0。
[0099]
通过优化求解公式(7),可以基于水下机器人上一时刻的状态数据,获得一个由多组控制数据按照时间先后顺序依次排列的数据集合。上述数据集合包括自当前时刻起预测
时域内,水下机器人不同时刻的控制数据。可以将上述数据集合中的第一组控制数据,作为水下机器人当前时刻的第一控制数据
[0100]
可选地,获取每一水下机器人当前时刻的状态数据之后,还可以基于每一水下机器人当前时刻的状态数据,进行下一轮的优化求解,获得新的数据集合,并将上述新的数据集合中的第一组控制数据,作为水下机器人下一时刻的第一控制数据。通过不断的滚动优化计算,完成水下机器人队列的编队控制。
[0101]
本发明实施例中,还可以对水下机器人的控制数据进行一定的约束,水下机器人的控制数据的约束条件可以用公式(8)表示:
[0102]umin
≤u≤u
max
ꢀꢀꢀꢀꢀ
(8)
[0103]
δu
min
≤δu≤δu
max
[0104]
公式(8)中,δu可以表示任意两个时刻之间控制数据的增量。
[0105]
本发明实施例通过基于目标运行轨迹,对预先构建的运动学模型进行线性化处理,获取线性化误差模型之后,基于上述线性化误差模型,构建目标计算模型,能通过线性化处理,简化非线性话的运动学模型,从而能提高计算速度和计算效率,能基于每一智能体上一时刻的状态数据更高效、更准确的获取每一智能体当前时刻的第一控制数据,能为多智能体编队控制提供数据基础。
[0106]
基于上述各实施例的内容,基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据,具体包括:基于目标约束条件和第一控制数据,获取每一智能体对应的目标函数。
[0107]
本发明实施例中可以将队形作为各水下机器人之间的耦合约束,对于水下机器人队列中的每一水下机器人,通过预先确定的该水下机器人对应的目标约束条件可以对该水下机器人进行约束。例如:目标约束条件可以包括该水下机器人与相关水下机器人的轴向间距为定值,与相关水下机器人的航向角度之差为定值,轴向间距与航向角度之差不同,水下机器人队列的队形不同,等式约束也不同。
[0108]
对于水下机器人队列中的水下机器人i,水下机器人i对应的目标约束条件可以用公式(9)表示:
[0109]
cλχi dχj e=0
ꢀꢀꢀꢀꢀꢀ
(9)
[0110]
公式(9)中,χi和xj分别表示水下机器人i和水下机器人j与队形相关的约束数据。
[0111]
水下机器人队列中每一水下机器人都是一个可以独立控制的个体,为了保持水下机器人队列的队形,水下机器人队列中的所有水下机器人必须在一个相互合作的框架下作业。基于上述各水下机器人之间的队形约束。
[0112]
对于水下机器人i,可以基于对于水下机器人i对应的目标约束条件和对于水下机器人i当前时刻的第一控制数据,构建该水下机器人对应的目标函数。水下机器人i对应的目标函数,可以用公式(10)表示:
[0113][0114]
公式(10)中,qi和ri分别表示状态数据和控制数据对应的误差权重系数;ω表示与
水下机器人i有队形约束的水下机器人j的集合;ρ表示队形惩罚参数;h
ij
表示水下机器人i和水下机器人j之间的队形误差参数;n可以取1,2,3...,n
p

[0115]
基于admm算法对目标函数进行迭代计算,并获取迭代计算的结果,作为第二控制数据。
[0116]
具体地,可以基于admm算法对水下机器人i对应的目标函数进行迭代计算,如公式(11)所示:
[0117][0118]
基于admm算法可以对水下机器人i进行分布式串行计算。本发明实施例中,可以将满足迭代收敛的最后一个迭代值作为水下机器人i当前时刻的控制数据。然后随着时间的推移,可以不断地滚动进行分布式优化计算。
[0119]
本发明实施例通过基于每一智能体对应的目标约束条件和当前时刻的第一控制数据,获取每一智能体对应的目标函数之后,基于admm算法对上述目标函数进行迭代计算,并获取上述迭代计算的结果,作为每一智能体当前时刻的第二控制数据,能基于admm算法实现目标约束条件的解耦,能实现更精确的多智能体编队控制,能基于admm算法将复杂的问题分解为多个子问题,从而能降低计算难度、提高计算速度和效率,对计算设备的要求更低。
[0120]
基于上述各实施例的内容,基于第二控制数据,对每一智能体进行控制,具体包括:获取每一智能体当前时刻对应的第一干扰数据和目标历史时段内每一智能体对应的第二干扰数据。
[0121]
通常情况下,由于水下作业环境较复杂,水下机器人队列在执行作业任务时,可能会遇到洋流、障碍物等因素的干扰。本发明实施例中,在基于每一水下机器人当前时刻的第二控制数据对每一水下机器人进行控制之前,可以加入干扰前馈补偿,从而有效抑制干扰对水下机器人队列编队控制的影响。
[0122]
对于水下机器人队列中的每一水下机器人,该水下机器人对应的干扰数据,可以描述距离该水下机器人目标距离以内的水下环境中干扰的情况。其中,目标距离不宜过远或过近,目标距离可以根据实际情况确定,本发明实施例中不作具体限定。
[0123]
可选地,可以通过多种方式获取该水下机器人当前时刻对应的第一干扰数据,例如:可以利用设置于该水下机器人机身的传感器,实时采集该水下机器人对应的干扰数据,从而可以获取该水下机器人当前时刻对应的第一干扰数据。
[0124]
可选地,还可以通过多种方式获取目标历史时段内该水下机器人对应的第二干扰数据,例如:可以利用设置于该水下机器人机身的传感器,实时采集并记录该水下机器人对应的干扰数据,获取目标历史时段内该水下机器人对应的干扰数据集。基于目标历史时段内该水下机器人的干扰数据集,通过数值计算等方式,可以获取目标历史时段内该水下机器人对应的第二干扰数据。其中,目标历史时段可以根据实际情况确定。本发明实施例中对目标历史时段不作具体限定。
[0125]
基于第一干扰数据和第二干扰数据,对第二控制数据进行修正,获取第三控制数
据。
[0126]
具体地,对于水下机器人队列中的每一水下机器人,获取该水下机器人当前时刻对应的第一干扰数据和目标历史时段内每一水下机器人对应的第二干扰数据之后,可以基于该水下机器人当前时刻对应的第一干扰数据和目标历史时段内该水下机器人对应的第二干扰数据,通过数值计算、数理统计等方法,对该水下机器人当前时刻的第二控制数据进行修正,获取该水下机器人当前时刻的第三控制数据。
[0127]
基于第三控制数据,对每一智能体进行控制。
[0128]
具体地,获取该水下机器人当前时刻的第三控制数据之后,可以将该水下机器人当前时刻的第三控制数据,发送至该水下机器人的本地控制器。
[0129]
该水下机器人的本地控制器,可以基于该水下机器人当前时刻的第三控制数据,对该水下机器人进行控制,从而可以实现对水下机器人队列更精确的编队控制。
[0130]
具体地,获取修正后的每一水下机器人当前时刻的控制数据之后,对于水下机器人队列中的每一水下机器人,基于修正后的该水下机器人当前时刻的控制数据,可以对该水下机器人进行控制,从而可以实现对水下机器人队列更精确的编队控制。
[0131]
本发明实施例通过基于每一智能体当前时刻对应的第一干扰数据和目标历史时段内每一智能体对应的第二干扰数据,对每一智能体当前时刻的第二控制数据进行修正,获取每一智能体当前时刻的第三控制数据,并基于每一智能体当前时刻的第三控制数据,对每一智能体进行控制,能通过增加干扰前馈补偿,控制每一智能体有效应对实际作业场景中存在的干扰,能进一步提高多智能体编队控制的精确度。
[0132]
基于上述各实施例的内容,基于第一干扰数据和第二干扰数据,对第二控制数据进行修正,获取每一智能体当前时刻的第三控制数据,具体包括:基于第一干扰数据和第二干扰数据,获取每一智能体当前时刻对应的修正参数。
[0133]
对于水下机器人队列中的水下机器人i,水下机器人i上一时刻的第三控制数据可以通过公式(12)表示:
[0134][0135]
公式(12)中,ui(k|k)可以表示基于目标计算模型获得的水下机器人i上一时刻对应的数据集合中的第一组控制数据,即水下机器人i上一时刻的第一控制数据;ki表示水下机器人i的前馈干扰补偿增益;表示目标历史时段内水下机器人i对应的第二干扰数据。
[0136]
基于公式(12),可以推导得到公式(13):
[0137][0138]
公式(13)中,di表示水下机器人i当前时刻对应的第一干扰数据。
[0139]
基于公式(13),可以推导得到公式(14):
[0140][0141]
基于修正参数,对第二控制数据进行修正,获取第三控制数据。
[0142]
获取水下机器人i的前馈干扰补偿增益ki之后,可以基于ki和公式(12)获得水下机器人i当前时刻的第三控制数据
[0143]
图2是本发明提供的多智能体编队控制装置的结构示意图。下面结合图2对本发明
提供的多智能体编队控制装置进行描述,下文描述的多智能体编队控制装置与上文描述的本发明提供的多智能体编队控制方法可相互对应参照。如图2所示,该装置包括:数据获取模块201、数据优化模块202和编队控制模块203。
[0144]
数据获取模块201,用于对于目标智能体队列中的每一智能体,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据;
[0145]
数据优化模块202,用于基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据。
[0146]
编队控制模块203,用于基于第二控制数据,对每一智能体进行控制。
[0147]
具体地,数据获取模块201、数据优化模块202和编队控制模块203电连接。
[0148]
需要说明的是,本发明实施例中的多智能体编队控制装置,可以包括一个独立的控制器,还可以包括每一智能体配置的本地控制器。在多智能体编队控制装置,包括每一智能体配置的本地控制器的情况下,每一智能体配置的本地控制器,可以完成基于每一智能体上一时刻的状态数据,进行计算,获得每一智能体当前时刻的第三控制数据,并基于每一智能体当前时刻的第三控制数据,对每一智能体进行控制。
[0149]
本发明实施例中的智能体可以包括但不限于水下机器人、无人机、车辆以及卫星等智能实体。以下以智能体为水下机器人为例,说明本发明提供的多智能体编队控制方法。目标智能体队列可以为由多个水下机器人组成的水下机器人队列。
[0150]
对于水下机器人队列中的每一水下机器人,数据获取模块201可以基于水下机器人队列的目标运行轨迹以及每一水下机器人上一时刻的状态数据,通过数值计算、数理统计等方法,可以获取每一水下机器人当前时刻的第一控制数据。
[0151]
数据优化模块202可以基于该水下机器人对应的目标约束条件和admm算法,可以通过迭代计算,对该水下机器人当前时刻的第一控制数据进行优化,获取该智能体当前时刻的第二控制数据。
[0152]
编队控制模块203可以直接将该水下机器人当前时刻的第二控制数据,发送至该水下机器人的本地控制器;还可以对该水下机器人当前时刻的第二控制数据进行数据处理之后,再发送至该水下机器人的本地控制器。
[0153]
该水下机器人的本地控制器,可以响应于接收到的该水下机器人当前时刻的第二控制数据或经过数据处理后的该水下机器人当前时刻的第二控制数据,对该水下机器人进行控制,从而可以实现对水下机器人队列的编队控制。
[0154]
可选地,多智能体编队控制装置还可以包括前馈补偿模块。
[0155]
前馈补偿模块,可以用于获取每一智能体当前时刻对应的第一干扰数据和目标历史时段内每一智能体对应的第二干扰数据;基于第一干扰数据和第二干扰数据,对第二控制数据进行修正,获取每一智能体当前时刻的第三控制数据;基于第三控制数据,对每一智能体进行控制。
[0156]
前馈补偿模块,可以具体用于基于第一干扰数据和第二干扰数据,获取每一智能体当前时刻对应的修正参数;基于修正参数,对第二控制数据进行修正,获取第三控制数据。
[0157]
可选地,数据获取模块201可以具体用于基于目标运行轨迹,构建目标计算模型;
将每一智能体上一时刻的状态数据,输入目标计算模型,获取目标计算模型输出的第一控制数据。
[0158]
可选地,数据获取模块201还可以包括模块构建模块。
[0159]
模块构建模块,可以用于基于目标运行轨迹,对预先构建的运动学模型进行线性化处理,获取线性化误差模型;基于线性化误差模型,构建目标计算模型。
[0160]
本发明实施例中,可以基于本发明提供的多智能体编队控制方法,对水下机器人队列进行仿真运行,从而可以测试本发明提供的多智能体编队控制方法的控制效果。
[0161]
将由水下机器人1、水下机器人2和水下机器人3组成的水下机器人队列作为仿真对象,将上述水下机器人队列的目标运行轨迹设定为三维螺旋轨迹。每一水下机器人对应的目标约束条件包括在垂直方向上与其他两个水下机器人分别保持固定间隔2米,三个水下机器人保证圆心角之差为30
°
,确保三个水下机器人在同一圆柱面内螺旋运动。每一水下机器人的目标运行轨迹如下所示:
[0162][0163]
为了更真实的模拟水下复杂的作业环境,对于上述每一水下机器人,仿真时对距离该每一水下机器人目标距离以内的水下环境设计了较为距离的干扰,仿真干扰参数如下所示:
[0164][0165]
基于本发明提供的多智能体编队控制方法,对上述三个水下机器人队列进行仿真运行的具体步骤如下:
[0166]
步骤1:初始化:对于水下机器人i(i取1,2,3),给定初始时刻水下机器人的状态数据xi(0)、水下机器人i的目标运行轨迹x
r,i
和u
r,i
、状态数据和控制数据对应的误差权重系数qi和ri。设置迭代次数q=0,时间k=0,admm算法的最大迭代次数q
max
,admm迭代精度指标e
primal
和e
dual
,以及惩罚参数ρ。
[0167]
步骤2:通信:水下机器人i可以通过通信模块交换水下机器人i的状态数据,并可以将水下机器人i的状态数据发送至多智能体编队控制装置,多智能体编队控制装置基于水下机器人i上一时刻的状态数据,可以计算得到水下机器人i的当前时刻的第一控制数据。
[0168]
步骤3:优化:若q<q
max
,则可以基于公式(11)对水下机器人i的当前时刻的第一控
制数据进行优化,基于水下机器人i的当前时刻的第一控制数据和admm算法进行迭代计算。否则,结束迭代并转到步骤5。
[0169]
步骤4:检查:若上述三个水下机器人的迭代进度指标均满足预设的admm收敛判据,则结束迭代,并进入步骤5。否则q=q 1,转到步骤3。
[0170]
步骤5:前馈:可以利用干涉观测器获取目标历史时段内水下机器人i对应的第二干扰数据并通过公式(14)计算补偿增益ki(k 1)。最后,多智能体编队控制装置可以通过公式(12)计算出水下机器人i当前时刻的第三控制数据并将上述第三控制数据实施到仿真系统中。
[0171]
步骤6:反馈:根据水下机器人i当前时刻对应的第一干扰数据di(k 1),可以仿真计算出水下机器人i下一时刻的状态数据,并作为水下机器人i下一时刻的初始状态。设置q=0,k=k 1,转到步骤2。
[0172]
图3是基于本发明提供的多智能体编队控制方法进行仿真获得的仿真结果的示意图之一。如图3所示,分别用三种不同线性表示三个水下机器人的运行轨迹。在较大且持续时间长的外部干扰且没有加入干扰前馈补偿的情况下,对三个水下机器人进行编队控制,上述三个水下机器人受干扰现象较为明显。
[0173]
图4是基于本发明提供的多智能体编队控制方法进行仿真获得的仿真结果的示意图之二。如图4所示,分别用三种不同线性表示三个水下机器人的运行轨迹。在加入干扰前馈补偿的情况下,对三个水下机器人进行编队控制,上述三个水下机器人基本克服了外部干扰的影响,保持目标运行轨迹螺旋队形运行。
[0174]
基于上述仿真的仿真结果,可以发现基于本发明提供的多智能体编队控制方法对上述三个水下机器人进行编队控制的精确度较高。
[0175]
本发明实施例中的多智能体编队控制装置,通过基于目标智能体队列的目标运行轨迹以及目标智能体队列中的每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据之后,基于每一智能体对应的目标约束条件和admm算法,对每一智能体当前时刻的第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据,并基于每一智能体当前时刻的第二控制数据,对每一智能体进行控制,能基于admm算法实现每一智能体对应的目标约束条件的解耦,能实现更精确的多智能体编队控制,能基于admm算法将复杂的问题分解为多个子问题,从而能降低计算难度、提高计算速度和效率,对计算设备的要求更低。
[0176]
基于上述各实施例的内容,一种多智能体系统,包括如上所述的多智能体编队控制装置和多个智能体。
[0177]
具体地,本发明实施例中的多智能体系统,可以基于如上述各实施例中的多智能体编队控制装置,对多智能体系统中的多个智能体进行编队更精确的编队控制。
[0178]
多智能体编队控制装置的结构、与每一智能体的交互过程以及具体的工作流程可以参见上述各实施例的内容,本发明实施例中不再赘述。
[0179]
本发明实施例中的多智能体系统,通过基于目标智能体队列的目标运行轨迹以及目标智能体队列中的每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据之后,基于每一智能体对应的目标约束条件和admm算法,对每一智能体当前时刻的
第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据,并基于每一智能体当前时刻的第二控制数据,对每一智能体进行控制,能基于admm算法实现每一智能体对应的目标约束条件的解耦,能实现更精确的多智能体编队控制,能基于admm算法将复杂的问题分解为多个子问题,从而能降低计算难度、提高计算速度和效率,对计算设备的要求更低。
[0180]
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行多智能体编队控制方法,该方法包括:对于目标智能体队列中的每一智能体,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据;基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据;基于第二控制数据,对每一智能体进行控制。
[0181]
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0182]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的多智能体编队控制方法,该方法包括:对于目标智能体队列中的每一智能体,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据;基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据;基于第二控制数据,对每一智能体进行控制。
[0183]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的多智能体编队控制方法,该方法包括:对于目标智能体队列中的每一智能体,基于目标智能体队列的目标运行轨迹以及每一智能体上一时刻的状态数据,获取每一智能体当前时刻的第一控制数据;基于每一智能体对应的目标约束条件和admm算法,对第一控制数据进行优化,获取每一智能体当前时刻的第二控制数据;基于第二控制数据,对每一智能体进行控制。
[0184]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0185]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0186]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献