想象你是一位木偶戏大师傅。台下观众屏息凝神,你双手握着十几根丝线,每根线的松紧程度各不相同。你心里清楚每根线拉了多少——这些角度就是机器人的“关节角度”;但你必须算出:木偶的手此刻停在舞台的哪个位置、掌心朝向哪个方向?这个从“丝线松紧”推算出“手尖位置”的过程,就是正运动学(Forward Kinematics,简称FK)。它是机器人学的“地基”,所有机械臂控制、仿真、AI 抓取都建立在这座桥梁上。本文我们就从这台木偶戏出发,一步步拆解 D-H 参数、齐次变换矩阵、连杆坐标系与位姿计算方法,帮你搭建从“关节空间”到“笛卡尔空间”的完整认知。
正运动学是机器人学的地基。掌握 FK 对 AI 从业者意味着:能理解机械臂如何把关节指令转化为末端动作,这是机器人控制、仿真与智能决策的必备数学直觉。
目录
可视化演示
分步展示机器人正运动学从D-H参数建模、齐次变换矩阵连乘到末端位姿求解的完整流程,交互式观察关节角度映射。
本节配有交互动效(进入视口后自动加载,约 3KB)。
D-H参数建模与连杆坐标系 D-H参数用a/α/d/θ四个参数描述相邻关节坐标系的几何关系 DH = {a, α, d, θ} 系统化建模方法是机器人运动学的基础。
1. 运动学概述(对应思维导图一级分支 1)
木偶戏开幕前,后台的木偶师总会做一次“沙盘推演”:他手里每根丝线的松紧,对应的就是木偶各关节的角度;而木偶手在舞台上的精确站位与朝向,则是观众最终看到的“结果”。把这条从后台到台前的因果链用数学语言翻译出来,就是正运动学。正运动学的任务,是已知所有关节角度,唯一确定末端执行器的位置和姿态。
在机器人学里,所有关节角度拼在一起构成“关节空间”,它像一个装有 N 个旋钮的控制台;末端执行器所在的三维世界称为“笛卡尔空间”,是机械臂真正干活的舞台。两者之间不是简单的六爻对应,而是由连杆长度、关节偏置共同决定的非线性映射。研究正运动学,就是在打造一台“翻译机”,让控制台上的读数变成舞台上看得见摸得着的动作。有了这台翻译机,机械臂才能在焊接、搬运、抓取时做到“指哪打哪”。
这段“后台到台前”的映射,是机器人学的起点:路径规划需要它来预演动作,逆运动学需要它来反推关节角,而 AI 抓取需要它在视觉与执行之间建立坐标对齐。理解正运动学,你就拿到了通往机器人世界的第一把钥匙。
- 末端位姿矩阵\(\mathbf{T}^{0}_{n}\) 表示末端坐标系 \(\{n\}\) 相对基座坐标系 \(\{0\}\) 的位姿。好比一张“木偶手的舞台快照”,同时记录了站位和朝向。
- 映射函数\(f(\cdot)\) 是正运动学映射本身。它像一个精明的舞台调度,把“丝线松紧”翻译成“木偶造型”。
- 关节角度集合\(\theta_1, \theta_2, \ldots, \theta_n\) 是从基座到末端的 \(n\) 个关节角。它们就是木偶师手里 \(n\) 根丝线的当前读数。
2. 连杆与关节(对应思维导图一级分支 2)
木偶的身体结构很简单:一根根硬质木杆通过小轴销串起来。木杆就是“连杆”,轴销就是“关节”。没有连杆,关节无处安放;没有关节,连杆只能是一根死木头。机器人本体正是这种“骨肉交替”的链条结构,从基座开始,依次是连杆 0、关节 1、连杆 1、关节 2……直到末端的第六节连杆,像一条串联的糖葫芦。
关节并不只有一种玩法。最常见的是“转动关节”,像门轴一样绕一个固定轴旋转,木偶的肘关节就是这样;另一种是“移动关节”,像抽屉一样沿直线滑动,在一些直角坐标机器人和并联机构里很常见。每个关节提供的独立运动能力,称为一个“自由度”。人的手臂从肩到腕有 7 个自由度,所以画八字都绰绰有余;工业机械臂通常做成 6 个自由度,刚好够在三维空间中任意摆位置和姿态。
理解连杆与关节,是理解 D-H 参数的前提——正因为机器人是这种“杆—关节—杆”的交替结构,我们才需要一套规则为每一段肢体建立坐标系,记录它们之间的相对位置关系。
- 自由度总数DOF(Degree of Freedom)是整条机械臂能独立运动的方向数。好比木偶师能独立控制的丝线根数。
- 求和符号把每个关节贡献的自由度数累加起来。每个转动关节贡献 1 个自由度,每个移动关节也贡献 1 个。
- 单关节自由度\(f_i\) 是第 \(i\) 个关节的自由度。普通旋转关节只有绕轴旋转一个独立动作,所以 \(f_i=1\)。
3. D-H参数(对应思维导图一级分支 3)
木偶匠人制作木偶时,会画一张“设计图纸”:每段肢体多长、关节轴怎么偏、两段肢体之间错开多少高度,都写得清清楚楚。Denavit 和 Hartenberg 两位学者在 1955 年干了一件类似的事——他们发明了一套只用四个参数就能完整描述任意相邻连杆之间几何关系的“机器人图纸规范”,这就是 D-H 参数。
D-H 参数包含四个量:\(\theta\)(关节角)描述绕前一个关节轴 \(z_{i-1}\) 的旋转;\(d\)(连杆偏距)描述沿 \(z_{i-1}\) 轴的平移距离;\(a\)(连杆长度)描述两关节轴之间公垂线的长度;\(\alpha\)(连杆扭转角)描述两关节轴之间的扭转夹角。其中 \(a\) 和 \(\alpha\) 由连杆自身结构决定,是“天生”的常数;\(\theta\) 是旋转关节的变量,\(d\) 是移动关节的变量。使用时,我们按照“先转 \(\theta\)、再沿 \(z\) 平移 \(d\)、再沿 \(x\) 平移 \(a\)、最后绕 \(x\) 旋转 \(\alpha\)”的顺序,写出每个关节的变换矩阵。
有了这套“图纸规范”,无论机器人长成什么样——是六轴关节臂还是 SCARA 机器人——我们都能用一张四列多行的表格把它的身体结构描述清楚。这张表,就是后续所有运动学计算的起点。
- 绕 \(z\) 轴旋转\(\mathrm{Rot}(z, \theta_i)\) 绕前一个坐标系 \(z_{i-1}\) 轴旋转 \(\theta_i\)。好比木偶的肩关节先转一个角度,再装大臂。
- 沿 \(z\) 轴平移\(\mathrm{Trans}(z, d_i)\) 沿 \(z_{i-1}\) 方向平移 \(d_i\)。相当于两段肢体在“高度”上的错位。
- 沿 \(x\) 轴平移\(\mathrm{Trans}(x, a_i)\) 沿新 \(x_i\) 方向平移 \(a_i\),也就是两关节轴之间公垂线的长度,即连杆长度。
- 绕 \(x\) 轴旋转\(\mathrm{Rot}(x, \alpha_i)\) 绕新 \(x_i\) 轴旋转 \(\alpha_i\),描述两个关节轴在空间中的扭转角。
4. 齐次变换矩阵(对应思维导图一级分支 4)
木偶戏排练时,导演需要在不同工作人员之间传递指令:“从木偶的左肩坐标系看,手在哪儿?”每个关节就像一个“翻译官”,把上一个关节坐标系里的坐标,翻译成下一个关节坐标系的坐标。这个翻译官,数学上就是齐次变换矩阵。
齐次变换矩阵可以看作一个 \(4\times4\) 的“信息集装箱”:左上角 \(3\times3\) 的旋转矩阵 \(R\) 装着姿态信息(肢体朝哪个方向歪),右上角 \(3\times1\) 的平移向量 \(P\) 装着位置信息(肢体端点距离上一段有多远),底行固定为 \([0\ 0\ 0\ 1]\),起到“对齐格式”的作用。为什么要多这一行?因为有了它,复杂的“先旋转再平移”就可以写成一次简洁的矩阵乘法,而不需要把旋转和平移分开计算。这正是“齐次坐标”的魔法——它让几何变换变成统一的线性运算。
齐次变换矩阵是正运动学的“积木块”。下一节我们会看到,把每个关节的变换矩阵按顺序拼起来,机械臂末端位姿就会自然浮现——这正是正运动学求解的核心思想。
- 旋转矩阵块\(R_{3\times3}\) 描述姿态变换。木偶的肢体不仅会移动,还会转动,这部分记录的就是“转了多少”。
- 平移向量块\(P_{3\times1}\) 描述位置平移。记录“走了多远、往哪个方向走”。
- 齐次行\(0\ 0\ 0\ 1\) 是齐次坐标的固定底行。它像快递单上的“签名栏”,让矩阵乘法能把旋转和平移统一处理。
5. 正运动学求解(对应思维导图一级分支 5)
木偶师要算木偶手的位置,不可能一步到位。他的思路是:先看第一根丝线把肩膀带到了哪,再看第二根丝线让大臂转到了哪……一根一根捋下去,最后自然就知道手在哪里。正运动学求解也是这个“逐级传递”的思路:从基座开始,依次把每个关节的齐次变换矩阵乘起来,形成一条完整的传递链。
设第 \(i\) 个关节的 D-H 变换矩阵为 \(A_i\),则末端坐标系相对基座坐标系的变换矩阵就是所有 \(A_i\) 的连乘积。这里必须特别强调:矩阵乘法不满足交换律,\(A_1 A_2\) 与 \(A_2 A_1\) 的结果完全不同。你必须严格按照“基座→关节 1→关节 2→…→末端”的物理顺序连乘,就像木偶的丝线必须从肩膀传到肘部再传到手腕,绝不可能跳过中间环节。
实际计算时,先把每个关节的 D-H 参数代入第 3 节公式得到 \(A_i\),再逐次相乘。以 6 自由度机械臂为例,\(T^{0}_{6} = A_1 A_2 A_3 A_4 A_5 A_6\),最终矩阵的右上角三元素就是末端执行器的三维坐标,左上角 \(3\times3\) 矩阵就是末端的朝向。
- 第一个关节变换\(A_1\) 把基座坐标系变换到关节 1 的坐标系。这是木偶的第一根丝线——肩膀相对舞台的位置。
- 矩阵连乘\(\cdot\) 依次相乘,每乘一个矩阵就“传递”一个关节。顺序就是机器人从底座到末端的装配顺序。
- 末端位姿\(T^{0}_{n}\) 是最终得到的 \(4\times4\) 矩阵,左上角是末端姿态,右列是末端位置。
6. 位姿描述(对应思维导图一级分支 6)
木偶的演出定格在一个造型上:左手叉腰,右手高举。要描述这个造型,观众首先关心“手在哪儿”(位置),还要关心“手心朝哪边”(姿态)。这两部分合起来,就是“位姿”。位置好理解,就是三维坐标 \((x, y, z)\);而姿态则需要一套专门的数学语言。
姿态最朴素的载体就是 \(3\times3\) 旋转矩阵 \(R\),它由三个互相垂直的单位向量拼成。但旋转矩阵有 9 个数字,看着不够直观。于是工程上常用“欧拉角”来口语化描述姿态——最著名的是 RPY 角:绕 \(x\) 轴转的叫横滚角 roll,绕 \(y\) 轴转的叫俯仰角 pitch,绕 \(z\) 轴转的叫偏航角 yaw。就像描述木偶的姿势:“头歪了 10 度、低头 20 度、侧身 15 度”,三个数字就把姿态说清楚了。
在实际工程中,旋转矩阵、欧拉角、四元数三种姿态表示常常互换使用:矩阵适合计算,欧拉角适合人读,四元数适合插值。无论用哪种,位姿的“完整描述”永远是位置向量加姿态信息,一体两面,缺一不可。
- 俯仰角\(\beta\) 是绕 \(y\) 轴的俯仰角。好比木偶低头或抬头的角度。
- 安全反正切\(\operatorname{atan2}\) 是一个带两个自变量的反正切函数,能准确分辨四个象限,不会出现 30° 与 210° 混淆的尴尬。
- 矩阵元素\(r_{31}, r_{11}, r_{21}\) 是旋转矩阵第三行第一列、第一行第一列和第二行第一列的元素。它们藏着绕 \(y\) 轴旋转角度的“指纹”。
7. 工程应用(对应思维导图一级分支 7)
木偶戏正式开演了。台下的观众只看到木偶的精彩表演,而台后的木偶师手里那套“丝线—位置”的换算功夫,正是正运动学的用武之地。在真实的工业与 AI 场景中,正运动学无处不在:六轴焊接机器人要沿预设轨迹移动焊枪,控制器必须实时算出每个关节角度对应的末端位置;AGV 机械臂抓取物料箱时,视觉系统给出目标坐标,运动规划器算出关节序列,正运动学则负责校验“末端是否真的到了该到的地方”。
在数字孪生领域,正运动学更是不可替代:工程师把机械臂的 D-H 参数表输入仿真软件,虚拟机械臂就会精确复刻真实机械臂的每一个动作。AI 与机器人结合的场景中,抓取算法输出的关节角度,需要正运动学验证末端位姿是否落在工作空间内,同时避开奇异位形。正运动学不仅是理论推导的工具,更是工程验证的“标尺”。
从工业产线的焊接机器人,到实验室里的仿人机械手,正运动学始终是连接“关节角度”与“世界坐标”的桥梁。读懂这座桥,你就读懂了机器人如何认识自己的身体。
- 实测位置\(\mathbf{p}_{\mathrm{act}}\) 是激光跟踪仪或视觉系统测到的末端真实位置。好比用卷尺量出木偶手实际停在哪。
- 计算位置\(\mathbf{p}_{\mathrm{fk}}\) 是正运动学根据关节角算出来的理论位置。好比木偶师根据丝线松紧推算出的“纸面答案”。
- 误差范数\(\|\cdot\|\) 求两点的欧氏距离。误差越小,说明 D-H 参数越准、机器人装配越精确。
AI 应用场景
场景一:AI 视觉抓取流水线
阶段:感知 → 决策 → 执行
解决的问题:传统视觉抓取只给出目标物体的像素坐标或 3D 坐标,但机械臂控制器只认“关节角度”。如果没有正运动学把关节角换算成末端位姿,视觉看到的“工件在哪儿”和机械臂实际“抓到哪儿”就无法对齐,抓取就会落空。
具体案例:仓储分拣机器人用 3D 相机识别货架上包裹的位置,视觉算法输出目标坐标;接着运动规划模块反解出各关节角度序列;在真正下爪之前,正运动学实时校验“以这样一组关节角,末端是否正好落在目标位置”。一旦发现偏差,立即修正再执行。
场景二:机械臂数字孪生仿真
阶段:模型验证与算法预演
解决的问题:直接在真实机器人上调试算法成本高、还可能撞坏设备。数字孪生系统中,正运动学充当“虚拟替身”的骨骼——只要输入 D-H 参数表,虚拟机械臂就能在仿真环境中精确复现真实机器人的末端轨迹。
具体案例:某汽车工厂引进新型七轴机械臂,工程师在仿真平台中导入 D-H 参数,让虚拟机械臂沿一条新规划的焊接轨迹移动。通过正运动学实时计算的末端位姿,观察机械臂在每一个关节角度下是否会与工装夹具发生干涉,提前发现运动学奇异点。
场景三:遥操作人机协同
阶段:人机交互与安全监控
解决的问题:在核电站检修、手术机器人等场景中,操作员通过遥操作杆远程控制机械臂。遥操作杆给出的是“期望的末端速度”,但操作员需要实时感知“当前机械臂末端到底在哪、朝哪边”。正运动学把每个关节编码器的实时角度映射为末端位姿,让操作员在屏幕上看到机械臂的实时状态。
具体案例:微创手术机器人系统中,医生操作主手,从手端的每个关节角经过正运动学解算,实时渲染出手术器械末端在患者体内的精确位置和朝向,帮助医生精准操作。
Python 演示
import numpy as np def dh_transform(theta, d, a, alpha): """根据D-H参数构造单个关节的齐次变换矩阵""" ct, st = np.cos(theta), np.sin(theta) ca, sa = np.cos(alpha), np.sin(alpha) return np.array([ [ct, -st * ca, st * sa, a * ct], [st, ct * ca, -ct * sa, a * st], [0, sa, ca, d], [0, 0, 0, 1], ]) def forward_kinematics(dh_params): """输入N*4的D-H参数表, 返回末端位姿矩阵""" T = np.eye(4) for theta, d, a, alpha in dh_params: T = T @ dh_transform(theta, d, a, alpha) return T def main(): # 三连杆平面机械臂的关节角(弧度) q = [np.radians(30), np.radians(45), np.radians(-15)] # 连杆长度(米) l1, l2, l3 = 0.4, 0.3, 0.2 dh_params = [ (q[0], 0.0, 0.0, 0.0), # 关节1: 绕z轴旋转 (q[1], 0.0, l1, 0.0), # 关节2: 连杆1沿x方向 (q[2], 0.0, l2, 0.0), # 关节3: 连杆2沿x方向 ] T = forward_kinematics(dh_params) # 提取末端位置(T矩阵右上角3x1) pos = T[:3, 3] print("末端位置: x={:.3f} m, y={:.3f} m, z={:.3f} m".format(pos[0], pos[1], pos[2])) # 几何验证: 用角度叠加直接验证正运动学结果 x = l1*np.cos(q[0]) + l2*np.cos(q[0]+q[1]) + l3*np.cos(q[0]+q[1]+q[2]) y = l1*np.sin(q[0]) + l2*np.sin(q[0]+q[1]) + l3*np.sin(q[0]+q[1]+q[2]) print("几何验证: x={:.3f} m, y={:.3f} m".format(x, y)) print("正运动学解算成功!") if __name__ == "__main__": main()
T = np.eye(4)初始化单位矩阵作为“起点”,相当于木偶戏从舞台坐标系(基座)出发。T = T @ dh_transform(theta, d, a, alpha)矩阵连乘。每乘一个关节的变换矩阵,丝线就传递一格,最终得到末端位姿。pos = T[:3, 3]提取末端位置。齐次矩阵中,前三行最后一列正是位置向量。x = l1*np.cos(q[0]) + l2*np.cos(q[0]+q[1]) + ...几何验证法。用三角函数逐段叠加角度,直接算出末端坐标,与矩阵连乘结果对比。if __name__ == "__main__":程序的入口,相当于木偶戏开演的“起幕铃”,只有直接运行这个脚本时才执行主逻辑。
常见误区
误区“D-H 参数表里每个关节都有一个 θ,那末端朝向就是所有 θ 加起来吧?比如 θ1=30°,θ2=45°,末端就是朝 75°?”
正解这个直觉在平面机械臂的简单情形下碰巧成立,但推广到三维就完全错误。D-H 参数中的 θ 描述的是“绕前一关节 z 轴的相对转角”,末端的绝对朝向取决于所有旋转矩阵的连乘结果,旋转矩阵乘法不是简单的角度叠加。三维空间中,两个旋转的合成需要矩阵乘法或四元数乘法,而不仅仅是角度的算术和。
为何常见:因为一维角度叠加的习惯根深蒂固,人们很容易把“角度”当成普通的数直接相加,忽略了旋转的非交换性。
误区“机械臂三根杆分别长 0.4m、0.3m、0.2m,那末端离基座一定是 0.9m。”
正解连杆长度之和只有在所有关节角都为 0、机械臂完全伸直时才成立。只要关节一转,每根连杆对末端位置的贡献方向就不同,需要用三角函数把每段在 x、y、z 方向上的投影累加。比如 30°、45°、-15°的关节角下,末端实际距离可能只有 0.7m 左右。
为何常见:初学者容易把“连杆长度”与“末端位移”混为一谈,忘了向量有方向,长度只是向量的一部分信息。
误区“反正都是乘法,\(A_1 \times A_2\) 和 \(A_2 \times A_1\) 结果应该差不多吧?”
正解矩阵乘法是“非交换”的,顺序就是物理世界的因果顺序。必须先让基座“遇到”第一个关节,才能把坐标系传递给第二个关节。调换顺序等于让木偶先甩手腕再转肩膀,结果自然天差地别。牢记:连乘顺序 = 从底座到末端的装配顺序,一步也不能乱。
为何常见:普通数字乘法满足交换律,这个根深蒂固的代数直觉在矩阵运算中完全不适用。
误区“D-H 参数嘛,网上抄一份参数表,直接套进公式算就行了,标准和改进有什么区别?”
正解标准 D-H(SDH)的坐标系建立在“前一关节”上,变换顺序是 Rot(z,θ) → Trans(z,d) → Trans(x,a) → Rot(x,α);而改进 D-H(MDH)的坐标系建立在“本关节”上,变换顺序是 Rot(x,α) → Trans(x,a) → Rot(z,θ) → Trans(z,d)。两者参数定义和矩阵形式都不同,混用会导致巨大的计算错误。使用前必须先明确采用的是哪种约定。
为何常见:互联网上两种 D-H 教学资料鱼龙混杂,很多教程没有明确标注自己用的是哪一种,初学者照搬时极易张冠李戴。
误区“我直接用 \(\sin(30)\) 算就行了吧?反正计算器都能算。”
正解NumPy 等数学库的三角函数默认使用弧度。如果传入 30(度),得到的是 \(\sin(30\ \text{rad})\) 而不是 \(\sin(30°)\),结果会相差近 30 倍。正确写法是先转弧度:np.radians(30) 或 30 * np.pi / 180。这一条看似基础,却是新手最常踩的坑,也是很多人矩阵算出来“对不上号”的元凶。
为何常见:日常生活中角度习惯用“度”,而数学库和公式推导默认用“弧度”,两种单位制的切换容易被忽略。
面试题
Q1. 正运动学解决的核心问题是?
- A.根据末端位置反推各关节角度
- B.根据关节角度推算末端位姿← 正确答案
- C.规划机械臂的无碰撞运动轨迹
- D.识别物体在相机图像中的坐标
答案:B。正运动学就是“已知关节角度,求末端位姿”的正向映射。A 是逆运动学,C 是运动规划,D 是计算机视觉问题。
Q2. 齐次变换矩阵中,左上角 3×3 矩阵表示?
- A.末端位置向量
- B.姿态旋转矩阵← 正确答案
- C.关节速度向量
- D.连杆长度标量
答案:B。齐次变换矩阵 \(T=\begin{bmatrix}R & P \\ 0 & 1\end{bmatrix}\) 中,左上角 \(3\times3\) 是旋转矩阵 \(R\),描述姿态;右上角 \(3\times1\) 是平移向量 \(P\),描述位置。
Q3. D-H 参数中,代表连杆长度的符号是?
- A.关节转角 θ
- B.连杆偏距 d
- C.连杆长度 a← 正确答案
- D.关节扭转角 α
答案:C。D-H 四参数中,\(a\) 是两关节轴公垂线的长度,即连杆长度;\(\alpha\) 是连杆扭转角;\(\theta\) 是关节角;\(d\) 是连杆偏距。
Q4. 关于 6 自由度机器人到达任意位姿的条件,下列说法正确的是?
- A.六个自由度是必要非充分条件← 正确答案
- B.腕部三轴交点是充分条件之一← 正确答案
- C.自由度数越多一定越灵活
- D.到达奇异位形也能完成任意运动
答案:AB。自由度为 6 是可达任意位姿的必要条件,但存在奇异位形,因此非充分;腕部三轴相交(Pieper 准则)是存在解析解的充分条件。自由度增多可能带来冗余,但不等于“一定更灵活”;奇异位形下机械臂会丢失某个方向的运动能力。
Q5. 标准 D-H 法中,四个基础变换的正确顺序是?
- A.旋转 z → 平移 z → 平移 x → 旋转 x← 正确答案
- B.平移 x → 旋转 x → 旋转 z → 平移 z
- C.旋转 x → 平移 z → 旋转 z → 平移 x
- D.平移 z → 旋转 z → 平移 x → 旋转 x
答案:A。标准 D-H(SDH)的变换顺序是 \(\mathrm{Rot}(z,\theta) \to \mathrm{Trans}(z,d) \to \mathrm{Trans}(x,a) \to \mathrm{Rot}(x,\alpha)\),不可调换。B 和 C 分别是改进 D-H 或错误的顺序。
Q6. 以下哪些信息包含在齐次变换矩阵中?
- A.姿态旋转矩阵← 正确答案
- B.末端位置向量← 正确答案
- C.关节角速度值
- D.连杆质量参数
答案:AB。齐次变换矩阵只包含旋转矩阵(姿态)和平移向量(位置)。角速度属于雅可比矩阵的研究范畴,质量参数属于动力学的研究范畴,都不在齐次变换矩阵中。
Q7. 末端姿态描述中,绕 y 轴的旋转角通常叫做?
- A.横滚角 roll 角
- B.俯仰角 pitch 角← 正确答案
- C.偏航角 yaw 角
- D.旋转角 theta 角
答案:B。RPY 角约定中,绕 x 轴旋转称为 roll(横滚),绕 y 轴旋转称为 pitch(俯仰),绕 z 轴旋转称为 yaw(偏航)。“绕 y 轴转”对应俯仰角。
Q8. 两连杆平面机械臂(各长 1m)在 q₁=q₂=0°时,末端坐标是?
- A.末端位置在原点
- B.末端 x 坐标为 1m
- C.末端 y 坐标为 1m
- D.末端 x 坐标为 2m← 正确答案
答案:D。当两个关节角都为 0 时,两段连杆沿同一直线完全伸直,末端 x 坐标等于两杆长度之和:x = 1+1 = 2m,y = 0m。
Q9. 从正运动学结果矩阵 \(T^{0}_{n}\) 中提取末端位姿,下列说法正确的是?
- A.位置是右列前三行的元素← 正确答案
- B.姿态是左上角 3×3 矩阵← 正确答案
- C.位置是左上角 3×3 矩阵
- D.姿态是右列前三行的元素
答案:AB。齐次变换矩阵 \(T = \begin{bmatrix}R & P \\ 0 & 1\end{bmatrix}\) 中,位置向量 \(P\) 位于第四列前三行,旋转矩阵 \(R\) 位于左上角 \(3\times3\) 块。C 和 D 把位置和姿态的位置搞反了。
Q10. 已知关节角度、求末端执行器位置,属于哪类问题?
- A.正运动学求解← 正确答案
- B.逆运动学求解
- C.动力学求解方法
- D.轨迹规划问题
答案:A。正运动学的定义就是“已知关节角度,求末端位姿”。逆运动学则相反,是已知末端位姿、反推关节角度。路径规划和动力学属于更高层或另外范畴的问题。