运动与路径规划

位形空间(C空间)

位形空间,几乎总是简称为“C空间”,是一张想象出来的地图,它囊括了机器人能摆出的每一种姿态,地图上的一个点就代表一种完整的姿态。这里的“姿态”指的是把机器人完全确定下来所需的那一整组数字:对一只简单的机械臂来说,就是每个关节的角度;对一台在地面上行驶的轮式机器人来说,就是它的 x、y 位置再加上它朝向哪个方向。如果一台机器人有六个关节,那它的 C空间里的一个点就只是一串六个数字,整个空间就有六个维度——根本画不出来,可拿来计算却毫无障碍。关键的思维转换在于:在 C空间里,你不再去想机器人那副金属身躯在房间里挪动,而是改去想一个小圆点在这张姿态地图上滑行。

为什么要费力搞出这么一个抽象?因为当机器人被缩成一个点时,规划运动会变得简单得多。在真实房间里,机器人是一个带着手臂和棱角的笨重形状,能以各种复杂的方式蹭到墙;规划时还要追踪这一切,简直是噩梦。但在 C空间里,整个机器人都变成了一个点,于是“机器人能不能从这儿挪到那儿而不撞上任何东西?”这个问题,就化成了一个干净得多的问题:“这个点能不能沿一条畅通的路线,从地图上的某一点走到另一点?”机器人学里几乎每一种路径规划方法,都在 C空间里悄悄完成它的工作,而不是在你看得见的物理工作空间里——正是这个核心技巧,让运动规划变得可解。

一只两关节机械臂的 C空间是一张平面:横着读出第一个关节的角度,竖着读出第二个关节的角度。机械臂能摆出的任何姿态,都是这张平面上的一个点;而机械臂的一段平滑运动,就是在这张平面上划出的一条曲线。

姿态化为一个点,运动化为一条曲线——这就是 C空间最朴素的图景。

C空间的维数等于机器人的自由度数目:一只六关节机械臂生活在一个六维的 C空间里。

又称
C-spaceC空间C空間configuration space