2. 基础知识

移动操作机器人要在“会走”和“会抓”之间建立统一的数学语言。底盘在平面内移动,机械臂在三维空间中伸展,二者最终都要回答同一个问题:某个物体相对于机器人本体、相机、末端执行器究竟在哪里?如果坐标系不统一、位姿表达不一致,定位模块给出的目标点就无法被操作模块正确使用。因此,运动学、坐标系变换、位姿表示、刚体变换与齐次矩阵构成了移动操作融合的底层数学基础。

一、核心原理:从关节到任务空间的映射

机器人运动学描述关节变量与末端位姿之间的几何关系。正运动学由关节角度和连杆参数逐级计算末端位姿,逆运动学则根据期望位姿反求关节角。对于移动操作机器人,底盘通常用平面位姿 (x, y, θ) 描述,机械臂则用多自由度关节角 q 描述,二者组合成广义坐标。运动学并不关心力与质量,它只回答“在哪里”和“怎样到达”,这正是定位与操作融合首先需要解决的问题。

坐标系变换是运动学的骨架。机器人系统中常见坐标系包括世界坐标系、底盘坐标系、机械臂基座坐标系、末端执行器坐标系、相机坐标系和目标物体坐标系。任意两个坐标系之间的变换都可以分解为旋转和平移:先旋转对齐姿态,再平移对齐位置。若把变换写成矩阵形式,连续变换就变成矩阵连乘,顺序不能随意交换。

关键结论:位姿 = 位置 + 姿态;刚体变换 = 旋转矩阵 + 平移向量;齐次矩阵 = 把旋转和平移统一到 4×4 矩阵中,使连续变换可以用乘法表达。

二、位姿表示与刚体变换

位置用三维向量 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 之间的相对关系。

移动操作机器人坐标系链与齐次变换 世界坐标系 W / map 底盘坐标系 B / base_link 机械臂基座 A / arm_base 末端执行器 E / ee_link T_WB T_BA T_AE 相机坐标系 C / camera 目标物体 O / object T_CO(视觉检测) T_EO(抓取) T_BC(手眼) 统一变换链: T_WO = T_WB · T_BA · T_AE · T_EO = T_WB · T_BC · T_CO 通过齐次矩阵连乘,把视觉目标统一到世界坐标系,再生成底盘与机械臂的协同动作。

三、方法流程:从视觉目标到抓取位姿

在移动操作任务中,典型流程如下:

  1. 相机检测目标,得到目标在相机坐标系下的位姿 TCO。
  2. 通过手眼标定矩阵 TBC,把目标转换到底盘坐标系:TBO = TBC · TCO。
  3. 结合底盘在世界坐标系中的位姿 TWB,得到目标在世界坐标系中的位姿 TWO。
  4. 根据抓取策略生成末端期望位姿 TWE,再通过逆运动学求解机械臂关节角。
  5. 若目标超出机械臂工作空间,则先规划底盘移动,使目标进入可操作区域,再执行抓取。

这一流程中,任何一步的坐标系定义错误都会导致“看得见却抓不到”。例如相机安装角度的旋转方向写反,目标点会出现在机械臂背后;底盘位姿的 θ 符号错误,抓取方向会整体偏转。

四、案例与场景:移动抓取中的坐标融合

假设移动机器人在地图中位于 (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 的残差
排障提示:当移动操作机器人出现“定位正确但抓取偏移”时,优先检查 TBC 与 TAE 的符号和单位;当出现“底盘到位但目标不在视野”时,优先检查 TWB 的 θ 与相机安装方向。
学习建议:亲手用 Python 或 ROS 的 tf2 验证一次 TWO = TWB · TBC · TCO,比只看公式更容易建立空间直觉。重点观察旋转矩阵乘法不可交换、齐次矩阵可逆、以及逆变换 T-1 = [Rᵀ, -Rᵀt; 0, 1] 这三个性质。

掌握运动学、坐标系变换、位姿表示、刚体变换与齐次矩阵,等于掌握了移动操作机器人融合定位与操作的“通用语法”。后续无论是手眼标定、视觉伺服,还是底盘—机械臂协同规划,都会反复回到这条坐标变换链上。