1.摘要
为了解决搜索与救援中的低效率和难以本地化的问题,本文提出了一种基于无人机-人合作的双层任务规划算法,涵盖了无人机的搜索层和救援人员的执行层。在搜索层,针对异构无人机任务分配不均和路径冗余问题,采用了基于聚类算法的覆盖路径优化(CPOC),该方法利用带比例约束的K-means算法,为每个无人机分配合适的任务区域,并通过非冗余的精确细胞分解法实现高效的子区域路径规划,同时利用最小-最大蚁群系统连接这些路径。在执行层,提出了带动态引导机制的快速扩展随机树星(DG-RRT*)算法提升救援人员在室内环境中的路径规划效率。通过对目标位置的不同层次比较,动态引导机制能够引导RRT算法有目的地探索,避免陷入局部最优解。
2.基于无人机-人协同的搜救双层任务规划算法
双层任务规划算法框架
本文提出了一种用于室内环境救援任务的无人机与人类协作的搜索与救援系统,该系统包括无人机的搜索层和救援人员的执行层。搜索层通过规划异构无人机的覆盖路径来绘制环境地图,收集如高温区、有毒气体区和伤员位置等信息。执行层则基于搜索层提供的数据,为救援人员规划最短路径,确保他们能够迅速到达伤员位置。这两个层次互为依赖,共同构成了无人机-人协作的救援框架。
在搜索层(蓝色框)中,利用环境地图和无人机参数,提出了基于聚类算法的覆盖路径优化(CPOC),该算法分为三个步骤:采用比例约束K-means算法(PC-K-means)对待探索房间进行聚类,并根据无人机视场宽度的比例合理分配任务区域;改进了精确细胞分解法(NR-ECDM)设计扫描路径,以便无人机能够高效全面地覆盖任务子区域;利用最大-最小蚁群系统(MMAS)优化路径顺序和起始点,减少区域覆盖路径的长度。
在执行层(黄色框),基于无人机识别的伤员位置和危险区域,引入了动态引导RRT算法(DG-RRT*),实现快速、安全的路径规划。该算法通过比较不同层次的目标,能够有效引导随机树的探索,确保在较短时间内到达目标。
搜索层算法
在无人机进行覆盖搜索时,首先通过聚类算法对每个无人机执行任务的子区域进行划分。由于无人机之间存在异构性,其视场宽度差异会影响搜索效率。因此,任务划分时需要平衡工作负载,避免无人机超负荷工作,从而确保整体搜索时间不至于过长。传统的算法难以处理不规则形状的聚类,并且无法根据不同无人机的能力进行合理任务分配。为此,本文提出了带有比例约束的K-means算法(PC-K-means),该算法在聚类过程中能保持每个子区域的面积比例与无人机视场宽度比例接近,确保各无人机在相似时间内完成任务。工厂室内的不同房间被视为子区域,使用平面质心进行聚类,并确保每个无人机的飞行距离大致相等,从而实现均衡的任务分配。在分区域内考虑到这种近似的比例关系:
l
s
u
b
(
i
)
:
=
S
s
u
b
(
i
)
/
ω
d
l_{sub}(i):=S_{sub}(i)/\omega_d
lsub(i):=Ssub(i)/ωd
PC-K-means算法的核心思想是在每次迭代中,标记每个聚类中心最近的未聚类点,这些点有可能被加入到相应的聚类中。生成K个可能的向量Rs,Rs表示每个聚类最近子区域的总面积比例。如果Rwd表示无人机视场宽度的比例,算法会选择与Rwd最相似的Rs对应的未聚类点,并将其吸收进最近的聚类。该过程重复进行,直到所有点都被分配到K个聚类中。
C
s
=
1
−
(
R
s
(
i
)
∙
R
w
d
)
/
(
∥
R
s
(
i
)
∥
×
∥
R
w
d
∥
)
,
i
=
1
,
2
,
⋯
k
Cs=1-(R_s(i)\bullet R_{wd})/(\|R_s(i)\|\times\|R_{wd}\|),i=1,2,\cdots k
Cs=1−(Rs(i)∙Rwd)/(∥Rs(i)∥×∥Rwd∥),i=1,2,⋯k
K-means算法的收敛通常通过失真函数来判断,失真函数被定义为这两个目标失真函数的加权和:
min
:
f
=
η
J
+
(
1
−
η
)
C
s
,
η
∈
[
0
,
1
]
\min:f=\eta J+(1-\eta)Cs,\quad\eta\in[0,1]
min:f=ηJ+(1−η)Cs,η∈[0,1]
其中,
J
J
J是点的平方误差失真函数,
C
s
Cs
Cs是Rs和Rwd的相似性失真函数。
J
=
∑
k
=
1
K
∑
i
=
1
M
∥
P
c
(
i
)
−
μ
k
∥
2
,
P
c
(
i
)
∈
c
(
k
)
J=\sum_{k=1}^{K}\sum_{i=1}^{M}\lVert P_{c}(i)-\mu_{k}\rVert^{2},P_{c}(i)\in c(k)
J=k=1∑Ki=1∑M∥Pc(i)−μk∥2,Pc(i)∈c(k)
C s = 1 − ( R s ∙ R w d ) / ( ∥ R s ∥ × ∥ R w d ∥ ) Cs=1-(R_s\bullet R_{wd})/(\|R_s\|\times\|R_{wd}\|) Cs=1−(Rs∙Rwd)/(∥Rs∥×∥Rwd∥)
在确定子区域分配后,需要规划适当的扫描路线,以确保每个子区域的全面覆盖。对于矩形、圆形、半圆形和梯形等规则形状的区域,可以使用线扫方向法来确定最佳扫描方向和扫描线的安排。设矩形的边集为
E
=
{
a
,
b
,
c
,
d
}
E=\{a,b,c,d\}
E={a,b,c,d},顶点集为
V
=
{
A
,
B
,
C
,
D
}
V=\{A,B,C,D\}
V={A,B,C,D}。根据指定的扫描方向,转弯的次数为:
r
(
E
i
)
=
c
e
i
l
(
D
max
(
E
i
)
ω
d
)
×
2
r(E_i)=ceil(\frac{D_{\max}(E_i)}{\omega_d})\times2
r(Ei)=ceil(ωdDmax(Ei))×2
每个无人机将访问其聚类中的不同子区域。子区域访问顺序和起始点的选择会直接影响路径长度和任务持续时间。我们使用MMAS(最小-最大蚁群系统)来选择起始点并连接子区域路径。
执行层算法
执行层主要解决的是在无人机完成伤员定位后,如何帮助救援人员迅速到达伤员位置。在室内环境中,传统的路径规划方法通常只有在找到可通行的门或进行随机采样时才会继续探索,导致效率较低。为此,本文提出了带有动态引导机制的快速扩展随机树星(DG-RRT*)算法。在地图中,有多个门的位置可以作为次要目标,从中筛选出一组符合条件的次要目标点:
∥
P
s
e
c
(
i
)
−
P
s
t
a
r
t
∥
+
∥
P
s
e
c
(
i
)
−
P
t
a
r
g
e
t
∥
<
γ
1
∥
P
s
t
a
r
t
−
P
t
a
r
g
e
t
∥
\|P_{sec}(i)-P_{start}\|+\left\|P_{sec}(i)-P_{target}\right\|<\gamma_1\|P_{start}-P_{target}\|
∥Psec(i)−Pstart∥+∥Psec(i)−Ptarget∥<γ1∥Pstart−Ptarget∥
3.结果展示
4.参考文献
[1] Yang G, Mo Y, Lv C, et al. A dual-layer task planning algorithm based on UAVs-human cooperation for search and rescue[J]. Applied Soft Computing, 2025: 113488.
5.代码获取
xx