当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]一种具有连续零空间控制且无需雅可比矩阵迭代的 7 自由度逆运动学求解器的封闭形式解。我们为 NERO 7 自由度机械臂实现了一个实时的分析型逆运动学求解器,该求解器采用了关节角度参数化和几何冗余解决方法。

一种具有连续零空间控制且无需雅可比矩阵迭代的 7 自由度逆运动学求解器的封闭形式解。我们为 NERO 7 自由度机械臂实现了一个实时的分析型逆运动学求解器,该求解器采用了关节角度参数化和几何冗余解决方法。

与基于雅可比矩阵的传统 IK 解算器不同,这种方法具有以下优势:

•连续的肘部运动

•稳定零空间控制

•没有迭代优化

•没有局部最小值

•实时求解性能

整个机械臂的冗余度被简化为一个单一的臂角参数 Ψ,从而实现了平稳的自主运动,同时保持末端执行器的姿势不变。

本教程涵盖:

•几何法的 IK 推导

•SWE 三角形建模

•分析题 1 - 7 的解答

•关节限制优化

•零空间运动生成

•ROS2 集成

•MoveIt2 模拟工作流程

1. 从多种解决方案到可控解决方案:一种用于 7 自由度 逆运动学的参数化方法

为什么需要参数化的 IK 呢?

7 自由度机械臂与 6 自由度机械臂的主要区别并不仅仅在于多了一个关节。真正的区别在于一个末端执行器的姿势可以对应多种关节配置。

当末端执行器的位置固定后,关节角度仍不唯一——存在无数种有效的解决方案。这种情况下,末端执行器保持不动,而手臂则自行重新调整姿态,这种运动方式被称为“零空间运动”。

这意味着 IK 不再是关于寻找一个独特的解决方案,问题变成了:我们应该选择哪一个解决方案呢?

为了解决这个问题,多余的自由度被分离出来,并通过一个单一的参数 ψ 来表示,该参数控制着肘部的姿态。

IK 中的肘部角度参数化

•S:肩部中心(三个关节轴线的交点)

•E:肘部中心(关节 4 的位置)

•W:腕部中心(最后三个关节轴线的交点)

•点 S、点 E、点 W 构成一个边长固定的三角形。

•肘部角度 决定了点 E 在圆上的位置。

当末端执行器的姿态固定后,S 和 W 在空间中位置固定,而 E 则沿着三维空间中的一个圆周运动。

这种圆周运动的角度被定义为肘部角度 ψ 。

请用一句话进行翻译:

ψ → 肘部姿势变化 → 关节角度变化 → 末端执行器保持不变

此方法与传统数值 IK 解决方案之间的差异

2.快速入门指南

3.参数化 IK 求解器的完整工作流程

这种 IK 解算器遵循一个参数化的分析流程:

•从目标姿态中提取 S、W 和 4 。

•根据肘部角度 ψ 计算肘部点 E,并通过解析方法求解 1⁢3 和 5⁢7

•计算在所有关节限制条件下肘部角度的可行区域

•利用加权二次目标函数在可行区域内优化肘部角度

以下各部分与论文中的方程式以及代码中的实现内容直接对应。

步骤 0:代码结构概述(简洁版)

ik_solver.py 中的核心功能

步骤 1:提取几何锚点

1.目标

鉴于目标末端执行器的位姿为 T07 ,我们首先提取出分析式 IK 算法所需的几何锚点。

2.几何定义

如下图所示:

•B:基坐标系

•S:肩部中心点

•W:手腕中心

•E:肘部中心点

已知末端执行器的姿态为 Τ07 ,我们首先求解以下内容:

S:肩部点

W:手腕点(通过将末端执行器框架向后偏移距离 6 而获得)

θ4:肘关节角度(通过 S—E—W 三角形并依据余弦定理唯一确定)

在三角形 S–E–W 中,肘角 θ4 由边长决定:

3.代码实现

参数计算:_compute_swe_from_target

辅助函数:_从三角形中求解θ4

关键见解

在这个阶段,问题被简化为从完整的姿态 IK 任务转变为对 S-E-W 三角形的纯几何计算。

步骤 2:根据手臂角度 (核心几何参数)求解肘部点 E 的位置

1. 目标

一旦 S 和 W 的位置确定,肘部点 E 就会在三维空间中沿着一个圆周运动。

手臂角度 ψ 用于在该圆圈上选定特定的肘部姿势。

2. 几何解释

肘部位置位于一个圆上,该圆的弦是由 S 到 W 这条线段所确定的:

地点:

•C:圆心

•r:圆的半径

•e1,e2:构成圆平面的正交基向量

3. 代码实现

点 E 计算:_肘部角度(由手臂角度计算得出)

这是整个算法的几何核心部分。

第 3 步:通过 S-E-W 方向分析求解所有关节角度

3.1.1 肩关节:q1、q2、q3

