1 内容介绍

第一步

描绘了一个模拟环境,其中位于通道之间的两个小岛,其中起点和目标点分别用红色阴影圆圈和红色星星表示,障碍区域用黑色表示,其中到目标点(或障碍)的距离越大,电势就越高。

论文中描述为:该算法首先读取珊格地图 计算其速度矩阵v    它与规划空间具有相同的大小,并定义了规划空间中每个点的接口传播速度

执行FMM计算到达时间矩阵T,在时间矩阵T上,最终应用梯度下降法搜索最优路径

第二步

从目标点运行FM快速行进算法  界面无法在不可行区域进行传播,即界面在不可行区域的传播速度为 0,到达时间趋近于无穷大。

界面传播的终止条件确切来说是覆盖所有的可行区域

第三步

通过快速行进法计算得到到达时间地图,每个点的势值表示接口的局部到达时间

与此图相类似

第四步

通过梯度下降法得到规划路径

第五步、生成类似合成图

与此图类似  图中的颜色分布代表时间地图  忽略绿色路线 红色路线为生成的路径

2 部分代码

function T = get_T(pose,mat_T,mat_V)

%计算pose处的T

%左

pose_left=[pose(1)-1,pose(2)];

if isnan(mat_T(pose_left(1),pose_left(2)))||pose_left(1)<1

T1=mat_T(pose(1)+1,pose(2));

else

T1=min(mat_T(pose(1)-1,pose(2)),mat_T(pose(1)+1,pose(2)));

end

%右

pose_right=[pose(1)+1,pose(2)];

if isnan(mat_T(pose_right(1),pose_right(2)))||pose_right(1)>200

T1=mat_T(pose(1)-1,pose(2));

else

T1=min(mat_T(pose(1)-1,pose(2)),mat_T(pose(1)+1,pose(2)));

end

%上

pose_up=[pose(1),pose(2)-1];

if isnan(mat_T(pose_up(1),pose_up(2)))||pose_up(2)<1

T2=mat_T(pose(1),pose(2)+1);

else

T2=min(mat_T(pose(1),pose(2)-1),mat_T(pose(1),pose(2)+1));

end

%下

pose_down=[pose(1),pose(2)+1];

if isnan(mat_T(pose_down(1),pose_down(2)))||pose_down(2)>200

T2=mat_T(pose(1),pose(2)-1);

else

T2=min(mat_T(pose(1),pose(2)-1),mat_T(pose(1),pose(2)+1));

end

% 计算T(pose)

if mat_T(pose(1),pose(2))>=T1 && mat_T(pose(1),pose(2))<=T2

T=T1+1/mat_V(pose(1),pose(2));

elseif mat_T(pose(1),pose(2))>=T2 && mat_T(pose(1),pose(2))<=T1

T=T2+1/mat_V(pose(1),pose(2));

else

%         disp('error')

T=min(T1,T2)+1/mat_V(pose(1),pose(2));

end

%     if T1<=T2

%         T=T1+1/mat_V(pose(1),pose(2));

%     else

%         T=T2+1/mat_V(pose(1),pose(2));

%     end

end

3 运行结果

4 参考文献

[1]王跃午. 基于快速行进法的无人艇编队路径规划技术研究[D]. 哈尔滨工程大学.

