先上结论: 在构型空间(也就是C空间中),不管机器人的构型如何,有几个自由度,它在构型空间中都只是一个点!!!
1. Work-Space与C-Space的关系:
| 方向 | 操作 | 特点 |
|---|---|---|
C-Space => Work-Space
|
正运动学 | 满射 |
Work-Space => C-Space
|
逆运动学 | 多解、奇异点 |
既然机器人在构型空间中就是一个点,那么在C-space中设计的planning算法就不再是局限于某一机器人系统的planning算法,而是理论上可以扩展到任意机器人系统。
| 机器人类型 | C-Space |
|---|---|
| 平面机器人 | 特殊欧式群SE(2): |
| 无人机 | 特殊欧式群SE(3): |
| 六轴机械臂 | 即关节空间: |
2. 对于平面移动机器人来说: 它的构型空间是通过对障碍物进行膨胀小车的大小得到的,此消彼长,因此小车缩成了一个点。
3. 对于平面二连杆臂来说: 它的构型空间是,即它的关节空间,对于二连杆来说也就是一个平面,它对应的拓扑平面是一个环,也就是下图中的(b)图
4. 障碍物到C-Space的转换
Work-space中的障碍物在C空间中一般都是超曲面,在C-space中应用规划废时,一般要把机械臂工作空间内的障碍物在C空间中用数学来描述。
障碍物B在robot的构型空间表示为:
其中,表示robot与关节变量x的关系,当,则robot与障碍物B会发生干涉。
思路:
-
step1:使用解析函数描述障碍物表面
-
step2:使用机器人最大直径膨胀障碍物
-
step3:将膨胀后的障碍物表面的点与机器人的位置关系表示为函数形式,用于碰撞检测
-
step4:应用搜索算法,如RRT等
其实使用RRT等采样算法时,完全可以随机撒多维点,然后使用正运动学来判断是否与障碍物发生干涉(注意,这里的正运动学是广义的,要判断每个连杆是否发生碰撞),此时障碍物是描述在Work-space的,这样就避免了障碍物到C-Space的转换!
推荐一本比较经典的运动规划书籍《Principles of Robot Motion - Theory, Algorithm and Implementation》
声明: 图源网络,侵删!