Robotics - Spaces
关节空间, 任务空间..
机器人里说的空间, 本质是在描述:
- 我们在用哪一组(类型)参数来描述机器人或者任务
| 名称 | 描述什么 | 典型变量 |
|---|---|---|
| 电机/执行器空间 | 电机自身状态 | 编码器读数、电机转角、电流 |
| 关节空间 | 各关节的位置 | (q=[q_1,\dots,q_n]) |
| 构型空间(C - space) | 机器人完整姿态 | (q\in\mathcal C) |
| 笛卡尔空间 | 三维位置或位姿 | ((x,y,z))、(T\in SE(3)) |
| 任务空间 | 完成任务所关心的变量 | 夹爪位姿、距离、注视点等 |
| 工作空间 | 机器人实际能够到达的区域 | 可达位置/位姿的集合 |
| 状态空间 | 预测系统未来需要的完整状态 | (s=(q,\dot q,\dots)) |
| 观测空间 | 传感器实际提供的数据 | 图像、深度、编码器读数 |
| 动作空间 | 控制器能够输出的命令 | 位置、速度、力矩等 |
Configuration space
构型空间是比关节空间更一般的概念:
一个点能够完整描述机器人所有可运动部分的姿态,那么所有这些点组成的集合就是构型空间。
对于固定底座的普通六轴机械臂:
C≈关节空间
因为六个关节角就足以描述机器人。
但对于移动机器人或者人形机器人,构型还需要包括机器人底座的位置和姿态:
q=[xb,yb,θb,q1,…,qn]
对于自由漂浮机器人,可能是:
q=(Tbase,qjoints)∈SE(3)×Rn
所以:
- 关节空间侧重关节变量
- 构型空间侧重完整描述机器人姿态
在固定机械臂中,两者经常被混用。
运动规划尤其喜欢用 C-space
现实中的障碍物可以转换成构型空间中的禁止区域:
Cfree=C∖Cobstacle
规划算法不是直接问“夹爪有没有撞墙”,而是寻找一条构型轨迹:
q(t)∈Cfree
这就是 RRT、PRM 等算法常说的 configuration-space planning。