路径规划问题就是把机器人的工作环境量化的描述出来,让机器人知道哪里可以走,哪里不可以走,从而规划出一条可行的轨迹,并且对于轨迹本身进行优化

环境的描述

对于环境的描述,我们一般使用两种方法——Grid map 和 Feature Map

这两种map的方法实际上是互补的一般来讲:我们会维护两种地图,用grip map和feature map来相互映射

Grid Map

有地方也叫configuration space

grid map就是比较直观,把所有障碍物表示成黑色的pixel,可通行区域就是白色

但在比赛中是会有一些加成区域和惩罚区域 (灰色)

优势:

  • 能够直接进行规划,生成路径。
  • 可以很好的表示地图上各个区域空间附加信息;如代价,概率分布等信息

缺点:

  • 真正有用的信息十分稀疏。
  • 内存占用随着地图精度的增加而大幅上升
  • 无法理解地图中的语义信息

无法理解地图中的语义信息指的是我们在grip map中,不知道障碍块是什么材质的,木头的、铁的、可不可以移动,这个障碍物是静止的还是敌方的机器人

要合理利用grid map的精细度

可能是粗糙的全局地图+精细的局部地图

Feature Map

其实说它是map是不太准确的,它就是一个字典,存储各个物体的位置与几何描述

优点

  • 对于每一个物体的几何形状的描述和位置的描述都是无限精细的。
  • 没有额外的空间占用
  • 保留各个障碍物的语义信息。能够区分障碍块和对方机器人。

缺点

  • 无法直接进行路径规划
  • 无法表示空间分布。

全局路径规划

最优路径规划

直接用grid map

①Dijkstra

②A*

关键点是我们知道一些额外的信息,类似有上帝视角,而不是只是作为一个图的探索者

f(n) = g(n) + h(n)

g(n)可以看做从start到current所花费的cost,h(n)从current到end的花费。

A*算法和Dijistra算法的区别在于有无估价值,Dijistra算法相当于A*算法中估价值为0的情况。

由于其简便性,A* 算法在移动机器人平台上被广泛的运用,ICRA 比赛的官方代码就是使用这种思路;

但是A* 算法的稳定性非常差。而且无法适用于比较精细的地图

概率路径规划

即基于采样的规划算法

概率性的算法,并不能保证求到最优解

PRM算法

Probabilistic Roadmaps 随机路标图

概率完全、渐进最优

PRM算法及其变种就是在原始地图上进行撒点,抽取roadmap在这样一个拓扑地图上进行规划

优点

  • 1. PRM可以被重复使用
  • 2. 相较于A* on grid map 更快

缺点

  • 1. 每次地图发生动态变化,图都需要重构。
  • 2. 渐进最优;概率完全

RRT算法

Rapidly-exploring Random Tree 快速探索随机树

概率完全

实质上只是一种连通算法,不算是优化算法,但是比起PRM构图更快,更灵活,非常适合在复杂,动态地图上进行规划

RRT以及其优秀的变种RRT-connect则是在地图上每步随机撒一个点,迭代生长树的方式,连接起止点为目的,最后在连接的图上进行规划

比较玄学

上个世纪被提出,但是近些年才被接收并使用

