正向运动学模拟器 返回
机器人工程模拟器

正向运动学 模拟器 — 2连杆平面机械臂

根据连杆长度 L₁, L₂ 和关节角度 θ₁, θ₂ 计算末端位置 (x, y),可视化机械臂姿态、作业空间、奇异点。实时显示雅可比行列式 det J = L₁L₂sinθ₂。

参数设置
L1 连杆1长度
cm
L2 连杆2长度
cm
θ1 关节1角度
deg
θ2 关节2角度
deg
θ₁ 从 −180° → 180° 连续扫描。
计算结果
末端 x
末端 y
原点距离 r
|sinθ₂| = |detJ|/(L₁L₂)
机械臂姿态与作业空间
关节空间雅可比矩阵图 (θ₁, θ₂)
理论与主要公式

2连杆平面机械臂的末端位置(正向运动学):

$$x = L_1\cos\theta_1 + L_2\cos(\theta_1+\theta_2)$$ $$y = L_1\sin\theta_1 + L_2\sin(\theta_1+\theta_2)$$

雅可比行列式(奇异点指标):

$$\det J = L_1\,L_2\,\sin\theta_2$$

作业空间半径:$|L_1 - L_2| \le r \le L_1 + L_2$,奇异点:$\theta_2 = 0°$ 或 $180°$

什么是正向运动学

🙋
正向运动学是从关节角度计算手臂末端位置的,对吧?为什么相比逆运动学(IK),这个被称为"简单"的?
🎓
简单地说,正向运动学(FK)就是"知道所有关节角度 → 直接用三角函数计算末端位置",所以解总是唯一的,而且可以用闭式表达式写出来。例如这个2连杆就是 x = L₁cosθ₁ + L₂cos(θ₁+θ₂),一步搞定。逆运动学是反向问题——"目标末端位置 → 该选哪些关节角?",可能有多个解,甚至不存在。实际工作中通常先用FK绘制机械臂姿态预览,再用IK反推关节角度,这是标准流程。
🙋
右下角有个"雅可比矩阵图",上面有红虚线写着"奇异曲线"。这是什么?
🎓
这是今天的重点!雅可比矩阵 J 表示"关节角变一点,末端移动多少",对于2连杆平面臂,det J = L₁L₂ sinθ₂。当 θ₂ = 0°(连杆完全伸展)或 θ₂ = 180°(折叠)时,sinθ₂ = 0,行列式变成零——这就是"奇异点"。在这种姿态下,要让末端向某个方向移动需要无穷大的关节速度,实际上不可能。所以在路径规划中要回避这个姿态带。
🙋
当我把 L₁ 和 L₂ 设成一样长时,机械臂可以到达根部。连杆长的比例有什么意义吗?
🎓
观察得很好!作业空间的最小半径是 r_min = |L₁ - L₂|,所以当 L₁ = L₂ 时,r_min = 0,也就是可以到达原点,作业空间是圆盘形。反之 L₁ ≠ L₂ 时,中心附近会出现"甜甜圈的洞"——无法到达的死区。比如 L₁ = 30 cm, L₂ = 25 cm 时,半径 5 cm 内是死区,那个范围用逆运动学也解不了。工业机器人的连杆长比就是根据工作对象大小来设计的,这样死区才不会碍事。

正向运动学的物理模型和主要公式

2连杆平面机械臂在原点有第一关节(基座),长度为 $L_1$ 的连杆以角度 $\theta_1$ 伸出,在其末端的第二关节处,长度为 $L_2$ 的连杆以相对角度 $\theta_2$ 再伸出。末端位置 $(x, y)$ 可用简单的三角函数之和表示。

$$x = L_1\cos\theta_1 + L_2\cos(\theta_1+\theta_2),\quad y = L_1\sin\theta_1 + L_2\sin(\theta_1+\theta_2)$$

雅可比矩阵:$J = \begin{pmatrix} -L_1\sin\theta_1 - L_2\sin(\theta_1+\theta_2) & -L_2\sin(\theta_1+\theta_2) \\ L_1\cos\theta_1 + L_2\cos(\theta_1+\theta_2) & L_2\cos(\theta_1+\theta_2)\end{pmatrix}$,$\det J = L_1 L_2 \sin\theta_2$

原点距离: $r = \sqrt{x^2+y^2}$,作业空间:$|L_1-L_2| \le r \le L_1+L_2$,奇异点:$\theta_2 = 0°, \pm 180°$

实际应用

