Configuration Space / 构形空间

来源:互联网 发布:ios软件无法下载 编辑:程序博客网 时间:2024/06/05 06:59

本文翻译自Howie Choset等人所著:《Principles of Robot Motion - Theory,Algorithms, and Implementation》第三章 Configuration  Space(构形空间)

3.1. 明确机器人的构形
机器人系统的构形是对该系统每个点的位置的完整说明。 机器人系统的构形空间(即C空间)是系统所有可能构形的空间。因此,构形只是这个抽象构形空间中的一个点。
为了说明这些定义,考虑一个圆形移动机器人,它可以平移而不旋转。表示机器人构形的简单方法是指定相对于某个固定坐标系的中心位置(x,y)。如果我们知道机器人的半径r,我们可以从构形q =(x,y)很容易地确定机器人占用的点集。 我们将使用符号R(q)来表示这个集合。 当我们将构形定义为q =(x,y)时,我们有

且我们看到这两个参数x和y足以完全确定圆形机器人的构形。因此,对于圆形移动机器人,只要我们在平面上选择了一个坐标系,就可以用R2来表示构形空间。

机器人在二维或三维欧几里得环境空间中移动,分别由R2或R3表示。我们有时把这个环境空间(ambient space)称为工作空间(workspace)。其他时候,我们对“工作空间”有更具体的含义。例如,对于机器人手臂,我们通常称工作空间为手部或末端执行器上的一个点可达到的环境空间点的集合(如图3.3所示)。对于上述平移移动机器人来说,工作空间和配置空间都是二维的欧几里得空间,但是要记住这些空间是不同的。当我们考虑更复杂的机器人时,这一点变得很清楚,我们接下来会看到。


考虑一个双关节平面机器人手臂,如图3.1所示。手臂的第一个连杆上的一个点是固定的,以便第一个连杆的唯一可能的运动是围绕这个连接的旋转。类似地,第二连杆的基部被固定到第一连杆的端部处的点,并且第二连杆的唯一可能的运动是围绕该连接的旋转。因此,如果我们指定参数θ1和θ2,如图3.1所示,我们就已经确定了臂的构形。现在我们假设没有关节的限制,从而这两个关节可以相互转移。

每个关节角度θi对应于单位圆S1上的点,构形空间为S1×S1 = T2,即二维环面。描绘成二维环面(类似于甜甜圈的表面)是很常见的,因为圆环在R3中具有自然的嵌入,就像圆S1在R2中具有自然的嵌入一样。通过沿着θ1= 0和θ2= 0曲线切割环面,我们可以将环面压平到平面上,如图3.2所示。用这个平面表示法,我们通过区间[0,2π)R中的点来识别S1上的点。虽然这种表示包含了S1中的所有点,但是作为实线的子集的区间[0,2π)并不像S1那样自然地回绕,因此在表示中存在不连续性。正如我们在3.4节中讨论的,这是因为S1与R的任何区间在拓扑上都是不同的。


我们将双关节机械手的工作空间定义为末端执行器的可达点。我们的双关节机械手的工作空间是一个环(图3.3),它是R2的一个子集。环形内部的所有点都可以通过两种方式到达,其中手臂处于右臂和左臂形状,有时被称为肘向上和肘向下。因此,末端执行器的位置不是一个有效的构形(不是机器人所有点的位置的完整描述),所以环形不是该机器人的工作空间。
所以我们已经看到平移移动机器人和双关节机器人的构形空间是二维的,但是它们是完全不同的。圆环T2是有限面积的圆环形,R2是无限区域平坦的。当我们在3.4节中讨论拓扑时,我们会深入探讨这些差异。

3.2. 障碍物和构形空间
配合我们对构形和构形空间的理解,我们可以将路径规划问题定义为确定连续映射的问题,c:[0, 1]→Q,使得路径中的构形不会导致机器人与障碍物之间的碰撞。明确定义这样的一组构形是有用的对于碰撞产生来说。我们将构形空间障碍物QOi定义为机器人与工作空间中的障碍物WOi相交的构形集合,即


自由空间或自由构形空间Qfree是机器人不与任何障碍物相交的构形集合,即


用这个表示法,我们定义一个自由路径作为一个连续映射c: [0, 1] → Qfree,和一个半自由路径作为一个连续的映射c: [0, 1] → cl(Qfree),其中cl(Qfree)表示Qfree的闭包。自由路径不允许机器人与障碍物接触,而半自由路径允许机器人接触障碍物的边界。除非另有说明,我们假设Qfree是一个开集合。
我们现在研究如何将工作空间中的障碍物映射到上面讨论的机器人的构形空间中。
3.2.1. 圆形移动机器人
考虑这样一种场景,一个圆形移动机器人在有一个多边形障碍物工作空间的环境下,如图3.4所示。在图3.4(b)中,我们将机器人围绕障碍物滑动,以找到障碍物在机器人构形上的限制,即机器人参考点的可能位置。我们选择使用机器人的中心,当然也可以选择另一个点。 图3.4(c)显示了配置空间中产生的障碍。 图3.4(a)中圆形机器人的运动规划现在等于配置空间中一点的运动规划,如图3.4(c)所示。

 
图3.5显示了在同一环境中三个不同半径的移动机器人。 在每种情况下,机器人都试图找到从一个构形到另一个构形的路径。为了将工作空间的障碍物转化为构形障碍物,我们“向外”生长多边形,向内生长墙。现在的问题是在构形空间中找到点机器人的路径。我们看到成长过程已经隔断了最大机器人的自由构形空间Qfree,表明这个机器人没有解决方案。
 
虽然图3.5中的例子非常简单,但重点是点移动的规划比机器人本体移动的规划理解更容易。请记住,尽管这个系统的工作空间和构形空间都可以用R2来表示,而且障碍似乎只是“增长”在这个例子中,但是构形空间和工作空间是不同的空间,并且从工作空间障碍到 构形空间障碍并不总是那么简单。
例如,附录F讨论了如何为平面中的多边形障碍物之间的平移和旋转的多边形生成配置空间障碍物。 接下来检查两节臂的例子。

3.2.2. 双关节平面机械臂
对于具有多边形障碍物的世界中的圆形移动机器人来说,容易计算构形空间障碍物。 当机器人稍微复杂一点的时候,这样做就变得困难得多了。为此,有时使用基于网格的配置空间的表示。考虑双关节平面臂的情况,其中Q = T2。我们可以在环面上定义一个网格,并且对于这个网格上的每个点,我们都可以执行一个相当简单的测试,看看相应的配置是否会引起臂和工作区中的障碍物之间的碰撞。如果我们让每个网格点用一个像素表示,我们可以通过适当地“着色”像素来可视化配置空间障碍物。这个方法可获得图3.6,3.7和3.8中的结果。在每个图中,左侧的图像描绘了平面工作空间中的双关节臂,而右侧的图像描绘了构形空间。 在每一种情况下,左边的手臂都有多种构形,右侧的构形空间中会显示这些构形。
虽然图3.6,3.7和3.8中的图像对于构形空间障碍物的可视化很有用,但是它们不足以规划无碰撞运动。原因在于网格仅编码位于网格上的离散点集合的碰撞信息。路径不仅包括网格点,还包括连接网格点的曲线上的点。 解决这个问题的一个可能的方法就是当我们在一个网格点测试机器人时“加厚”机器人,这样如果加厚的机器人没有碰撞,那么到相邻网格点的路径也是无碰撞的。我们也可以选择“足够高”的网格分辨率来忽略这个问题。
 



原创粉丝点击