4. 坐标系与变换基础
坐标系与变换是机器人感知的数学基石,几乎每场面试都会涉及。面试官通常通过一个问题考察你的空间理解、数学表达和工程落地能力。本章将高频问题拆解为三个卡片,并给出公司对应侧重点、面试官画像及结构化回答框架。
核心回答框架
高频问答卡片
卡片1:世界坐标系、相机坐标系、像素坐标系的区别与转换
回答框架:先分别定义三个坐标系及其单位/方向,然后给出齐次坐标变换公式:Pworld = Tcam2world · Tpixel2cam · Ppixel。强调内参矩阵K和外参矩阵[R|t]。
简短示例:相机坐标系下点(2,3,5) m,外参旋转为3°俯仰,平移(0.1,0.2,0.3) m,则世界坐标 = R·Pcam + t。
追问:
- 如果相机有畸变,如何修正后再转换?
- 深度图如何反投影到3D点?
- 左乘右乘顺序如何影响结果?
避坑:混淆像素坐标系(u,v)原点在左上角,与图像坐标系(x,y)原点在中心;忘记内参归一化平面;单位不统一(mm vs m)。
卡片2:旋转矩阵、四元数、欧拉角的优缺点与转换
回答框架:列出三种表达的核心公式(如四元数 q = w+xi+yj+zk,旋转矩阵满足 RTR=I,欧拉角绕三个轴依次旋转)。对比:四元数无万向锁、插值平滑;旋转矩阵直观但冗余;欧拉角易理解但有歧义。
简短示例:给定欧拉角 (30°,45°,60°)(ZYX顺序),先转旋转矩阵,再转四元数,验证模长为1。
追问:
- 什么是万向锁?如何避免?
- 四元数如何实现Slerp插值?
- 旋转矩阵轴角表示的关系?
避坑:欧拉角顺序约定不同(ZYX vs XYZ);四元数哈密顿规则中虚部顺序;旋转矩阵行列式为-1代表反射。
卡片3:手眼标定中的坐标系变换链
回答框架:给出标准方程 AX=XB(眼在手)或 AX=ZB(眼固定),A为机器人末端位姿,B为标定板位姿。通过非线性优化或解析法求解X。
简短示例:已知两组对应位姿,用Tsai-Lenz方法求解旋转部分,再解平移。
追问:
- 手眼标定最少需要几组数据?为什么至少3组?
- 标定误差来源及如何减少?
- 能否用纯平移的方法标定?
避坑:忽略噪声影响,直接解线性方程导致奇异;忘记区分眼在手上和眼固定两种场景;标定板不平整带来巨大误差。
公司侧重点分析
| 公司类型 | 侧重方向 | 常见提问 |
|---|---|---|
| 自动驾驶(百度/Apollo) | 多传感器融合、外参标定 | 激光雷达与相机外参标定流程,Ceres优化 |
| 机器人(大疆/优必选) | 机械臂手眼标定、运动学 | 眼在手上 vs 眼固定场景设计,Tsai方法 |
| AR/VR(华为/歌尔) | 相机与IMU标定、姿态解算 | 四元数互补滤波、旋转矩阵与欧拉角互转 |
| 芯片/视觉方案商(旷视/商汤) | 算法优化、数学原理理解深度 | 推导旋转矩阵导数,Lie群应用 |
面试官画像
- 技术深挖型(常见于大厂算法岗):从基础概念一步步追问到数学证明,如“证明旋转矩阵的特征值为1或一对共轭复数”。
- 工程落地型(常见于初创或量产部门):给定具体传感器型号,要求设计标定流程并考虑实际噪声。
- 理论推导型(常见于研究院):现场推导SE(3)的指数映射,或者四元数的BCH公式近似。
核心回答框架(结构图)
- Step 1 – 识别坐标系:明确问题中的源坐标系和目标坐标系,以及它们之间的物理关系(刚体/仿射)。
- Step 2 – 选择表达:根据场景选择旋转矩阵(便于组合)、四元数(便于插值)或欧拉角(便于理解)。
- Step 3 – 构建矩阵:写出齐次变换矩阵 [R|t] 或使用4×4矩阵,并检查维度一致性。
- Step 4 – 应用链式法则:若有中间坐标系,按顺序左乘或右乘,注意运算符先后。
- Step 5 – 验证与可视化:用数值正确性(逆变换、模长)或物理意义(旋转方向)进行快速校验。
完整示例回答
面试问题:“请解释如何将相机坐标系下的3D点投影到像素坐标?”
1. 定义:点P_cam = (X, Y, Z)
2. 归一化平面:x = X/Z, y = Y/Z
3. 加畸变(如果已知):径向畸变 k1,k2 -> 修正 (x', y')
4. 内参投影:u = fx * x' + cx, v = fy * y' + cy
5. 注意Z>0,否则点在相机后方
验证:可将像素点反投影回3D射线,检查一致性。
常见追问
| 追问方向 | 考察点 |
|---|---|
| 万向锁的本质? | 欧拉角奇异性和自由度丧失 |
| 四元数乘法为什么不满足交换律? | 四元数代数结构和旋转合成 |
| 旋转矩阵行列式为什么是1? | 正交性和手性约束 |
| 如何用李代数表示旋转? | SO(3)与so(3)的指数映射 |
避坑要点
- ❌ 坐标系方向假设:别默认所有坐标系都是右手系,先与面试官确认。
- ❌ 齐次坐标混淆:点用(x,y,z,1),向量用(x,y,z,0),否则平移会错误施加。
- ❌ 外参更新时左乘右乘不清:机器人移动后新位姿 = 原位姿 * 变换,或变换 * 原位姿需要明确。
- ❌ 忽略非刚性变换:有尺度的仿射变换或投影变换需要单独讨论。
- ❌ 背公式不理解:能推导旋转矩阵的正交基构造比背公式更容易应对追问。
—— 坐标系与变换,不仅会算,更要会讲。