前言
机器人坐标变换中的左乘和右乘 ,几乎是所有机器人、视觉、SLAM、机械臂开发人员都会遇到的概念容易搞混,本质原因是:左乘和右乘不仅仅是矩阵放哪边的问题,而是代表了"谁在动"、"在哪个坐标系下动"。
一、先建立一个直觉
假设地面上有:
- 世界坐标系 World
- 机器人底盘坐标系 Base
- 相机坐标系 Camera
- 目标坐标系 Object
例如:
World
│
├── Base
│
├── Camera
│
└── Object
二、齐次变换矩阵表示什么
例如:

表示:Base坐标系相对于World坐标系的位置和姿态
写成矩阵:

三、最重要的一句话

四、什么是左乘



五、左乘的本质

六、什么是右乘


七、右乘本质

八、一个非常经典的例子


九、机器人开发中最常见的情况



十、最容易记忆的方法


十一、机器人领域最实用的结论
绝大多数机器人程序中:
- 机械臂正运动学 → 右乘
- DH参数链 → 右乘
- TF树坐标变换 → 右乘
- 相机外参链 → 右乘
- SLAM位姿累计 → 右乘
- 机器人局部运动控制 → 右乘
因为这些场景本质上都是:
当前坐标系相对于上一级坐标系定义变换。
而左乘通常出现在:
- 世界系修正位姿
- 地图对齐
- 全局坐标重定位
- 用世界坐标定义运动增量
等场景。
你可以记住一句最实用的话:
右乘 = 沿自己的坐标轴运动;左乘 = 沿世界坐标轴运动。
对于机械臂、视觉外参、TF树、手眼标定这类机器人应用,90%以上情况下看到的都是右乘链式变换。