ODE付属テストプログラムtest_crash.exe
ゲーム開発やロボットの研究者にも使われているオープンソースの物理計算エンジンODE(Open Dynamics Engine、オープン ダイナミクスエンジン)を学ぶODE講座の2回目です。
今回はODE (Open Dynamics Engine)の最新バージョン0.8のインストールについて説明します。ODEはマルチプラットフォームなのでWindows、Linux、Mac OS Xでも利用可能です。
今回はWindows環境でしかもインストールがもっとも簡単なMinGW環境を使った方法を説明します。ODEの最新バージョン0.8はWindowsのフリーの開発環境Cygwinではテストプログラムをコンパイルできません。
MinGWはCygwinの ようにLinuxとの互換性は高くありませんが、150MBもディスクに空きがあればインストール可能ですし、バイナリを実行するときに特別なライブラリ が必要なくGPLで配布する必要もない(注1)ので重宝します。そのうえ、gcc、make、gdbなどのLinuxで標準的な開発ツールを使うことができます。
注1:Cygwinで作成したバイナリはcygwin1.dllを使うので、これも同時に配布しなければならない。これはGPLなので自分の作成したプロ グラムもGPLで配布しなければいけないのです。
では、以下について図とリンク付きで詳しく説明していきます。
0. ユーザーアカウント名のチェック
これからインストールするMinGW+MSYS 環境ではユーザーアカウント名が日本語の場合、フォルダの一部が文字化けし作業がうまくいきません。
「コントロールパネル」→「ユーザアカウント」でアカウントが英語になっているか確認してください。日本語の場合は「新しいアカウントを作成する」で英語のアカウントを作成してください。その際、スペースなどはいれないでください。なお、「アカウントを変更する」でアカウント名を変更してもフォルダー名は変わらないのでだめです。必ず、新規の英語(苗字または氏名のローマ字が良いでしょう)のアカウントを作成してください。
1. MinGWのインストール
- http://prdownloads.sourceforge.net/mingw/からMinGW-5.1.0.exeを ダウンロードします.日本のJAISTサイトからダウンロードするのがよいでしょう。この際、 間違ってJAISTのロゴをクリックするとJAISTのホームページへ飛んでしまいます。一番右のDownloadの文字をクリックして適当なところ(私 のお勧めはc:\temp)にダウンロードしてください。
- デスクトップにあるMinGW-5.1.0.exeをダブルクリックすると以下のウインドウが現れます。Nextをクリックして次に進む。
- Download and InstallにチェックをいれNextをクリック
- LicenseAgreementの画面が出ますのでライセンスに同意するなら I Agreeをクリック。当然ですが、同意しない場合はインストールできません。
- どのパッケージを選ぶが聞いてきます.Current(現在のバージョン)にチェックをいれNextをクリック.
- 必要なコンポーネントを選択します.インストールをCustomにし,MinGW base tools,g++ compiler, MinGW Makeにチェックをいれ,Nextをクリック.この3個のコンポーネントを選択しなければコンパイルができないのでチェックが確実に入っているか確認してください。
- インストールする場所を聞いてきます.このままでよいのでNextをクリック.なお,インストールにはハードディスクに58.5MBの空き領域が必要です.
- スタートメニューフォルダーの選択を聞いてきます.このままInstallをクリック
- ダウンロードとインストールが始まり、インストールが終わると次の画面のようにInstallation Completeの表示になります.Nextをクリック
- Finishをクリックしてインストール作業を終了しましょう.次はMSYSをインストールしましょう。
2. MSYSのインストール
- MSYSはMinimal Systemの略でMinGWを使いやすくするために必要な最小限のシステムです。MinGWと同様にhttp://prdownloads.sourceforge.net/mingw/からMSYS-1.0.10.exeをダウンロードしてデスクトップに置いてください。MSYS-1.0.10.exeをダブルクリックすると次のウインドウが開きます。「はい」をクリックして次へ進む。
- Welcome to the “Minimal System” Setup Wizardの画面が開くのでNextをクリック。
- License agreementを読んでOKならYesをクリック。
- Informationを読んだらNextをクリック。
- Setupの画面になります.インストール先を変更せずにNextをクリック.インストールには少なくとも6MBの空き領域が必要です.
- Select componentsの画面になるので何もせずにNextをクリック。
- Select Start Menu Barの画面になります。なにもせずにNextをクリック。
- Ready to Installの画面になり、これからハードディスにインストールします。Installをクリック。
- 以下の画面のようにインストールが100%になると,その下の図のようなコマンドプロンプトウインドウが開きます.
-
以下のように答えてください.
Do you wish to continue with the post intsll?[Yn] yキーを押す
Do you have MinGW installed [Yn] yキーを押す
Please answer the following in the form of c:/foo/bar
Where is your MinGW installation?C:/mingwとタイプしてEnterキーを押す。ここで間違ってC:¥mingwとタイプしてインストールに失敗するケースが良くあります。C:の後は¥ではなくスラッシュ/なので注意しましょう。 - これでインストールが終わりです。Finishをクリックしましょう。
- インストールが正常に終わると。デスクトップ上にMSYSのアイコンが追加されます。それをダブルクリックすると以下のMINGW32ターミナルが開きます。 これでMSYSのインストール作業は終わりです。
3. ODE0.9のインストール
ダウンロード
- ここをクリックしてsourceforge.netのOpen Dynamics Engineのページ飛ぶと以下の画面になります。中ほどの赤丸で囲んだDownload Open Dynamics Engineのバナーをクリックします。
すると次の画面になるので、下の方にある赤丸で囲んでいるode-src-0.9.zipをクリックするとダウンロードが始まります。
- ダウンロード先はc:\msys\1.0\home\ユーザ名\srcの下にしてください.srcフォルダーがない場合はエクスプローラーでc:\ msys\1.0\home\ユーザ名へ移動し,右マウスボタンをクリックし,[新規作成(W)→フォルダ(F)]を選びsrcフォルダーを作成してください.
インストール
- ode-src-0.9.zipはzipで圧縮されていますのでzipを解凍できるソフトウェアをインストールしてください.ここでは,Lhaplusという圧縮・解凍ソフトを使っています.GoogleでLhaplusを検索するとダウンロード先を簡単に見つけることができます.
- これからの作業はUNIXのコマンドを使いますが,知らないあなたも例のとおり入力してください。
アイコンをダブルクリックしてMINGW32ターミナルを開きます。以下のコマンドはこのターミナルで実行してください。
2 srcフォルダーへ移動
$cd□src リターンキー($はプロンプトなので打ち込まない,□はスペースです)
3. ode-0.9 ディレクトリへ移動
$cd□ode-0.9 リターンキー
4. コンパイルの準備
$./configure□–enable-double-precision リターンキー(/の前のピリオドを忘れないで)
5. コンパイル
$make リターンキー
makeに成功すると以下のように表示されます。
6. インストール
$make□install リターンキー
テスト
$cd□ ode/demo リターンキー
$./demo_crash リターンキー(/の前のピリオドを忘れないで)
ロボコンマガジンではbuggyで遊びましたが、ここではより面白いdemo_crashで遊びます。
上のコマンドが成功するとSimulation test environment v0.02のウインドウが開き以下の画面が表示されたら成功です。ごくろうさま!遊び方はDrawStuff Messageに表示されていますのでそれに従って遊んでください。
砲弾で破壊されるブロック
おしまい。
更新ログ
- 2007-12-4: ODE0.9に対応
- 2007-2-12: ODE0.8に対応
コメント
でむ様。
返信ありがとうございます。早速ためさせていただきます。
遊亀さん、
はじめまして。コンパイル時にエラーが出ると困りますよね。
さて、外しているかもしれませんが、ユーザ名はcontrol lab admで、スペースが入っていますか?もし、入っていたらスペースのない半角のアカウントをWindowsで作り、そのアカウントでODEを再インストールして頂けますか? ODEの0.9がリリースされたので、それを試してみてもいいかもしれません。
でむ
いつも拝見しております。
じつは上記のやり方で自分のPCでやったときは問題なくできたのですが、
ノートPCでやるとうまくいきません。
Control lab Adm@FREUD ~/src/ode-0.8
$ ./configure –enable-double-precision
省略
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/Makefile
config.status: creating include/ode/Makefile
config.status: creating ode/Makefile
config.status: creating ode/src/Makefile
config.status: creating drawstuff/Makefile
config.status: creating drawstuff/src/Makefile
config.status: creating drawstuff/dstest/Makefile
config.status: creating ode/test/Makefile
config.status: creating ode-config
config.status: creating include/ode/config.h
config.status: include/ode/config.h is unchanged
config.status: executing depfiles commands
Configuration:
Target system type: i686-pc-mingw32
Build system type: i686-pc-mingw32
Host system type: i686-pc-mingw32
Use double precision: yes
Use OPCODE: yes
Use GIMPACT: no
Use gyroscopic term: yes
Is this a Pentium: yes
Is the CPU x86-64: no
Is this a release build: no
Is this a debug build: no
Using SONAME: no
Headers will be installed in /usr/local/include/ode
Libraries will be installed in /usr/local/lib
3. ODE0.8のインストール の $make の時にでてきたメッセージです。
Control lab Adm@FREUD ~/src/ode-0.8
$ make
省略
Making all in ode
make[1]: Entering directory `/home/Control lab Adm/src/ode-0.8/ode’
Making all in src
make[2]: Entering directory `/home/Control lab Adm/src/ode-0.8/ode/src’
if g++ -DHAVE_CONFIG_H -I. -I. -I../../include/ode -O2 -fPIC -I../../include I../../include -I/home/Control lab Adm/src/ode-0.8/OPCODE -I/home/Control lab dm/src/ode-0.8/OPCODE/Ice -DdTRIMESH_ENABLED -DdTRIMESH_OPCODE -g -O2 -MT libod_a-array.o -MD -MP -MF “.deps/libode_a-array.Tpo” -c -o libode_a-array.o `test f ‘array.cpp’ || echo ‘./’`array.cpp; \
then mv -f “.deps/libode_a-array.Tpo” “.deps/libode_a-array.Po”; else rm -f “.dps/libode_a-array.Tpo”; exit 1; fi
array.cpp:1: warning: -fPIC ignored for target (all code is position independen)
g++.exe: lab: No such file or directory
g++.exe: Adm/src/ode-0.8/OPCODE: No such file or directory
g++.exe: lab: No such file or directory
g++.exe: Adm/src/ode-0.8/OPCODE/Ice: No such file or directory
make[2]: *** [libode_a-array.o] Error 1
make[2]: Leaving directory `/home/Control lab Adm/src/ode-0.8/ode/src’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Control lab Adm/src/ode-0.8/ode’
make: *** [all-recursive] Error 1
何がいけないのでしょうか・・・・