机器人逆运动学完全指南:从原理到实战应用
什么是逆运动学?
您需要了解多少逆运动学知识才能充分发挥机器人性能?
机器人逆运动学是一个庞大且常复杂的课题。视项目而定,您可能需要深入钻研,也可能只需基础认知即可应对。
以下是机器人逆运动学的核心必知内容。
什么是逆运动学?
逆运动学是一种数学过程,用于计算将机器人末端执行器置于特定位置和方向(即“姿态”)所需的关节位置。可靠的逆运动学解算器是编程机器人执行任务的必要条件。
必须明确区分逆运动学与正运动学。
正运动学决定关节设为特定位置时末端执行器的位置。正运动学方程永远只有一个解:关节位置确定,末端执行器位置唯一。
逆运动学则常存在多个不同解,且有多种计算方法。
为何机器人学需要逆运动学
没有逆运动学,机器人编程将极其困难……甚至不可能。
当您希望机器人末端执行器移至工作空间某特定点位,输入期望姿态到程序中是顺理成章的。
但您不能只告诉机器人去目标 X、Y、Z 坐标就指望它懂您的指令……没有逆运动学就做不到。
大多数工业机器人由多个独立可控关节串联构成,关节间连接有时很复杂。末端执行器连接在整个“运动链”末端。移动任何一个关节都会以多种方式影响末端执行器姿态。
这意味着末端执行器位置与任何单一关节之间没有简单直接的对应关系。
例如,让末端执行器沿 Z 轴线性移动 1mm,可能需要所有关节各按不同量移动。
最终,逆运动学算法计算出机器人各关节的确切位置,以达到您期望的末端执行器姿态。
如何求得机械臂的逆运动学
研究逆运动学时,常见大量方程、公式和算法描述。因为计算逆运动学是机器人研究的成熟领域。除 3D 动画师外,鲜少在研究领域外谈论逆运动学。
但在工业应用中,寻找逆运动学解有两条基本路径:
- 自行完成数学和编程工作,为特定机器人创建逆运动学解算器。
- 使用特定机器人现成的、开箱即用的逆运动学解算器。
选择取决于您的具体情况。
若您自行从零构建机器人——连接电机和机械连杆——大概率需选方案 1。
若使用机器人厂商提供的工业机器人,方案 2 几乎总是更快更简易。
困难路径:自建逆运动学解算器
若选择自建逆运动学解算器,准备好进行大量编程吧!
计算逆运动学有两种基本方法:
1. 解析逆运动学解
解析逆运动学解算器能接收期望末端执行器姿态,(几乎)立即输出所需关节位置。
因为“底层”已将机器人运动链简化为闭式表达式——对任何末端执行器姿态,都有数学定义的关节位置。
虽然您可手工推导闭式表达式,但现在 IKFast 库让这项任务比过去容易得多。
2. 数值/迭代运动学解算器
并非所有机器人都有解析逆运动学解。当机器人运动结构复杂或特殊,只能用数值逆运动学解算器。
数值解中无清晰闭式表达式。输入期望末端执行器位置后,迭代算法将其视为优化问题,逐步逼近所需关节位置。
每次迭代,算法将一些关节位置代入正运动学方程得出末端执行器位置,再据此微调关节位置,逐步使末端执行器趋近期望姿态。
因迭代特性,数值逆运动学解比解析解慢。
简易路径:使用成熟的逆运动学解算器
自建逆运动学解算器是大学课程或自造机器人的良好智力练习。
但若只想在生产环境用机器人,极不可能需要自建解算器。
直接使用已集成在编程环境中的现成解算器,要轻松快捷得多。
RoboDK 机器人库中的所有机器人都自带逆运动学解算器,让您无需思考即可立即编程。
我们大多数解算器是随机器人文件打包的预生成解析解。库中少数复杂机器人使用数值解算器。即使数值解算器,在 RoboDK 中也无计算速度问题,因为您是离线编程后再发送程序给机器人。
除非万不得已,否则不要自建逆运动学解算器。
不然,您的时间更应花在为任务创建机器人程序、更快投产上。
您对机器人逆运动学还有什么疑问?欢迎在下方评论留言,或加入 LinkedIn、Twitter、Facebook、Instagram 或 RoboDK 论坛的讨论。
工业机器人