机器人学中的逆运动学:你需要知道的
什么是逆运动学?
您需要了解多少才能充分利用您的机器人?
机器人的逆运动学是一个庞大且通常很复杂的主题。根据您的项目,您可能需要非常详细地了解它或掌握基本知识。
以下是您需要了解的有关机器人逆向运动学的基本信息。
什么是反向运动学?
逆运动学是一种数学过程,用于计算将机器人末端执行器放置在特定位置和方向(也称为“姿势”)所需的关节位置。一个可靠的逆运动学解决方案对于对机器人进行编程以执行任务是必要的。
明确逆向运动学和机器人正向运动学的区别很重要。
如果关节设置到特定位置,正向运动学确定末端执行器的位置。正向运动学方程只有一个解。当关节设置到特定位置时,末端执行器将始终位于同一位置。
对于逆运动学,通常有多种不同的解和多种方法来计算逆运动学的解。
为什么我们需要机器人中的逆运动学
如果我们没有逆运动学,机器人编程将非常困难……如果不是不可能的话。
当您希望机器人的末端执行器移动到其工作空间中的特定位置时,您可以将所需的姿势输入到程序中。
但是,你不能只告诉机器人去你想要的X、Y 和 Z 协调并期望机器人能够理解您的指令……并非没有逆运动学。
大多数工业机器人由几个独立可控的关节构成。每个关节连接到一个或多个其他关节,有时是复杂的配置。末端执行器连接在整个“运动链”的末端。当你移动任何一个关节时,这会以各种方式影响末端执行器的姿势。
这意味着末端执行器位置与任何一个特定关节之间没有简单、直接的关系。
例如,如果您希望机器人的末端执行器沿 Z 轴线性移动 1 mm,则可能需要将所有关节移动不同的量。
最后,逆运动学算法会计算出机器人每个关节的确切位置,以达到您想要的末端执行器姿势。
如何找到机械臂的反向运动学
当您对机器人的逆运动学进行一些研究时,您经常会发现一页又一页的方程式、公式和算法描述。这是因为计算逆运动学是机器人研究中一个成熟的领域。没有多少人在研究领域之外谈论反向运动学(3D 动画师除外)。
但是,当我们将机器人用于工业应用时,有两个基本选项可以找到逆运动学解决方案:
- 您可以自己完成所有数学和编程工作,为您的特定机器人创建逆运动学求解器。
- 您可以为您的特定机器人使用“开箱即用”的现有逆运动学求解器。
您选择哪一个将取决于您的独特情况。
如果您自己构建了机器人——即通过将电机和机械链接连接在一起从头开始构建它——您可能必须选择选项 1。
如果您使用的是来自机器人制造商的工业机器人,选项 2 几乎总是会更快更容易。
硬方法:创建逆运动学求解器
如果您选择创建自己的逆运动学求解器,请准备好进行一些严肃的编程!
计算逆运动学有两种基本方法:
1.解析逆运动解
分析逆运动学求解器将能够采用所需的末端执行器姿势并(几乎)立即吐出所需的关节位置。
这是因为,“在引擎盖下”,机器人的运动链已被简化为封闭形式的表达式——对于任何末端执行器姿势,都有所需关节位置的数学定义。
尽管您可以自己(手动)完成生成封闭式表达式的工作,但这通常不是必需的。如今,IKFast 库使这项任务比过去容易得多。
2.数值/迭代运动学求解器
并非所有机器人都有分析逆运动学解。当机器人的运动学结构复杂或异常时,唯一的选择就是使用数值逆运动学求解器。
此外,在数值解中,没有明确的封闭式表达式。相反,当您输入所需的末端执行器位置时,迭代算法会通过将其视为优化解决方案来解决所需关节位置的解决方案。
在每次迭代中,该算法将一些关节位置输入到机器人的正向运动学方程中,以找出末端执行器的最终位置。在下一次迭代中,它使用此信息来进一步调整关节位置。这将逐渐将末端执行器移向所需的姿势。
由于这种迭代方法,数值逆运动学解比解析解慢。
简单方法:使用经过验证的反向运动学求解器
当您在大学或从头开始构建自己的机器人时,创建自己的逆运动学求解器是一项很好的智力练习。
但是,如果您只想在生产环境中使用您的机器人,则不太可能需要创建自己的逆运动学求解器。
只使用已经集成到机器人编程环境中的现有求解器会更容易、更快捷。
RoboDK 机器人库中的所有机器人都带有自己的逆运动学求解器。这使您无需考虑就可以立即开始对其进行编程。
我们的大多数求解器都是预先生成的分析解决方案,它们与机器人文件打包在一起。但是,库中一些更复杂的机器人确实使用数值求解器。即使使用数值求解器,计算速度降低也不是 RoboDK 的问题,因为您将在将程序发送到机器人本身之前离线对机器人进行编程。
毕竟,只有在必要时才创建自己的逆运动学求解器。
如果没有,您的时间会花在为您的任务创建机器人程序并更快地投入生产上。
您对机器人中的逆运动学有什么疑问? 在下面的评论中告诉我们,或加入 LinkedIn、Twitter、Facebook、Instagram 或 RoboDK 论坛上的讨论。
工业机器人