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