本教程将教您如何掌握 3D 反向运动学:这种技术可以解决移动机械臂以到达特定目标的问题。
您可以在此处阅读此在线课程的其余部分:
可以在本教程末尾找到下载整个 Unity 包的链接。
介绍
这个博客上有几个主题不断重复出现:毫无疑问,其中之一就是逆运动学。到目前为止,我已经在两个系列中解决了这个有趣的问题,总共有 8 篇单独的文章。然而,关于电子游戏背景下的反向运动学,还有很多东西要写。
是什么让逆向运动学如此有趣和复杂,以至于需要这么多帖子?事实是,逆向运动学是一个不仅在视频游戏中反复出现的问题,而且在工程和科学中都反复出现。从机械臂的设计到对人脑运动控制的理解,反向运动学(以一种或另一种形式)发挥着重要作用。
简要总结
2017 年,第一个专门讨论该主题的系列《程序动画简介》问世,进一步在独立开发者中普及了“程序动画”一词。它提供了一个基于梯度下降算法的通用解决方案,该算法可能用于相当“奇特”的索具,例如触手和蜘蛛腿。
第二个系列《2D反向运动学》在一年后问世,重点关注一个非常具体的情况:一个被约束在2D平面上的双关节臂(下图)。顾名思义:二维逆运动学。两个关节中的每一个都由一个角度控制,并且。通过调制这两个角度,机械臂的尖端(称为末端执行器)将到达不同的位置。
逆向运动学的问题是找到角度,使末端执行器达到所需的目标点。下面的动画显示了一个机械臂,它正在绘制一个圆,在 XY 平面上对齐。
从技术上讲,机械臂逆向运动学上提出的解决方案可以处理任意数量的关节。那么,为什么要专注于功能较弱的技术呢?答案很简单:效率。值得一提的是,在刚才描述的特定场景中,可以使用简单的方程而不是相当复杂的算法找到解决方案。这要归功于这样一个事实,即我们可以将机械臂想象成一个具有两个内角的三角形(下图)。
通过一点点三角函数,我们发现这些角度的值为:
其中 ,和是我们构造的这个“假想”三角形的边。
但是,机械臂的关节是使用 和 控制的,结果是:
哪里:
三维,运动学,旋转,2D,角度,我们,3D From: https://www.cnblogs.com/soliang/p/18079739