Best 3D library to model robotic motion
有一段时间,我询问了如何为机器人运动建模(在Python中使用反向运动学)选择与Python兼容的3D图形库的建议。在做了一些研究并重新定义了我的目标之后,我希望我能再次请求一些帮助。
当时我认为搅拌机是最好的选择,但现在我有疑问了。我的一个关键目标是能够将模型集成到一个定制的GUI(wxpython)中。看起来这可能相当困难(我不确定性能要求)。
我想我现在更倾向于OpenGL(pyopengl+wxglcanvas),但我仍在努力确定它是否是适合这个工作的工具。我更像是一个计算机辅助设计人员,所以我很难想象如何在API中绘制复杂的对象并创建运动。我读到我可以用Blender设计这个对象,然后以某种方式将它导入OpenGL,但是我不确定这个过程吗?操纵物体的运动有多困难?例如,如果我在两个链接之间创建一个关节,移动一个链接,另一个链接会根据第一个链接动态移动,还是需要独立编程每个链接的移动?
我是否遗漏了一些明显的工具?我不是在寻找完整的机器人模型软件包,我想从零开始,这样我可以把它纳入我自己的程序。因为学习比任何事情都重要。到目前为止,我已经研究了vpython、pyglet、panda3d、ogre和几个专业的CAD软件包。
谢谢
有一个类似的项目正在进行中,它为Matlab和python实现了一个机器人工具箱,它有"基本的3D图形",但是你总是可以用一个编织良好的脚本将其与Blender接口,这将比重新发明轮子的工作要少。
如果运动可以预先计算,你可以使用搅拌机,手工动画,烘焙一些动画文件格式(cal3d?),并在wxpythonOpenGL窗口中进行渲染。
如果需要处理用户输入,可以使用物理引擎…我听说bullet有python绑定:http://www.bulletphysics.org/bullet/phpbb3/viewtopic.php?P=&F=9&T=4030(可能仍然不稳定)。
关于您对Blender/OpenGL的疑问:"复杂对象"是什么意思?有多少"机器人/什么的"?每个机器人有多少个三角形?每个机器人有多少个关节?(我将根据您的答案进行编辑)
无论如何,OpenGL本身不会做任何其他的事情来显示三角形;其他的事情都必须在这里完成。
编辑
抱歉耽搁了,我完全忘了。
所以我建议:
- 用多边形在搅拌机中模拟你的机器人。你可以很容易地找到大于10公里的多边形,但是要尽量保持对象的数量小(每个移动部分1个对象)
- 装配它,也就是为它创建一个骨架。你不需要制作动画。
- 导出为collada或x3d
- 在您自己的OpenGL应用程序中,重新导入
- 在骨架指定的位置和方向绘制对象
- 像使用真正的步进电机一样修改骨骼之间的角度
- 如果步骤5做得正确,机器人应该跟随动作
- 可选添加物理(例如,使用bullet)。API在概念上与OpenGL类似,您可以用机械臂捕获对象。
祝你好运!