我希望您不介意我询问一些有关机器人系统建模的建议。我最近对使用逆运动学 (IK) 来控制 5 自由度机器人操纵器非常感兴趣。我在 IK 方面有扎实的基础,但我遇到的问题是如何可视化操纵器如何相对于关节角度移动。
我已经研究过使用 3D 工具包(例如 Blender、Panda3D、vPython)来创建手臂的 3D 模型,但我不确定是否应该寻找具有物理支持的东西。我也不确定使用这些包对运动建模的效果如何。有人有什么建议吗?我并不是在寻找像微软的 Robotic Studio 这样的成熟的机器人模拟器,我想从基础知识开始,首先了解一切是如何工作的,即用 Python 编写 IK 代码,然后以 3D 形式可视化运动。我对Python非常熟悉,所以与Python交互的东西会更好。
Blender 的伟大之处在于它的 API 实际上是用 Python 编写的!
此外,除了许多其他建模工具之外,它还很好地支持逆运动学(IK)。
Blender Cookie 是一个很棒的资源。
Blenders python api 的文档非常广泛,它甚至内置了一个交互式 python shell,以便您可以在执行过程中看到脚本的效果。
Blender 使用的物理引擎是流行的子弹物理引擎,它已被用于许多商业游戏以及一些故事片(其中包括 2012 年)。
这并不是一个真正的难题,不是吗?想必您正在自己计算数学;因此,如果您的机械臂被可视化为几个长方体,那么您所需要的只是在 x、y、z 坐标处以及您提供的方向向量上渲染它们,并在需要时进行更新。 OpenGL 应该可以很好地做到这一点,你可以在 <50 lines.
中做到这一点Python-Ogre是非常成熟的C++引擎OGRE 3D的包装。我已经将它用于一个相当重要的项目,我会给 Python 包装器一个褒贬不一但大多是积极的评价。它非常有能力,并且很好地将所有 C++ 功能包装在一个主要是 Python 的接口中。您可以通过提供这些功能的众多 OGRE 扩展模块之一获得物理支持。
最大的缺点是 Python 接口的文档很差,你必须依赖 C++ 库的文档来理解某些事情。为了让您了解可能性,我能够使用 Python 和 PyV8(该语言是 Javascript)围绕 OGRE 实现一种脚本语言,因为我制作了一个 C++ 项目原型。
最终的原型非常成熟和健壮,我能够用高级 Javascript 包装 OGRE 的内部结构。使用脚本语言,我能够编写动画、材质、渲染和物理脚本。