协同路径规划

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

种群:染色体的集合,上述的选择与交叉操作都是针对与种群的。
适应度函数:给染色体评分,给后续的选择操作提供支持。

演化
编码
初始化种群
为种群中每个染色体规划协同路径DARP+STC
评估种群个体适应度
选择
交叉
变异

值得注意的是,这里的染色体包含的是组合信息,每个染色体代表的是一个个体,个体之间是独立的。

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} Eix,y=dist(Xi(t0),[x,y]τ),i{1,,nr}(1)
E i E_i Ei是一个矩阵, E i ∣ x , y E_{i|x,y} Eix,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}argminEix,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} Cix,y=min[x,y]rmin[x,y]q,rRi,qQi(3)
C i ∣ x , y C_{i|x,y} Cix,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.

### 卡车与无人机协同路径规划算法概述 卡车与无人机协同路径规划是现代物流领域的重要研究方向之一。通过结合卡车和无人机的优势,可以在复杂环境中实现高效的货物配送。遗传算法因其强大的全局搜索能力和适应性,在这一问题中得到了广泛应用。 #### 遗传算法的核心原理 遗传算法是一种模拟自然选择过程的优化方法,适用于解决复杂的组合优化问题。在卡车与无人机协同路径规划中,遗传算法可以通过编码个体、设计适应度函数以及执行交叉和变异操作来寻找最优解[^1]。具体而言: - **编码方式**:通常采用整数编码表示路径顺序,例如 `[1, 3, 2, 4]` 表示访问节点的次序。 - **适应度函数**:根据实际需求设定目标函数,如最小化总配送时间或最大化负载利用率[^2]。 - **交叉与变异**:通过交换部分基因片段或随机改变某些位置上的值,生成新的候选解。 以下是基于 MATLAB 的简单遗传算法框架用于路径规划的例子: ```matlab function [bestPath, bestFitness] = geneticAlgorithmTruckDrone(nodes, maxGenerations) populationSize = 50; mutationRate = 0.01; % 初始化种群 population = initializePopulation(populationSize, length(nodes)); for generation = 1:maxGenerations fitnessValues = calculateFitness(population, nodes); % 选择父代 parents = selectParents(population, fitnessValues); % 进行交叉 children = crossover(parents); % 执行变异 mutatedChildren = mutate(children, mutationRate); % 更新种群 population = updatePopulation(population, mutatedChildren, fitnessValues); % 记录当前最佳解 [~, index] = min(fitnessValues); currentBestPath = population(index, :); if (generation == 1 || fitness(currentBestPath) < bestFitness) bestPath = currentBestPath; bestFitness = fitness(bestPath); end end end ``` #### 多目标优化策略 当涉及多个冲突的目标时(如时间和成本),可以考虑使用多目标遗传算法 NSGA-II 来平衡不同指标之间的关系[^4]。NSGA-II 提供了快速非支配排序机制和拥挤距离计算功能,从而能够有效探索 Pareto 前沿。 对于卡车与无人机协作场景下的特殊约束条件——比如每架无人机的工作范围有限制或者载重能力不足等问题,则需进一步调整模型结构以满足实际情况的要求[^3]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值