宾夕法尼亚大学Coursera运动规划公开课学习有感

本文是作者对宾夕法尼亚大学Coursera运动规划公开课的学习感悟,内容涉及Graph-based planning,介绍了Grassfire Algorithm、Dijkstra算法和A*算法,并探讨了它们在2D路径规划中的应用和效率。课程质量高,讨论区活跃,让作者对这些经典算法有了更深入的理解。
摘要由CSDN通过智能技术生成

元宵节过去啦, 新的学期开始了.
前一段时间学习了Coursera上的公开课: Computational Motion Planning, 这是VJKumar教授Robotics系列课程的其中一个. 这一部分, 顾名思义, 就是讲运动规划的. 这套课程并不是很深刻, 但是它的各算法的衔接非常流畅, 每个算法的引出非常自然. 对于我自己, 通过看论文, 每个算法虽然都见过, 但是自己总结的不够系统, 上过这个公开课就好很多.
感觉这套课程质量很高, 课堂讨论区很活跃, 来自全世界的各路大神都分享自己做作业的感受. 很多东西自己想是绝对想不到的. 作业做完, 感受更加深刻, 对于算法的理解以及算法细节部分实现也有了新的认识, 下面还是把自己的一点小小的感悟写在下面吧. 这一篇文章讲的都是graph-based planning,个人理解是把所有可以走的路线看成节点的路径规划。

Introduction to Computational Motion Planning

介绍,路径规划是什么。下面有一些英文术语: G/V/E: 一个图G(Graph),由顶点V(Vertices)和连线E(Edge)构成。连线把所有顶点连接起来。连线通常用数值标记,表示相关的量例如距离或者消耗。通常来讲,目标都是从起始位置到终点位置路程最短。

Grassfire Algorithm

这个算法,可以从目标开始,绕着相邻的格子标数字。伪代码如图:
这里写图片描述
从任意一个格子出发,只需要寻找格子周边数字最小的格子,走过去就行。像下面这种一圈都是9的,那任意一个格子都可以了。
这里写图片描述
如果在标记格子的过程中,起始位置还没有被标记到数字,标记的过程就结束了。那就说明无法从起始位置到达目标。
这里写图片描述
关于计算效率,挺低的。这个算法和格子数目成正比。如果维数很大,那这个格子数目就会巨大。(格子数目和维数成指数关系)

Dijkstra算法(此处指适用于2D的算法)

伪代码如图,每个节点都有两个属性,一个是父节点,一个是距离。寻找每个节点的相邻节点中有标记距离最小的那个点,这个点就是下一个节点。反复迭代。
这里写图片描述
算法效率:这里提到了a clever data structure叫做priority queue, 可以使维数增加的时候, 计算效率不会迅速较低. 这个priority queue, 优

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值