这一页只回答一个问题:这份教程该从哪一章开始读、以什么速度读。下面 17 道题请在 20 分钟内闭卷做完,再按文末的分数→起点建议表选路线、按错题定位表回读对应页。
题目只考先修——数学基础、力学与空间直觉、编程与工具三类,不考本书正文。所以「做不出来」不等于「学不会」,只说明有一个前置工具需要先补上。
怎么用这份自测
- 闭卷、计时、不查资料:不会的题直接标记跳过——跳过比猜更有信息量(猜对会把缺口藏起来)。
- 每题都要读「诊断含义」:这一页的价值不在分数,而在告诉你缺口落在哪个工具上。
- 三组各有分工:A 组是第二、三、五章共用的数学地基;B 组决定你能不能把公式「想成图」;C 组决定你能不能把公式「跑起来」。
- 诊断是为了省时间,不是贴标签。三组全对的人可以从第一章速读完直接进第二章。
A1 · 形状与可乘性
设 A∈R3×4、B∈R4×2。AB 与 ATB 的形状各是什么?后者能不能算?
答案
AB∈R3×2(内维 4 对上);AT∈R4×3 要乘 B 需内维 3=4——不成立,不能算。
诊断含义:错这题说明还没有「先对形状、再动手」的习惯。齐次变换连乘(2.7)与雅可比的行列分工(3.1)全靠形状先行,这是必须补的第一课。
A2 · 正交性与行列式
Q=21[1−111] 是否正交?detQ 是多少?它是否属于 SO(2)?
答案
两行模长各为 1、内积 (−1+1)/2=0,故 QTQ=I2,正交;detQ=21(1−(−1))=1,故 Q∈SO(2)(它是绕原点转 −45∘ 的平面旋转)。
诊断含义:旋转矩阵的两条性质「正交 + det=+1」必须成为条件反射。只记得「转置等于逆」而忘了行列式,就回 2.2 重读「两个符号各有归属」一段。
A3 · 特征值
A=[01−10] 的特征值是什么?它在几何上表示什么变换?
答案
det(A−λI)=λ2+1=0⇒λ1,2=±i(一对共轭纯虚根)。A 就是 2 维版的 Rz(90∘)。
诊断含义:实旋转矩阵的复特征值总是成对共轭、模为 1,因此除 ϑ=0,π 外没有实特征向量(没有一条实轴被保持方向)。这条直觉是「为什么求 R 的逆要绕一圈走角和轴 / 四元数」的入口(2.5、2.6)。想不到这一点,线代需要补一轮。
A4 · 多元微分
f(x)=∥x∥2=xTx(x∈Rn)。求梯度 ∇f(x)。
答案
∇f=2x。逐分量看最清楚:f=∑ixi2,故 ∂f/∂xi=2xi。
诊断含义:这个结果会在三处反复出现——速度合成里对位置求导、伪逆的最小范数解、零空间项 k0(∂g/∂q)T 的构造(3.4)。梯度指向 f 增长最快的方向,其模长是该方向的方向导数。
A5 · 一阶小量
写出 ex 在 0 处的二阶 Taylor 展开与余项量级;写出 cosϵ 与 sinϵ 的一阶小量近似(∣ϵ∣≪1)。
答案
ex=1+x+2x2+O(x3),cosϵ≈1−2ϵ2≈1,sinϵ≈ϵ.
诊断含义:这就是「微小旋转在忽略二阶效应时像向量一样可加」的代数根源——Rk(dϑ)=I+Skdϑ+O(dϑ2),两个一阶项相加可交换。微分运动学整章都建立在这条近似上(2.3.2、3.1)。
A6 · 一阶线性常微分方程
解 y˙+T1y=Tku(u 为常数,y(0)=0),给出稳态值 y∞ 与时间常数。
答案
y(t)=ku(1−e−t/T),故 y∞=ku,时间常数就是 T(经 T 达终值的 63.2%,经 3T 达 95%)。
诊断含义:放大器的一阶惯性 VcVa=1+sTvGv 与直流的机械时间常数 Tm=kvktRaIm 是同一条曲线。这题会做,5.2.1 的四个方程就只是代数整理。
B1 · 坐标变换
点 P 在坐标系 O′ 中的坐标为 p′=(1,0,0)T;O′ 相对参考系 O 的旋转矩阵 R=010001100,O′ 原点在 O 中位于 o′=(2,1,0)T。求 P 在 O 中的坐标。
答案
p=Rp′+o′。Rp′ 就是 R 的第一列 =(0,1,0)T,故 p=(2,2,0)T。
诊断含义:这是齐次变换的作用规则(先转、再加平移),也是「R 的第 j 列 = 系 j 的 xj 轴在参考系中的方向余弦」的活用(2.7)。
B2 · 旋转的合成
从姿态 Rz(90∘) 出发,再绕新的 y′ 轴(即旋转后坐标系自己的 y 轴)转 90∘。写出最终的旋转矩阵。
答案
绕当前(动系)轴转用右乘:R=Rz(90∘)Ry(90∘)=00−1−100010。(自查:三列两两正交、模长各 1、detR=+1。)
诊断含义:口诀「右乘当前轴、左乘固定轴」是第二章的母规则——ZYZ、RPY、DH 的 Ai 连乘、角和轴的五步序列都是它的换装登场。记反了,第二章后面每道题都会错(2.3)。
B3 · 哪些矩阵是旋转矩阵
I3 与 −I3 中哪个是旋转矩阵?另一个是什么?为什么不能叫「转 180∘」?
答案
I3 是(det=+1);−I3 的 det=−1,是中心反演(镜像),不属于 SO(3)。「转 180∘」的公式是 R(π,r)=2rrT−I3,它需要一条实轴 r 被映到自己;−I3 把每个向量都反向,没有这样的轴。
诊断含义:detR=+1 不是装饰性约定,它承担「排除镜像」的筛选功能。凡由「三个正交向量」拼出的矩阵,都要查这一个数(2.2、2.5)。
B4 · 力臂与力矩
一根长 L=0.5 m 的无质量杆,一端铰接在原点,另一端受 F=20 N 的力。分别求:(a) 力垂直于杆时对铰点的力矩;(b) 力沿杆方向(推 / 拉)时对铰点的力矩。
答案
(a) 力臂等于力的作用线到铰点的垂直距离 L,故 M=FL=0.5×20=10 N⋅m。(b) 力臂为零(力线穿过铰点),故 M=0。
诊断含义:这就是雅可比移动行 JPi=zi−1×(pe−pi−1) 的物理原型——叉乘里那个矢径就是力臂。理解力臂才能理解「为什么某些位形下关节再怎么出力也推不动末端」(3.1、3.8)。
B5 · 角速度与线速度
刚体绕过原点的 z 轴以 ω=4 rad/s 旋转。刚体上一点位于 (0.3,0,0)(单位 m)。求该点的线速度向量。
答案
v=ω×p=(0,0,4)×(0.3,0,0)=(0, 1.2, 0) m/s。
诊断含义:v=ω×p 是 R˙=S(ω)R 的几何图像,也是雅可比角速度行 JOi=zi−1 的来历。手算叉乘不过关,第三章的逐列构造就会退化成抄公式(3.1)。
B6 · 自由度与工作空间
(a) 刚体在平面上、空间中各有几个自由度?(b) 只有两个转动关节的平面臂,末端能否到达工作区域内任意位置?
答案
(a) 平面刚体 3 个(两平移 + 一转动),空间刚体 6 个(三平移 + 三转动)。(b) 不能。两个转动关节只有 2 个自由度,末端落在二维平面内的一维曲线上,覆盖不了区域。
诊断含义:这条区分了「关节空间维数」与「任务维数」——只有 n 与任务实际维数 r 的关系才对得上号,n>r 即冗余(2.10)。它也是「可达工作空间 ≠ 灵活工作空间」的第一课(1.2)。
C1 · NumPy 的形状规则
A = np.random.rand(3,4)、B = np.random.rand(4,2)。A @ B 的形状是什么?写成 A * B 会发生什么?
答案
A @ B → (3, 2)(矩阵乘)。A * B 是逐元素乘,需要广播:(3,4) 与 (4,2) 无法对齐,抛 ValueError(broadcast 失败)。
诊断含义:@ 与 * 的差别是本书数值实验里最常见的错误。形状刚好兼容时矩阵乘错了不会报错,只会静默给出错误结果——比报错更危险。
C2 · 把公式翻译成代码
用 NumPy 写一个函数 Rz(t),返回绕 z 轴转 t 的 3×3 旋转矩阵。
答案
import numpy as np
def Rz(t):
c, s = np.cos(t), np.sin(t)
return np.array([[c, -s, 0.0],
[s, c, 0.0],
[0.0, 0.0, 1.0]])
诊断含义:注意写 0.0 而不是 0——否则整张矩阵的 dtype 会被隐式转换,后续精度判断容易出意外。这题写不出,各章习题集的「数值验证」类题目(第二章 C1)都要先补 Python 基础。
C3 · 合法性自检
给定一个 3×3 矩阵 R,写一两行代码判断它是否是合法旋转矩阵,并说明容差取多大。
答案
ok = np.allclose(R @ R.T, np.eye(3), atol=1e-10) and abs(np.linalg.det(R) - 1.0) < 1e-10
容差取 10−10 量级:双精度下几十步乘加的累积误差在 10−15 量级,留五个数量级余量既能容下正常误差、又能挡住离谱的矩阵。不要用 == 比较浮点。
诊断含义:本书的验算习惯是「每个解析解回代正运动学,每个 R 查 RTR=I、detR=1」。不会写这个自检,等于放弃对自己结果的第一次把关(2.2)。
C4 · 数值导数
写出用中心差分近似 dxdfx0 的公式,并说明它为什么比前向差分准。
答案
dxdfx0≈2hf(x0+h)−f(x0−h),
截断误差 O(h2);前向差分 hf(x0+h)−f(x0) 只是 O(h)——中心差分把一阶误差项对消掉了。
诊断含义:这是「用中心差分校验任何一个亲手推导的雅可比」的工具(3.1 小结、第三章 C1)。h 不能太小(会被舍入误差吃掉),工程上取 10−6 数量级。
C5 · 把结果画出来
要在同一张图上展示一条关节轨迹 q(t) 与它的速度 q˙(t)。你会怎么排布?最容易犯的两个错是什么?
答案
排布:分成上下两个子图、共享横轴(位置一张、速度一张)——两者单位不同(rad 与 rad/s),量级常差一个数量级以上。两个常见错:① 画在同一纵轴上,小量被压成直线;② 不标单位、不加图例,看过一遍等于没看。
诊断含义:教材图 4.1(三次多项式)与图 4.3(梯形速度曲线)都是「位置 + 速度」双图。判断一条轨迹是否满足约束、加速度在哪跳跃,全靠这张图(4.2.1)。
| 得分(共 17 分) | 路线 | 怎么读 |
| 15–17 | 快速通道 | 先读全书知识地图与五章「全章总结」(约 40 分钟)建立主线,然后直接从 2.1 通读第二章;第一章只在遇到术语时回查。各章习题集只做 B / C / D 组。 |
| 11–14 | 标准路线 | 按目录顺序读:第一章走「1.1 → 1.2 → 1.5」核心三节(1.3、1.4 第一遍可跳),再做第一章习题集 A、B 组,然后进第二章。C 组错的题先按错题定位表补上缺口。 |
| 7–10 | 夯实路线 | 从第一章导览起逐节通读,每节「常见错误清单」逐条自查;五章习题集先刷 A、B 组再碰 C、D 组;第二章的九张 DH 参数表必须亲手重推,不许抄。 |
| 0–6 | 先补先修 | 三组的「诊断含义」就是补课清单:A 组对应的线性代数(正交矩阵、特征值)与微积分(梯度、一阶小量)、B 组对应的静力学与三维坐标直觉、C 组对应的 Python / NumPy。补完再回本教程。宁慢勿跳——第二章之后的一切都建立在它们之上。 |
| 错题 | 缺的是哪块工具 | 回读 | 立刻补做 |
| A1 | 矩阵形状与可乘性 | 2.7、3.1 | 手写三个矩阵乘的形状,含两个不能乘的 |
| A2、A3 | 正交矩阵、detR=+1、实旋转矩阵的复特征值 | 2.2 | 由定义逐列验证 RTR=I,并解释 detR=±1 的归属 |
| A4、A5 | 多元微分与一阶小量 | 2.3.2、3.1 | 用 Rk(dϑ)=I+Skdϑ 重推「微小旋转可加」 |
| A6 | 一阶线性 ODE 与时间常数 | 5.2.1 | 由四个基本方程整理出 s(1+sTm)km |
| B1 | 齐次变换的作用规则 | 2.7 | 用 T 与 T−1 各变换一个点,核对往返一致 |
| B2 | 右乘当前轴 / 左乘固定轴 | 2.3 | 把 ZYZ、RPY、角和轴五步序列各写一遍并标出乘的方向 |
| B3 | detR=+1 的筛选功能 | 2.2、2.5 | 写出 R(π,r)=2rrT−I3 并验证迹为 −1 |
| B4、B5 | 静力学与叉乘的物理图像 | 3.1、3.8 | 对两连杆平面臂逐列写出 zi−1×(pe−pi−1) |
| B6 | 自由度、关节空间与任务维数 | 1.2、2.10 | 给三个任务定 (n,m,r) 并判断是否冗余 |
| C1、C2 | Python / NumPy 基础 | 各章习题集的 C 组 | 写 Rz(t)、Ry(t),用 Rz(t1+t2) == Rz(t1) @ Rz(t2) 验证 |
| C3 | 数值自检习惯 | 2.2 | 随机生成 1000 个 R,逐条查正交性与行列式 |
| C4 | 数值微分 | 3.1 小结 | 对三连杆平面臂的正运动学做中心差分,与解析雅可比比对 |
| C5 | 结果可视化 | 4.2.1 | 画出三次多项式与梯形速度曲线的位置 / 速度四联图 |
做完这一页:按上表补完缺口,再去做对应章节的习题集。想看考场长什么样,可跳到必考点竞技场(练快答与口述)与考场冲刺卷(练整卷节奏)——但不建议在三组都还有错题时直接冲那两页。