LoginSignup
2
1

PyODE 使ってみる

Last updated at Posted at 2020-05-04

バネダンパ系の計算をする必要があり PyODE を試します。
似たようなものとしてPybulletというのもあるそうですね。
(他にかわりになる選択肢があれば教えてほしい)

筆者は5年ほど前(2015年頃)にC/C++版のODEを動かしたことがあります。が
......ほとんどなにも思い出せない。
今は Python 普段使いしてるので PyODE を使ってみます。
大元の公式サイト
ODE http://www.ode.org/
マニュアル http://ode.org/wiki/index.php/Manual
参考になるdemura.net様Webページ https://demura.net/ode_faq#b8
PyODE https://pyode.sourceforge.net/
PyODE API https://pyode.sourceforge.net/api-1.2.0/index.html

1 PyODE インストール

1.1 環境など

作業時期:2020年4月
・Windows10
・Python3.8.0 64bit版

↓ ここを参考に進めた。
https://algorithm.joho.info/programming/python/pyode-install/

######備考
sourceforge にWindowsインストーラがあるんだけど、Python2(2.5か2.6)でなきゃならんのと2010年版ということで 選択肢から除外。(一応リンク→ http://pyode.sourceforge.net/#download )
「インストーラ使う必要なし」が結論です。

1.2 ダウンロード

前述の参考サイトに従って whl ファイルを入手
ファイル名:ode-0.15.2-cp38-cp38-win_amd64.whl

1.3 インストール

whlの保存先にてPowerShellを開く。(「『Shift』+右クリック」とかで)
pip コマンドでインストール:

pipによるインストール
C:\Python380\python.exe -m pip install .\ode-0.15.2-cp38-cp38-win_amd64.whl

(「-m」オプションでpipを呼ぶことにしている)

結果: 「Successfully installed ode-0.15.2」
特に苦労しませんでした。

2 可視化ツールについて

PyODEには可視化機能はついてない。
(C++のODEはどうだったっけ? たしか、OpenGLっぽい描画が標準で使えたような気がする)

PyODEと組み合わされる可視化パッケージには
・VPython
・Pygame
・PyOpenGL
・PyOgre
の4つの候補がある。(有名どころではね)
過去の定番だったのは「VPython」のようです。
筆者は当初この「VPython」を試しましたが問題があって
結局「Pygame」に移行しました

2.1 About VPython

最新の「バージョン7」をインストールして動かしてみたところ
・バージョン「5」から「6」に変わるときに大きな変更があったうえ、さらに「6」→「7」でも結構変わったらしく、
現行バージョンで使えるサンプルや記事が少ない。
・現行バージョンは「WebGL」らしくWebブラウザ上に出力される

ということが判明。
どうにも扱いづらかったので
筆者は「VPython」を使うのはいったん諦めて「Pygame」に移りました。

2.2 pygame

当面これを使うつもりです。
PyOpenGLやPyOgreにくらべて、記述量は少なく済むと見ています。
pipで最新版がインストールできました。

2.3 PyOpenGL

インストールはひと手間かかりました。(pipから取得は駄目でした→チュートリアル3参照)
VPythonやPygameより記述量は多い。

2.4 PyOgre

まだ試してない。
PyOgreの中にODEが組み込まれているような話もちらほら。

##3 チュートリアル

本家PyODEサイトに3つのチュートリアルがあります。
手前で実施しました記事もご覧ください。

PyODE チュートリアル 1
概要:「物体の落下」(地面なし)
※本家チュートにグラフ描画を追加しました。

PyODE チュートリアル 2
概要:「ジョイント と pygame による2D描画」
※本家チュートにGIF出力など追加

PyODEチュートリアル3
概要:「落下して積み重なる多数のオブジェクトとPyOpenGLによる3D描画」地面あり、接触あり
※画像/GIF動画出力を追加しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1