机器人坐标系
机器人运动学基础:笛卡尔坐标系与变换矩阵的左乘、右乘
在机器人运动学和计算机图形学中,理解“坐标系”与“矩阵乘法顺序”的关系是掌握空间运动描述的关键。本文将从笛卡尔坐标系出发,深入解析何时使用左乘、何时使用右乘。
一、 基石:笛卡尔坐标系
在机器人控制中,我们通常在笛卡尔空间下描述物体的位姿。
- 什么是笛卡尔空间?
与描述电机转动角度的关节空间不同,笛卡尔空间描述的是末端执行器在三维空间中的绝对状态:
位置:$(x, y, z)$,单位通常为毫米或米。
姿态:$(rx, ry, rz)$ 或旋转矩阵 $R$,描述物体的朝向。 - 笛卡尔空间 vs. 关节空间
这是机器人学中最基础的区分:
理解了笛卡尔空间,我们才能进一步讨论在这个空间内,如何通过矩阵乘法来描述运动。
二、 核心法则:左乘与右乘
假设我们有一个表示机器人当前位姿的变换矩阵 $T$,现在要对它施加一个变换 $R$(旋转或平移)。这个变换 $R$ 应该乘在左边还是右边?
在机器人学通用的列向量约定($P_{world} = T \cdot P_{local}$)下,法则非常明确:
核心结论
左乘:相对于固定坐标系进行变换。
右乘:相对于运动坐标系进行变换。
三、 深度解析与应用场景
1. 左乘:定系变换(变世界)
场景描述:
你站在地面上观察机器人,希望机器人绕着世界的原点旋转,或者沿着世界的X轴(例如地面的正东方向)平移。此时,参考系是固定的“大地”。
数学表达:
$$
T_{new} = R \cdot T_{old}
$$
直观理解:
左边的矩阵 $R$ 作用在整个世界坐标系上。它改变了“世界对机器人的看法”。
例子:机器人当前位于世界坐标 $(1, 0)$。
如果施加一个绕世界原点旋转90度的变换(左乘),机器人会绕着世界原点“画弧”,最终位置变为 $(0, 1)$。其位置发生了改变。


2. 右乘:动系变换(变自己)
场景描述:
你坐在驾驶舱里(或者你是机器人本身),你想让机器人向“左”转,或者向“前”走一步。这里的“左”和“前”是相对于机器人当前的朝向而言的。此时,参考系是机器人自己。
数学表达:
$$
T_{new} = T_{old} \cdot R
$$
直观理解:
右边的矩阵 $R$ 作用在机器人自身的局部坐标系上。它改变了“机器人相对于自己的状态”。
例子:机器人当前位于世界坐标 $(1, 0)$。
如果施加一个绕自身中心旋转90度的变换(右乘),机器人会在原地自转,其世界坐标位置 $(1, 0)$ 不变,但朝向变了。


四、 实际机器人操作中的对应关系
在工业机器人示教器或API编程中,笛卡尔坐标系的选择直接决定了底层的数学运算逻辑:
典型应用举例
左乘场景:搬运码垛。机器人需要将货物整齐地码放在地面上,货物的排列是基于地面坐标系的,此时用左乘逻辑规划更简单。
右乘场景:焊接或涂胶。焊枪必须始终沿焊缝切线方向前进,无论焊枪是竖着还是横着,此时必须使用工具坐标系(右乘逻辑),让机器人沿自身轴向移动。
五、 总结
在机器人运动学中,左乘与右乘的选择,本质上是参考系的选择:
左乘:站在观察者(世界)的角度看运动。
右乘:站在操作者(机器人自身)的角度做运动。
掌握了这一法则,就能在面对不同的工艺需求时,快速判断出正确的坐标系设置与数学表达方式。
注:本文基于机器人学通用的列向量习惯($Ax=b$)进行讨论。若使用行向量习惯,左右乘含义会相反,但在工业机器人领域列向量更为通用。


