先上结论: 在构型空间(也就是C空间中),不管机器人的构型如何,有几个自由度,它在构型空间中都只是一个点!!!


1. Work-Space与C-Space的关系:

方向 操作 特点
C-Space => Work-Space 正运动学 满射
Work-Space => C-Space 逆运动学 多解、奇异点

既然机器人在构型空间中就是一个点,那么在C-space中设计的planning算法就不再是局限于某一机器人系统的planning算法,而是理论上可以扩展到任意机器人系统。


机器人类型 C-Space
平面机器人 特殊欧式群SE(2):(x,y,θ)T(x,y,\theta)^T
无人机 特殊欧式群SE(3):(x,y,z,roll,pitch,yaw)T(x,y,z,roll,pitch,yaw)^T
六轴机械臂 即关节空间:(θ1,θ2,θ3,θ4θ5θ6)T(\theta_1,\theta_2,\theta_3,\theta_4,\theta_5,\theta_6)^T

2. 对于平面移动机器人来说: 它的构型空间是通过对障碍物进行膨胀小车的大小得到的,此消彼长,因此小车缩成了一个点。
运动规划中C空间的理解运动规划中C空间的理解运动规划中C空间的理解


3. 对于平面二连杆臂来说: 它的构型空间是(θ1,θ2)T(\theta_1,\theta_2)^T,即它的关节空间,对于二连杆来说也就是一个平面,它对应的拓扑平面是一个环,也就是下图中的(b)图
运动规划中C空间的理解
运动规划中C空间的理解
运动规划中C空间的理解

运动规划中C空间的理解

4. 障碍物到C-Space的转换

Work-space中的障碍物在C空间中一般都是超曲面,在C-space中应用规划废时,一般要把机械臂工作空间内的障碍物在C空间中用数学来描述。

障碍物B在robot的构型空间表示为:
COrobot(B)=xCspacerobot(robot)xB0 CO_{robot}(B)={x\in Cspace_{robot}|(robot)_x \cap B\neq0 }
其中,(robot)x(robot)_x表示robot与关节变量x的关系,当xCOrobot(B)x\in CO_{robot}(B),则robot与障碍物B会发生干涉。

思路:

  • step1:使用解析函数描述障碍物表面

  • step2:使用机器人最大直径膨胀障碍物

  • step3:将膨胀后的障碍物表面的点与机器人的位置关系表示为函数形式,用于碰撞检测

  • step4:应用搜索算法,如RRT等

    其实使用RRT等采样算法时,完全可以随机撒多维点,然后使用正运动学来判断是否与障碍物发生干涉(注意,这里的正运动学是广义的,要判断每个连杆是否发生碰撞),此时障碍物是描述在Work-space的,这样就避免了障碍物到C-Space的转换!


运动规划中C空间的理解




推荐一本比较经典的运动规划书籍《Principles of Robot Motion - Theory, Algorithm and Implementation》



声明: 图源网络,侵删!

相关文章:

  • 2021-05-25
  • 2022-12-23
  • 2021-08-02
  • 2021-10-02
猜你喜欢
  • 2022-02-08
  • 2022-01-05
  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
相关资源
相似解决方案