用于建模机器人运动的最佳 3D 库

发布于 2024-10-28 17:29:56 字数 1539 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤寂小茶 2024-11-04 17:29:56

有一个类似的项目正在进行中,它为 matlab 和 python 实现了机器人工具箱 ,它具有“基本的 3D 图形”,但您始终可以将其与搅拌机进行良好的连接 脚本,比重新发明轮子还省事

There is a similar project going on that implements a robotic toolbox for matlab and python, it has "Rudimentary 3D graphics", but you can always interface it with blender with a well knit script, it will be less work than reinventing the wheel

硪扪都還晓 2024-11-04 17:29:56

如果可以预先计算运动,您可以使用 Blender,手工制作动画,以某种动画文件格式(cal3d?)烘焙它们,然后在 wxPython OpenGL 窗口中渲染。

如果您需要处理用户输入,您可以使用物理引擎...我听说 Bullet 有 Python 绑定:http://www.bulletphysicals.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=4030(可能仍不稳定)。

关于您对 Blender/OpenGL 的疑问:“复杂对象”是什么意思?有多少“机器人/无论什么”?每个机器人有多少个三角形?每个机器人有多少个关节? (我会根据你的答案编辑我的答案)

无论如何,OpenGL本身不会做任何其他事情,只是“显示三角形”;其他一切都必须在别处完成。

编辑

抱歉耽搁了,我完全忘记了。

所以我的建议是:

  • 在 Blender 中使用多边形对机器人进行建模。您可以轻松地使用 >10k 多边形,但尽量保持较小的对象数量(每个移动部件 1 个对象)
  • 对其进行装配,即为其创建一个骨架。您不需要将其设置为动画。
  • 导出为 Collada 或 X3D
  • 在您自己的 OpenGL 应用程序中,重新导入
  • 在骨架指定的位置和方向上绘制对象
  • 修改骨骼之间的角度,就像使用真正的步进电机一样
  • 如果步骤 #5 完成正确,机器人应该是跟随动作
  • 可选择添加物理(例如使用子弹)。该 API 在概念上与 OpenGL 类似,您将能够用机械臂捕捉物体。

祝你好运 !

If movements can be pre-computed, you can use Blender, hand-craft animations, bake them in some animated file format (cal3d ?), and just render in your wxPython OpenGL window.

If you need to handle user input, you can use a physics engine... I hear Bullet has Python bindings : http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=4030 (probably still unstable).

Regarding your doubts on Blender/OpenGL : What do you mean by "complex objects" ? How many "robots/whatever" ? How many triangle per robot ? How many articulations per robot ? (I'll edit my answer depending on yours)

Anyway, OpenGL in itself won't do anything else that juste "display triangles" ; everything else has to be done eslewhere.

EDIT

Sorry for the delay, I completely forgot.

So here is what I suggest :

  • Model your robot in Blender with polygons. You can easily go at >10k polygons, but try to keep the number of objects small (1 object per moving part)
  • Rig it, i.e. create a skeleton for it. You don't need to animate it.
  • Export as Collada or X3D
  • In your own OpenGL app, reimport
  • Draw your objects at the positions and orientations specified by the skeleton
  • Modify the angles between the bones just as you would do with real stepper motors
  • If step #5 was done right, robot should be follow the movements
  • Optionally add physics ( for instance with Bullet ). The API will be similar in concept to OpenGL, and you will be able to catch objects with your robotic arm.

good luck !

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文