机器人操作数学重学 00:让符号重新对应真实运动

《机器人操作的数学导论》(A Mathematical Introduction to Robotic Manipulation,Murray、Li、Sastry,简称 MLS)把刚体、机械臂、多指手和非完整系统放在一套几何语言里。第一次读时,难点常常不是某一个公式算不出来,而是还没看清“这个对象在描述什么”,就开始对它求导、换坐标、做指数运算。

这套笔记先把每个对象放回一个可以画出来的问题,再写公式。主线是一台两连杆机械臂:它的末端在哪里、怎样运动、能朝哪些方向运动、外力怎样传到关节、驱动需要怎样出力。最后用双指抓取和独轮车理解约束。所有插图和算例重新设计,作为原书的学习桥梁。

一、把六个问题接成一条线

先想象桌面上一台机械臂,末端夹住一个小物体。暂时不看公式,依次问:

问题 数学对象 它回答什么
相机看到的位置怎样交给机械臂? 坐标变换 gabg_{ab} 同一个点在两套坐标里分别写成什么数字
改变两个关节角,夹爪到哪里? 正运动学 g(q)g(q) 从机构内部坐标得到末端位姿
关节每秒转一点,末端怎样动? 雅可比 V=J(q)q˙V=J(q)\dot q 位姿映射在当前位置的一阶变化
在末端施加一个力,关节承受什么? 广义力 JTFJ^TF 用相同雅可比的转置映射功率对偶量
希望关节加速,需要多少驱动力矩? M(q)q¨+C(q,q˙)q˙+g(q)M(q)\ddot q+C(q,\dot q)\dot q+g(q) 惯性、速度相关项、重力分别贡献什么
指尖不能穿过物体,车轮不能侧滑,会怎样? 接触与速度约束 哪些运动、哪些接触力在物理上允许

这里的 gg 在前几行表示刚体变换,在动力学式中 g(q)g(q) 惯常表示重力广义力。相同字母在不同语境下可能不是同一对象。 笔记会在每次引入时说明含义;写自己的程序时应使用更明确的变量名,例如 pose 与 gravity_torque。

同一台两连杆机械臂中,关节角、末端位姿和运动轴的关系

阅读时不要急着把整本书的公式背下来。先判断当前公式位于上表哪一行,输入输出分别是什么,再进入计算。

二、五篇笔记怎样使用

专题入口在机器人操作数学:图解重学。

顺序 文章 先做的动作 最后应能解释
00 本篇:学习方法与符号地图 画一个坐标系和一台两连杆机械臂 为什么位姿、速度和力不能混成同一种向量
01 坐标、旋转与螺旋运动 转动坐标系,追踪一个点;绕偏置轴画圆 SO(3)SO(3)、SE(3)SE(3)、旋量、指数映射和伴随变换的作用
02 指数积、雅可比与奇异性 分别只转动一个关节,再把手臂伸直 为什么雅可比每一列是一个速度贡献,奇异性与任务怎样关联
03 从虚功到动力学与控制 推一下末端,比较关节力矩,再想象重力下的摆杆 为什么出现转置、质量矩阵与反馈误差方程
04 抓取约束与非完整运动 两指相向夹紧;让车前进、转向、后退、转回 内力为什么不推动物体,瞬时不能横移为何仍能绕出侧向位移

每篇都有图、可手算数值、关键推导和带答案的自检。01、02、03、04 中还嵌入了滑杆或逐步操作;页面不自动播放,先预测结果再调整输入。模型采用平面算例,是为了把三维公式中的关键关系看清楚;维度扩展与适用边界在正文说明。

三、先建立这张符号卡

整套专题统一使用列向量、右手坐标系、弧度参与计算、MLS 的线性部分在前排列。

记号 类型或维度 含义与检查方式
xax_a 3×13\times1 一个点在 a 系里的坐标;要问“在哪个系里”
RabR_{ab} 3×33\times3 b 系的轴用 a 系表示;RTR=I,det⁡R=1R^TR=I,\det R=1
gabg_{ab} 4×44\times4 把 b 系点坐标变到 a 系;xa=Rabxb+pabx_a=R_{ab}x_b+p_{ab}
q,q˙,q¨q,\dot q,\ddot q n×1n\times1 关节位置、速度、加速度;每一维的单位由关节类型决定
V=(v,ω)V=(v,\omega) 6×16\times1 运动旋量;空间 vv 一般不等于末端原点速度
V^\widehat V 4×44\times4 旋量的矩阵表示,左上为叉乘矩阵,右上为 vv
ξ\xi 6×16\times1 归一化运动轴;与实际速度 V=ξθ˙V=\xi\dot\theta 区分
JsJ_s 6×n6\times n 空间旋量雅可比;Vs=Jsq˙V_s=J_s\dot q
JpJ_p 3×n3\times n,平面可取 2×n2\times n 某个指定点的位置导数;p˙=Jpq˙\dot p=J_p\dot q
F=(f,τ)F=(f,\tau) 6×16\times1 力旋量;力矩必须说明关于哪个原点
τq\tau_q n×1n\times1 关节广义驱动力;转动关节为力矩,移动关节为力

已有的Modern Robotics 刚体笔记采用 (ω,v)(\omega,v)。两种书写方式都有效,换顺序时雅可比和伴随矩阵也必须一起变换。01 的对照段落给出具体置换矩阵。遇到六维向量,先读接口约定,不能凭“前 3 项看起来像位置”猜测。

同样是六个数,为什么不能直接相加

位姿不是“位置 3 项 + 任意角度 3 项”组成的全局欧氏向量。旋转有约束,角度参数有奇异与分支;把两个旋转矩阵逐项相加通常不再是旋转。速度则是位姿在某一时刻的变化方向,需要借助左乘或右乘变换,在一个明确的坐标系中表达。

“群”在这里先理解成:两个合法刚体变换可以复合,也可以求逆,结果仍合法。“李代数”先理解成:在单位变换附近描述瞬时运动的线性空间。指数映射把一个固定生成方向累计成有限运动。先认识这三个用途,再读抽象定义,会更容易知道定义要解决什么问题。

四、用一个算例贯穿三篇

取两根长 1 米的连杆,q1=0q_1=0、q2=π/2q_2=\pi/2:

p=(1,1)T,Jp=[−1−110].p=(1,1)^T,\qquad J_p=\begin{bmatrix}-1&-1\\1&0\end{bmatrix}.

先令关节速度为 q˙=(0.2,−0.1)T\dot q=(0.2,-0.1)^T,点速度为

p˙=Jpq˙=(−0.1,0.2)T m/s.\dot p=J_p\dot q=(-0.1,0.2)^T\ \mathrm{m/s}.

再让环境施加末端外力 fext=(1,0)T Nf_{\rm ext}=(1,0)^T\ \mathrm N,产生的关节广义外力为

τext=JpTfext=(−1,−1)T N m.\tau_{\rm ext}=J_p^Tf_{\rm ext}=(-1,-1)^T\ \mathrm{N\,m}.

用两边功率检查符号:

fextTp˙=−0.1 W=τextTq˙.f_{\rm ext}^T\dot p=-0.1\ \mathrm W =\tau_{\rm ext}^T\dot q.

负功率表示这股外力在当前运动方向上取走机械能。忽略重力且要静态保持时,驱动应提供 (1,1)T(1,1)^T 抵消外力;它和“外力映射出的广义力”不是同一符号。如果还要求加速,就必须再计算惯性与其他项,进入动力学。

这个例子给出一条检查链:位置靠几何核对,速度靠差分核对,力靠功率核对。 三种检查能够互相定位符号与坐标错误。

五、怎样回到原书

这套笔记不是逐页译写。它按理解依赖重组,重点覆盖原书第 2、3、4 章的基础,以及第 5–8 章中抓取和非完整约束的入口。高级多指手控制与一般非完整规划并未在五篇中完整展开;先把下面几个桥梁算通,再回书中细读相应推导。章节名称按作者公布的完整目录核对。

原书主题 先看本系列哪一篇 回书时带着的问题
第 2 章:刚体运动 01 速度是如何从约束求导出来的?为什么换原点会改变旋量线性部分?
第 3 章:机械臂运动学 02 每根轴在零位的坐标是什么?雅可比对应哪个任务与参考系?
第 4 章:动力学与控制 03 动能如何决定质量矩阵?稳定性证明用了哪些模型假设?
第 5–6 章:多指手运动学、动力学与控制 04 的抓取部分 接触力受哪些约束?内力与物体合力怎样分开?
第 7 章:机器人系统中的非完整行为 04 的独轮车部分 速度约束为何不能简单积分成一个固定的位置约束?
第 8 章:非完整运动规划 04 的四段运动与 Lie 括号,作为入口 怎样利用动作组合构造可达方向?一般规划算法还需回原书继续学习

作者在原书前言中说明了从单机器人到多指操作和非完整规划的组织思路;本系列的学习路线是在这条主线上的重新设计。教材和勘误从作者书籍页面进入,正式电子版见作者公开 PDF。

核对旧版公式时同时看作者勘误,尤其旋转角接近 π\pi 的轴提取、动力学下标和控制证明。这些勘误并不意味着所有类似公式都失效,而是提醒我们必须带着条件阅读。

六、四轮学习,逐步减少对答案的依赖

第一轮:只画。 给每个向量写上坐标系;画正转方向、关节轴和力的作用点。不展开矩阵,先用图预测符号。

第二轮:只算小例子。 使用 0、90°、两根单位长度杆等输入。每个结果都用另一个方法交叉检查,例如三角函数对照指数积。

第三轮:重新推导。 从 RRT=IRR^T=I 得到反对称矩阵;从 p˙=Jpq˙\dot p=J_p\dot q 和功率守恒得到转置;从动能写出质量矩阵。不要直接抄最后一行公式。

第四轮:主动找边界。 把机械臂拉直,令目标超出可达范围,改变力矩参考原点,令车执行有限角度的四段动作。解释哪条近似开始不成立,哪种约束仍然成立。

每轮都留下三样东西:一张自己的图、一个带单位的数值结果、一句话说明使用条件。重新读书时,这些记录比一长串没有上下文的公式更容易唤起理解。

七、图与数值如何复核

教学图由 tools/generate-robotic-manipulation-assets.mjs 确定性生成;网页计算位于 source/js/robotic-manipulation/model.mjs。在仓库根目录运行:

node tools/generate-robotic-manipulation-assets.mjs
node --test tools/test-robotic-manipulation-model.mjs

测试核对坐标变换来回转换、两连杆点雅可比的中心差分、力与速度的功率对偶、独轮车四段动作的解析终点。它们检查本系列算例和可视化的一致性;更一般的三维机构仍需按自己的建模约定验证。

继续到01:坐标、旋转与螺旋运动,从一个点的两套坐标开始。

知识共享许可协议