[2]刘蔚, 谈果戈, 邹劲,等. 基于快速行进平方法的水面无人船路径规划[J]. 信息与控制, 2021, 50(3):13.​

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机、雷达通信、无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【路径规划】基于FMM快速行进法实现船舶路径规划附matlab代码相关推荐

  1. 【路径规划】FMM快速行进法船舶路径规划【含Matlab源码 2291期】

    ⛄一.FMM简介 FMM是一种基于熵条件逆风策略求解Eikonal方程的高效数值方法,它在矩形直角格网中求解Eikonal方程的复杂度为O(Nlog N),其中N为格网总数.在一个二维规划空间中,两点 ...

  2. FMM 快速行进法(一)

    FMM 快速行进法(一) 地图构建 伪代码逻辑 matlab实现 地图构建 快速行进法用于到目标点之间的路径规划,上图描绘了一个模拟环境,其中位于通道之间的两个小岛,其中起点和目标点分别用红色阴影圆圈 ...

  3. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码

    1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...

  4. 基于混合整数二阶锥(MISOCP)的配电网重构(附matlab代码)

    参考资料:主动配电网网络分析与运行调控 (sciencereading.cn) 配电网重构是指在满足配电网运行基本约束的前提下,通过改变配电网中一个或多个开关的状态对配电网中一个或多个指标进行优化.通 ...

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

    ⛄一.FMM简介 FMM是一种基于熵条件逆风策略求解Eikonal方程的高效数值方法,它在矩形直角格网中求解Eikonal方程的复杂度为O(Nlog N),其中N为格网总数.在一个二维规划空间中,两点 ...

  6. 【路径规划-TSP问题】基于粒子群结合蚁群算法求解旅行商问题附matlab代码

    1 内容介绍 一种基于粒子群优化的蚁群算法求解TSP问题的方法.该方法在求解TSP问题时,利用粒子群优化的思想,对蚁群算法的参数取值进行优化并选择.在粒子群算法中,将蚁群算法的5个参数(q,α,β,ρ ...

  7. 【路径规划】基于遗传算法实现外卖订单动态变换模型求解附matlab代码

    1 内容介绍 前瞻产业研究院发布的<中国在线外卖商业模式与投资战略规划分析报告>统计数据显示,2015-2018年中国在线外卖收入年均增速约为117.5%,是传统餐饮业的12.1倍,我国在 ...

  8. 【优化求解】基于遗传算法优化PARSEC 方法的翼型形状附matlab代码

    1 内容介绍 航天航空技术的快速发展和市场竞争的日益激烈,导致人们对飞行器的运输效率.飞行品质和气动性能等方面的要求越来越高,使得飞行器的设计过程面临着更大的挑战.因此,对飞行器气动外形的优化设计方法 ...

  9. 【滤波估计】基于双卡尔曼滤波实现soc和soh联合估计附matlab代码

    1 内容介绍 对电动汽车电池管理系统进行电池状态估计非常重要准确充电,实现电池模型参数的在线更新.在本文中,开路电压的估计转换为开路电压拟合的估计参数,快速时变参数开路电压被转换成几个慢时变参数.提出 ...

最新文章

  1. netty里集成spring注入mysq连接池(一)
  2. 在线教育这条取经路,有道词典何时能修成正果?
  3. 一篇文章对Python匿名函数配合容器函数的使用理解
  4. android闹钟的需求分析,手机小闹钟需求分析
  5. windows下, nginx 提示错误 No input file specified
  6. 真实世界:使用WCF扩展记录服务调用时间
  7. 解析Tensorflow官方PTB模型的demo
  8. JavaScript 第十章总结:first class functions
  9. 在Android中使用RecyclerView
  10. 区分Collection、Collector和collect Collectors类的静态工厂方法
  11. Linux CAT与ECHO命令详解 <<EOF EOF
  12. 2022 ciscn 东北赛区分区赛 部分 wp
  13. SPI—读写串行FLASH(时序中的无关项)
  14. 智云通CRM:CRM数据库在经营客户中有什么作用?
  15. 为什么很多年轻人说不清楚自己的堂号郡望?家谱修编做好这一点,提高家族凝聚力!
  16. c#报错 :System . Invalid Operation Exception:“线程间操作无效: 从不是创建控件的线程访问它
  17. iis8不支持 aspnet_regiis.exe -iru 命令的解决办法
  18. Oracle 数据精度错误-ORA-01438
  19. iOS_预编译(宏)#if #ifdef #ifndef #elif #else #endif
  20. 学python能考什么证书比较实用_关于python能考什么证书的阿里云论坛用户知识和技术交流...

热门文章

  1. /usr/bin/yum: /usr/bin/python3.6.8: bad interpreter: No such file or directo
  2. 学习英文-学以致用【场景:美式音标】
  3. 研究生复试--中文自我介绍
  4. ftl模板生成的word文档打不开
  5. CSDN全自动灌水机
  6. JUC之锁的八种情况
  7. 股指期货到底平衡么(股指期货会强平么)
  8. pytorch.tensorboard的零基础使用
  9. DruidCP源码阅读8 -- removeAbandoned机制
  10. 青梅煮酒,聊聊 zlib 压缩