Visual C++ 2008 Expression EditionでODEを使う方法を紹介します。ODEのバージョンは0.10.0以上を対象にしています.説明は0.10.0を対象としているので,ode-0.10.1をお使いの方はode-0.10.0をode-0.10.1と置き換えてください.
- A. Visual C++ 2008 Expression Editionのインストール
- B. ODEのダウンロード
- C. ODEのインストール
- D. ODE本のサンプルプログラムをビルドする方法
- A. Visual C++ 2008 Expression Editionのインストール
- B. ODEのダウンロード
- ここをクリックしてsourceforge.netのOpen Dynamics Engineのページ飛び,中ほどにあるFile Relesesのode-バージョン番号.zipをクリックしてデスクトップへダウンロードする.
- 解凍ソフトの準備(持っていない方のみ)
- ode-0.10.0.zipはzipフォーマットで圧縮されていますのでzipを解凍できるソフトウェアをインストールしてください.ここでは,Lhaplusという圧縮・解凍ソフトを使っています.GoogleでLhaplusを検索するとダウンロード先を簡単に見つけることができます.
- 解凍と移動
- デスクトップにあるode-0.10.0.zipをダブルクリックすると、ode-0.10.0というフォルダーがデスクトップに生成されます。
- ode-0.10.0フォルダをCドライブのすぐ下に移動する
- マウスをode-0.10.0フォルダーに当て、右マウスボタンをクリック、「切り取り(T)」を選択
- スタート→(マイ)コンピュータ→ローカルディスク(c)をダブルクリック
- マウスの右ボタンをクリックし、「貼り付け(P)」を選択
- ビルド(ライブラリの作成)
- ode-0.10.0ではpremakeコマンドを使ってVisual C++ 2008用のソリューションファイルを作成できます.
- コマンドプロンプトを起動する.
スタート→すべてのプログラム→アクセサリ→コマンドプロンプト - 以下のようにコマンドを打ち込む.カットアンドペースト の場合は以下の文字列を使用し,自分で打ち込む場合は2個の-(マイナス)文字がつながって見えるので,下画像を参照して注意深く打ち込んでください.
-
cd c:\ode-0.10.0\build
-
premake --with-demos --with-tests --target vs2008
注:withとtargetの前は-(マイナス)が2個連続している.下画像参照.
成功するとvs2008というVisual C++ 2008用のディレクトリができる.
-
- Visual C++ 2008 Express Editionを起動
- メニューバーから「ファイル(F)」→「開く(O)」→「プロジェクト/ソリューション(P)」を選択
-
c:\ode-0.10.0\build\vs2008\ode.sln
を選択
- この作業は任意です.これによりOPCODEの新しい衝突検出機能を有効にします.よく分からない方は飛ばしてください.
-
ode-0.10\ode\src\config.h
の44行目を何らかのエディターを使って以下のように変更する.
- #define dTRIMESH_OPCODE_USE_NEW_TRIMESH_TRIMESH_COLLIDER 1
-
- ビルドターゲットをDebugDoubleLibとする.
これはデバッグ向け,倍精度,静的ライブラリ用.ODEではDLL(Dynamic Link Library)より静的ライブラリ(Static Library)が推奨されています.また,DebugSingleLibを選ぶと単精度の静的ライブラリが生成されますが,エラーが出やすいのでお勧めできません.
-
-
- 「ビルド(B)」→「ソリューションのビルド(B)」を選択
- デモプログラムの実行ファイルは
c:\ode-0.10.0\lib\DebugDoubleLib
に生成される.
- 試しに,demo_basket.exeをダブルクリックして起動すればODEのビルド成功.
- これで,ODEのインストールは終わりです。
-
- ダウンロードカテゴリーからrobosimu******(******は日付)をダウンロードして,
c:\ode-0.10.0
にコピーし,そこに解凍する.解凍に成功すると
c:\ode-0.10.0\roboSimu
というディレクトリが生成される.その中にはsrc, texturesフォルダー,premake.exe, premake.lua, Readme.txt, roboSimu.luaファイルががあり,また,srcフォルダーの中にはODE本のサンプルコードがある.
- ODEのインストールと同じように,premakeコマンドを使い,ソリューション,プロジェクトファイルを生成する.コマンドプロンプトを起動し,以下のコマンドを実行する.
-
cd c:\ode-0.10.0\roboSimu
-
premake --target vs2008 注:targetの前は-(マイナス)が2個連続.
-
- Visual C++ 2008 Express Editionを起動
- メニューバーから「ファイル(F)」→「開く(O)」→「プロジェクト/ソリューション(P)」を選択
-
c:\ode-0.10.0\roboSimu\src\roboSimu.sln
を選択
-
- ビルドターゲットをDebugLibとする.
- 「ビルド(B)」→「ソリューションのビルド(B)」を選択
- サンプルプログラムの実行ファイルはc:\ode-0.10.0\roboSimu\DebugLibに生成される.
- 試しに,arm1.exeをダブルクリックして起動すれば成功.お疲れ様でした!
コメント
ode質問集の中にwindows7(32bit)でのodeの動作を確認したとありましたが、
インストールに関する詳細が書かれている記事を見つけることができませんでした。
windows7の場合もインストール手順はVistaと変わらないのでしょうか?
立山さん,
こんにちは.
全く同じです.
私は既に試して問題ないことを確認していますが,もし問題があるようなら連絡御願いします.
でむ
こんにちは
大学で0.10.1を使用しており自宅でもと思いインストールまでは出来ましたが,項目Cのソリューションのビルドがうまくいきません
c1xx : fatal error C1083: ソース ファイルを開けません。’..\..\roboSimu\src\amotor.cpp’: No such file or directory
というメッセージがでます.どうすればいいでしょうか?よろしくお願いします.
あきさん、
コメントありがとうございます。ないとさびしいものです。
さて、エラーを見ると、ソースファイルamotor.cppがないと怒られています。ある場合は、パスが間違っていないか確認してください。この例では0.10.0になっているので、ご自分の0.10.1に変更する必要があります。
でむ
ソリューションエクスプロラーのリソースファイルにresources.rcが入ってませんでした。
どうやらそれが原因らしくサンプルプログラムが無事動きました。
ありがとうございました。
こんにちは。
次の2つのリンクが切れているようなので、更新をお願い致します。
http://demura.net/9ode/538.html#a4
http://demura.net/9ode/538.html#a5
agm001さん,
ご指摘ありがとうございます.
リンクと記事の内容があっていなかったのでリンクを削除しました.
でむ
こんにちは。
けんせいちゃんのプログラムをダウンロードしたのち、ODEのインストールやroboSimuのインストールのときと同様にpremakeをする必要はないのでしょうか?
ここはODE 0.10.0のページでした
0.11.1のほうで
再度載せさせていただきます
demuさん はじめまして
ODEを使い始めたpikaというものです。
windows vistaでODE 0.11.1を使っています。
roboSimuをソリューションのビルドして
いざ出来た実行ファイルを実行すると
出てくるウィンドウが真っ白で
シミュレーションの状況がわかりません。
実行でき、エラーメッセージも出ないのですが・・・
計算はされているみたいです。
原因はなんでしょうか?
お願いします
demuさん、こんにちわ。
ソリューション、プロジェクトファイルを作成した後にビルトしてもソースファイルが開けないとエラーになってしまいます。(RoboSimu内すべてのソースファイルです。)
何が原因でしょうか?
demuさん
ode-o.11にしたら出来ました!すいません。
miya
demuさん
Pathに追加してみましたが、同じエラーが出てしまって出来ませんでした。
OpenCVもVisual C++ 2008 EEでやっているのですが、そのせいもあるのでしょうか?
miyaさん、
ご返事がすっかり遅くなりすみません。
パスを通してみてください。
スタート→コントロールパネル→システムとメンテナンス→システム→システムの詳細設定→システムのプロパティ→詳細設定→環境変数
環境変数の「システム環境変数」のPathに「c:\ode-0.10.1\lib\DebugDoubleLib」を追加してください。
でむ
demuさん はじめまして
大学でODEを使い始めたmiyaという者です。
Windows VistaでODE 0.10.1を使っているのですが、roboSimuをダウンロードし、コマンドプロンプトでソリューション,プロジェクトファイルを生成し、ビルドするところまで行っているんですが、ソリューションのビルドをすると、
エラーで「ファイル ‘ode_doubled.lib’ を開くことができません。」
と出るのですが、ode-0.10.1\lib\DebugDoubleDLLの所には、ode_doubled.libがあります。
また、ode.slnはビルド出来たのですが・・・
どうすれば、いいのでしょうか?よろしくお願いします。
Thank you for helping me
Dada,
Please ask the ODE mailing list about your question.
It is the very good mailing list.
This web site is mainly concerned about my ODE sample code, book and articles, and many Japanese who are not good at English.
demu
Demu:
Thank you for helping me to understand ODE.
I compiled the ode-0-10.1 version for the vs2003 and build a static two triangle triMesh and a dynamic odeBox to be manipulated with a forceFeedback joystick, but the dBodyGetForce() function returns a zero force value for every component each time the box collides with the mesh. Could you help me solve this problem also? Thank you and have a happy new year 2009.
Dadá.
Taroxさん,
VC2008用自作ODEプログラムのビルド法の記事を追加しました.試してみてください.
でむ
demuさん,初めまして.Taroxといいます.
とてもわかりやすいので,demuさんのサイトを参考にODEの勉強をさせていただいています.
この度,ODEのバージョンが上がったとのことなので,私の環境でもこのページを見ながら0.10を設定したのですが,自作プログラムの実行がうまく行かないので質問させていただきました.
このページの通りにやってサンプルプログラムの実行まではうまく行きました.そこで,ODE0.9でうまくできていたプロジェクトファイルのソースだけをサンプルプログラムのhello.cppに置き換えて実行したのですが,ビルドはできるものの,実行すると
「assertion “dMassCheck(mass)” failed in c\ode-0.10.0\ode\src\ode.cpp:494」というODE INTERNAL ERRORと
「ODE Message 2: inertia must be positive definite (c\ode-0.10.0\ode\src\mass.cpp:53)」が表示されます.
前述のように,このページのやり方では実行できているので,ソースに間違い(設定質量が負になっている)は無いはずなので,原因はプロジェクトファイル等の設定にミスがあると思うのですが,ODE0.9から0.10にアップデートした場合はどこを設定し直せばいいのでしょうか?
できれば,Code::BlocksのようにVC2008でも自作ODEプログラムのビルド法を教えていただけませんでしょうか.
長文になってしまいましたが,よろしくお願いします.