2. 基础知识
移动操作机器人要在“会走”和“会抓”之间建立统一的数学语言。底盘在平面内移动,机械臂在三维空间中伸展,二者最终都要回答同一个问题:某个物体相对于机器人本体、相机、末端执行器究竟在哪里?如果坐标系不统一、位姿表达不一致,定位模块给出的目标点就无法被操作模块正确使用。因此,运动学、坐标系变换、位姿表示、刚体变换与齐次矩阵构成了移动操作融合的底层数学基础。
一、核心原理:从关节到任务空间的映射
机器人运动学描述关节变量与末端位姿之间的几何关系。正运动学由关节角度和连杆参数逐级计算末端位姿,逆运动学则根据期望位姿反求关节角。对于移动操作机器人,底盘通常用平面位姿 (x, y, θ) 描述,机械臂则用多自由度关节角 q 描述,二者组合成广义坐标。运动学并不关心力与质量,它只回答“在哪里”和“怎样到达”,这正是定位与操作融合首先需要解决的问题。
坐标系变换是运动学的骨架。机器人系统中常见坐标系包括世界坐标系、底盘坐标系、机械臂基座坐标系、末端执行器坐标系、相机坐标系和目标物体坐标系。任意两个坐标系之间的变换都可以分解为旋转和平移:先旋转对齐姿态,再平移对齐位置。若把变换写成矩阵形式,连续变换就变成矩阵连乘,顺序不能随意交换。
二、位姿表示与刚体变换
位置用三维向量 p = [x, y, z]ᵀ 表示,姿态则常用旋转矩阵 R、欧拉角、轴角或四元数表示。旋转矩阵是 3×3 正交矩阵,满足 RᵀR = I 且 det(R) = 1,它能直接参与矩阵运算,但存在冗余;欧拉角直观,却可能遇到万向节死锁;四元数紧凑且适合插值,是机器人系统中广泛使用的姿态表示。
刚体变换要求物体在运动过程中形状和大小不变,只发生旋转和平移。若点 p 在坐标系 B 中表示为 pB,要转换到坐标系 A,则:
p_A = R_AB · p_B + t_AB
其中:
R_AB:B 相对于 A 的旋转矩阵
t_AB:B 原点在 A 中的平移向量
为了把旋转和平移合并成一次运算,引入齐次坐标。三维点写成 [x, y, z, 1]ᵀ,变换矩阵写成 4×4 形式:
T_AB = [ R_AB t_AB ]
[ 0 1 ]
p_A_h = T_AB · p_B_h
这样,从相机到末端、从末端到目标、从底盘到世界坐标系的连续变换,都可以通过矩阵连乘完成。移动操作中常见的“手眼关系”本质上就是求 Tee_cam,而“目标抓取位姿”则是 Tworld_obj 与 Tworld_ee 之间的相对关系。
三、方法流程:从视觉目标到抓取位姿
在移动操作任务中,典型流程如下:
- 相机检测目标,得到目标在相机坐标系下的位姿 TCO。
- 通过手眼标定矩阵 TBC,把目标转换到底盘坐标系:TBO = TBC · TCO。
- 结合底盘在世界坐标系中的位姿 TWB,得到目标在世界坐标系中的位姿 TWO。
- 根据抓取策略生成末端期望位姿 TWE,再通过逆运动学求解机械臂关节角。
- 若目标超出机械臂工作空间,则先规划底盘移动,使目标进入可操作区域,再执行抓取。
这一流程中,任何一步的坐标系定义错误都会导致“看得见却抓不到”。例如相机安装角度的旋转方向写反,目标点会出现在机械臂背后;底盘位姿的 θ 符号错误,抓取方向会整体偏转。
四、案例与场景:移动抓取中的坐标融合
假设移动机器人在地图中位于 (2.0, 1.0, 30°),相机检测到目标在相机前方 0.5 m、右侧 0.1 m、下方 0.2 m。若手眼矩阵已知,则可先算出目标相对底盘的位置,再叠加底盘位姿得到目标在地图中的位置。随后系统判断该点是否在机械臂可达范围内:若可达,直接抓取;若不可达,则调用底盘导航靠近目标,并重新计算 TWB 后再抓取。
这个案例说明,移动操作不是“底盘定位”和“机械臂控制”的简单叠加,而是通过齐次矩阵把两个子系统统一到同一坐标链中。定位模块提供 TWB,视觉模块提供 TCO,标定模块提供 TBC,运动学模块提供 TAE,最终共同决定 TWO。
五、常见误区与复盘
| 误区 | 表现 | 修正方法 |
|---|---|---|
| 混淆坐标系方向 | 目标位置左右颠倒或前后相反 | 明确每个坐标系的 x、y、z 指向,检查旋转矩阵行列式 |
| 变换顺序写反 | 矩阵连乘结果与预期不符 | 按“从右到左”理解变换链,先局部后全局 |
| 忽略齐次坐标的 1 | 平移分量丢失或缩放错误 | 三维点统一写成 [x, y, z, 1]ᵀ |
| 欧拉角顺序不统一 | 姿态插值出现跳变 | 固定使用一种顺序,或改用四元数 |
| 手眼标定未更新 | 抓取偏差随距离增大 | 定期重标定,记录 T_BC 的残差 |
掌握运动学、坐标系变换、位姿表示、刚体变换与齐次矩阵,等于掌握了移动操作机器人融合定位与操作的“通用语法”。后续无论是手眼标定、视觉伺服,还是底盘—机械臂协同规划,都会反复回到这条坐标变换链上。