2. 机器人运动学基础

移动机器人要完成自主取放与搬运,第一步必须回答一个看似简单却贯穿全系统的问题:“我此刻在哪里,我要去的目标点相对于我是什么方向?”这个问题在数学上由运动学回答。运动学不关心力与质量,只研究位置、姿态、速度之间的几何关系。对工程实现而言,它决定了里程计如何积分、路径如何跟踪、机械臂抓取点如何从相机坐标系换算到末端执行器坐标系。

一、坐标系变换:把不同“视角”统一到同一张地图

机器人系统中同时存在多个坐标系:世界/地图坐标系 map、里程计坐标系 odom、车体坐标系 base_link、激光雷达坐标系 laser、相机坐标系 camera、机械臂基座与末端坐标系等。每个坐标系都有自己的原点和轴向,任何传感器数据只有经过变换,才能被其他模块正确理解。

二维平面上的刚体变换由旋转矩阵与平移向量组成。若点 P 在子坐标系中的坐标为 p_sub,则它在父坐标系中的坐标为:

p_parent = R(θ) · p_sub + t
R(θ) = [ cosθ  -sinθ ]
       [ sinθ   cosθ ]
t   = [ tx, ty ]ᵀ

工程中更常用齐次变换矩阵 T,把旋转和平移合并为一次矩阵乘法,便于多级坐标串联:

T = [ R  t ]
    [ 0  1 ]

p_parent_h = T_parent_sub · p_sub_h

例如相机识别到货箱中心在 camera 坐标系下为 (0.35, -0.12, 0.80),要得到它在 base_link 下的位置,只需左乘 T_base_camera。若再要在地图上规划,则继续左乘 T_map_base。这种“链式相乘”是机器人软件中最基础的运算模式。

实践建议:所有坐标系变换必须明确“从谁到谁”。命名建议统一为 T_父_子,表示把子坐标系中的点变换到父坐标系,避免方向写反导致抓取偏移。

二、正运动学与逆运动学:从轮速到位姿,再从位姿到轮速

对移动底盘而言,正运动学解决“给定左右轮速度,车体会怎样运动”;逆运动学解决“希望车体以某线速度、角速度运动,左右轮应给多少速度”。以两轮差速底盘为例,设轮半径 r,轮距 L,左轮角速度 ω_L、右轮角速度 ω_R,则:

v_L = ω_L · r
v_R = ω_R · r

v = (v_R + v_L) / 2
ω = (v_R - v_L) / L

反过来,给定期望的线速度 v 与角速度 ω:

v_L = v - ω·L/2
v_R = v + ω·L/2
ω_L = v_L / r
ω_R = v_R / r

位姿积分则常用离散形式。设当前位姿为 (x, y, θ),控制周期为 dt:

x   += v · cosθ · dt
y   += v · sinθ · dt
θ   += ω · dt

这就是里程计递推的核心。它简单高效,但误差会随时间累积,因此实际系统通常用激光、视觉或UWB做重定位修正。

三、差速与全向底盘模型:运动能力决定规划方式

差速底盘结构简单、成本低、承载强,是搬运机器人最常见的形式。它的瞬时运动受非完整约束:车体只能沿自身前进方向产生速度,不能直接横向平移。因此它无法像全向底盘那样“横着走”,转弯必须依靠左右轮速度差。

全向底盘常见有麦克纳姆轮和全向轮两种。以四麦克纳姆轮为例,通过四个轮速的线性组合,可以同时解耦出 vx、vy、ω 三个自由度:

ω_1 = ( vx - vy - (Lx+Ly)·ω ) / r
ω_2 = ( vx + vy + (Lx+Ly)·ω ) / r
ω_3 = ( vx + vy - (Lx+Ly)·ω ) / r
ω_4 = ( vx - vy + (Lx+Ly)·ω ) / r

其中 Lx、Ly 为轮组相对车体中心的纵向、横向距离。全向底盘能在狭窄货架间侧移、原地旋转,适合高密度仓储场景,但轮子磨损、地面平整度、负载分布对其精度影响明显。

差速底盘 vs 全向底盘:运动自由度与约束对比 差速底盘(非完整约束) 车体 base_link 左轮 右轮 仅前进方向 v 不能横移 约束:vx = v·cosθ, vy = v·sinθ 转弯依赖左右轮速差 优点:结构简单、承载强、成本低 全向底盘(完整约束) 车体 base_link M1 M2 M3 M4 vx vy ω 可同时解耦 vx、vy、ω 优点:侧移、原地旋转、路径灵活

四、运动约束:规划器必须尊重的“物理底线”

运动约束分为完整约束与非完整约束。完整约束可以直接写成位姿变量之间的代数方程,例如全向底盘在平面内可任意移动;非完整约束则涉及速度不可积,例如差速底盘不能横向平移。规划器若忽略这一点,就会生成“看起来很短、实际走不出来”的路径。

工程上常见的约束清单如下:

约束类型 典型对象 数学表现 工程影响
非完整约束 差速底盘 ẋ·sinθ − ẏ·cosθ = 0 不能横移,需圆弧或S形路径
完整约束 麦克纳姆轮底盘 vx、vy、ω 独立可控 可侧移,但轮面打滑影响精度
速度饱和 所有底盘 |v| ≤ v_max,|ω| ≤ ω_max 限制加速度与转弯半径
最小转弯半径 阿克曼底盘 R_min = L / tan(δ_max) 窄通道通过性受限
机械臂关节限位 取放机械臂 q_min ≤ q ≤ q_max 逆解需筛选可行解

五、案例与复盘:一次取放偏移的排查

某搬运机器人在货架前抓取失败,末端始终偏左约 4 cm。排查发现:相机外参标定矩阵 T_base_camera 的旋转角符号写反,导致目标点在 base_link 下横向偏移。修正后抓取成功率从 72% 提升到 96%。这说明坐标系变换的方向约定比公式本身更容易出错。

另一个常见误区是:把差速底盘当作全向底盘做横向路径跟踪。控制器输出 vy 后,底层无法执行,只能近似分解为前进加转向,结果轨迹抖动、耗时增加。正确做法是在规划层就使用差速运动模型,生成满足非完整约束的路径。

复盘要点:运动学错误往往不表现为“程序崩溃”,而是表现为“精度下降、轨迹抖动、抓取偏移”。排查时应优先检查坐标系方向、轮径轮距参数、正负号约定和单位一致性。

掌握坐标系变换、正逆运动学、差速与全向模型以及运动约束,是后续路径规划、轨迹跟踪、视觉伺服和机械臂协同取放的基础。只有让数学模型的边界与物理底盘的边界一致,机器人才能在真实货架间稳定完成搬运任务。