简介:这份资源是《Modern Robotics: Mechanics, Planning, and Control》教材的课后习题解答,面向机器人专业学生、工程师及自学者,用于对照练习、巩固运动学与机构分析等核心知识。压缩包内共1个PDF文件,约13.97MB,按章节组织第2至13章解答,目录清晰便于按需检索。内容从自由度计算切入,如Exercise 2.1推导n(n+1)/2及空间拓扑Rn×Sn−1×…×S1,Exercise 2.2分析七自由度上肢机构与六约束下的剩余运动,并延伸至动力学、路径规划与控制理论等章节。读者可借此核对解题思路、理解约束与关节运动的相互影响,为机器人设计与控制实践打下理论基础。目前已有1248人学习下载,适合作为课程配套参考与查漏补缺之用。
1. 机器人学课后答案到底在讲什么:从一道自由度题说起
如果你翻过机器人学的教材,大概率见过一个看起来像天书的公式:Grübler 公式。它长这样——自由度 = 6(N − 1 − J) + Σfi,其中 N 是连杆数,J 是关节数,fi 是每个关节的自由度数。第一次看到它的人往往会愣住:这几个字母凑在一起,凭什么就能算出一个机械臂能怎么动?
这份《现代机器人学》课后习题答案,做的就是把这层“玄学”拆开给你看的事。它覆盖了原书第 2 章到第 13 章的习题解答,从最基础的自由度计算,一路延伸到运动学、轨迹规划和控制策略。第 2 章开篇的 Exercise 2.1 就在讲一个很朴素的问题:在空间里放第一个点有 n 个自由度,放第二个点就多了一个约束,自由度变成 n − 1,一直加下去,总数是 n(n+1)/2。答案没有停在公式上,而是顺手告诉你,这些自由度里 n 个是线性的,剩下 n(n−1)/2 个是旋转的,空间的拓扑结构是 Rn × Sn−1 × Sn−2 × … × S1。
你看,这就是这份资料的价值所在:它不是把答案甩给你,而是把“为什么这么算”一层层剥开。对正在啃机器人学的人来说,这种剥法比多背十个公式管用得多。
2. 自由度为什么是机器人学的第一道门槛:从数关节到看约束
2.1 自由度不是“能动的方向数”,而是独立参数的个数
很多人第一次接触自由度(DOF),会下意识理解成“这个机器人能往几个方向动”。这个理解不算错,但太粗糙。自由度更准确的说法是:描述一个系统状态所需要的独立参数个数。一个在平面上自由移动的硬币,位置需要 x、y 两个参数,朝向需要一个角度参数,所以是 3 个自由度。你把它拿起来悬在空中,就变成 6 个——三个位置加三个姿态。
Exercise 2.2 里有个很好的例子。答案分析了一条上肢机器人:肩部是球形关节,算 4 个自由度;肘部 1 个;腕部 2 个;前臂还能绕自身轴线转,再加 1 个。加起来是 7 个自由度。然后题目追问:如果手掌的位置和朝向都固定了,手臂还剩几个自由度?答案是 1 个——肘尖只能沿着一段圆弧滑动。这个推理过程其实在训练一种思维:约束每加一层,自由度就减一批,减到最后剩下的那个“还能动的东西”,才是真正的独立参数。
提示:自由度算的不是“关节数量”,而是“独立变化的参数数量”。一个球形关节虽然结构上是一个关节,但它贡献 3 个自由度,不能按 1 个算。
2.2 Grübler 公式的两套版本:平面用 3,空间用 6
这份答案里反复出现的一个操作,是区分平面机构和空间机构。平面版本的公式是 dof = 3(N − 1 − J) + Σfi,空间版本是 dof = 6(N − 1 − J) + Σfi。差别就在最前面那个系数:平面机构里每个刚体最多 3 个自由度,空间里是 6 个。
Exercise 2.5 给了一个空间机构的算例:N = 6 个连杆加 1 个地面,共 7 个;J = 5 个转动关节加 2 个球形关节,共 7 个;Σfi = 5×1 + 2×3 = 11。代入空间公式,dof = 6(7 − 1 − 7) + 11 = 5。每一步的数字来源都写得清清楚楚,你照着对一遍,就知道自己哪里算漏了。
这里有个容易翻车的地方:同一个机构,用错版本公式,结果可能完全相反。Exercise 2.16 里的球形机构,用平面版本算出来 dof = 1,机构能动;用空间版本算出来 dof = −2,等于宣判它是个死结构。答案特意点明:所有连杆都被约束在球面上运动,所以必须用二维版本。这种“选错公式就翻车”的细节,恰恰是自学时最缺的。
2.3 闭链机构的自由度:为什么答案要分“最多”和“最少”两种情况
Exercise 2.3 是整章里最能体现“工程思维”的一道题。题目分析前臂的闭链结构,但人体解剖的细节并不完全确定——肘部和腕部之间到底有几个关节,答案自己也没法拍板。于是它给了两条路:假设最多 6 个关节,用 Grübler 公式反推出前臂六个关节总共要有 25 个自由度,平均每个超过 4 个,这不是标准关节,得靠韧带复合体稳定;假设最少 4 个关节,反推出总共 10 个自由度,可以用两个万向节加两个球形关节来凑。
答案最后还补了一句大白话:这道题考的是正确的一般性推理,不是让你展示对人体解剖的详细理解。这句话很关键。它说明这份资料的目标不是让你背结论,而是让你学会在信息不完整的情况下,用公式框出可能性的边界。这种“分情况讨论”的写法,在后面第 3 章到第 13 章的动力学和规划题里还会反复出现。
3. 从单臂到多臂协作:自由度计算怎么应对复杂系统
3.1 轮式移动机械臂:C 空间是拼出来的
Exercise 2.6 把问题升了一级:一个轮式移动底座加一个 6R 机械臂,C 空间长什么样?答案的处理方式很干脆——轮式底座当成滚动硬币,C 空间是 R2 × T2;6R 机械臂的 C 空间是六个 S1 的乘积,也就是 T6;两者拼起来,整个系统的 C 空间就是 R2 × T8。
这个“拼积木”的思路值得单独拎出来说。很多初学者面对复合系统会懵,不知道该从哪下手。答案给出的方法很朴素:把每个子系统当成一个整体,先写出各自的 C 空间,再乘起来。底座管底座的两个平移加两个转动,机械臂管六个关节角,互不干扰的部分直接做笛卡尔积。你不需要一上来就盯着十几个关节发愁,先分块,再合并。
3.2 双臂抓同一个物体:关节数翻倍,自由度不一定翻倍
Exercise 2.6 的后两问更有意思。第二问里,6R 机械臂的末端被一个转动关节连到地面,相当于末端被“锁”住了。这时候 N = 7,J = 7,Σfi = 7,代入空间公式,dof = 6(7 − 1 − 7) + 7 = 1。原本 6 个自由度的机械臂,末端一接地,只剩 1 个自由度。
第三问再进一步:第二个相同的 6R 机械臂抓住第一个机械臂的末端连杆。N 变成 12,J 变成 13,Σfi = 13,算出来 dof 还是 1。两个六轴臂加在一起,自由度没有变成 12,也没有变成 6,而是 1。原因在于两个臂通过被抓的连杆形成了闭链,大量自由度被约束吃掉了。
这个结果对做多臂协作的人来说是个提醒:机械臂数量增加,不等于系统灵活性线性增加。闭链一形成,约束就会把自由度压下来。答案没有展开讲控制层面的事,但光是把数字算给你看,就已经够让人清醒了。
3.3 并联机构:腿越多,自由度不一定越多
Exercise 2.8 抛出一个反直觉的结论:把每条开链腿的自由度设为 α,n 条腿连同一个物体,代入空间公式,dof = 6 + (α − 6)n。当 α = 6 时,不管 n 是多少,dof 恒等于 6。也就是说,六自由度腿的并联机构,腿加到多少条,整体自由度都是 6。
Exercise 2.13 的六腿平台也是类似的路子:N = 8,J = 12 个球形关节,Σfi = 36,算出来 dof = 6。答案还补了一句平台的运动能力:可以同时平移和绕竖直轴旋转,也能水平移动。这句话把公式结果翻译成了人话——六个自由度具体是哪六个,平台实际能做什么动作。
注意:并联机构的自由度计算,容易在“关节数”和“自由度贡献”之间搞混。球形关节算 3 个自由度,万向节算 2 个,转动和移动关节各算 1 个,代入 Σfi 时不能一律按 1 算。
4. 常见误区与易混概念:这几个坑,初学者几乎都会踩
4.1 误区一:把“关节数”当成“自由度数”
易混点:看到 J = 7 就以为自由度是 7。为什么混:日常语境里“七个关节”听起来就像“七个能动的地方”。怎么区分:关节数只进 J,自由度要看每个关节贡献几个 fi。球形关节一个顶三个,万向节一个顶两个,转动和移动关节才是一个顶一个。Exercise 2.5 里 J = 7,但 Σfi = 11,最后 dof = 5,三个数字各不相同。
4.2 误区二:平面机构和空间机构混用公式
易混点:拿到题就套 6(N − 1 − J) + Σfi。为什么混:空间版本更“通用”,看起来更保险。怎么区分:看机构的所有运动是否被限制在一个平面或一个球面上。Exercise 2.16 的球形机构就是典型,用空间公式算出 −2,用二维公式算出 1,答案明确说必须用二维版本。判断依据不是公式本身,而是机构的运动空间维度。
4.3 误区三:以为 Grübler 公式永远给出正确答案
易混点:算出 dof = 0 就断定机构不能动。为什么混:公式看起来是精确的数学工具。怎么区分:Exercise 2.15 里五个正方形组成的机构,用空间公式算出 dof = 0,但答案紧接着说,在所有正方形等大的假设下,机构其实能以 1 个自由度运动,Grübler 公式区分不了这种情况。公式是必要条件式的估算,遇到过约束或特殊几何,得靠具体分析补刀。
4.4 误区四:把 C 空间的维度当成自由度数
易混点:看到 C 空间是 R2 × T8,就以为自由度是 10。为什么混:C 空间的维数确实等于独立参数个数,但那是整个位形空间的维数,不是机构在当前约束下的瞬时自由度。怎么区分:C 空间描述的是“所有可能状态的集合”,自由度描述的是“当前能独立变化的方向数”。Exercise 2.6 里移动机械臂的 C 空间是 R2 × T8,但那是底座加机械臂的整体位形空间,具体到某个抓取任务,约束一加,实际可动自由度会变。
4.5 误区五:忽略“闭链”对自由度的压缩
易混点:两个六轴臂协作,以为自由度是 12。为什么混:直觉上关节越多越灵活。怎么区分:看有没有形成闭链。Exercise 2.6 第三问里,两个 6R 臂抓同一根连杆,算出来 dof = 1。闭链一形成,约束方程就把大量自由度吃掉了。判断方法是先画连杆和关节的拓扑图,看有没有回路,有回路就要按闭链处理。
5. 什么时候该翻这份答案,什么时候别指望它
这份资料最适合的场景,是你已经读过教材、做过习题、卡在某一步算不下去的时候。比如你算 Exercise 2.9 的平面机构,N 和 J 都数对了,Σfi 也对,但结果跟答案差一截,翻到解答一看,原来是把转动加移动的组合当成了两个独立关节,而答案把它们合并成一个 2 自由度的圆柱关节来处理。这种“差在哪一步”的对照,是答案资料最实在的用法。
再比如 Exercise 2.14,答案算出 dof = 3,然后追问:如果把三个移动关节锁死,机器人应该变成结构,但它明明还能动。这个追问本身就是在教你识别 Grübler 公式的边界——公式算的是“一般情况下的自由度”,遇到特殊几何布置,实际可动性可能超出公式预期。你带着这个疑问回去翻教材的过约束章节,理解会比干读定义深得多。
但这份答案也有明确的“别用”场景。第一,别把它当教材替代品。答案里大量步骤是压缩过的,比如 Exercise 2.12 的 (d) 问,直接把 RFRRPR 子链当成一个 6 自由度关节处理,中间的四杆平行四边形怎么等效、为什么能等效,答案只给了一句结论。你没读过原书对应章节,光看这句会一头雾水。第二,别拿它来背题。第 2 章的习题换个连杆数、换个关节类型,答案里的数字就全变了,能迁移的只有“先数 N、再数 J、再算 Σfi、最后选对公式版本”这套流程。第三,别指望它覆盖所有细节。答案的定位是“习题解答”,不是“知识点大全”,第 3 章到第 13 章的解答同样遵循这个原则:给推理主线,不给教科书式的完整推导。
我自己的习惯是,每做完一道题,先不看答案,把 N、J、Σfi 和公式版本写在草稿纸边上,再翻解答对这四个数。四个数里只要有一个对不上,就说明概念有漏洞,回头补那一块,而不是把答案抄一遍了事。从那以后我每次碰自由度计算,都强制走一遍“数连杆、数关节、算贡献、选版本”这四步,再也没在公式选择上翻过车。希望这份资料也能帮到你,把机器人学里最基础的那道门槛,踏踏实实迈过去。
本文还有配套的精品资源,点击获取