ODEのインストール (Visual C++ 2008 EE)

最新のODE0.11.1のインストール記事はこちらです.


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と置き換えてください.



  • B. ODEのダウンロード
    1. ここをクリックしてsourceforge.netのOpen Dynamics Engineのページ飛び,中ほどにあるFile Relesesのode-バージョン番号.zipをクリックしてデスクトップへダウンロードする.
    2. 解凍ソフトの準備(持っていない方のみ)
    3. ode-0.10.0.zipはzipフォーマットで圧縮されていますのでzipを解凍できるソフトウェアをインストールしてください.ここでは,Lhaplusという圧縮・解凍ソフトを使っています.GoogleでLhaplusを検索するとダウンロード先を簡単に見つけることができます.
    4. 解凍と移動
      • デスクトップにあるode-0.10.0.zipをダブルクリックすると、ode-0.10.0というフォルダーがデスクトップに生成されます。
      • ode-0.10.0フォルダをCドライブのすぐ下に移動する
        • マウスをode-0.10.0フォルダーに当て、右マウスボタンをクリック、「切り取り(T)」を選択
        • スタート→(マイ)コンピュータ→ローカルディスク(c)をダブルクリック
        • マウスの右ボタンをクリックし、「貼り付け(P)」を選択
    5. ビルド(ライブラリの作成)
      • 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個連続している.下画像参照.
          command3.jpg
          成功すると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を選ぶと単精度の静的ライブラリが生成されますが,エラーが出やすいのでお勧めできません.
        vs2008targetlib.jpg
      • 「ビルド(B)」→「ソリューションのビルド(B)」を選択
      • デモプログラムの実行ファイルは
         c:\ode-0.10.0\lib\DebugDoubleLib

        に生成される.

      • 試しに,demo_basket.exeをダブルクリックして起動すればODEのビルド成功.
      • これで,ODEのインストールは終わりです。

  • C. 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とする.
      vs2008targetlib2.jpg
    • 「ビルド(B)」→「ソリューションのビルド(B)」を選択
    • サンプルプログラムの実行ファイルはc:\ode-0.10.0\roboSimu\DebugLibに生成される.
    • 試しに,arm1.exeをダブルクリックして起動すれば成功.お疲れ様でした!
    22 Comments
    1. ode質問集の中にwindows7(32bit)でのodeの動作を確認したとありましたが、
      インストールに関する詳細が書かれている記事を見つけることができませんでした。
      windows7の場合もインストール手順はVistaと変わらないのでしょうか?

      • 立山さん,

        こんにちは.

        全く同じです.
        私は既に試して問題ないことを確認していますが,もし問題があるようなら連絡御願いします.

        でむ

    2. こんにちは

      大学で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が入ってませんでした。
          どうやらそれが原因らしくサンプルプログラムが無事動きました。
          ありがとうございました。

      • agm001さん,

        ご指摘ありがとうございます.
        リンクと記事の内容があっていなかったのでリンクを削除しました.

        でむ

    3. こんにちは。

      けんせいちゃんのプログラムをダウンロードしたのち、ODEのインストールやroboSimuのインストールのときと同様にpremakeをする必要はないのでしょうか?

    4. demuさん はじめまして
      ODEを使い始めたpikaというものです。

      windows vistaでODE 0.11.1を使っています。

      roboSimuをソリューションのビルドして
      いざ出来た実行ファイルを実行すると
      出てくるウィンドウが真っ白で
      シミュレーションの状況がわかりません。

      実行でき、エラーメッセージも出ないのですが・・・
      計算はされているみたいです。

      原因はなんでしょうか?
      お願いします

    5. demuさん、こんにちわ。
      ソリューション、プロジェクトファイルを作成した後にビルトしてもソースファイルが開けないとエラーになってしまいます。(RoboSimu内すべてのソースファイルです。)
      何が原因でしょうか?

    6. demuさん

      Pathに追加してみましたが、同じエラーが出てしまって出来ませんでした。

      OpenCVもVisual C++ 2008 EEでやっているのですが、そのせいもあるのでしょうか?

    7. miyaさん、

      ご返事がすっかり遅くなりすみません。

      パスを通してみてください。

      スタート→コントロールパネル→システムとメンテナンス→システム→システムの詳細設定→システムのプロパティ→詳細設定→環境変数

      環境変数の「システム環境変数」のPathに「c:\ode-0.10.1\lib\DebugDoubleLib」を追加してください。

      でむ

    8. demuさん はじめまして
      大学でODEを使い始めたmiyaという者です。
      Windows VistaでODE 0.10.1を使っているのですが、roboSimuをダウンロードし、コマンドプロンプトでソリューション,プロジェクトファイルを生成し、ビルドするところまで行っているんですが、ソリューションのビルドをすると、

      エラーで「ファイル ‘ode_doubled.lib’ を開くことができません。」

      と出るのですが、ode-0.10.1\lib\DebugDoubleDLLの所には、ode_doubled.libがあります。

      また、ode.slnはビルド出来たのですが・・・

      どうすれば、いいのでしょうか?よろしくお願いします。

    9. 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

    10. 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á.

    11. 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プログラムのビルド法を教えていただけませんでしょうか.
      長文になってしまいましたが,よろしくお願いします.

    コメントを残す

    メールアドレスが公開されることはありません。