模式选择
FK 正运动学
IK 逆运动学
连杆设置
IK 设置(目标位置)
💡 点击画布指定目标位置(播放时目标会自动绕圈)
预设
标准 FK 扫描
等长 L₁=L₂
IK 圆轨迹
长臂展
实时运动学动画
连杆1 L₁
连杆2 L₂
末端执行器
另一解(肘上/肘下虚影)
工作空间(圆环)
理论与主要公式
$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)$
逆运动学 (IK):
$\cos\theta_2 = \dfrac{x^2+y^2-L_1^2-L_2^2}{2L_1L_2}$
$\theta_1 = \mathrm{atan2}(y,x) - \mathrm{atan2}(L_2\sin\theta_2,\,L_1+L_2\cos\theta_2)$
什么是两连杆机械臂的正、逆运动学
🙋
机械臂的“正运动学”和“逆运动学”是什么?名字很像,它们差别很大吗?
🎓
粗略地说,两者的计算方向正好相反。正运动学(FK)求的是“关节弯这么多,手部会到哪里?”;逆运动学(IK)则反过来算“想把手放到这里,关节该怎么弯?”。在这个模拟器里拖动上面的 θ1、θ2 滑块试试,手臂的形状会变吧?这就是 FK。反过来,点击画布放置目标点,手臂会改变形状去够它,这就是 IK 的动作。
🙋
原来如此!点击后角度会自动算出来。不过有时同一个目标点对应两种手臂姿态,那是什么?
🎓
你注意到了关键点。那就是“肘上”和“肘下”两个解。人的手臂也一样,肘朝上或朝下都能把手放在同一位置。数学上,公式求出的是 $\cos\theta_2$,$\theta_2$ 可以取正负两种符号,所以会产生两组关节角组合。在模拟器的“解的分支”中切换“肘上”和“肘下”,看看姿态如何变化。
🙋
明白了!但点击画布边缘时,有时手臂够不到,也算不出解,这是为什么?
🎓
那是因为你指定的点在手臂的“可达区域”之外。两连杆手臂的手部只能放在一个圆环里:外径是最大臂展 $L_1+L_2$,内径是最小值 $|L_1 - L_2|$。比如用滑块把连杆长度 $L_1, L_2$ 调得极短或极长,观察这个圆环怎样变化。设计中把这个区域称为工作空间,它是决定机器人作业范围的重要指标。
常见问题
FK 模式和 IK 模式有什么区别?
在 FK 模式下,用滑块指定关节角 θ1、θ2,末端执行器的位置会自动计算。在 IK 模式下,点击画布上的目标位置,会反算出到达该位置所需的关节角。请根据用途切换使用。
为什么在 IK 模式下点击后手臂够不到目标位置?
比连杆总长(L1+L2)更远的位置,或反过来太近(小于 |L1-L2|)的位置都无法到达。如果关节角有限制,也可能在限制范围内没有解。请以画布上显示的可达范围为参考点击。
关节角的单位是弧度还是度?
本工具使用度(°)为单位。滑块可在 -180°~180° 范围内调节。公式计算时会在内部换算成弧度,但显示和输入都请使用度。
模拟结果可以用于其他用途吗?
可以。计算得到的坐标和角度以数值显示,可以记下来用于机器人控制设计或教学资料。不过本工具是简化模拟器,控制真实机器人还需要考虑物理参数和误差。
现实世界中的应用
工业机械臂的轨迹规划: 在焊接、喷涂和装配作业中,会给出工具(末端执行器)需要经过的一系列点(轨迹)。对每个点求解逆运动学,计算对应的关节角序列,就能实现平滑的动作。
游戏和动画中的角色控制: 为了让角色的手或脚自然地够到特定位置(例如门把手或武器),经常使用逆运动学。这比手工设定每个关节的动作更高效、更自然。
机器人手术(手术辅助机器人): 由医生操作的主控制器位置确定患者体内手术器械尖端位置时用正运动学;反过来,由器械的目标位置确定各关节的驱动量时用逆运动学。
康复与助力外骨骼: 由穿戴者的关节角传感器,用正运动学推算手脚末端的位置。此外,根据需要辅助的动作的目标位置计算应施加给电机的关节力矩时,也以逆运动学的思路为基础。
常见误解与注意事项
首先,“正运动学(FK)简单,逆运动学(IK)难”这种简单的二分法是危险的 。两连杆的 FK 确实只是简单的三角函数之和,但连杆数增加后,FK 公式本身会随关节配置(转动/移动)和坐标系的选取方式而变得复杂。另一方面,本工具处理的平面两连杆 IK 是几何上存在“解析解”的特殊情况。许多实用的六轴机械臂等不存在这样的闭式解,需要用数值计算(迭代法)求解,因此 FK 和 IK 的难度性质甚至可能反过来。
其次,人们容易认为“求出解就行了”,但评估解的“质量”很重要 。例如同一目标点有“肘上”和“肘下”两个解时,选哪一个取决于应用。工作空间有障碍物时会选能避开的姿态;考虑能耗时会选接近关节活动范围中央的姿态。此外,接近奇异姿态(例如手臂完全伸直)的解,目标位置稍有变化关节角就会急剧变化,控制会变得不稳定。在本工具中把 L1 和 L2 设为相同长度,并把目标点放在几乎位于 X 轴上(y=0)的远处,就能体会这种感觉。
最后,请始终注意参数的单位和基准方向 。本工具以度显示角度,但内部计算和许多库使用弧度。另外,θ1 的基准轴(多数情况下是 X 轴)和正转方向(一般为逆时针)的定义会随坐标系以及右手系/左手系而变化,与其他系统对接时这是首先要确认的最重要事项。例如 CAD 数据和机器人模拟器的坐标系定义不同时,机器人可能做出完全意想不到的动作。
具体计算示例
对于 L1=0.25 m、L2=0.20 m 的两连杆手臂,关节角 θ1=45°、θ2=30° 时,由正运动学得到末端执行器位置 x≈0.229 m、y≈0.370 m。反之,指定目标位置 (0.40 m, 0.15 m) 时,|r|≈0.427 m 小于最大臂展 L1+L2=0.45 m,因此可达,逆运动学给出两个解:肘上 θ1≈4.2°、θ2≈36.9°,肘下 θ1≈36.9°、θ2≈−36.9°。