工业机器人示教再现:焊接、装配、搬运等任务中,记录关节角度序列进行回放控制时,需要用正向运动学从各时刻的关节角预测手臂末端位置,在示教盒上显示动画预览。这是ROS、MoveIt、RoboDK等仿真环境的核心计算。

FEM分析中的连杆姿态设置:多关节臂的结构分析(刚度、固有频率、接触)需要先按关节角设置分析姿态,用正向运动学计算每个连杆的坐标来放置网格。在负载着力的代表姿态下做初始条件分析时必不可少。

外科手术机器人和远程操控:术者操纵主机的关节角,从正向运动学计算从机末端位置,在屏幕上叠加显示。需要实时计算,所以闭式正向运动学是最小化延迟的关键。

CG、动画、VR绑定:角色的手臂或腿的关节角通过正向运动学计算手脚末端位置,进而变形网格。结合逆运动学做目标位置跟踪,可生成自然的运动。

常见误解和注意事项

首先是"正向运动学很简单所以精度可以忽视"的误解。虽然公式简单,但关节角传感器(编码器)分辨率和连杆长制造误差会直接累积到末端位置。例如 L₁ = L₂ = 50 cm 的臂,关节角有 0.1° 误差时,末端最大会偏移约 1.7 mm。臂越长误差越大,工业应用必须进行标定(校正)。

其次"θ₂ 就是绝对角度"的混淆。本工具中 θ₂ 定义为"相对于连杆1的相对角度"。有些文献把"相对于水平的绝对角度"记为 θ₂',两者关系是 θ₂' = θ₁ + θ₂。参考论文或CAD数据时必须确认角度定义。

最后是"奇异点只是数学抽象,实机无关"的侥幸心理。实际上奇异点附近(det J 小的区域)关节速度会急剧增大,伺服饱和或振荡。本模拟器把 θ₂ 设到 0° 或 180° 附近时,右下热图会变暗(蓝色),说明那个姿态下末端半径向运动需要无穷大关节速度。路径规划要么回避奇异点,要么用衰减最小二乘法(DLS)稳定化。

常见问题

默认值 L₁ = 30 cm, L₂ = 25 cm, θ₁ = 30°, θ₂ = 60° 时,x = 30·cos30° + 25·cos90° = 25.98 cm(约 26.0 cm),y = 30·sin30° + 25·sin90° = 40.0 cm,距原点 r = √(26.0² + 40.0²) ≈ 47.7 cm。雅可比规范化值为 |sinθ₂| = sin60° ≈ 0.866。
雅可比 J 的各列分别是 ∂(x,y)/∂θ_i。直接展开并计算 2×2 行列式,会出现公因子 sin(θ₁+θ₂)cos θ₁ - cos(θ₁+θ₂)sin θ₁ = sin θ₂,最终化简得 det J = L₁ L₂ sin θ₂。特点是与 θ₁ 无关,只决定于 θ₂。
2连杆能到达的最小距离是两个连杆尽量折叠时的差值 |L₁ - L₂|。当 L₁ ≠ L₂ 时,这个值为正,意味着原点为中心、半径为 |L₁ - L₂| 的圆形区域无法到达。当 L₁ = L₂ 时最小距离为0,根部可达,成为圆盘形作业空间。
热图表示 |sin θ₂| 的大小。θ₂ = ±90° 时最大,θ₂ = 0°, ±180° 时为0,明暗以180°周期重复。红虚线就是这个"零值带"(奇异曲线)的位置。
n 自由度串联机械臂用Denavit-Hartenberg(DH)方法,依次对每个关节应用同次变换矩阵,最后相乘得到末端的位置和姿态。本工具的2连杆是最简单的特例,UR5、Fanuc M-20等6自由度机器人原理相同,只是矩阵运算更复杂。

使用指南

  1. 用滑杆设置第1连杆长L₁(cm)和第2连杆长L₂(cm)。例如可模拟L₁=30cm、L₂=25cm的工业机器人臂。
  2. 输入第1关节角度θ₁和第2关节角度θ₂(度数,范围-180°~+180°)。
  3. 执行计算,即刻显示末端位置的直角坐标(x,y)、原点距离r、雅可比行列式|sinθ₂|。

具体计算例

松下型6轴机械臂的第1、2关节,设L₁=40cm、L₂=30cm、θ₁=30°、θ₂=60°时,计算得末端x坐标=34.64cm、末端y坐标=30.00cm、原点距离r=45.58cm。此时|sinθ₂|=sin60°≈0.866,雅可比行列式为0.104(=0.866×40×30),远离奇异点。

实务中的注意