博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT))
阅读量:2135 次
发布时间:2019-04-30

本文共 1322 字,大约阅读时间需要 4 分钟。

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

 

环境的描述

对于环境的描述,我们一般使用两种方法——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则是在地图上每步随机撒一个点,迭代生长树的方式,连接起止点为目的,最后在连接的图上进行规划

 

比较玄学

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

 

 

 

 

转载地址:http://vlygf.baihongyu.com/

你可能感兴趣的文章
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
【LEETCODE】111-Minimum Depth of Binary Tree
查看>>
【LEETCODE】235-Lowest Common Ancestor of a Binary Search Tree
查看>>
【LEETCODE】110-Balanced Binary Tree
查看>>
【LEETCODE】101-Symmetric Tree
查看>>
【LEETCODE】257-Binary Tree Paths
查看>>
【LEETCODE】102-Binary Tree Level Order Traversal
查看>>
【LEETCODE】107-Binary Tree Level Order Traversal II
查看>>
数据结构-stack-学习笔记
查看>>
【LEETCODE】145-Binary Tree Postorder Traversal
查看>>