1. 学习笔记开篇:我为什么要啃透这门课
机器人在我眼里一直是个很唬人的东西。大学期间我看过不少机械臂演示视频,觉得能写代码让六轴机器人动起来简直是魔法。直到我自己开始啃《机器人学导论》这门课,才意识到所谓“魔法”背后,是一套极其严谨的数学框架在支撑。用我自己的话说,机器人学就是把“我想让机械臂干什么”翻译成“每个电机该转多少度”的一门学问,中间要经过坐标变换、运动学求解、动力学建模、轨迹规划和控制策略一整条流水线。
这门课最劝退人的地方不是概念有多难,而是上手就是矩阵、偏微分、张量这些硬核数学工具,很多人刚看完绪论就打了退堂鼓。我当初也差点放弃,后来换了个思路:不追求第一遍就看懂所有公式推导,而是先搞清楚每一章在解决什么问题,再回头补数学,效果反而好很多。这份学习笔记就是按这个思路整理的,服务对象是两类人:一类是正在学这门课、被作业折磨的本科生,另一类是工作中需要补机器人理论基础、想从“调参侠”进阶为“能建模”的工程师。我会持续更新,把我踩过的坑、想通的卡点、推导过程中有价值的中间结论都写进来。
2. 整体学习框架:这门课的真正主线不在公式里
2.1 先建地图再上路:机器人学的五个核心模块
如果你打开教材目录,会看到位姿描述、正逆运动学、速度与静力学、动力学、轨迹规划、控制理论这么多章节,章节之间看起来是平铺的,实际上隐藏着一条强依赖链。我学习第二遍的时候才把这条链看清:机械臂的位姿描述是地基,正运动学负责把关节角映射到末端位置,逆运动学反向求解要抓的关节角,雅可比矩阵描述末端速度与关节速度的关系,也顺势给出奇异性分析和静力映射的工具,动力学则更进一步把力、惯量、加速度纳入方程,最后轨迹规划和控制策略再在这套模型上作业。
这条链的前半段都属于“运动学”范畴,核心思想可以概括成四个字:几何约束。机器人本质上是一串刚体通过转动关节或移动关节连接起来的开链机构,每个关节都在限制相邻两个刚体的相对运动,运动学就是把这些几何约束写成数学表达式。动力学则属于另一个层次,它回答的是“要让机械臂按照指定轨迹运动,每个关节需要输出多大的力矩”,这是从“会动”到“动得好”之间必须要走的一步。
2.2 学习顺序的重新编排:要不要按教材章节走
我的建议是:第一遍不要完全按教材章节顺序硬啃。我自己的安排是依次过完数学基础、平面运动学、空间运动学、速度分析、静力分析、牛顿-欧拉动力学、拉格朗日动力学、轨迹规划、关节控制。把速度分析和静力分析放在一起学,因为它们本质上共享同一个数学工具——雅可比矩阵,局部对照的效率奇高。常见教材把静力学放在了动力学后面,但雅可比矩阵的转置可以直接把末端力映射成关节力矩,这部分和速度分析放在一起反而更容易理解。
另一个重要的重排是:提前自学数值计算工具。教材里大量习题需要手算矩阵,但工程里我们必须借助工具。我的经验是提前掌握一个能算符号微分的数学库,很多推导从手算变成半自动,节省的时间足够多刷三轮习题。我待会儿在工具章节会详细说我的配置。
3. 刚体位姿描述与坐标变换:所有问题的起点
3.1 旋转矩阵到底在表达什么
这是整门课的起点,也是最容易被轻视的一章。很多同学以为旋转矩阵就是三个一组的数字,背下来公式就完事了,其实它的物理含义非常重要。旋转矩阵的每一列,描述的是被旋转坐标系的一个轴在参考坐标系中的投影。换句话说,你拿着一个坐标系绕某个轴转了某个角度,新的三个轴在旧坐标系里的“投影分量”排成一排,就是旋转矩阵。
我第一遍学的时候完全没抓住这个本质,结果后面看雅可比矩阵、惯性矩阵全是一团浆糊。旋转矩阵还有一个关键性质——正交性:矩阵的逆等于矩阵的转置,这个性质在坐标变换中极其好用,因为求逆的运算量远小于求转置。
3.2 齐次变换矩阵为什么能统一旋转与平移
旋转矩阵能描述姿态,平移向量能描述位置,但我们要同时处理两者时,单独分开写公式又繁琐又容易出错。齐次变换矩阵的发明解决了这个问题:把旋转矩阵和平移向量塞进一个4×4的矩阵里,坐标变换就变成了矩阵乘法。这就像给坐标变换做了一次“标准化接口”,无论连续嵌套多少次变换,都可以用一个矩阵连乘表达。
齐次变换矩阵的左上角是旋转矩阵,右上角是位置向量,左下角是1×3的零矩阵加上右下角的1。用这个矩阵做连续变换时,顺序至关重要。这件事我在本文靠后的常见问题部分会重点讲,因为几乎所有新手都会栽在“到底是左乘还是右乘”上。你只需要记住一个简单口诀:先发生的变换在右侧,或者反过来说,矩阵连乘的顺序反映的是相对参考系逐步嵌套的先后关系。
3.3 从欧拉角到四元数:不同姿态表达方式的取舍
旋转矩阵是9个数,但只有3个自由度,所以表达上有冗余。欧拉角用三个角就能描述姿态,直观且省空间,但存在两个致命问题:一是万向锁,当中间角达到某个特定值时,另外两个角的旋转轴会重合,导致自由度丢失;二是插值不平滑。
四元数在这两方面都有优势。四元数可以理解为一个包含实部加虚部的超复数,它的插值可以通过球面线性插值实现,不会出现卡顿和突变。这也是为什么现代机器人控制系统和游戏引擎里,姿态的内部表示几乎全是四元数,只在人机交互时才转成欧拉角给人看。我在做轨迹规划实验时,初始姿态和末端姿态之间的旋转插值如果用欧拉角,中间姿态经常会“抽风”,换成四元数以后,所有中间帧都平滑得令人舒适。
4. 正运动学与DH参数:把“关节角”变成“末端位姿”
4.1 DH参数表:一套让你机械地建立坐标系的规则
正运动学要解决的问题是:已知每个关节的转角,求末端执行器的位置和姿态。这个问题的输入输出都很明确,难点在于如何“系统化”地处理——毕竟6自由度的机械臂有6个关节,逐个手推肯定不行。DH参数表就是为了解决这个问题出现的:它用4个参数(杆长、扭角、关节偏距、关节角)来描述相邻两个坐标系之间的变换关系,把这4个参数填进一个标准矩阵模板,前后连乘就得到末端位姿。
我第一次建DH表的时候,最大的困惑是坐标系的z轴和x轴到底怎么摆。后来想明白了一个关键点:按DH规则建立坐标系时,z轴必须沿着关节的旋转轴方向,x轴必须沿着相邻z轴的公垂线方向,这样前一个坐标系到后一个坐标系的变换正好能被4个标准参数描述。当时自己还总结了一个笨办法:先把关节的旋转轴画出来,再画公垂线,再定原点,最后才补y轴,顺序不能乱。
4.2 正运动学的推导过程:一个完整案例
以常见的六轴机械臂为例做正运动学推导。建立DH参数表后,写出相邻坐标系的变换矩阵,共6个。将全部矩阵连乘得到机械臂末端在世界坐标系下的位姿矩阵。这个矩阵里,左上角是末端的姿态信息,右侧是末端的位置。
真到了写代码的时候,你会发现代码格式非常固定——几个矩阵乘法之后,再通过一些量取出位置向量。这里有个容易出错的地方:很多机械臂末端还有一个工具坐标系偏移,如果忽略了这一步,你算出来的“末端位置”和实际加工点差了工具长度。型号越大的机械臂,这个误差越明显,视觉引导装配的时候能差出好几毫米。
4.3 逆运动学的难点与突破思路
逆运动学是正运动学的反向映射,已知末端位姿求关节角。这个问题的难点在于:一是解不一定存在,目标位置超出机械臂工作空间时无解;二是解不一定唯一,多解时还要做最优选择;三是一般情况下没有解析解,只能依赖数值迭代。
我花了一个周末才真正理解逆运动学的核心思路:把末端约束拆成位置约束和姿态约束,再结合机械臂的构型几何特征联立方程。许多六轴臂的末端三个关节轴相交于同一点,利用球腕结构可以先把腕点位置求出来,再反推前三个关节角,最后求腕部三个角。这个解耦思路极大简化了求解难度,也是后面很多教材花大量篇幅讲解腕部解耦的原因。
实际编码时,除了求解析解,还要处理选解策略:比如连续运动场景下,每一帧的选择应该保证关节角变化最小,否则机械臂会出现不合理的摆动。这个问题在纯数学推导里不会出现,但一到实际控制就会暴露出来。我的做法是维护上一时刻的关节角,在多个可行解中选取与上一时刻总变化量最小的一组。
4.4 仿真工具箱与验证:让理论公式落地
建立正逆运动学模型之后,我强烈建议用一个仿真环境去验证。我自己的习惯分三步做:第一步,用数值计算库实现DH参数表和正运动学计算,手动输入一组关节角,算末端位姿;第二步,在仿真环境里导入同参数机械臂模型,给定相同关节角,读取末端位姿,和理论计算比对;第三步,随机生成几百组关节角,分别用正运动学问得末端位姿,再跑逆运动学找回关节角,对比的角度误差在容差范围内即可认为两者自洽。
这套验证方法帮我抓出过多个“理论正确但实际有误”的问题。比如有一次,我的DH参数表里漏了一个负号,数值计算和仿真软件的结果相差巨大,排查了很久才发现是坐标系方向与仿真模型定义不一致。所以我的教训是:理论上推导完成后,尽早和仿真工具对照,不要等到整个系统搭完才开始排查问题。
5. 速度运动学与雅可比矩阵:连接运动与力的桥梁
5.1 雅可比矩阵到底“雅”在哪里
雅可比矩阵在机器人学里处于绝对核心的位置。它是一个从关节速度映射到末端笛卡尔速度的线性变换,每个元素本质上是末端某个方向的速度对某个关节速度的偏导数。因为机械臂末端的线速度与关节角速度之间天然就是非线性关系,但在每一点线性化之后,就能用一个矩阵简明表达。
雅可比矩阵的另一层身份是力的映射器。末端执行器对外施加的力,映射到关节上的等效力矩,正好是雅可比矩阵的转置乘以力向量。这个对偶关系不是巧合,而是由虚功原理推导而来,也是连接运动学与静力学的桥梁,力控制策略的本质就在这一行公式里。
5.2 如何系统地求雅可比矩阵
求雅可比矩阵最机械的方式是逐列计算:对每个关节施加单位角速度,通过正运动学得到末端笛卡尔速度,这一列就是雅可比矩阵的第i列。但手算高自由度臂极其痛苦,我的建议是使用符号计算工具进行自动推导并整理成矩阵。
雅可比矩阵还有一个与构型相关的关键作用——分析奇异位形。当雅可比矩阵的行列式为零时,机械臂处于奇异位形,此时末端在某些方向上的运动能力丧失,关节速度会趋向无穷大,这在控制上非常危险。我在仿真环境里验证过:让机械臂靠近奇异位形时,某个关节的速度指令急剧飙升,现实中这种情况大概率烧电机或撞停机。提前算好机械臂的奇异轨迹,再在规划阶段绕开这些区域,是工程上一定要做的事。
6. 动力学与控制:从运动学进阶到“力与运动关系”
6.1 为什么运动学不够用了
运动学是在假设每个关节的运动都能完美追踪的前提下分析与设计,但真实电机有转矩上限,机械臂各关节之间存在强烈耦合与惯性影响。做完运动学之后,机械臂能“算得出”动作,但一旦高速运行,末端轨迹就会因动力学原因出现偏差。动力学建模回答的是“给定关节力矩,机械臂怎么动”的问题,或者反过来说,为了让机械臂实现指定轨迹,每个关节需要多少力矩。
学动力学之前觉得运动学就是机器人的全貌,学完之后才明白运动学只是骨骼,动力学才是肌肉。控制策略设计的核心几乎全在此。
6.2 拉格朗日法与牛顿-欧拉法:两套推导体系的选择
拉格朗日法从系统能量标量函数出发,用广义坐标写出动能与势能之差,再对广义坐标求导得到动力学方程。优势是推导规范、不涉及复杂约束反力,适合理解系统结构;代价是对多自由度系统,能量函数的求导运算量不小,手推容易出错。
牛顿-欧拉法基于每个连杆的力与力矩平衡递推,从基座递推到末端再反向回推关节力矩,计算效率高且适合计算机迭代,因此工程实时控制中更常见。
我的学习建议:理解用拉格朗日法,实现用牛顿-欧拉法。这本书在动力学推导上用拉格朗日比较多,但顺序上把两种都看懂,配合代码去比较,会对动力学方程的物理意义理解更深刻。
6.3 动力学方程里的每一项到底在干什么
动力学方程通常可以写成标准形式:惯性矩阵乘关节加速度、科氏力与离心力向量、重力项分别组成等式右边。很多同学背完公式就过去了,但每个物理项都应该对得上直觉。
惯性矩阵描述关节加速度对力矩的直接影响,对角线上的项是各关节自身的转动惯量,非对角项是关节之间的耦合惯量,实际操作中高速运动时耦合项会导致一个关节运动牵扯另一关节。科氏力与速度平方相关,在高速/大惯量场景下影响显著。重力项最直观——机械臂静态保持一个姿态时也必须输出力矩抵抗重力,这解释了为什么大臂关节的静态力矩比小臂关节大得多。
理解了这些项,再回头去看控制算法就顺了:简单的高增益控制相当于让这些动力学影响当作扰动来硬扛;前馈控制则把动力学方程中可预测的部分注入控制量,效果显著优于纯反馈的方案。
6.4 从位置控制到力控制:控制策略的分工
机器人控制策略最常见的规划是先把轨迹做合理规划,然后让底层控制器跟踪。仅做位置控制时,末端一旦撞到环境,位置误差便会堆积产生巨大力矩,导致事故发生。力控制在需要与环境交互的任务中因此必不可少。
力控制的基础是把力反馈引入控制环,最经典的方法是阻抗控制——不直接控制力,而是控制力与位置之间的动态关系,让机械臂在接触环境中表现出“弹簧-阻尼”特性。我实际调试中的体会是,阻抗参数的选取很依赖对工作对象刚性的预估,参数太硬则碰撞时冲击大,参数太软则跟踪精度差。
7. 轨迹规划与控制实现:让规划出的路径真正可执行
7.1 关节空间规划与笛卡尔空间规划怎么选
轨迹规划分为关节空间、笛卡尔空间两种方式。关节空间规划把每个关节角从起始值平滑过渡到目标值,计算简单且不会产生奇异问题,但末端路径在笛卡尔空间里并不可直接控制。笛卡尔空间规划直接规划机械臂末端的直线或圆弧轨迹,适合需要精确走直线的场景,但需要反复进行逆运动学运算并避开奇异位形。
在焊接、喷涂等场景要求末端走直线,必然选笛卡尔空间规划;而在点到点搬运或上下料场景中,关节空间规划就够用,实时性反而关键。选择依据总结下来就两条:任务是否要求末端路径形状,以及实时计算资源是否充足。
7.2 轨迹平滑的细节:梯形速度曲线与S形速度曲线
轨迹平滑是规划落地的第一步。最基础的梯形速度曲线由加速段、匀速段、减速段组成,实现简单但加速度存在突变,机械系统会感受到冲击。S形速度曲线让加速度连续变化,降低机械振动和电机冲击,代价是算法复杂度更高、总时间略长。
我的建议:凡是对机械寿命和稳定性有要求的生产环境,直接上S形速度曲线,不要省这点算力。一个简单的实现是三次样条或五次多项式分段拼接,用约束条件解出系数,再实时计算每个周期的位置、速度、加速度指令。
7.3 控制环路的搭建:位置环、速度环、电流环
轨迹规划产生参考位置序列后,变成长度可执行的控制指令,底层通常分为三环结构:最外层是位置环,把位置误差换算成速度指令;中间是速度环,把速度指令与编码器反馈的速度之差换算成电流指令;最内层是电流环,控制电机绕组电流实时跟随。电流环带宽最高,速度环居中,位置环最低,这是硬件层面稳定性的安排。
如果只有位置反馈而没有速度前馈,跟踪误差在高加速度阶段非常明显。解决方案是把规划出的速度、加速度直接叠加进控制量,这部分就回到了动力学前馈的基本思路。条件允许的情况下再做扰动观测器,用模型估算来补偿摩擦力和未建模动态,实际跟踪精度能提升一个量级。
8. 仿真工具、验证流程与持续迭代的经验
8.1 常见仿真工具对比与选型
机器人学学习阶段,仿真工具选型以低成本、易上手、能快速验证理论为先。我试过不下三种方案,最终固定下来的搭配是:数学计算库来算运动学与动力学,物理仿真环境做三维可视化验证,再配合一个机器人操作系统仿真框架用于算法移植验证。
数学计算库的优势在于符号计算能力,能够推导雅可比矩阵、动力学方程的解析表达式,这是学习阶段极其重要的“可解释性”来源。物理仿真环境则提供碰撞检测、传感器模型和物理引擎,能模拟真实机械臂的动力学响应。最后那个框架更适合后续向实际机器人平台迁移,因为它的消息通信机制与真机控制逻辑高度一致。
工具好不好用,核心看三点:文档全不全、社区活跃度、能不能自己二次封装。对于新手,一开始别追求功能大而全,能搭出一个“验证DH参数→正运动学→逆运动学→轨迹规划→简单控制”的闭环就够用了。
8.2 一个验证正逆运动学自洽性的完整流程
把验证流程写得更具体一点,方便你直接“抄作业”。第一步,根据机械臂图纸或仿真模型建立DH参数表,把各关节角度设为随机值,用正运动学求末端位姿矩阵。第二步,从末端位姿出发,调用逆运动学求解器求关节角。第三步,把求解出的关节角代回正运动学校验位姿是否一致。第四步,对数百组随机构型运行上述流程,统计最大误差、平均误差并输出日志。
我在这个流程里踩过不少坑。最典型的是逆运动学存在多解而选解函数默认选了与当前位形相差最远的解,导致验证结果出现“数学正确但物理跳变”的现象。后来我在求解器里增加一个选项,让它按关节角变化增量最小作为目标筛选,稳定性立刻提升。另一个问题是奇异性处理,随机生成的末端位姿可能刚好落入奇异位形邻域,此时数值迭代极慢且误差偏大,需要在验证程序中提前做雅可比条件数判断。
8.3 学习笔记如何持续更新而不烂尾
既然标题叫“持续更新”,就有人问怎么维持这个更新节奏。我的经验是三个字:碎片化。不要等到“学完整章”再写笔记,而是每弄懂一个小点就立刻记录,用模板记录:问题是什么、卡在哪、怎么解开的、有没有替代思路。
这样笔记积累下来,就是一份带着问题链的“学习过程快照”,比摘抄书上的公式有价值得多。每隔一段时间,我会把笔记里相同主题的内容重新整合一遍,去掉重复,把零散记录串联成系统的知识地图。目前这份笔记已从最初的十几页零散记录整理到了几十个主题模块,还在持续生长中。
9. 学习中常见的坑与我的排查方式
9.1 矩阵乘法的顺序:左乘右乘天壤之别
刚学齐次变换矩阵时,总觉得“反正是矩阵连乘,顺序换一下应该差不多”,实际上这是整门课里最典型的坑。用生活里的例子类比,先绕x轴转90度再沿新坐标系平移,与先平移再绕x轴转90度,结果完全不一样。机器人学里的变换都存在“相对于固定坐标系”还是“相对于自身坐标系”的区别,连乘顺序错了,末端位姿天差地别。
我解决这个问题的办法很简单:每次写变换矩阵连乘前,先在草稿纸上用箭头图画出坐标系的相对位置,再把箭头图的顺序对应到矩阵连乘顺序上。经过几次纠正,肌肉记忆就形成了。
9.2 逆运动学多解与最优选解
逆运动学求出的解经常不止一组。比如六轴机械臂的一个常见任务里,同一末端位姿可能对应四五组关节角解,而选错解会导致机械臂在两点之间走出一条“绕远路”的轨迹,甚至中途碰到障碍物。
选解的核心是定义约束与代价:优先避开关节极限,其次考虑运动连续性,再考虑能耗与避障。很多商用控制器默认按“最短路径”选解,但“最短”既可能指关节空间最短,也可能指笛卡尔空间最短,二者差异极大。自己实现选解时,务必明确目标函数是基于关节角增量还是末端距离。我用“上一时刻关节角到各组候选解的加权距离最小”作为默认策略,效果稳定。
9.3 奇异位形的初识与规避
奇异位形的课堂推导通常只告诉你“雅可比行列式为零”,但实际出现时有多危险,不做实验很难体会。我在仿真环境里用一个六轴臂做直线轨迹跟踪,轨迹的某一段要求末端沿某个方向运动,恰好机械臂在那个构型下沿该方向几乎没有可操作性,结果控制算法输出关节速度指令直接爆表,仿真画面里机械臂“抽搐”了一下。
自那以后,我在规划阶段就增加了奇异规避模块:实时计算当前构型下雅可比矩阵的最小奇异值,低于阈值时调整目标点或加入阻尼最小二乘解算,来保证关节速度不会发散。阻尼最小二乘的思路很简单——在求逆时加入一个小的正则项来避免矩阵接近奇异时数值不稳定,效果立竿见影。
10. 几张对我帮助很大的“总结表”
10.1 运动学与动力学公式速查
我自己整理了一张常用公式对照表,每次做题前先扫一遍,思路会很清晰。整理成表格形式放在笔记里,复习和查漏都很快:
| 主题 | 核心公式 | 主要用途 | 易错点 |
|---|---|---|---|
| 旋转矩阵 | R的列是被旋转轴在参考系的投影 | 姿态描述与坐标变换 | 忘记正交性 |
| 齐次变换 | T=[R p;0 1] | 旋转+平移统一表达 | 连乘顺序 |
| 正运动学 | T_end=T1×T2×…×Tn | 关节角→末端位姿 | DH参数方向 |
| 逆运动学 | 解析/数值解约束方程 | 末端位姿→关节角 | 多解/奇异 |
| 雅可比矩阵 | v=J×q_dot | 关节速度→末端速度 | 行数与自由度 |
| 静力映射 | tau=J^T×F | 末端力→关节力矩 | 转置不是逆 |
| 拉格朗日动力学 | M(q)q_ddot+C(q,q_dot)+G=tau | 力矩→加速度 | C项计算复杂 |
| 牛顿-欧拉递推 | 交替递推力与加速度 | 实时动力学计算 | 坐标系方向 |
10.2 公式速查表背后的学习心法
这张表不是用来死记硬背的,而是在你做到某道题、卡住某个环节时快速定位“我现在缺哪块知识”。比如你在算力控制,发现需要把末端力映射到关节力矩,一眼看到静力映射那一行,就知道要去找雅可比矩阵的转置。知识能“随用随查”,比考前突击背诵高效得多。
我还会在表格右边再加一列“我的理解”,用自己的话把公式翻译一遍。比如拉格朗日动力学那一行,我写的是“系统的动能与势能之差决定一切”,虽然不够严谨,但每次看到都能快速唤起物理直觉。
11. 两个值得持续深入的扩展方向
往后学,机器人学导论这本书的内容只是第一层地基,有两个方向值得深入,和实际工业项目与前沿研究关系都很密切。
第一个方向是移动操作与移动机器人建模。这个方向的重要背景是很多场景需要移动平台加机械臂的组合,所以不仅要考虑机械臂自身的运动学与动力学,还要考虑移动底盘的运动约束。常见做法是把移动底盘当作一个浮动基座,重新推导包含底盘自由度的广义坐标模型。这里原有的六轴臂相关公式依然适用,但要注意惯性矩阵和重力项都会因浮基而改变。
第二个方向是最优控制与运动规划的结合。经典的最优控制方法可以处理带约束的轨迹优化问题,把最大速度、加速度限制转化为优化约束,再结合机械臂动力学方程完成时间最优或能耗最优的轨迹求解。我是先学懂导论再去啃最优控制的,回头看速度与运动规划中很多“经验参数”,原来都是在最优准则下的近似解,有种补全拼图的感觉。
12. 最后分享几个实操心得
学这门课最大的感受是:只靠看视频和读书很难完全掌握,必须边推导边编程,认真完成教材里的习题,卡住了再看解析。每道习题都是一颗钉子,把理论和能力真正钉进工作框架里。
第二个心得是:尽量在早期就建立自己的“报错题库”。无论是数学推导还是仿真代码,遇到报错就记录下完整上下文、问题和解决方案。几个月后回看这些报错记录,你会发现那些当时让你夜不能寐的问题,在如今看来都只是通往精通的阶梯的一环。
最后一个小技巧:学习过程中不要只盯着机械臂,偶尔看看其他机器人的案例也有启发。比如并联机器人、移动机器人的运动学约束,解题思路大同小异,但构型差异会迫使你用更抽象的方式理解旋转矩阵与坐标变换。这个“切换场景”的动作,帮我更彻底地吃透了原本停留在纸面上的概念。
这份学习笔记还在持续更新中,后续我会把更多实操案例、推导细节和调试记录补进来。如果你也在啃这门课,希望这些经验能帮你少走几步弯路,把更多时间留给真正有趣的机器人设计与创造。