当前位置: 首页 > news >正文

Robotics: computational motion planning 部分笔记—— week 1 graph-based

grassfire algorithm

四周扩散性;从终点开始按照相邻最小距离格子移动
在这里插入图片描述

Dijkstra’s Algorithm

标明从起点开始的所有点的最短距离(从上一节点继承),直到终点
在这里插入图片描述

伪代码

A* Algorithm

带有启发性的,给出距离估计,朝向终点的搜索。
其实就是引入了一个启发式函数 H ( n ) H(n) H(n),用来估计节点 n 和终点 g 之间的距离。
算法的改进在选点(current)上,列表是以 f 值从小到大排序的,f 值就是已经走过的距离值加上 H ( n ) H(n) H(n)。这样做会优先探索离目标点近的节点,提高搜索效率。
在这里插入图片描述
作业代码:

    numExpanded = numExpanded + 1; current_node=[i,j];%i是row j是cols_node=[i+1,j];n_node=[i-1,j];e_node=[i,j+1];w_node=[i,j-1];neighbourhood=[s_node;n_node;e_node;w_node];step =0;step =step+1; %记录已经走过的步数for k=1:4if((neighbourhood(k,1)>0 && neighbourhood(k,2)>0) && (neighbourhood(k,1)<=nrows && neighbourhood(k,2)<=ncols))%关于未出界的判定if(map(neighbourhood(k,1),neighbourhood(k,2)) ~=3 && map(neighbourhood(k,1),neighbourhood(k,2)) ~=2 && map(neighbourhood(k,1),neighbourhood(k,2)) ~=5 )g(neighbourhood(k,1),neighbourhood(k,2)) = step;if(f(neighbourhood(k,1),neighbourhood(k,2))>  step+H(neighbourhood(k,1),neighbourhood(k,2)) )    f(neighbourhood(k,1),neighbourhood(k,2))=g(neighbourhood(k,1),neighbourhood(k,2))+H(neighbourhood(k,1),neighbourhood(k,2));parent(neighbourhood(k,1),neighbourhood(k,2))=sub2ind(size(map),current);%把现在的邻居点加入到父列表中map(neighbourhood(k,1),neighbourhood(k,2))=3;endendendend

A*j结果
参考CSDN博客


http://www.mrgr.cn/news/19361.html

相关文章:

  • 数据结构——开篇
  • 【Python】Urllib:发送请求
  • 【STM32+HAL库】---- 高级定时器利用重复计数器输出指定个数PWM
  • 前端按钮通过浏览器下载附件
  • 《Foundation 滑块》
  • Vue:F11全屏模式状态监听,识别
  • 零风险!零付费!我把 AI 接入微信群,爸妈玩嗨了~附教程(下):大模型 API 接入
  • 达梦数据库+JPA+Springboot 报错 :无效的列名
  • 使用 docker 部署 kvm 图形化管理工具 WebVirtMgr
  • 不小心删除丢失了所有短信?如何在 iPhone 上查找和恢复误删除的短信
  • 【重磅推荐】《一本书读懂大模型:技术创新、商业应用与产业变革》发布!大模型零基础入门到精通
  • Webview Android性能优化
  • 花10秒进来学学吧!用AI画朵云,点赞也能10万+
  • 手机怎么把wmv转换成mp4格式?视频格式这样做,让你的视频更加通用
  • 【Qt笔记】QListWidget控件详解
  • hadoop强制退出安全模式命令
  • springboot博客系统
  • 内网穿透frp部署安装
  • S7-1500 配置OPC UA客户端
  • MySQL之UDF提权复现