公司动态

机械臂运动学原理入门:正逆解、D-H 参数、轨迹规划基础

📅 2026/8/5 2:36:26
机械臂运动学原理入门:正逆解、D-H 参数、轨迹规划基础
机械臂运动学原理入门正逆解、D-H 参数、轨迹规划基础运动学听起来吓人其实就是回答两个问题关节转了多少度末端到了哪儿反过来末端想去哪儿关节该转多少度一、运动学到底是什么机械臂的**运动学Kinematics**研究的是运动本身不涉及力。它只关心两件事关节角度和末端位置之间的几何关系这个关系怎么算和运动学对应的叫动力学Dynamics那才是研究力、质量、加速度的。新手先别碰动力学把运动学搞明白就够对付 80% 的场景了。运动学核心分两类正运动学和逆运动学下面分别拆解。二、正运动学已知关节角度求末端位置2.1 基本思路正运动学Forward Kinematics简称 FK的输入是各关节的角度输出是末端执行器在空间中的位置和姿态。比如一个六轴机械臂告诉你 6 个关节各自转了多少度θ₁ 到 θ₆你能算出末端夹爪当前在三维空间哪个坐标、朝哪个方向。这叫正向——从关节推到末端。2.2 数学本质矩阵乘法正运动学的计算核心是齐次变换矩阵的连乘。每个关节对应一个变换矩阵把所有矩阵按顺序乘起来就得到末端到基座的总变换关系。齐次变换矩阵是一个 4×4 矩阵把旋转和平移统一在一个矩阵里表示T | R p | R: 3×3 旋转矩阵描述姿态 | 0 1 | p: 3×1 平移向量描述位置其中 R 是 3×3 的旋转矩阵p 是 3×1 的位置向量。矩阵最后一行固定是 [0 0 0 1]纯粹是为了凑成方阵好做矩阵乘法。三、逆运动学已知末端位置求关节角度3.1 基本思路逆运动学Inverse Kinematics简称 IK是正运动学的反向操作输入是我希望末端到这个位置输出是各关节该转多少度。这个反算比正算难得多。原因有三可能无解目标位置超出机械臂工作空间物理上够不着可能多解同一个末端位置可能对应多组关节角度组合比如肘朝上和肘朝下都能到非线性方程涉及三角函数没法简单反解3.2 两种求解方法解析法Closed-form通过几何关系直接推导出角度公式速度快、可实时但只适用于结构简单的机械臂且有特殊几何约束比如相邻三轴交于一点数值法Numerical用迭代优化如牛顿-拉夫逊法、雅可比伪逆法逼近解通用性强但计算量大、可能不收敛工业机械臂控制器一般用解析法因为结构已知且优化过通用机器人框架如 ROS MoveIt两者都支持。四、D-H 参数模型用 4 个参数描述一个关节4.1 D-H 是什么D-H 参数Denavit-Hartenberg是描述机械臂关节的经典方法核心思想是给每个关节指定一个坐标系用 4 个参数描述相邻坐标系之间的关系。这 4 个参数是参数含义类型a连杆长度沿 x 轴的偏移结构参数固定α连杆扭角绕 x 轴的旋转结构参数固定d关节偏距沿 z 轴的偏移移动关节为变量转动关节固定θ关节角绕 z 轴的旋转转动关节为变量移动关节固定一句话理解a 和 α 描述连杆本身的形状d 和 θ 描述关节怎么动。4.2 每个关节对应一个变换矩阵相邻两个关节坐标系之间的变换就是把这 4 个参数对应的 4 个基本变换串起来T Rot(z, θ) · Trans(z, d) · Trans(x, a) · Rot(x, α)展开后是一个固定的 4×4 矩阵形式θ 或 d 作为变量代入即可。n 个关节就有 n 个这样的矩阵全乘起来就是正运动学的解。五、二连杆机械臂正解推导示例最简单的入门案例一个两连杆平面机械臂两个转动关节连杆长度分别为 l₁ 和 l₂。5.1 建立坐标系基座原点在关节 1 处关节 1 角度 θ₁从 x 轴逆时针量关节 2 角度 θ₂相对于连杆 1 的方向量5.2 推导末端位置末端坐标 (x, y) 直接用三角函数写出x l₁·cos(θ₁) l₂·cos(θ₁ θ₂) y l₁·sin(θ₁) l₂·sin(θ₁ θ₂)这就是正运动学解。输入 θ₁、θ₂输出末端 (x, y)。5.3 反推逆解已知 (x, y)求 θ₁ 和 θ₂。先用余弦定理算出 θ₂cos(θ₂) (x² y² - l₁² - l₂²) / (2·l₁·l₂)再算 θ₁θ₁ atan2(y, x) - atan2(l₂·sin(θ₂), l₁ l₂·cos(θ₂))注意 θ₂ 有正负两个解对应肘朝上和肘朝下两种姿态——这就是逆运动学的多解性最直观的体现。六、逆解的多解性问题同一个末端位姿机械臂可能有多组关节角度都能到达。六轴机械臂最多有8 组解。实际控制时要根据以下策略选一组最短路径准则选离当前关节角度最近的解减少运动量避障准则选不会撞到障碍物的解奇异规避准则避开雅可比矩阵奇异的位置七、轨迹规划基础知道去哪儿还不够还得规划怎么去这就是轨迹规划。7.1 三种基本运动类型类型全称说明PTPPoint-to-Point点到点运动只关心起点终点中间路径自由LINLinear直线插补末端走直线轨迹CIRCCircular圆弧插补末端走圆弧轨迹PTP 最快但不控路径LIN/CIRC 控路径但慢。抓取通常用 PTP 快速接近最后一段用 LIN 精确对准。7.2 关节空间 vs 笛卡尔空间轨迹规划可以在两个空间进行关节空间规划直接对各关节角度做插值如梯形速度曲线计算简单、不会出现奇异但末端轨迹不可预测笛卡尔空间规划先在直角坐标系规划末端路径再通过逆运动学实时算出各关节角度末端轨迹可控但计算量大、可能遇到奇异点实际系统通常混合使用宏观移动用关节空间快精细操作用笛卡尔空间准。7.3 速度规划梯形速度曲线最常用的速度曲线是梯形速度曲线匀加速 → 匀速 → 匀减速。加速度恒定速度曲线呈梯形。好处是计算简单、对电机冲击小。进阶的还有 S 型曲线加速度也平滑变化更柔和但计算更复杂。八、小结运动学的学习路径给新手一个建议的学习顺序先理解齐次变换矩阵旋转 平移手推二连杆平面机械臂的正逆解学 D-H 参数建模给一个简单机械臂标 D-H 参数用 MATLAB 或 Python 实现正运动学计算接触逆运动学的数值解法雅可比迭代最后进入轨迹规划实现 PTP/LIN 运动运动学是机械臂控制的根基这块搞透了后面的视觉抓取、力控、大模型指令对接才有立足点。别跳过基础直接调包不然出了问题根本不知道哪儿错了。