机器人学 —— 轨迹规划(Sampling Method)
2016-05-28 14:17
169 查看
上一篇提到,机器人轨迹规划中我们可以在 Configuration Space 中运行A* 或者 DJ 算法。无论A* 还是DJ 算法,都必须针对邻域进行搜索,如果2自由度则有4邻域,2自由度则有8邻域。如果是工业上常用的6自由度机器人,那么就有2^6邻域。。。。。。显然,对于轨迹规划这种串行算法而言,这么高维度的搜索空间是不合适的.......于是就有了牺牲精度,鲁棒性,但是效率较高的基于采样的轨迹规划算法。PRM(probabilistic road map)。使用PRM生成稀疏的路径图,再利用A*算法在路径图中进行轨迹规划,则可以显著提高效率。
其中Dist function 是计算Configuration Space中,点与点之间距离的函数。Local Planner 是检查点与点连线是否在Configuration Space 中经过非自由区域的函数。
此算法的本质是蒙特卡洛算法。所以原本很容易在GPU上实现并行化。最大的困难还是处于非自由区域检查部分...
绿色的点为随机采样点。
其root 为起点与终点,只要最后两棵树可以合并,那么则找到了起点到终点的路径
1、生成永久map的PRM算法
PRM算法的伪代码如下:其中Dist function 是计算Configuration Space中,点与点之间距离的函数。Local Planner 是检查点与点连线是否在Configuration Space 中经过非自由区域的函数。
此算法的本质是蒙特卡洛算法。所以原本很容易在GPU上实现并行化。最大的困难还是处于非自由区域检查部分...
绿色的点为随机采样点。
2、在空间中生成一次性路径的 RRT 算法
很多时候,我们并不需要生成一整个可以反复使用的map ,我们更需要在空间中寻找到一条可以移动的路径。比如,无人汽车从A到B ,我们只需要生成一次路径即可,回头时障碍物可能已经发生变化。这时候我们使用RRT算法。其root 为起点与终点,只要最后两棵树可以合并,那么则找到了起点到终点的路径
相关文章推荐
- LinkedHashMap的使用
- poj 2771 Guardian of Decency(最大独立集)
- PMP-gossip-02
- 将QT5.6集成至VS2015
- php array_flip() 删除数组重复元素
- 定义分数的一目运算+和-,分别代表分数取正和求反,将“按位取反运算符”~重载为分数的求倒数运算。
- Handler
- 常量的存在和获取
- 关于自定义view的那点事
- 用文言文翻译网络流行语!~张润萌
- 4、内置函数abs、all、any、min、max使用方法
- Oracle空串与null的处理
- [置顶] Qt for IOS环境的搭建以及ffmpeg库的编译与移植
- 4类 JavaScript 内存泄漏及如何避免
- PhoneGap android开发:传感器
- JAva instanceof介绍
- poj 2541 Binary Witch(状态压缩)
- 【J2EE核心开发学习笔记 010】struts2的搭建及连接数据库实现用户注册与登录
- UVA 140 Bandwidth (暴力)
- Cocos2dx 世界、屏幕、openGL、本地等坐标系