路径规划(一) —— 环境描述(Grid Map Feature Map) 全局路径规划(最优路径规划(DijkstraA*star) 概率路径规划(PRMRRT))相关推荐

  1. 实时障碍更新 局部路径寻优算法 矢量地图数据 局部路径规划解集_自动驾驶近期行为预测和规划的一些文章介绍(下)...

    继续介绍最近公开的文章. "Driving with Style: Inverse Reinforcement Learning in General-Purpose Planning fo ...

  2. AlexNet层级分析(涉及:卷积核操作下下层网络特征图size计算;对通道和卷积核尺寸及通道前层feature map和卷积核的运算关系的解释)

    先盗一图,摘自ImageNet Classification with Deep Convolutional Neural Networks(Hinton) 注:看到这个结构,可以得到以下结论(以2. ...

  3. paper survey(2019.06.05)——卷积网络feature map的传递与利用

    最近阅读大量的paper来寻找突破点,就不打算一篇一篇的写博文的,直接记录于此(比较有意思的paper会独立出来博客) 目录 <Scale-Transferrable Object Detect ...

  4. 局部路径规划器teb_local_planner详解3:跟随全局planner

    局部路径规划器teb_local_planner详解3:跟随全局planner 前言 一.相关优化项 二.与topologies相关的参数 前言 在局部路径规划器teb_local_planner详解 ...

  5. 【Deep Learning】VGG16之feature map学习笔记

    最近学习BeautyGAN需要用到VGG16提取的feature map进行训练,简单学习了一些关于VGG16和feature map相关的内容. VGG16网络结构 VGG16总共有16层,13个卷 ...

  6. CNN中feature map、卷积核、卷积核个数、filter、channel的概念解释,以及CNN 学习过程中卷积核更新的理解

    feature map.卷积核.卷积核个数.filter.channel的概念解释 feather map的理解 在cnn的每个卷积层,数据都是以三维形式存在的.你可以把它看成许多个二维图片叠在一起( ...

  7. 卷积后feature map尺寸计算公式

    像素宽度:W(Width) 填充大小:P(Padding) 卷积核大小:K(Kernel-size) 步长大小:S(stride) 卷积后所得feature map尺寸大小计算公式如下: 补充: 1. ...

  8. feature map 意义_FeatureMap Viewer以及中心化对统计分布变化的影响讨论

    Introduction 准备做一个feature map浏览器,可以做些intuitive的观察.code在这里(tool目录下放的支持变形输入的module.py模块). 可以支持对feature ...

  9. 计算feature map大小

    输入:N0*C0*H0*W0 输出:N1*C1*H1*W1 输出的feature map大小: H1=H0+2×pad−kernel_sizestride+1H1=\frac{H0+2\times p ...

  10. linux e盘路径,Linux添加路径到PATH环境变量

    Linux添加路径到PATH环境变量 一.PATH环境变量 ​PATH变量是Linux系统存储可执行文件搜索路径的地方,等价于Windows系统的Path变量,由于其他操作系统我没用过,不清楚详细情况 ...

最新文章

  1. HH的项链 (求区间内有多少个不同的数字)
  2. c语言变量作用域生命周期,C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期...
  3. Java multithread 多线程issue
  4. getparameter方法中文显示问号解决方法_电脑显示器花屏怎么办 电脑显示器花屏解决方法【原因分析】...
  5. 解决eclipse无法解析导入org.eclipse.swt库
  6. 2019 年“浪潮杯”第十届山东省 ACM 省赛总结
  7. python2读文件,python之文件的读写(2)
  8. 数据库学习--DQL(数据库查询语言)
  9. dedecms织梦入门
  10. 电子商务网站的购物流程设计(简述)
  11. 无损检测技术知识大全
  12. 【电磁】Matlab模拟电机内电磁场的分布附GUI界面
  13. 求递推数列通项的特征根法
  14. python中sticky_vue-sticky组件详解
  15. 联想电脑bios设置u盘启动 windows安装 重装系统盘
  16. Easypack之Alpine容器系列:Sonarqube
  17. USB Bulk-Only Transport 批量传输协议规范
  18. Firebase 教程: iOS A/B 测试
  19. 每日词根——morph(形状)
  20. 算法分析与设计——规约和NPC问题

热门文章

  1. 计算机组成原理课程设计报告,计算机组成原理课程设计报告.doc
  2. 老干部活动中心计算机台数,老干部活动中心设计方案
  3. VHDL——74LS138译码器
  4. 高等数学--数学分析一
  5. python实现下载韩寒博客中的所有文章,在本地存储
  6. 新网漫时代下的国漫“哥伦布”征程
  7. 天闻角川超人气IP「画猫·雅宋」数字藏品限量开售!
  8. SGVision正反检测
  9. java webservice调用sap_java调用sap webservice
  10. Cocos2d-x建工程时避免copy文件夹和库(子龙山人)