DEEP 157 · 第十四辑 · 小白机械课 · LEARN NOTES

收进学习手册 · 2026-09-11 · duck.whatled.com

解读 157 · 自由度与关节类型

解读对象:概念课 · 以 docs/新手学习文档.md §6「小白如何看懂和设计结构」(§6.1 运动链、§6.2 七问)为教材,数量与 ID 交叉引自 microduck-replica/docs/紧固件反推.md 与 docs/硬件规格速查.md
需要的前置:解读 01(14 个关节在总线上怎么排队);解读 35(髋部两条轴线)。

15 个舵机,14 个受控关节:差的那一个是嘴

"自由度"数的是一只机器人能独立活动的方式。人的手臂:肩能抡三下(前后、左右、转圈),肘弯一下,腕再两下——所以一条手臂 6 个自由度。鸭子这边,官方 README 说 "15 servos",但策略网络输出只有 14 维动作。差的那个不是数错:紧固件反推查过,xl330 舵机在整机里出现 15 次,其中 14 个受策略控制,第 15 个驱动喙/下颚,在 passive_* 连杆里,不进动作空间——嘴由上层逻辑控制(叼东西、叫),不归走路网络管。

14 个受控关节怎么分布,硬件规格速查的 ID 表一目了然:

部位 ID 关节
左腿 20–24 hip_yaw / hip_roll / hip_pitch / knee / ankle
右腿 10–14 同左(镜像)
颈头嘴 30–34 neck_pitch / head_pitch / head_yaw / head_roll / mouth

每条腿 5 个(髋 3 + 膝 1 + 踝 1),两条腿 10 个;颈头 4 个;合计 14。策略每个控制周期(50 Hz,每 20 ms)读一次 61 维观测,吐一次 14 维目标——"61 → 14"说的就是这 14 个数。

yaw / roll / pitch:三个轴的名字

舵机只绕一根轴转,所以设计关节的第一件事是选轴。航空姿态的三个词被借了过来,用鸭子自己的头就能记全:

髋部最讲究:hip_yaw(腿往前摆的方向)、hip_roll(腿往侧向张开)、hip_pitch(迈步)三轴叠在一起,人胯骨轴也是同样的三个自由度;膝和踝则各只有 1 个 pitch 型关节——离躯干越远,需要的自由度越少,这是省舵机的通用思路。

新手学习文档 §6.1 用 MJCF(robot_walk.xml)教读法:body 是刚体层级(谁挂在谁上),joint 是相对运动(绕哪根轴、允许转多少),inertial 是质量与重心,site 是传感器参考点。注意"关节"不等于"舵机":关节是模型里的一条转动约束(轴线 + 角度范围),舵机是实现这条约束的电机——先有轴的定义,再选执行器。

设计一个关节,先过七问

§6.2 给了每做一个零件的七问检查,这里挑与关节类型直接相关的四问:

  1. 它固定谁、允许谁动?(关节的本质就是"固定 + 允许")
  2. 旋转轴线在哪里?左右是否对称?(镜像件轴线不平行,走路就画圈)
  3. 舵机输出轴和外壳是否有硬限位?(允许转多少要靠限位落实,不能全靠软件)
  4. 轴承是否承担了侧向载荷,而不是让舵机输出轴硬扛?(输出轴同时扛重量会磨损齿轮箱——这正是下一步解读 158要讲的 14 颗轴承的职责)

§6.3 还给了验收顺序:量舵机 → 量打印腔体 → 空装 → 单关节手动活动 → 单舵机低负载 → 再扩大。一次只验证一个关节,是机械侧的"先单舵机后整机"。

你带走的收获

  1. 自由度 = 能独立活动的方式数;这只鸭子 15 个舵机、14 个受控关节——第 15 个管嘴,不进策略动作空间。
  2. 分布口诀:每腿 5(髋 yaw/roll/pitch + 膝 + 踝)× 2 + 颈头 4;策略接口就是 obs[1,61] → act[1,14] 的那个 14。
  3. pitch 点头、yaw 摇头、roll 歪头——轴的名字决定关节的功能;离躯干越远自由度越省。
  4. 关节 ≠ 舵机:关节是"绕哪根轴、允许转多少"的约束,舵机只是执行者,限位和轴承各补上模型不管的一段。

延伸

什么鸭 WHATDUCK · 复刻学习笔记 ← 全部手册 · 首页