路径规划(一) —— 环境描述(Grid Map Feature Map) 全局路径规划(最优路径规划(DijkstraA*star) 概率路径规划(PRMRRT))
路径规划问题就是把机器人的工作环境量化的描述出来,让机器人知道哪里可以走,哪里不可以走,从而规划出一条可行的轨迹,并且对于轨迹本身进行优化
环境的描述
对于环境的描述,我们一般使用两种方法——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))相关推荐
- 实时障碍更新 局部路径寻优算法 矢量地图数据 局部路径规划解集_自动驾驶近期行为预测和规划的一些文章介绍(下)...
继续介绍最近公开的文章. "Driving with Style: Inverse Reinforcement Learning in General-Purpose Planning fo ...
- AlexNet层级分析(涉及:卷积核操作下下层网络特征图size计算;对通道和卷积核尺寸及通道前层feature map和卷积核的运算关系的解释)
先盗一图,摘自ImageNet Classification with Deep Convolutional Neural Networks(Hinton) 注:看到这个结构,可以得到以下结论(以2. ...
- paper survey(2019.06.05)——卷积网络feature map的传递与利用
最近阅读大量的paper来寻找突破点,就不打算一篇一篇的写博文的,直接记录于此(比较有意思的paper会独立出来博客) 目录 <Scale-Transferrable Object Detect ...
- 局部路径规划器teb_local_planner详解3:跟随全局planner
局部路径规划器teb_local_planner详解3:跟随全局planner 前言 一.相关优化项 二.与topologies相关的参数 前言 在局部路径规划器teb_local_planner详解 ...
- 【Deep Learning】VGG16之feature map学习笔记
最近学习BeautyGAN需要用到VGG16提取的feature map进行训练,简单学习了一些关于VGG16和feature map相关的内容. VGG16网络结构 VGG16总共有16层,13个卷 ...
- CNN中feature map、卷积核、卷积核个数、filter、channel的概念解释,以及CNN 学习过程中卷积核更新的理解
feature map.卷积核.卷积核个数.filter.channel的概念解释 feather map的理解 在cnn的每个卷积层,数据都是以三维形式存在的.你可以把它看成许多个二维图片叠在一起( ...
- 卷积后feature map尺寸计算公式
像素宽度:W(Width) 填充大小:P(Padding) 卷积核大小:K(Kernel-size) 步长大小:S(stride) 卷积后所得feature map尺寸大小计算公式如下: 补充: 1. ...
- feature map 意义_FeatureMap Viewer以及中心化对统计分布变化的影响讨论
Introduction 准备做一个feature map浏览器,可以做些intuitive的观察.code在这里(tool目录下放的支持变形输入的module.py模块). 可以支持对feature ...
- 计算feature map大小
输入:N0*C0*H0*W0 输出:N1*C1*H1*W1 输出的feature map大小: H1=H0+2×pad−kernel_sizestride+1H1=\frac{H0+2\times p ...
- linux e盘路径,Linux添加路径到PATH环境变量
Linux添加路径到PATH环境变量 一.PATH环境变量 PATH变量是Linux系统存储可执行文件搜索路径的地方,等价于Windows系统的Path变量,由于其他操作系统我没用过,不清楚详细情况 ...
最新文章
- HH的项链 (求区间内有多少个不同的数字)
- c语言变量作用域生命周期,C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期...
- Java multithread 多线程issue
- getparameter方法中文显示问号解决方法_电脑显示器花屏怎么办 电脑显示器花屏解决方法【原因分析】...
- 解决eclipse无法解析导入org.eclipse.swt库
- 2019 年“浪潮杯”第十届山东省 ACM 省赛总结
- python2读文件,python之文件的读写(2)
- 数据库学习--DQL(数据库查询语言)
- dedecms织梦入门
- 电子商务网站的购物流程设计(简述)
- 无损检测技术知识大全
- 【电磁】Matlab模拟电机内电磁场的分布附GUI界面
- 求递推数列通项的特征根法
- python中sticky_vue-sticky组件详解
- 联想电脑bios设置u盘启动 windows安装 重装系统盘
- Easypack之Alpine容器系列:Sonarqube
- USB Bulk-Only Transport 批量传输协议规范
- Firebase 教程: iOS A/B 测试
- 每日词根——morph(形状)
- 算法分析与设计——规约和NPC问题
热门文章
- 计算机组成原理课程设计报告,计算机组成原理课程设计报告.doc
- 老干部活动中心计算机台数,老干部活动中心设计方案
- VHDL——74LS138译码器
- 高等数学--数学分析一
- python实现下载韩寒博客中的所有文章,在本地存储
- 新网漫时代下的国漫“哥伦布”征程
- 天闻角川超人气IP「画猫·雅宋」数字藏品限量开售!
- SGVision正反检测
- java webservice调用sap_java调用sap webservice
- Cocos2d-x建工程时避免copy文件夹和库(子龙山人)