宾夕法尼亚大学机器人专项课程二 运动规划
文章平均质量分 76
本专栏用于整理课程笔记,学习资源为B站https://www.bilibili.com/video/BV1bp4y1z7mi
感谢up主Here_Kin的翻译工作!
若有侵权,联系删除,谢谢!
黄小白的进阶之路
怕什么真理无穷,进一寸有一寸的欢喜
展开
-
1_Grassfire Algorithm_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
用0作为距离值标记目标节点,给所有距离目标节点1步的点标上1,距离2的标上2…以此类推,直至抵达起点。对于网格中的节点,标上的距离值代表的是从这个点走到目标点的最少步数。会发现这些数字从目标点向外辐射,就像火势蔓延一样,也即GrassFire名称的由来。实际上,能够实现这种算法主要是依靠建立一个节点网络。每次在算法进行迭代时,就将第一个节点从列表中取出,再将其所有还未访问过的相邻点标记上当前点标记数值加1的值,然后把这个节点加入到这个列表的未尾(也就是作为终点),下图所示概述了伪代码中的标记算法,这其原创 2021-07-10 20:57:16 · 488 阅读 · 0 评论 -
0_Graph-Based Planning_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
运动规划问题的重点在于如何让机器人从一个位置移动到另一个位置。很多情况下,这可以归结为几何问题,其目的是引导机器人通过某特定轨迹,而避开环境中的所有障碍。在这张图片中,机器人受到限制,仅能在网格单元上进行移动,我们要做的事是让机器人从起点(绿色单元格)移动到目标地点(红色单元格)。现在我们把每一个未被障碍物占据的网格想象成一个节点,并在相邻节点间用线连接,最终得到一个被称为图【graph/G】的数学结构,图G是由一系列用V表示的节点和一系列用字母E表示的边组成,其中的边将各节点连接了起来我们要做原创 2021-07-10 20:17:25 · 315 阅读 · 0 评论 -
13_Course Summary_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
13_Course Summary_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】课程回顾最开始讨论了在网格上移动的机器人的路径规划问题,引入了图的概念,图中节点对应机器人可以到达的离散位置,边缘对应位点间的路径。对于这些基于网格的问题,我们讨论了广度优先搜索【Breadth First Searth】或烧草算法【Grassfire Algorithm】,该算法从起点向外探索来找到最短路径【放动图】还讨论了Dijkatra算法,这是用加权图进行最短路径规划的通用算法最后,还介绍了A* 算法原创 2021-07-10 16:21:47 · 345 阅读 · 0 评论 -
12_Generalizing Potential Fields_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
12_Generalizing Potential Fields_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】前面我们讨论过在二维空间建立人工势场函数,因为二维空间比较直观,然而机器人有不同的形状和大小,很容易出现四维、五维、六维甚至自由度更高的位形空间,在这种高维度空间,我们可能不太清楚该如何建立合适的势能方程。一种为多自由度机器人生成势场的方法是,假设有一系列分布在机器人表面的控制点对每个控制点,我们可以构建一个势场,引导机器人远离工作空间的障碍并走向目标点。如前所述,可以通过计算每个点原创 2021-07-10 14:39:07 · 219 阅读 · 0 评论 -
11_Artificial Potential Field_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
11_Artificial Potential Field_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】本节将讲解如何在人工势场中引导机器人在充满障碍物的环境中运动,基本思路是在位形空间内构造一个平滑函数【smooth function】,当机器人靠近障碍物时,该函数值较高;远离障碍物时,该函数值较低;还希望在终点此函数值最小;若机器人移动到(离终点)更远的位置,函数值就会增加,如果建立出这样的函数方程,就可以用它的(下降)梯度【gradient】将机器人引导到所要求的位置。先举个二维位形空间的简单原创 2021-07-10 14:02:40 · 548 阅读 · 0 评论 -
10_Rapidly Exploring Random Trees_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
10_Rapidly Exploring Random Trees_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】在随机路图算法中,基本思路是建立一个由随机样本点和连接它们的边组成的路标图,一旦建立完成,就可以将想要的起点和终点通过路标图建立连接,得到一条可行路径。注意第一阶段建立的是一般路标图,并未考虑将任何一对特定的起点和终点,这种方法的优点是你可以反复使用路标图来规划多个路径(不同起点和终点)但是有时候,你只想进行一次特定规划,在这种情况下,构建整个自由空间的路标图就很浪费时间,所以最好在采样过程原创 2021-07-09 18:51:55 · 234 阅读 · 0 评论 -
9_Probabilistic Road Maps_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
9_Probabilistic Road Maps_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】1. Introduction with Probabilistic Road Maps2. Issues with Probabilistic Road Maps1. Introduction with Probabilistic Road Maps在之前,我们了解了位形空间以及如何使用碰撞函数来检验位形空间中某个点是否处于自由空间,通过检查引起障碍冲突的结构是否位于工作空间,还谈到了一个简单的规划方案原创 2021-07-09 17:31:16 · 332 阅读 · 0 评论 -
8_Collision Detection and Freespace Sampling Methods_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
7_Collision Detection and Freespace Sampling Methods_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】障碍规划非常简单,因为它能够对位形空间障碍进行明确的描述,但通常我们没有那么奢侈,用碰撞函数【collision function】来表达障碍就行了,尽管它有点模糊。碰撞检测函数更具体地说,如果我们让x表示位形空间中点的坐标,我们通常可以定义一个叫Collision Check的函数,如果空间内无障碍则其值为0,否则为1该幻灯片展示的是代表机器原创 2021-07-08 20:45:49 · 399 阅读 · 2 评论 -
7_Trapezoidal Decomposition_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
7_Trapezoidal Decomposition_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】路径规划的另一个思路被称为“单元分解法”【Cell Decomposition】,其应用在位形空间中障碍是多边形的情况下尤为高效。目标是将机器人的自由空间划分为一系列更简单的区域,然后将整体空间变成一张辅助图,其中利用各区的点和边来代表彼此相邻的区域。这个图展示了单元分解法在二维空间中的一种常见表示法,对于这个例子。我们基于x轴对障碍物顶点进行了分类,并按照我们之前的想法,从左到右将自由空间划分为不原创 2021-07-08 16:44:07 · 722 阅读 · 0 评论 -
6_Visibility Graph_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
6_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】现在有一个理论框架,可以(以此切入)考虑大面积的运动规划问题,如何在位形空间中规划路径,下面来探讨一下该问题的三种不同解法,它们的出发点是一样的也就是,一开始它们都将(机器人的)运动放到连续位形空间里进行规划,然后用不同的方法在图像中对问题进行重构,于是我们就可以应用讨论过的算法,如烧草、Dijikstra 和 A* 算法,我们可以用接下来的图中呈现的2D规划方案来阐明这些方法。像往常样,我们的目标是,在二维的位形空间内找到一个从起原创 2021-07-08 11:28:35 · 1200 阅读 · 0 评论 -
5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】
5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】1. RR arm2. Piano Mover's Problem1. RR arm这是个简易的二维机械臂,有两个旋转关节;像以前那样。我们可以理清这个机器人所有可能的运动轨迹,并将它们与转动角数组[theta1,theta2]关联起来,在这个案例,两个角可以自由地从0度转动到360度。引入障碍物,思考为了避免与障碍物发生碰撞,哪些位形空间是无法到达的;下图显示的是机器人、障碍物、以及他们在位形空间中对应的情况。引入障碍物,可以原创 2021-07-07 19:37:21 · 1212 阅读 · 0 评论 -
4_Configuration Space_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】
4_Configuration Space_宾夕法尼亚大学机器人运动规划专项课程对于目前已经接触的运动规划,是已经简化在图表上进行规划的,机器人本身可以看作是简单的离散的点。然而再现实世界中,大多数的机器人可以在连续空间内运动,这里就引入了“位形空间”(Configuration space)的概念,它帮助我们在统一的框架内思考问题。简单来说,机器人的位形空间是指所有机器人能够达到的位置所组成的空间的一个集合;这有个简单例子是一个能在平面内自由移动的机器人,我们使用含有两个数字的数组 [tx,ty]原创 2021-07-07 17:51:49 · 364 阅读 · 2 评论 -
3_A* Algorithm_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附 A* Algorithm 代码获取链接)】
3_A* Algorithm_宾夕法尼亚大学机器人运动规划专项课程启发式探索函数A* 算法伪代码前面提到的烧草算法(Grassfire Algorithm)和 Dijkstra 算法,都能找到最短路径,当路径不存在时,它们会报错;然而由于执行过程中,两者都需要访问表中所有的节点,当节点数量庞大时,就会出现问题。A* 算法通过探索式的代价函数来划分各条路径,探索各自的可能性,然后按照顺序来检查这些可能性;在A* 算法中,引入了探索式距离的概念,即给定节点和目标节点之间的距离估计,然后利用这个信息将搜索原创 2021-07-06 21:13:50 · 601 阅读 · 0 评论 -
2_Dijkstra’s Algorithm_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附 Dijkstra’s Algorithm 代码获取链接)】
基于图搜的算法Grassfire 算法(烧草算法)Dijkstra’s AlgorithmThe goal is to find a path for the start node A to the end node E that minimizes the sum of the weights原创 2021-07-06 20:11:57 · 274 阅读 · 2 评论