不久我询问了有关为机器人运动建模选择兼容Python的3D图形库的建议(在Python中使用反向运动学)。在做了一些研究并重新定义我的目标之后,我希望我能再次提出一些帮助。
当时我认为Blender是最好的选择 - 但现在我有疑虑。我的一个关键目标是能够将模型集成到自定义GUI(wxPython)中。这似乎可能相当困难(我不确定性能要求)。
我认为我现在更倾向于OpenGL(PyOpenGL + wxglcanvas),但我仍然在努力确定它是否适合这项工作。我更像是一个CAD人员,所以我很难想象如何在API中绘制复杂的对象并创建动作。我读过我可以设计对象,比如Blender,然后以某种方式将其导入OpenGL,但我不确定这个过程?操纵物体的运动有多难?例如,如果我在两个链接之间创建一个关节,并且我移动一个链接,另一个链接是否会根据第一个链接动态移动,或者我是否需要独立编写每个链接的移动?
我错过了任何明显的工具吗?我不是在寻找完整的机器人建模软件包,我想从头开始,所以我可以将它合并到我自己的程序中。对于学习更重要。到目前为止,我已经研究过vPython,Pyglet,Panda3D,Ogre和几个专业的CAD软件包。
由于
答案 0 :(得分:2)
有一个类似的项目正在为matlab和python实现robotic toolbox,它有“基本的3D图形”,但是你总是可以用一个编织良好的script的blender连接它,它比重新发明轮子更少的工作
答案 1 :(得分:-1)
如果可以预先计算动作,可以使用Blender,手工制作动画,以某种动画文件格式(cal3d?)烘焙它们,然后在wxPython OpenGL窗口中渲染。
如果你需要处理用户输入,你可以使用物理引擎...我听说Bullet有Python绑定:http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=4030(可能仍然不稳定)。
关于你对Blender / OpenGL的怀疑:“复杂对象”是什么意思?有多少“机器人/什么”?每个机器人有三个三角形?每个机器人有多少个关节? (我会根据你的情况编辑我的答案)
无论如何,OpenGL本身不会做任何其他的“显示三角形”;其他一切都必须在eslewhere完成。
编辑
对不起,我完全忘了。
所以这就是我的建议: