路径规划基于matlab FMM快速行进法船舶路径规划含Matlab源码 2291期

Posted 海神之光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路径规划基于matlab FMM快速行进法船舶路径规划含Matlab源码 2291期相关的知识,希望对你有一定的参考价值。

⛄一、FMM简介

FMM是一种基于熵条件逆风策略求解Eikonal方程的高效数值方法,它在矩形直角格网中求解Eikonal方程的复杂度为O(Nlog N),其中N为格网总数。在一个二维规划空间中,两点之间的最优路径p满足最小代价要求,其中代价C是一个各向异性场,它与位置和方向都有关。
假定有势函数u(x),x表示位置,它满足Eikonal方程:

u(x)按最陡梯度下降的轮廓线就是最优路径,边界条件u(xgoal)=0作为默认已知。当C=1,方程的解就是起点到目标点的欧式距离,它可以简单的通过构造具有单位速度的扩展边界曲线得到。然而,若C不等于1,边界曲线会和自己交叉形成多值的“燕尾解”。熵条件解(没有多值“燕尾”)通常采用粘滞解理论在Eiknoal方程的右边加上平滑项以去除演化边界曲线的“尖角”。添加平滑项后Eiknoal方程形如:

当ε→0时,这种平滑能很好地消除多值“燕尾”现象。FMM是能够自动抽取粘滞解的数值方法,它存在Tsitsiklis算法和Sethian算法两种形式,前者常用于处理可能存在迂回线路的情况,也是本文演化模型FMM实现的基础。

经典的Eiknoal方程一阶求解采用Gudunov逆风策略,该数值方法收敛于粘滞解[7]。在航迹规划中最小代价求解问题的Eiknoal方程通常写成如下形式:

其中T为时间距离函数,τ为扩展代价函数,其Gudunov近似策略为:

通过上述方程和近似计算策略得到时间距离函数分布图,在此基础上利用最陡下降法反向跟踪抽取出发点和目标点之间的最短路径。

⛄二、部分源代码

clc
clear
close all
load mat_T.mat
load map.mat
dbstop if error
tic
% %% 输入起点与终点
% % 起点
% % start = input("请输入起点: ");
% 终点
% goal=input("请输入终点: ");
start=[50,20];
goal=[150,190];

%% 计算速度矩阵V与时间矩阵T
mat_V=ones(size(map));

mat_T=ones(size(map))*inf;
for i=1:size(map,1)
for j=1:size(map,2)
if map(i,j)==0
mat_T(i,j)=NaN;
end
end
end

%初始化mat_T(start)为0
mat_T(goal(1),goal(2))=0;
%初始化Far和Known
Far=[];
Known=[];
for i=1:size(map,1)
for j=1:size(map,2)
if igoal(1)&&jgoal(2)
Known=[i,j];
else
Far=[Far;i,j];
end
end
end

⛄三、运行结果


⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李时东,蔡超,丁明跃.一种航迹约束演化新模型及其FMM实现[J].系统仿真学报. 2011,23(05)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

以上是关于路径规划基于matlab FMM快速行进法船舶路径规划含Matlab源码 2291期的主要内容,如果未能解决你的问题,请参考以下文章

路径规划基于matalb穷举法机器人栅格地图避障路径规划含Matlab源码 1675期

matlab基于蚁群算法的二维路径规划算法matlab优化算法二十二

matlab基于蚁群算法的二维路径规划算法matlab优化算法二十二

路径规划基于matlab蚁群算法栅格地图路径规划及避障含Matlab源码 2088期

路径规划基于matlab蚁群算法栅格地图路径规划及避障含Matlab源码 2088期

路径规划基于改进动态窗口法DWA实现机器人动态避障matlab源码含 GUI