1.はじめに
Open Dynamics Engine (ODE) はフリーの剛体力学をシミュレートするための工学特性のライブラリである。例えば、VR環境での乗り物、生き物および動いているオブジェクトをシミュレートするのに適している。それは速く(fast)、柔軟(flexible)かつ頑丈(robust)で、内蔵の衝突検出機能を持っている。ODEは何人かの寄稿者からの支援でRussell Smith氏により開発されている。
剛体シミュレーション(rigid body simulation)の知識がない場合は、Physics SDKとは何かチェックしてください。
これはODEバージョン0.5のためのユーザ・ガイドである。低いバー ジョンナンバーではあるが、ODEは合理的に成熟(reasonably mature)していて安定(stable)している。
1.1 特徴
ODEは関節を持った剛体構造をシミュレートするのに適している。様々 な形の剛体が様々な種類のジョイントと一緒に接続される場合、関節構造が作られる。例えは地面の乗り物(車輪がシャシーに接続される場合)、脚のある生き物(脚が身体に接続される場合)あるいは物体の積み重なりである。
ODEは、対話型リアルタイムのシミュレーションにおいて使用されるように設計されている。それは、変化する仮想現実環境(changeable virtual reality environments)でオブジェクトを移動させることをシミュレートするのに特に適する。ばぜならこれは速く(fast)、強固(robust)かつ安定(stable)してい て、ユーザはシミュレーションが走っている間にシステムの構造を変更することを自由に行える。
ODEは制御の原因でシミュレーションエラーが生じないように、高度で 安定した積分器(integrator)を使用する。この物理的の意味はシミュレートシステムが理由もなく”爆発”させないためである(これは気をつけなければ他のシミュレータで多く起こるだろう)。ODEは物理的な精度よりもスピードと安定性が重視される。
ODEは硬い接触(hard contacts)をする。これは、2つの剛体が衝突する場合に、特別な 非浸透制約(non-penetration constraint)が用いられることを意味する。他の多くのシミュレータでは、代わりに接触を表すために仮想スプリング(virtual springs)を用いている。これは、正しく行うことが難しく、非常にエラーを起こしやすい。
ODEは衝突検出システムを内蔵している。しかしながら、それを無視したければ、あなた自身で衝突検出を行うことができる。現在の衝突の基本は球体(sphere)、ボックス(box)、キャップの付いた円柱(capped cylinder)、地面(plane)、線(ray)、そして三角形のメッシュ(triangular mesh)である-より多くの衝突オブジェクトは後に作っていく予定である。ODEの衝突システムは”スペース(spaces)”の概念により、交差する可能性のあるオブジェクトの早い識別を提供する。
ここに特徴を示す:
- 任意の質量配分を持った剛体
- ジョイント形式:ボールとソケット(ball-and-socket)、ヒンジ(hinge)、スライダ(角柱)(slider (prismatic))、ヒンジ2(hinge2)、軸(fixed)、角度モータ(angular motor)、ユニバーサル(universal)
- 基本衝突:球(sphere)、ボック ス(box)、キャップの付いた円柱(capped cylinder)、地面(plane)、線(ray)、そして三角形のメッシュ(triangular mesh)。
- 衝突スペース:クワッドツリー(quad tree)、ハッシュスペース(hash space)、シンプル(simple)。
- シミュレーション方法:運動方程式 はTrinkle/StewartとAnitescu/Potraのモデルに基づいたラグランジュの乗数速度から由来されている。
◇まずはじめに積分器が使われている。これは高速であるが、定量的な工学技術のためにはまだ十分に正確ではない。より高度な積分器は後に来るだろう。 - ステップ時間の選択方法:標準の"big matrix"法、あるいはより新しい 反復するQuickStep法のいずれかが使用できる。
- 接触と摩擦モデル:これはBaraffによって記述されたDantzig LCP solver がベースとなっているが、ODEはColoumb摩擦モデルにより、より高速な近似を提供している。
- インターフェースは従来のCである(ODEの中はC+ +でほとんど書かれている)。
- Cの上にC++インターフェースを構築する。
- Many unit tests, and more being written all the time. 多くのユニットはすべての時間、テストして書けられる。
- Platform specific optimizations. プラットフォームの特殊な最適化。
- Other stuff I forgot to mention... その他記載を怠ったこと...
1.2. ODEのライセンス
ODEは Copyright © 2001-2004 Russell L. Smithである。無断複写・転載を禁ず。
このライブラリはフリーソフトウェアであり、再配布または各々の諸条件で修正 が可能である。
The GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The text of the GNU Lesser General Public License is included with this library in the file LICENSE.TXT.
The BSD-style license that is included with this library in the file LICENSE-BSD.TXT.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files LICENSE.TXT and LICENSE-BSD.TXT for more details.
The BSD-style license that is included with this library in the file LICENSE-BSD.TXT.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files LICENSE.TXT and LICENSE-BSD.TXT for more details.
1.3. ODEコミュニティ
Do you have questions or comments about ODE? Think you can help? Please write to the ODE mailing list.
ODEについて質問もしくはコメントがある?手伝ってくれる?ODEのメーリングリストへ書いて下さい。
ODEについて質問もしくはコメントがある?手伝ってくれる?ODEのメーリングリストへ書いて下さい。