勘误与补注(对照原书、课件与板书)
本页收录第五章整理过程中发现的问题:E5.1 与 E5.2 是平台接口层的关键陷阱(会直接影响其他各周的素材获取),E5.3–E5.6 是本周素材的具体情况。正文已按此处结论校正。
E5.1 平台接口的 guid 陷阱:search-ppt 与 search-trans-result 要用教师流 guid
现象:用课件录像的 resource_guid 去查这两个接口,返回的是空列表:
GET /pptnote/v1/schedule/search-ppt?...&resource_guid=62b684a59dc24fd78cb262415c63663a
-> {"code":0,"list":[],"msg":"查询成功","total":0}
GET /courseapi/v3/web-socket/search-trans-result?...&resource_guid=62b684a5...
-> {"code":10002,"msg":"未查询到语音数据","total":0,"list":[]}
看起来像「平台还没处理完」,实际只是 guid 传错了。
依据(播放器源码 1.d7ad451b8d86543165bc.js):
i.resource_guid = this.liveInfo.segment_video_list[this.clipKey].teacher_list.resource_guid
正确用法:查 segment_video_list[<clip>].teacher_list.resource_guid(get-sub-info 的 data.resource_guid 就是它)。本周值:
| 项 | 值 |
|---|---|
course_id / sub_id | 144262 / 5877638 |
| 教师流 guid(两个接口都用它) | cee46cc20d8f44a588afddb2374a5d53 |
| 课件流 guid(只用于取录像直链) | 62b684a59dc24fd78cb262415c63663a |
第二个坑:search-trans-result 只认 resource_guid、忽略 sub_id。拿第 4 周的 guid 配第 6 周的 sub_id,返回的是第 4 周的内容(2716 句「讲轨迹规划」),不报错。所以核对时必须用 guid 与 sub_id 同时匹配的那一组。
验证方法:换对 guid 后,search-ppt 立刻返回 247 帧(ai3/ppt/20261013/e26a78a5-…/<毫秒>.jpg,公开直链,无需 cookie)。本编全部插图即由此获取。
E5.2 课件帧的时间轴:created 列早 120 秒,文件名的毫秒才是播放时刻
现象:search-ppt 每条记录同时给 pptimgurl(文件名是毫秒 id)与 created(秒)。两者的差恒为 −120 秒:
本编的实测(不靠推断,用图像对齐):取 8 个平台帧,在课件录像里做归一化互相关(NCC)搜索最佳匹配位置,结果
| 对比量 | 平均偏差 | 说明 |
|---|---|---|
| 最佳匹配时刻 − 文件名毫秒 | s | 吻合(NCC 0.985–0.995,峰值很锐) |
最佳匹配时刻 − created | s | 差整整 2 分钟 |
结论:文件名毫秒 = 播放时刻,created 是另一个时钟。课件录像与教师流本身是对齐的(两路时长只差 0.53 s;投影面 NCC 在偏移 0 处最大)。
注意:与
src/ch04/errata.md的 E4.1 冲突——E4.1 需复核。 第 4 周当时判定「created_sec才是播放时间、文件名毫秒是内部 id」,并据此重建了ppt_frames.csv。 本编下载了第 4 周课件录像复算,结论相反:
| 第 4 周课件帧 | 正文 / curated_map.tsv 标注 | 在录像中的实测位置 | NCC |
|---|---|---|---|
655994.jpg(封面标题页) | 0:08:56 | 10:57 | 0.997 |
1587675.jpg(全章目录) | 0:24:28 | 26:27 | 0.996 |
若按文件名毫秒为准,
src/ch04/的 29 处「课堂幻灯片 · mm:ss」图注与raw/week4/curated_map.tsv整体早了 2 分钟。 核验材料已就位:raw/week4/videos/week4_ppt.mp4。本编未改动第 4 章正文(不属于本周范围),仅在此标记,待复核后统一修正。
E5.3 本周平台语音转写未生成,转录由本地 whisper 完成
现象:search-trans-result 对本周恒定返回 {"code":10002,"msg":"未查询到语音数据","total":0}。
已排除的可能:换过两种 guid、不带 guid、以及播放器源码里的另一个参数 resource_id(0 / 1 / 空)——结果全部相同。对照组:同一 cookie 下第 3 周(sub_id=5863922 + 60f3b413…)与第 4 周(sub_id=5869130 + 6758c35f…)都正常返回。因此是本周这一讲尚未生成,不是权限或参数问题。
处理:本周转录改由本地 whisper.cpp + ggml-large-v3-turbo-q8_0 完成。两个必须处理的失效模式:
- 整段一次性转写会退化——解码器把自身输出当上下文循环,2:29 的音频只吐出「1,2,3,4」。按 600 s 分块是决定性的修正。
- 静音上幻听——课前与两个课间(49:14–59:58、1:39:20–1:43:30)吐出 299 段「优独播剧场——YoYo Television Series Exclusive」及纯标点段。文本侧清洗后由 2139 句降为 1757 句。
建议:过 1–2 天重跑一次平台接口(第 3 周是课后 2 天、第 4 周是 3 天抓的),届时可用平台转写与本编的本地转写互校。
E5.4 课件插页:5.4.1 出现在 5.3.1 之前
01:48:31 处老师把 5.4.1 力传感器页翻出来看了一眼,随后翻回 5.3.1 本体传感器。因此课件序列里夹着一张顺序外的 5.4.1(7052373.jpg,01:48:33)。本编按教材与讲授顺序归档,未把这页当成本体传感器的内容。
E5.5 课件帧的构成本编与第 3、4 周不同(平台盲区)
本编课件集 = 平台 247 帧 + 本地补 9 帧 = 256 帧,去重后 79 页(raw/dedupe_slides.py --th 5 --collapse)。
补的原因:平台的课件检测器在 43:00–55:08 有 729 秒盲区(另在 0:00–16:52 有 950 秒盲区,那一段是静止的标题页,无信息损失)。盲区里恰好是 5.1.2 伺服发动机与液压伺服发动机几页,平台没有抓到。补入的 9 帧由本地 raw/detect_slides.py(从第 3、4 周的同类脚本沿用)全片检测后,按「与最近平台帧相差 > 30 s」的规则筛选得到:
| 补入时刻 | 内容 |
|---|---|
| 44:11 / 46:51 / 49:03 / 49:07 | 5.1.2 伺服发动机(液压伺服发动机部分) |
| 141:15–141:27(4 帧) | 老师播放的 Micro-Epsilon 测距传感器厂商演示视频 |
注意:141:15–141:27 那 4 帧不是课件、也不是重复帧,而是厂商演示视频(激光三角测量在汽车车身、铝轮毂、催化剂圆度检测上的应用,见 5.4.2)。
E5.7 覆盖率核查记录(本编完工时的一次全量比对)
本编完工后做了一次三方对照核查,方法与本编与结果一并存档,供后续各章复用:
| 核查对象 | 方法 | 结果 |
|---|---|---|
| 教材 §5 的 38 个编号公式(5.1–5.45) | 逐个在正文中检索 | 38/38 全部引用 |
| 教材 §5 的 24 张图(图 5.1–5.24) | 逐个在正文中检索图号或内容关键词 | 内容全部覆盖(其中 8 张以内容描述而非「图 5.x」直引,如力矩控制框图、两种激光原理、透视变换) |
| 教材表 5.1(位置传感器对比) | 检索 | 已收录 |
| 79 页课件 | 逐页看图 → 对照正文 | 全部有对应;第 60–78 页为厂商演示视频帧,非课件 |
| 1757 句转录稿 | 术语表比对(105 个专业词)+ 老师叙述性段落精读 | 首轮发现 7 处未收录,已补入(见下) |
| 作业 5.1 / 5.6 / 5.7 | 与官方解答手册逐项数值对照 | 48 项断言全过(tools/verify_homework05.py) |
首轮核查发现并补入的 7 处(老师讲授、教材未载的内容):
- 为什么需要功放的具体量级:控制器是快速微电子电路(如 TTL,约 3.3 V、微安到毫安级),算下来信号功率只有 3.3 mW 量级,而电机是几十瓦到上千瓦——差 量级;但「信号有规律(幅值、相位)」,功放的任务是按这个规律调制能源的功率(00:09:29–00:11:20)。已补入 5.1。
- 本章与前后各章的对应关系表:老师开课前用约十分钟列了「第 2、3、7 章 = 机器人本体;第 4 章 = 为底层控制提供参考输入;第 8/9/10 章 = 控制器设计(运动 / 力 / 视觉);第 6 章 = 与控制硬件相关的系统级内容」(00:13:36–00:16:37)。已补入本章总览。
- 「模型不要求百分百准确,但要为参数调节提供初始参考」(00:14:53–00:15:37)——已补入总览。
- 本体感觉类比:人能感觉自身关节角度与输出力靠本体感觉,「机器人对应的是编码器与力矩传感器」(00:18:28–00:18:46)——已补入总览。
- 机械手还要接末端执行器:磨削工具 / 螺丝刀 / 剪刀等「跟实际应用相关的执行器」,其本身不属于本章(00:19:35–00:20:00)——已补入总览。
- 人也是控制回路的一环:可通过示教系统发指令、辅助完成动作;示教再现可借内部传感器储存轨迹,本身就是一种轨迹规划途径(00:20:59–00:21:28)——已补入总览并与 4.1 建立呼应。
- 讲授重点的明确交代(00:22:39–00:23:41):「三种驱动方式重点讲电气驱动」「尤其本体传感器重点讲位置传感器」「基本上用到电机就会用到编码器」——已补入总览,并与各节的优先级表对齐。
另补入两处老师的强调:
- 框图化简是考点(01:13:23–01:13:44):「复习一下本科(学过)的框图简化——比较点、引出点、前移、后移……如果考研的话,应该可以考到这个:给出框图,化简之后写出传递函数。」已补入 5.2.1。
- 两端情形的对比(01:29:05–01:29:49): 很大时「这个方程就可以线性化了」; 接近 1 时非线性「影响很大,我们做(控制)的时候就要考虑这个非线性」,而且「很多情况下即使知道(非线性)模型也不能处理」。已补入 5.2.3。
一处主动排除:老师提到的「外部传感器可以装在机器人上,也可能装在空间上」「温度传感器」等例子,前者属第 6 章系统级内容、后者教材已归入外部传感器一类,均按本章边界处理,未强行扩写。
E5.6 口述 ASR 系统性误识对照
本地 whisper 转写未逐字校对,技术名词的同音错字与第 2 周同源。代表例如下(括号内为本稿出现次数),引用前请核对原片:
| 转写原文 | 应为 | 转写原文 | 应为 |
|---|---|---|---|
| 承擦器(1)/ 中暖器(2)/ 通感器(1) | 传感器 | 四伏发动机(7) | 伺服电动机 |
| 缘码器(3)/ 码器(4) | 编码器 | 电磁转局(4)/ 专局 | 电磁转矩 |
| 三角森梁(2) | 三角测量 | 升纳测距(1) | 声纳测距 |
| 万力传感器(2) | 腕力传感器 | 视频相机(1) | 视觉相机(CCD/CMOS) |
| 质量(多处,如「间接的质量」) | 速度(间接测速) | 类洗成功(1) | 类型与选型(存疑,已核对原片) |
| 不受(多处) | 饱和(如「不受限制」→「饱和限制」) | 该量 / 该率 | 增益(多处,按上下文订正) |
课间段(49:14–59:58)整段无有效内容,正文不引用。
依据 Siciliano 等《机器人学:建模、规划与控制》第 5 章整理 · 三方对勘(中文版 / 英文原版 / 课件与录播)· 整理日期 2026-10-13