该论文通过几何投影方法得出了一个直接的闭式解:

•q1是由点 E 在底面的投影所得到的。

•q2由 E 的高度所决定

•q3是從手腕相对于肘部的方位來進行求解的

3.1.2 代码实现

配置解决方案:_从 SWE 中解决 q123 问题

第 4 步:计算可行的肘部角度范围

1. 目标

并非每一个肘部角度 ψ 都能形成有效的关节结构。

即使末端执行器的姿势是固定的,某些 ψ 值仍会使一个或多个关节超出其机械限制范围。

所以在选定最终解决方案之前,我们首先会确定可行的弯头角度集合。

2.代码实现

可行区域计算:_get_theta0_feasible_region

在内部,该函数会调用 _ik_one_arm_angle 这个函数,其执行以下步骤:

•将手臂角度Ψ代入

•解决完整的关节配置问题

•检查所有接头是否均未超出其极限范围

•如果有效 → 将手臂角度纳入可行区域

第 5 步:最优臂角度选择(加权二次目标函数)

1.目标

在确定了可行的肘部角度范围之后,我们还需要从所有有效的候选方案中选出最佳方案。

目标函数定义如下:

wi:权重系数,其值会随着对应关节接近其机械极限而增大。

目标:在保证所有关节尽可能远离其极限位置的前提下,尽量减少整体关节的活动范围。

联合限制惩罚设计:加权函数(论文中的公式 20)

哪里

a = 2.28

b = 2.28

2.代码实现

重量计算:_重量限制

最优臂角搜索:_optimal_theta0

这是该论文中提出的最优解决方案选择策略。

从本质上讲,它将问题转化为:

一维二次函数最小化 → 全局最优解 → 无需迭代求解且不存在局部最小值。

4.零空间运动原理(自然嵌入式)

对于一个 7 自由度的机械臂而言,零空间是由手臂角度Ψ直接控制的。

其原则很简单:

•末端执行器的姿态 Τ07 保持不变

•只有手臂的角度 ψ 被改变

•机器人的关节会自动进行自我重新配置,同时保持末端执行器的位置不变。

这被称为零空间运动。

在实际应用中,通过改变手臂的角度就能轻松实现空转运动:

无需使用雅可比矩阵。

无需投影算子。

而且该运动依然平稳且稳定,没有出现振荡现象。

5.总结

该方法为一个具有 7 个自由度的 S-R-S 机器人机械臂设计了一种封闭形式的逆运动学求解器,并结合了对机械臂角度零空间的 1 维二次优化。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

当我们想到机械臂时,脑海中通常会浮现出那种僵硬的自动化场景——即那些为生产线上的重复性、毫无情感色彩的工作而设计的机器。但当我们试图让一个四轴机械臂去捕捉人类书写所具有的那种真实重量时,情况又会怎样呢?

关键字: 机器人 机械臂 Python

无线网络断了,“无网络”提示画面出现了,突然间那个像素化的霸王龙就成了你与彻底无聊之间唯一的分隔物。通常情况下,你会只是按几下空格键来等待几分钟,直到路由器重启。但当我坐在那里时,我看着桌上摆放着的 myPalletiz...

关键字: 机械臂 计算机 myPalletizer 260 M5

在工业4.0迈向5.0的进程中,机器人与自动化技术正以前所未有的深度重塑全球产业图景。从物流仓储中的自主移动机器人(AMR),到产线上的视觉检测设备、协作机械臂,再到面向精密制造的高动态抓取与装配系统,机器人正在从“替代...

关键字: 工业机器人 工业4.0 机械臂

对于许多开发者而言,他们的最终目标是摆脱简单的“如果-那么”逻辑模式,为他们的树莓派赋予真正的智能——打造一个能够理解口头指令、将其分解为步骤,并进而实际移动物体的系统。

关键字: 人工智能 树莓派 机械臂

业余爱好者和教育类机器人技术的领域正在发生转变。机器人不再仅仅需要按照预先设定的程序循环运行;现在的目标是“具身人工智能”——即能够感知周围环境、理解自然语言意图并自主执行复杂任务的机器。LanderPi 是一款复合机器...

关键字: 机械臂 ROS 2 3D 视觉 LanderPi

回顾上篇:基于RK3576 + ROS2 Humble + SLAM Toolbox + Nav2,我们实现了机器人的建图与自主导航。机器人已经能够“走到哪里”。但真正的智能机器人不仅要“走到哪”,还要“看到并操作”——...

关键字: 机器人 NPU 机械臂

在过去的几个月里,一只希沃纳小狗机器人狗一直稳稳地坐在我的办公桌上。它很聪明——能够四处移动、识别面孔,甚至还能响应一些指令。但一个想法一直在我脑海中萦绕:如果它能拥有“双手”来主动与周围环境互动,而不仅仅是观察和移动该...

关键字: 机器人 机械臂 ROS
关闭