BETA

UbuntuにODEをインストール

投稿日:2019-07-05
最終更新:2020-05-07

はじめに

授業で使うためUbuntu 18.04.2 LTSにOpen Dynamics Engineを導入した。
基本的にこのサイトを参考にしたが、エラーが発生したので対処法をまとめた。

「ODE導入」hikaru149の日記
https://hikaru149.hatenablog.com/entry/20180402/1522639370

Open Dynamics Engineとは

ODE(Open Dynamics Engine、オープン・ダイナミクス・エンジン)とは、オープンソース方式で開発されている物理演算エンジンである。BSDライセンスとLGPLの両ライセンスが適用されている。コンポーネントとして動力学演算部分と衝突検出演算部分から構成されている。流体シミュレーション・布シミュレーション・軟体の表現はサポートされていない。
wikipediaより引用(https://ja.wikipedia.org/wiki/Open_Dynamics_Engine)

導入手順

  1. ODEのダウンロード

ここからダウンロード
https://sourceforge.net/projects/opende/

ダウンロードしたらhomeに展開しておく

  1. インストール設定

cd ode-0.13
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev
./bootstrap
./configure
./configure --with-trimesh=opcode --enable-new-trimesh --enable-shared --enable-release --with-x --enable-double-precision --with-libccd --enable-libccd
make

ここでエラーが発生

>`demo_jointPR.cpp:332:36: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]`  
>`                         argv[j] == '\0' ||  // We should have a path here`  

どうやらヌル文字ではなくヌルポインタを使わないと行けないらしい。

  1. ライブラリの書き換え

ode-0.13/ode/demo 内の
"demo_jointPR.cpp"332行目
"demo_jointPU.cpp"582行目
"demo_piston.cpp"の662行目
'\0'NULLに書き換える。(※2020/05/07追記、今回はなぜか(char*)0でうまくいきました)

  1. 再度コマンド入力
    make
    sudo make install
    こんな画面が表示されたらだいたい成功

残りのコマンドも打っておく

sudo cp -r include/drawstuff /usr/local/include/
sudo cp drawstuff/src/.libs/libdrawstuff.* /usr/local/lib
sudo ldconfig
sudo mkdir /usr/local/lib/drawstuff.textures
sudo cp drawstuff/textures/* /usr/local/lib/drawstuff.textures/

プログラムのコンパイル方法

ライブラリオプションとインクルードオプションを設定する必要がある。
下記コマンドを使えばOK
g++ ファイル名 -I/usr/local/include/ode -I/usr/local/include/drawstuff -DdTRIMESH_ENABLED -DdDOUBLE -lode -ldrawstuff -lGL -lGLU -lglut -lX11

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@Negizoku の技術メモ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう