【Robot】请问,“逆运动学”是什么意思呀?

ChatGPT-o3-web

逆运动学(Inverse Kinematics, IK)
在机器人学里,机械臂有很多关节角度(就像肩、肘、腕等)。给定关节角度,我们可以直接算出末端执行器(EE)在空间里的 位置和姿态──这叫 正运动学 (Forward Kinematics, FK)。

逆运动学正好相反:
已知 EE 想要到达的目标位置 / 朝向,
每个关节该转多少度,才能让“手”到那里。


为什么需要逆运动学?

  • 直观控制:人类更习惯说“把手伸到杯子上方”,而不是“肩关节 30°、肘关节 45°…”。
  • 自动规划:抓取、装配、绘图等任务都会先给出末端目标,再用 IK 算出关节动作序列。

一个二维“小臂+前臂”例子

参数说明
上臂长度 L1=10L_1 = 10L1=10 cm肩到肘
前臂长度 L2=10L_2 = 10L2=10 cm肘到手
目标点 P(x,y)=(14,10)P(x,y)=(14,10)P(x,y)=(14,10)手要到达的位置

利用高中几何即可求关节角(肩 θ1\theta_1θ1、肘 θ2\theta_2θ2):

  1. 距离检查:先看 PPP 到肩的距离 d=x2+y2=142+102≈17.2d=\sqrt{x^2+y^2}= \sqrt{14^2+10^2}\approx17.2d=x2+y2=142+10217.2 cm
    d>L1+L2d> L_1+L_2d>L1+L2,手就根本够不到目标。

  2. 余弦定理

    cos⁡θ2=L12+L22−d22L1L2⟹θ2≈70∘ \cos\theta_2=\frac{L_1^2+L_2^2-d^2}{2L_1L_2}\quad\Longrightarrow\quad \theta_2\approx 70^\circ cosθ2=2L1L2L12+L22d2θ270

  3. 肩关节角

    θ1=arctan⁡ ⁣yx−arctan⁡ ⁣L2sin⁡θ2L1+L2cos⁡θ2≈21∘ \theta_1=\arctan\!\frac{y}{x}-\arctan\!\frac{L_2\sin\theta_2}{L_1+L_2\cos\theta_2} \approx 21^\circ θ1=arctanxyarctanL1+L2cosθ2L2sinθ221

这样就把“手到点 (14, 10)”转换成了“肩 21°、肘 70°”。


工程里的 IK 解法

  • 解析法:像上面这样用几何公式一步到位求解(关节较少时可行)。
  • 数值迭代法:当关节多、方程复杂时,用梯度下降、伪逆 Jacobian、优化器等“不断逼近”目标。
  • 带约束:还会考虑关节极限、避障、身体姿态等条件。

记住

  • 正运动学:关节 → 末端位置
  • 逆运动学:末端目标 → 关节角
    IK 让我们可以用“手要到哪儿”这种直观方式来控制复杂的机械臂。

Eric:您这里说的“(14,10)”是绝对坐标是吗?

ChatGPT-o3-web

在我那个二维小例子里,(14, 10) 是以“肩关节所在点”为原点的直角坐标——也就是常说的「基座坐标系」(base frame) 或「零坐标系」。
所以,它既不是相对于末端执行器(EE)的“局部坐标”,也不一定是整个实验室里更大的“世界坐标”。可以这样理解:

           y ↑
             • (14,10) = 目标点 P
             |
             |
肩(0,0) • ————→ x
  • 原点 (0, 0):放在肩关节(机械臂固定在桌面上的那一点)。
  • x、y 轴方向:为了画图方便,我假设 x 轴水平向右, y 轴竖直向上;单位用厘米。
  • 在这个坐标系里,点 P 距离肩关节 14 cm(右)和 10 cm(上),这就是 IK 要到达的“绝对”目标——绝对是针对这个基座坐标系,而不是针对外部更大的全局或相对于末端自身。

⚠️ 如果你把整条机械臂搬到别的地方,或换成 3D 空间、把原点设在地面中心,那么 (14, 10) 的含义就会随坐标系改变。
因此:在做逆运动学时,一定要说明“目标点是在哪个参考坐标系里给出的”。

  • 相对/局部坐标:如果我们说“末端再向右移 2 cm”,那就是相对于 EE 当前姿态的局部增量 (delta pose)。
  • 世界坐标:有时还会定义一个更大的“世界坐标系” (world frame)(例如相机或仿真环境统一用的 XYZ),再用一次坐标变换把目标点从世界坐标系转换到基座坐标系后,才丢给 IK 求解。

简言之:

  • 在那个具体示例里,(14, 10) 是 基座坐标系里的绝对坐标
  • 但“绝对”始终要加上“相对于哪个坐标系”这一前提,否则就会产生歧义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值