目录
1. 背景介绍
区别与点对点的路径规划,本文讲的协同路径规划的目标是多车协同覆盖扫描一个区域。
从图中容易知道,黑色的栅格代表障碍物,蓝色的小点代表着小车,用不同颜色的线段代表为每个小车规划的路径。
通过上述的讲解,相信已经理解到我所说的协同覆盖扫描一个区域指的是什么了。与上述的情况不一样的是,现在存在一个应用场景,小车随机分布在地图上(有的在目标区域内部,有的则在区域外部),要求给出一个最佳的扫描方案:派出哪几辆车执行扫描任务最佳,给出每个小车的路径。值得注意的是,这个有个隐藏的问题,如果区域外的小车要参与扫描任务,从目标区域的什么位置开始扫描(引申出最佳进入点的概念)。
2. 现有的解决方案
2.1. 遗传算法解决组合优化问题
Notice:
染色体:染色体在遗传算法中表示一种具体的组合。
例如: 12号小车 从(4,9)位置开始扫描 → 可 以 表 示 为 → \to^{可以表示为}\to →可以表示为→ 110001001001 其中 1100 = 12 ; 0100 = 4 ; 1001 = 9 1100 = 12; 0100 = 4; 1001 = 9 1100=12;0100=4;1001=9
种群:染色体的集合,上述的选择与交叉操作都是针对与种群的。
适应度函数:给染色体评分,给后续的选择操作提供支持。
值得注意的是,这里的染色体包含的是组合信息,每个染色体代表的是一个个体,个体之间是独立的。
2.2. DARP + STC 规划多车协同路径
2.2.1. DARP: Divide Areas Algorithm for Optimal Multi-Robot Coverage Path Planning
按照小车初始位置划分区域,通过下面的图片可以粗略的认识到,DARP算法就是根据移动小车的初始位置划分区域,确保每个区域的面积近似相等,且联通。
E
i
∣
x
,
y
=
d
i
s
t
(
X
i
(
t
0
)
,
[
x
,
y
]
τ
)
,
∀
i
∈
{
1
,
…
,
n
r
}
(1)
E_{i|x,y} = dist(\mathcal{X_i(t_0)},[x,y]^{\tau}), \forall i \in \{1, \dots, n_r\}\tag{1}
Ei∣x,y=dist(Xi(t0),[x,y]τ),∀i∈{1,…,nr}(1)
E
i
E_i
Ei是一个矩阵,
E
i
∣
x
,
y
E_{i|x,y}
Ei∣x,y表示
[
x
,
y
]
[x,y]
[x,y]与移动小车初始位置的距离
X
i
(
t
0
)
X_i(t_0)
Xi(t0)
A
x
,
y
=
arg min
i
∈
{
1
,
…
,
n
r
}
E
i
∣
x
,
y
,
∀
(
x
,
y
)
∈
L
(2)
A_{x,y} = \argmin_{ i \in \{1, \dots, n_r\}}E_{i|x,y}, \forall (x,y) \in \mathcal{L}\tag{2}
Ax,y=i∈{1,…,nr}argminEi∣x,y,∀(x,y)∈L(2)
A
x
,
y
A_{x,y}
Ax,y表示分配矩阵,
(
x
,
y
)
(x,y)
(x,y)分配给具体的哪个机器人扫描。
C
i
∣
x
,
y
=
min
∥
[
x
,
y
]
−
r
∥
−
min
∥
[
x
,
y
]
−
q
∥
,
∀
r
∈
R
i
,
q
∈
Q
i
(3)
C_{i|x,y} = \min{\|[x,y]-r\|}-\min{\|[x,y]-q\|}, \forall r \in \mathcal{R_i}, q \in \mathcal{Q_i} \tag{3}
Ci∣x,y=min∥[x,y]−r∥−min∥[x,y]−q∥,∀r∈Ri,q∈Qi(3)
C
i
∣
x
,
y
C_{i|x,y}
Ci∣x,y连通性奖惩矩阵,
R
i
\mathcal{R_i}
Ri表示包括小车
i
i
i 起始点的分配区域,
Q
i
\mathcal{Q_i}
Qi表示小车
i
i
i 除了
R
i
\mathcal{R_i}
Ri的其余分配区域
m i , i ∈ { 1 , … , n r } m_i, i \in \{1, \dots, n_r\} mi,i∈{1,…,nr} 表示距离缩放系数,控制每个小车分配区域大小近似相等。
2.2.2. STC : Spanning Tree Coverage (STC) Algorithm
针对单车,生成覆盖路径
(a) Initial cells’ discretiza-
tion, robot’s cell and obsta-
cles
(b) Subdivide the terrain
into large square cells of 4
cells and represent them as
nodes
© Construct a Minimum
Spanning Tree for all the
unblocked nodes
(d) Apply the ST to the orig-
inal terrain and circumnavi-
gate the robot around it
生成树: n个节点用n-1条边连通
最小生成树:在生成树的基础上,边的权值之和最小。
生成最小生成树的算法: Prim, Kruskal
参考文献:
[1] Athanasios Ch. Kapoutsis and Savvas A. Chatzichristofis and Elias B. Kosmatopoulos. DARP: Divide Areas Algorithm for Optimal Multi-Robot Coverage Path Planning[J]. Journal of Intelligent & Robotic Systems, 2017, 86(3-4) : 663-680.