11 机器人学基础 · 坐标系与位姿变换
返回 00 - 项目总览与学习路线 | 下一节 12 机器人学基础 - 运动学与遥操作控制
为什么学这个(项目关联)
这是整个项目的数学地基。原文标定章节的一句话就是全部标定工作的本质:
“控制器坐标系与工具坐标系刚性固连,二者由一组固定平移 + 旋转变换关联。标定就是求解该变换矩阵。”
不理解坐标变换,就看不懂:
- 为什么”控制器原点和指尖存在距离会带来力臂效应”
- 为什么”工具轴仅 1° 旋转误差,就会让指尖位置偏移若干毫米”(旋转误差 × 力臂长度)
- 四种标定方法各自在解什么方程
知识点清单
核心(必须掌握)
- 刚体位姿 = 位置(3) + 姿态(3),共 6 自由度
- 本项目的坐标系族:
- 世界系 W(Quest 追踪系统的全局系)
- 机器人基座系、法兰系、工具系/指尖 TCP
- 相机光学系、控制器系、ArUco 标记系
- 旋转的三种表示及互转:
- 旋转矩阵 R ∈ SO(3):正交、行列式 =1、列是坐标系基向量
- 欧拉角(原文用的 ZYX:yaw-pitch-roll)、万向锁问题
- 四元数(Quest 输出格式)、单位四元数、q 与 −q 等价
- 齐次变换矩阵 T(4×4):
- 结构:
[R p; 0 1] - 复合:
T_AC = T_AB · T_BC(链式法则) - 求逆:
T⁻¹ = [Rᵀ, −Rᵀp; 0 1]
- 结构:
- 记法约定:
T_A_B表示”B 坐标系相对 A 坐标系的变换”;点变换p_A = T_A_B · p_B。读论文先确认作者约定,这是新手最大坑 - 外参 vs 内参:外参 = 坐标系之间的 T;内参 = 相机自身成像参数(见 19 视觉基础 - 相机模型与内参标定)
进阶(复刻时用到)
- 位姿误差度量:平移用欧氏距离;旋转用角度差
θ = arccos((tr(R)−1)/2) - 变换的螺旋/指数坐标表示(Modern Robotics 框架,选学)
- 概率视角:位姿估计的不确定性(99 分位误差半径的来源,见 23 实验方法论 - 误差分析与对照实验)
学习资源
| 资源 | 用途 |
|---|---|
| 《Modern Robotics》(Lynch & Park) 第 3 章 | 最推荐的免费教材,有中文翻译版 + B 站课程 |
| 《机器人学导论》(Craig) 第 2 章 | 经典替代 |
| 3Blue1Brown 四元数视频 | 直觉建立 |
scipy.spatial.transform.Rotation 文档 | 编程实践的标准库 |
实践任务
- ✍️ 手推:给定
T_W_C(世界→控制器)和T_C_T(控制器→工具),求T_W_T,并解释每一项含义 - 💻 用 numpy 实现:旋转矩阵 ↔ 欧拉角(ZYX) ↔ 四元数 三者互转,与 scipy 结果对拍
- 💻 matplotlib 画 3D 坐标轴可视化:两个坐标系 + 变换 T,直观理解”坐标系 B 在 A 中的位置姿态”
- 💻 模拟”力臂效应”:设控制器原点到指尖 10cm,让 R 有 0.5°、1°、2° 误差,算指尖偏移量,体会原文为什么说标定至关重要
- ✍️ 用本项目语言重述:四种标定方法(手眼/支点/重力/Quest-标记)分别求解 T 的哪个部分、用什么观测量
掌握标准(自测)
- 能不查资料写出 T 的复合与求逆公式
- 能向别人解释
T_A_B下标记含义并正确进行链式计算 - 能算出”1° 旋转误差 + 10cm 力臂 ≈ 1.7mm 指尖偏移”
- 能说清楚本项目中存在哪些坐标系、标定要求解的是哪两个坐标系之间的变换
关联笔记
- 下一步:12 机器人学基础 - 运动学与遥操作控制
- 应用:21 标定系统 - 手眼标定、22 标定系统 - 支点标定、重力姿态与Quest-标记标定
- 原文对应章节:01 - 原文存档 - Dream-UMI 开发手记
实践记录
(学习时在这里追加:日期 / 做了什么 / 踩坑 / 疑问)