5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

1. RR arm

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

引入障碍物,思考为了避免与障碍物发生碰撞,哪些位形空间是无法到达的;
下图显示的是机器人、障碍物、以及他们在位形空间中对应的情况。

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

上图是个运动轨迹的样例,在位形空间内,机器人从一个位置移动到另个位置;这里会体现出位形空间的拓扑性质,为了避免位形空间中的障碍墙(图的中间部分),机器人从底部消失,然后在顶部再次出现,最终抵达位形空间的终点。

2. Piano Mover’s Problem

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

由于机器人有三个维度,所以位形空间可以被看成一个三维空间

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

在下面动画中,我们将机器人穿过位形空间的轨迹简化成条红线,注意这条红线从起点移动到终点的过程中是如何在位形障碍附近或中间蜿蜒穿梭而无需穿越障碍表面的。

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

您将编写一个程序来帮助引导双连杆机械臂从一种配置转换为另一种配置,同时避开工作区中的障碍物。作业分为两部分,每一部分都提供了一些处理配置空间表示的机会。

下面是有权限学员所看到的编程作业说明(交了钱就是不一样):

参见博客2 Robotics: Computational Motion Planning 第2+3+4周 课后习题解答 中 Configuration Space: Part 1 of 2 部分。

INTRODUCTION
Configuration Space 编程作业的主要目标是为学生提供在现实世界环境中实际应用配置空间的经验。在此编程作业中,您将编写一个程序来帮助引导双连杆机械臂从一个配置空间到另一个配置空间,同时避开工作区中的障碍物。机器人的配置由两个关节角度 θ1 和 θ2 捕获,如图 1 所示。这些角度用 0 到 360 度之间的值表示。

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

INRTODUCTION OF TRIANGLES

对于这个特定的任务,由于机械臂和障碍物被假定为三角形的集合,任何形式的现实世界碰撞都被简化为机械臂的三角形和障碍物之间的交叉点。

理解这一概念的众多方法之一是考虑所有 6 条边(每个三角形 3 条)以及它们是否充当分隔线,其中所有顶点位于一个三角形的一侧。

此外,可能需要检查的情况如下:

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

triangle_intersection.m

测试结果如下:

情况一

5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】
情况三
5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】
情况五
5_位形空间的示例_宾夕法尼亚大学机器人运动规划专项课程【学习笔记(附Assignment:Configuration Space(Part 1 of 2 & Part 2 of 2)代码)】

5. Assignment:Configuration Space(Part 2 of 2)

编程作业说明:

参见博客2 Robotics: Computational Motion Planning 第2+3+4周 课后习题解答 中 Configuration Space: Part 2 of 2 部分。

INTRODUCTION
在作业的前一部分中,您实现了一个算法来检查两个三角形是否在任何一点相交。 由于机械臂和障碍物是一组三角形,因此可以检查配置是否可行变得不可或缺。

对于第 1 周的家庭作业,您被要求完成 DijkstraGrid 函数,该函数用于通过基于简单网格的环境规划路径,使用 2D 逻辑数组建模。在作业的以下部分,您将通过完成函数 DijkstraTorus 来扩展该想法。

DijkstraTorus 将根据机械臂与工作空间中障碍物之间的三角形交点导出的配置空间,实施 Dijkstra 算法来计算从起始配置到结束配置的最短可行路线。

IMPLEMENTATION
此函数的输入和输出参数解释如下:
input map:一个逻辑数组,其中自由空间单元为 false 或 0,障碍为 true 或 1;
start_coords, dest_coords:开始和结束单元格的坐标,第一个是行,第二个是列;
route:包含沿从 start 到 dest 的最短路径的单元格的线性索引的数组,如果没有路径,则为空数组。

注意:

  • 该特定的函数包含一个变量标签,它使您可以选择是否希望查看函数的输出
  • 以下代码使用现有版本的 triangle_intersection.m 因为它对 DijkstraTorus 的实施至关重要。如果您希望应用您的代码版本,请将您的代码插入下面提供的 matlab zip 文件链接中提供的 triangle_intersection.m
  • 为了简化和减少计算时间,已经加载了现有的配置空间。 在下面的 MATLAB zip 文件链接中已经提到了创建这个配置空间的代码TwoLinkCspace.m
  • 如果您希望查看代码工作方式的动画,请从上一屏幕的摘要窗口下载 MATLAB zip 文件并插入您的代码。

5.1 代码及测试结果

function route = DijkstraTorus (input_map, start_coords, dest_coords)% Run Dijkstra's algorithm on a grid.% Inputs : %   input_map : 一个逻辑数组,其中自由空间单元为 false 或 0,障碍为 true 或 1%   start_coords and dest_coords : 开始和结束单元格的坐标,第一个是行,第二个是列;% Output :%   route : 包含沿从 start 到 dest 的最短路径的单元格的线性索引的数组,如果没有路径,则为空数组。% set up color map for display% 1 - white - clear cell% 2 - black - obstacle% 3 - red = visited% 4 - blue  - on list% 5 - green - start% 6 - yellow - route% 7 - brown - destinationcmap = [1 1 1; ...   % 白色0 0 0; ...   % 黑色1 0 0; 来源:黄小白的进阶之路
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月6日
下一篇 2021年6月6日

相关推荐