3

ロボットのモーション モデリング (Python で逆運動学を使用) 用に Python 互換の 3D グラフィックス ライブラリを選択する方法について、しばらくの間、提案を求めました。少し調査を行い、目的を再定義した後、もう一度少し支援をお願いしたいと思います.

当時、私は Blender が最良の選択肢だと思っていましたが、今は疑問に思っています。私が持っている重要な目標の 1 つは、モデルをカスタム GUI (wxPython) に統合する機能です。これはかなり難しいようです (そして、パフォーマンス要件についてはよくわかりません)。

私は今、OpenGL (PyOpenGL + wxglcanvas) に傾倒していると思いますが、それが仕事に適したツールであるかどうかを判断するのにまだ苦労しています。私はどちらかというと CAD 派なので、API で複雑なオブジェクトを描画してモーションを作成する方法を想像するのに苦労しています。Blenderなどでオブジェクトを設計し、それを何らかの方法でOpenGLにインポートできると読みましたが、プロセスがわかりませんか? オブジェクトの動きを操作するのはどれくらい難しいですか? たとえば、2 つのリンクの間にジョイントを作成し、一方のリンクを動かすと、もう一方のリンクは最初のリンクに従って動的に動くでしょうか、それとも各リンクの動きを個別にプログラムする必要があるでしょうか?

明らかなツールを見逃していませんか? 完全なロボット モデリング パッケージを探しているわけではありません。ゼロから始めて、自分のプログラムに組み込むことができるようにしたいと考えています。何よりも学ぶために。これまでのところ、vPython、Pyglet、Panda3D、Ogre、およびいくつかの専門的な CAD パッケージについて調べてきました。

ありがとう

4

2 に答える 2

2

matlab と python 用のロボット ツールボックスを実装する同様のプロジェクトが進行中です。これには「基本的な 3D グラフィックス」がありますが、よく編まれたスクリプトを使用してブレンダーといつでもインターフェイスできます。車輪を再発明するよりも作業が少なくなります。

于 2011-04-01T01:55:57.413 に答える
0

動きを事前に計算できる場合は、Blenderを使用してアニメーションを手作りし、アニメーションファイル形式(cal3d?)でベイクして、wxPythonOpenGLウィンドウでレンダリングすることができます。

ユーザー入力を処理する必要がある場合は、物理エンジンを使用できます... BulletにはPythonバインディングがあると聞きました:http ://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p =&f = 9&t = 4030 (おそらくまだ不安定です)。

Blender / OpenGLについてのあなたの疑問について:「複雑なオブジェクト」とはどういう意味ですか?「ロボット/何でも」はいくつですか?ロボットごとに三角形はいくつですか?ロボットごとにいくつのアーティキュレーションがありますか?(私はあなたの答えに応じて私の答えを編集します)

とにかく、OpenGL自体は、「三角形を表示する」だけのことは何もしません。他のすべてはどこかで行われなければなりません。

編集

遅れてすみません、すっかり忘れてしまいました。

だからここに私が提案するものがあります:

  • ポリゴンを使用してBlenderでロボットをモデリングします。10,000を超えるポリゴンで簡単に移動できますが、オブジェクトの数を少なくするようにしてください(可動部分ごとに1つのオブジェクト)。
  • リギングします。つまり、スケルトンを作成します。アニメートする必要はありません。
  • ColladaまたはX3Dとしてエクスポート
  • 独自のOpenGLアプリで、再インポートします
  • スケルトンで指定された位置と方向にオブジェクトを描画します
  • 実際のステッピングモーターの場合と同じように、ボーン間の角度を変更します
  • ステップ5が正しく行われた場合、ロボットは動きに従う必要があります
  • 必要に応じて、物理演算を追加します(たとえば、Bulletを使用)。APIの概念はOpenGLに似ており、ロボットアームでオブジェクトをキャッチできるようになります。

幸運を !

于 2011-04-01T10:22:04.967 に答える