
简介面向机器人学专业学生、工程师及自学者《现代机器人学力学、规划与控制》课后习题解答以单份PDF整理成册聚焦教材第2至第13章练习的参考推导与结论可用于课程复习、概念核对和自学查漏。压缩包内共1个PDF文件约13.97MB内容按章节顺序编排便于从运动学、动力学到规划与控制逐章对照。正文对自由度、约束与机构分析等核心题型给出较完整的推演例如多点定位系统的自由度求和与空间拓扑、上肢七自由度构成、固定掌心位姿后肘尖可移动圆弧等也涉及闭链关节数目讨论。读者可借助这些解答理解刚体约束、关节运动相互影响及机构运动特性并据此检验自己的推导过程。已有1247人学习适合希望借习题巩固机器人机构、运动学及控制基础并需要清晰解答作参考的读者。1. 机器人学知识地图机械、规划、控制三块拼成什么学现代机器人学有一个反直觉的地方真正拉开差距的不是后面的控制算法而是第二章的自由度计算。很多人看到 n(n1)/2 这种公式觉得太简单直接跳过结果到并联机构、闭链分析、抓取规划的时候连 N 和 J 都数不对。整本教材的骨架可以拆成三块构型空间和刚体运动回答“机器人能摆成什么样”正逆运动学和动力学回答“关节怎么动”轨迹规划和控制回答“怎么动到目标”。课后习题答案的价值不在于给你一个数字对错而是把每道题钉在这张地图的对应节点上让你看到公式从哪来、用在哪、什么时候会失效。2. 构型空间与自由度整本书的第一道分水岭2.1 构型空间是什么每个位姿都是一个点构型configuration是描述机器人所有可动部件位置的一组独立数。把这组数看成一个高维空间里的坐标这个空间就是构型空间C-space。机器人学的第一课就是把“机器人能摆成什么样”这个物理问题翻译成“C-space 里哪些点可达”的几何问题。这个翻译一旦完成后面所有分析——运动学、规划、控制——都有了统一的语言。梳理下来会发现C-space 的维数就是自由度而它的拓扑形状决定了能不能直接用欧氏距离做规划。一个 6R 机械臂的 C-space 是 T⁶六个环面的乘积末端位姿是 SE(3) 里的一个点一个轮式移动底座是 R² × T²加上机械臂后整个系统的 C-space 就是 R² × T⁸。前者是纯环面后者是欧氏空间和环面的混合——这个差别直接决定了路径规划算法能不能用直线插值。最容易忽略的是C-space 不是物理空间它只是一个数学抽象。同一个物理位姿在 C-space 里可能有多个表示比如关节角加 2π 不变这就是拓扑带来的麻烦。教材第二章 Exercise 2.1 讨论的“在空间中放置 k 个点”本质上就是在反复练这个翻译过程第一个点有 n 个自由度第二个点受一个约束剩 n−1 个第三个受两个约束剩 n−2 个依此类推总数是 n (n−1) … 1 n(n1)/2。这个求和里n 个是第一个点的线性自由度剩下 n(n−1)/2 个是旋转自由度。拓扑结构是 Rⁿ × Sⁿ⁻¹ × Sⁿ⁻² × … × S¹。每一层球面来自“下一个点必须与已放置的点保持距离”这个约束。把这条链子理清楚后面算任何机构的自由度都不会乱。2.2 自由度怎么数n(n1)/2 背后的约束逻辑自由度的严格定义是描述系统构型所需的独立参数个数。在 C-space 里它就是维数。但教材第二章反复练的不是定义而是具体计数的方法——给定一个机构数出 N连杆数含机架、J关节数、Σfi所有关节自由度之和然后套 Grübler 公式。Exercise 2.2 提供了一个好例子。一个上肢机器人肩部看作球关节4 自由度、肘部 1 自由度、腕部 2 自由度加上前臂绕自身轴线的旋转 1 自由度总共 7 自由度。当手掌的位置和姿态被固定时相当于加了 6 个约束刚体在空间的 6 个自由度只剩 1 个自由度——肘尖在圆弧上滑动。这说明 7 − 6 1逻辑上自洽。这里容易翻车的地方是约束不是关节。固定手掌是外部约束不是机构本身的关节所以它不出现在 N、J、Σfi 里而是直接扣自由度。Exercise 2.4 的双臂握方向盘是同一个逻辑每只手臂在方向盘固定时有 n−6 自由度方向盘本身可转又加 1 自由度总共 2n−11。如果数关节的时候把“手和方向盘的接触”当成一个关节结果就完全错了。2.3 拓扑结构Rⁿ × T^k 的混合空间C-space 的拓扑形状不是随便写的。Exercise 2.6 的轮式移动机械臂是一个典型底座是滚动轮式平台C-space 是 R² × T²6R 机械臂是 T⁶整个系统是 R² × T² × T⁶ R² × T⁸。这里 R² 来自底座在平面上的位置T² 来自底座的朝向和轮子转角T⁶ 来自六个关节角。拓扑的意义在于它决定了 C-space 是不是单连通的以及能不能用全局的欧氏坐标做规划。纯环面 T⁶ 上不能直接用减法算角距离0° 和 360° 是同一个点混合空间 R² × T⁸ 上欧氏部分可以用直线环面部分必须用模运算。这个细节在轨迹规划章节会反复出现。另一个容易漏的是闭链机构的 C-space 不是简单的乘积空间。Exercise 2.15 的五个正方形组成的闭链空间版本 Grübler 公式给出 0 自由度但机构实际上可以动。原因是 Grübler 公式假设所有约束独立而闭链里存在冗余约束。C-space 在这里是一条低维曲线嵌在 T⁶ 里不是整个环面。只看公式不验证物理可行性是这个方向最经典的坑。3. Grübler 公式平面与空间两套算法的逐项对照3.1 平面公式 3(N−1−J) Σfi 的逐项拆解平面机构的 Grübler 公式是dof 3(N − 1 − J) Σfi其中 N 是连杆数包括机架J 是关节数Σfi 是所有关节自由度之和。3 来自平面刚体的 3 个自由度两个平移加一个旋转N − 1 是活动连杆数去掉机架N − 1 − J 是独立闭环数。以 Exercise 2.9(a) 为例N 7 个连杆 1 个机架 8J 7 个 R 关节 1 个 P 关节 2 个 C 关节 10Σfi 7×1 1×1 2×2 12。代入dof 3(8 − 1 − 10) 12 3(−3) 12 3这里 C 关节是圆柱关节自由度为 2一个转动加一个移动。如果把 C 关节拆成 R P 两个独立关节来数N 和 J 都会变结果必须一致——Exercise 2.9(b) 就是验证这件事N 13 1 14J 16 2 18Σfi 18代入 3(14 − 1 − 18) 18 3。平面公式的适用边界很明确所有关节轴线必须平行或者所有运动都限制在同一个平面里。一旦机构有空间运动比如轴线不平行、有球面运动平面公式直接失效。3.2 空间公式 6(N−1−J) Σfi 的套用流程空间机构的 Grübler 公式是dof 6(N − 1 − J) Σfi6 来自空间刚体的 6 个自由度。其余变量含义不变。以 Exercise 2.5 为例N 6 1 7J 5 个 R 关节 2 个 S 关节 7Σfi 5×1 2×3 11。代入dof 6(7 − 1 − 7) 11 6(−1) 11 5注意 S 关节球关节的自由度是 3U 关节万向节是 2C 关节圆柱关节是 2R 和 P 是 1。这套数值必须记牢否则 Σfi 一定错。空间公式的坑在于“关节自由度”的认定。有些关节在特定构型下会退化比如 U 关节在某些角度下等效于 R 关节。Grübler 公式给的是全局自由度不是瞬时自由度。如果题目问的是某个特定构型下的瞬时自由度需要额外考虑雅可比矩阵的秩。3.3 关节自由度速查表下表是教材第二章反复用到的关节自由度对照数错了 Σfi 基本就是从这里开始的关节类型符号自由度 fi运动描述转动关节R1绕单轴旋转移动关节P1沿单轴平移圆柱关节C2绕轴旋转 沿轴平移万向节U2绕两个正交轴旋转球关节S3绕三个正交轴旋转注意平面机构中不会出现 S 关节和 U 关节因为它们的运动不在同一平面内。如果题目里出现了 S 关节却用平面公式结果一定错。Exercise 2.9(d) 是一个好例子N 5 1 6J 6 个 R 1 个 P 7Σfi 7平面公式给出 3(6 − 1 − 7) 7 1。如果误用空间公式6(6 − 1 − 7) 7 −5显然荒谬。判断用哪套公式的第一步就是看所有关节的轴线是否共面。3.4 公式背后的假设什么时候不能直接用Grübler 公式有一个隐含假设所有约束都是独立的。但闭链机构里经常出现冗余约束——某些约束被其他约束隐含了实际独立的约束比数出来的少。Exercise 2.15 是教材里最直接的例子五个正方形通过转动关节连接空间公式给出 dof 6(6 − 1 − 6) 6 0但机构实际可以动。原因是所有正方形边长相等这个几何条件引入了额外约束Grübler 公式分辨不出来。类似的还有 Exercise 2.16三个连杆加机架四个 R 关节所有连杆被约束在球面上运动。如果用空间公式dof 6(4 − 1 − 4) 4 −2结论是“不能动”但用平面二维球面公式dof 3(4 − 1 − 4) 4 1正确。这说明公式的维数选择必须匹配机构实际运动的子空间不能看到“空间机构”就无脑套 6。梳理下来会发现Grübler 公式的正确用法是三步先判断运动子空间平面、球面、空间再数 N、J、Σfi最后用物理直觉验证结果。如果算出来是负数或者零但机构明显能动就是公式失效了需要换维数或者用其他方法比如分析闭环约束的秩。4. 并联机构与闭链公式最容易失效的重灾区4.1 并联机构的自由度分析并联机构的自由度计算是第二章的重点题型。Exercise 2.7 给出了一个通用框架n 个开链手臂抓取同一个物体每个手臂的自由度为 α整个系统的自由度是 6 (α − 6)n。当 α 77 自由度手臂时dof 6 n当 α 6 时dof 6与手臂数量无关。Exercise 2.8 进一步推广无论多少条腿只要每条腿是 6 自由度开链整个并联机构就是 6 自由度。这个结果的直觉是每条 6 自由度腿给物体贡献 6 个约束但同时物体本身有 6 个自由度所以净效果是每条腿“锁死”物体的 6 个自由度n 条腿多出来的约束全是冗余的。如果腿的自由度不是 6冗余约束的数量就变了总自由度也跟着变。4.2 闭链约束与冗余自由度闭链机构的自由度计算比开链复杂因为闭环会产生冗余约束。Exercise 2.3 的前臂模型是一个典型肩部看作球关节3 自由度前臂由桡骨和尺骨组成闭链连接肱骨和腕骨。如果前臂闭链有 4 个关节整个手臂是 7 自由度如果有 6 个关节整个手臂还是 7 自由度但每个关节的平均自由度变了——4 关节时需要总共 10 个自由度平均 2.56 关节时需要 25 个平均超过 4。这说明闭链的关节数和自由度之间不是一一对应必须结合解剖约束来讨论。Exercise 2.12(b) 的另一个例子N 8 1 9J 4 个 R 5 个 P 9Σfi 9空间公式给出 6(9 − 1 − 9) 9 3。这里 3 个自由度来自三个独立的闭环每个闭环贡献一个约束。如果关节数或连杆数数错一个结果就完全变了。4.3 Grübler 公式的三个失效场景第一个场景是冗余约束闭链里有几何约束被重复计算导致公式给出的自由度偏低。Exercise 2.15 的正方形机构是标准案例——空间公式给 0实际是 1。第二个场景是维数选错机构实际运动限制在低维子空间球面、平面但用了高维公式。Exercise 2.16 的球面四杆机构空间公式给 −2二维公式给 1。判断依据是所有关节轴线的几何关系不是机构名字里有没有“空间”。第三个场景是关节退化某些关节在特定构型下失去自由度但 Grübler 公式按全局自由度算。比如 U 关节在两条轴线共线时等效于 R 关节瞬时自由度从 2 降到 1。Exercise 2.14(b) 提到三个 P 关节锁死时按公式机器人应该变成结构但实际上还能动——这就是局部构型下的约束退化。4.4 闭链分析的最佳实践做闭链分析时先画拓扑图标出每个连杆和关节再数 N 和 J。数完之后用两种方式验证一是换一种关节拆分方式重新数比如把 C 关节拆成 R P结果应该一致二是用物理直觉判断结果是否合理——自由度是负的说明约束过多是零但机构能动说明有冗余约束是正数但比预期大说明漏了约束。提示Exercise 2.17 的手术工具机构是综合题。工具在基座孔里自由移动时相当于没有关节约束dof 4工具必须穿过固定点时相当于加了一个 4 自由度的 SP 关节dof 2所有转动轴线交于一点时运动限制在球面上必须用二维公式。同一道题里三种情况用了三种不同的建模方式这是闭链分析最完整的练习。5. 易漏点与易错点自由度计算里五个最常见的坑5.1 第一个坑平面/空间/球面公式选错易漏点看到“空间机构”就直接套 6(N−1−J) Σfi不检查所有关节轴线是否真的在三维空间里独立。为什么漏教材把平面公式和空间公式放在一起讲题目描述里不会明确写“用平面公式”。Exercise 2.16 的球面机构就是一个典型——名字看起来像空间机构但所有连杆被约束在球面上必须用二维公式。怎么补拿到题先画关节轴线。如果所有轴线平行或共面用平面公式如果所有轴线交于一点球面运动用二维球面公式只有轴线在三维空间里独立分布时才用空间公式。不确定的时候两种都算一遍看哪个结果符合物理直觉。5.2 第二个坑把外部约束当成关节易漏点手按住物体、工具穿过孔、轮子在地面上滚动——这些是外部约束不是机构内部的关节不出现在 N、J、Σfi 里。为什么漏题目描述里经常写“固定”“保持”“接触”这些词容易被理解成关节。Exercise 2.2 的手掌固定、Exercise 2.4 的方向盘握持都是这种情况。怎么补把机构本身的连杆和关节单独列出来外部约束单独列一行直接扣自由度。公式里的 N 和 J 只算机构内部的元素。固定一个刚体相当于扣 6 个自由度空间或 3 个自由度平面不要把它折算成关节。5.3 第三个坑重叠关节没算进去易漏点多个连杆在同一轴线上的转动副几何上看起来是一个关节但拓扑上是多个关节。Exercise 2.10(c) 和 (d) 明确出现了“overlapping R joints”这个概念。为什么漏图上画的是一个点视觉上容易数成一个关节。但每个连杆对之间都有一个独立的转动副哪怕它们共享同一根轴线。怎么补数关节时按“连杆对”数不按“图上的点”数。N 个连杆如果首尾相连成闭环关节数至少是 N如果多个连杆共享轴线关节数还要加上重叠的部分。Exercise 2.10(c) 里 2 个 P 关节 10 个 R 关节 6 个重叠 R 关节 18 个关节这个“6”就是最容易漏的。5.4 第四个坑冗余自由度被公式吞掉易漏点闭链机构里存在几何冗余约束时Grübler 公式给出的自由度偏低甚至给出负数。为什么漏公式假设所有约束独立但实际机构里经常有“这个约束被另一个约束隐含”的情况。Exercise 2.15 的五个正方形就是标准案例。怎么补算完之后一定做物理验证。如果结果是零或负数但机构明显能运动说明有冗余约束。处理方法有两种一是换一种建模方式把闭链拆成开链加约束二是用雅可比矩阵的秩来分析独立约束数。5.5 第五个坑闭链关节数不唯一易漏点同一个闭链机构关节数可能有一个范围不是唯一值。Exercise 2.3 的前臂闭链可以是 4 个关节也可以是 6 个关节取决于解剖假设。为什么漏题目问的是“分析”不是“求唯一解”。很多人默认每个机构只有一个正确答案遇到范围就懵了。怎么补把所有可能的关节数都列出来分别代入公式说明每种假设下的结果。Exercise 2.3 的答案明确写了“如果假设最多 6 个关节……如果假设最少 4 个关节……”这就是标准做法。闭链分析的重点是推理过程不是最终数字。6. 复习清单与查漏流程把答案当镜子用复习第二章的正确方式不是把答案抄一遍而是拿一张白纸自己先算再对照答案找差异。下面是我梳理出来的查漏流程按顺序走一遍基本能覆盖所有高频错误。第一步判断运动子空间。拿到机构图先看所有关节轴线的几何关系共面用平面公式共点用球面公式独立分布用空间公式。这一步错了后面全错所以放在最前面。第二步数 N、J、Σfi。N 包括机架J 按连杆对来数Σfi 查关节自由度表。数完之后换一种拆分方式验证把 C 关节拆成 R P把 U 关节拆成两个 R结果应该一致。第三步套公式算 dof。平面用 3(N−1−J) Σfi空间用 6(N−1−J) Σfi。算完检查结果是否合理负数说明约束过多或公式选错零但机构能动说明有冗余约束。第四步物理验证。用直觉判断结果是否符合机构实际运动能力。如果答案和直觉矛盾优先怀疑公式失效而不是直觉错了。| 检查项 |本文还有配套的精品资源点击获取