SLSQP 求解逆运动学 (IK) 原理详解

📅 发布时间:2026/7/9 8:56:14 👁️ 浏览次数:
SLSQP 求解逆运动学 (IK) 原理详解
SLSQP 求解逆运动学 (IK) 原理详解目录SLSQP 求解逆运动学 (IK) 原理详解目录1. 问题定义:什么是 IK?2. 把 IK 转化为优化问题3. 前置概念3.1 导数与梯度一维:导数多维:梯度3.2 梯度下降3.3 Hessian 矩阵(曲率)一维:二阶导数多维:Hessian 矩阵3.4 二次近似(泰勒展开)3.5 数值差分4. 什么是 SLSQP?5. SLSQP 求解 IK 的完整流程输入流程每一步的计算开销(以 n=14 关节为例)6. 代码对应关系7. 具体数值示例8. 优缺点分析优点缺点9. 与雅可比迭代法 (DLS) 对比直觉类比总结1. 问题定义:什么是 IK?正运动学 (FK):已知关节角度 → 算末端位姿T e e = F K ( q ) \boldsymbol{T}_{ee} = FK(\boldsymbol{q})Tee​=FK(q)逆运动学 (IK):已知末端目标位姿 → 求关节角度q = I K ( T t a r g e t ) \boldsymbol{q} = IK(\boldsymbol{T}_{target})q=IK(Ttarget​)FK 有唯一解,直接算;IK 通常有多解或无解,需要用优化方法求解。2. 把 IK 转化为优化问题核心思想:找一组关节角q \boldsymbol{q}q,使得 FK 算出的末端位姿尽可能接近目标位姿。定义cost 函数(越小越好):f ( q ) = 1 2 ∥ error ( q ) ∥ 2 f(\boldsymbol{q}) = \frac{1}{2} \| \text{error}(\boldsymbol{q}) \|^2f(q)=21​∥error(q)∥2其中误差用李代数表示(SE(3) 上的 6D 向量):error ( q ) = log ⁡ ( T t a r g e t − 1 ⋅ F K ( q ) ) ∈ R 6 \text{error}(\boldsymbol{q}) = \log\left(\boldsymbol{T}_{target}^{-1} \cdot FK(\boldsymbol{q})\right) \in \mathbb{R}^6error(q)=log(Ttarget−1​⋅FK(q))∈R6前 3 维是位置误差,后 3 维是姿态误差。优化问题:min ⁡ q f ( q ) = 1 2 ∥ error ( q ) ∥ 2 \min_{\boldsymbol{q}} \quad f(\boldsymbol{q}) = \frac{1}{2} \| \text{error}(\boldsymbol{q}) \|^2qmin​f(q)=21​∥error(q)∥2s.t. q m i n ≤ q ≤ q m a x (关节限位) \text{s.t.} \quad \boldsymbol{q}_{min} \leq \boldsymbol{q} \leq \boldsymbol{q}_{max} \quad \text{(关节限位)}s.t.qmin​≤q≤qmax​(关节限位)3. 前置概念3.1 导数与梯度一维:导数对于函数f ( q ) f(q)f(q),导数f ′ ( q ) f'(q)f′(q)表示q qq变化一点点时,f ff变化多少:f ′ ( q ) = lim ⁡ ϵ → 0 f ( q + ϵ ) − f ( q ) ϵ f'(q) = \lim_{\epsilon \to 0} \frac{f(q + \epsilon) - f(q)}{\epsilon}f′(q)=ϵ→0lim​ϵf(q+ϵ)−f(q)​f ′ ( q ) 0 f'(q) 0f′(q)0:q qq增大 →f ff增大(上坡)f ′ ( q ) 0 f'(q) 0f′(q)0:q qq增大 →f ff减小(下坡)∣ f ′ ( q ) ∣ |f'(q)|∣f