Hatena::ブログ(Diary)

hikaru149の日記

2018-04-02

ODE導入

12:22

Ubuntu16.04LTS に ode 0.13 を導入のまとめ

$ ./configure --with-trimesh=opcode --enable-new-trimesh --enable-shared --enable-release --with-x --enable-double-precision --with-libccd --enable-libccd


今回インストールしたODEを使った自分のソースコードコンパイルするときには、

インクルードオプション

-I/usr/local/include/ode -I/usr/local/include/drawstuff -DdTRIMESH_ENABLED -DdDOUBLE

ライブラリオプション

-lode -ldrawstuff -lGL -lGLU -lglut -lX11

を追加.

テクスチャの在り処は、ここ

/usr/local/lib/drawstuff.textures/

ここの

http://www.natural-science.or.jp/laboratory/ode_intro.php

ソースをビルドして動作確認。無事動作。

追記

glut の追加導入を求められたら、

sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev

===

以下、導入法。

下記より新しいここ

http://szmlb.hatenablog.com/entry/2014/12/29/234455

を参考に。

その前に、パッケージのReadmeを読むのは基本。

Readmeには、導入法はInstall.txtに記載とあるので、

Install.txtを読むのも基本。

Open Dynamics Engine 0.13をubuntuインストールする

ode-0.12からode-0.13に更新するにあたって, いい機会なのでインストール手順をまとめておく.

環境は ubuntu 14.04.

ほぼyoutalk.jpのおぼえがきのままでいける.

youtalk.jp — Ubuntu 12.04へODE 0.12をインストール

インストール

あらかじめ必要なパッケージをインストール.

$ sudo apt-get install automake libtool freeglut3-dev

ODEを下記リンクからダウンロード.

Open Dynamics Engine - Browse /ODE at SourceForge.net

ダウンロードしたファイルを展開して, 展開したディレクトリ内にcdしてから,

$ ./bootstrap ※macの場合はbootstrap内のlibtoolizeをglibtoolizeに変更<=tarボールからの時はこれは不要らしい。

$ ./configure (コンパイルオプション)

オプションの内容は以下のコマンドで確認可能.

$./configure --help

今回は以下のように指定.

$ ./configure --with-trimesh=opcode --enable-new-trimesh --enable-shared --enable-release --with-x --enable-double-precision --with-libccd

コンフィギュレーション結果

Configuration:

Build system type: x86_64-unknown-linux-gnu

Host system type: x86_64-unknown-linux-gnu

Use double precision: yes

Use drawstuff: X11

Demos enabled: yes

Use OPCODE: yes

Use GIMPACT: no

Custom colliders:

cylinder-cylinder: none

box-cylinder: default

capsule-cylinder: none

convex-box: none

convex-capsule: none

convex-cylinder: none

convex-sphere: default

convex-convex: default

Is target a Pentium: yes

Is target x86-64: yes

Use old opcode trimesh collider: no

TLS for global caches: no

Threading intf enabled: yes

Built-in threading included: no

Enable debug error check: yes

Headers will be installed in ${prefix}/include/ode

Libraries will be installed in ${exec_prefix}/lib

Building in directory /home/sugi/ode/ode-0.13

なんか衝突検出が弱い感じ。

ちといやなので下記で確認。

sugi@sugi-NEC:~/ode/ode-0.13$ ./configure --help | grep libccd

--enable-libccd enable all libccd colliders (except box-cylinder)

--with-cylinder-cylinder=[none,libccd]

--with-box-cylinder=[default,libccd]

--with-capsule-cylinder=[none,libccd]

--with-convex-box=[none,libccd]

--with-convex-capsule=[none,libccd]

--with-convex-cylinder=[none,libccd]

--with-convex-sphere=[default,libccd]

--with-convex-convex=[default,libccd]

というわけで、

--enable-libccd enable all libccd colliders (except box-cylinder)

を追加。

$ ./configure --with-trimesh=opcode --enable-new-trimesh --enable-shared --enable-release --with-x --enable-double-precision --with-libccd --enable-libccd

この結果、

Configuration:

Build system type: x86_64-unknown-linux-gnu

Host system type: x86_64-unknown-linux-gnu

Use double precision: yes

Use drawstuff: X11

Demos enabled: yes

Use OPCODE: yes

Use GIMPACT: no

Custom colliders:

cylinder-cylinder: libccd

box-cylinder: default

capsule-cylinder: libccd

convex-box: libccd

convex-capsule: libccd

convex-cylinder: libccd

convex-sphere: libccd

convex-convex: libccd

Is target a Pentium: yes

Is target x86-64: yes

Use old opcode trimesh collider: no

TLS for global caches: no

Threading intf enabled: yes

Built-in threading included: no

Enable debug error check: yes

Headers will be installed in ${prefix}/include/ode

Libraries will be installed in ${exec_prefix}/lib

Building in directory /home/sugi/ode/ode-0.13

でもひょっとしてとっても遅くなったりするんだろうか?だとしたら嫌だなあ。

まあ試してみよう。

makeして

$ make

デモで実行速度を確認。少し遅いか?でもまあ大丈夫か?とりあえず良しとしよう。

インストール.

$ sudo make install

Install.txtには下記の記述があり、

The latter command will also create a pkg-config script that provides

compilation and linking flags for programs. The old stand-alone

"ode-config" script is also installed for compatibility.

/usr/local/pkgconfig ディレクトリに、ode.pc が作られる。

pkg-config の使い方はウィキペディア参照。

https://ja.wikipedia.org/wiki/Pkg-config

ode.pc のなかみは、

prefix=/usr/local

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir=${prefix}/include

precision=dDOUBLE

Name: ode

Description: Open Dynamics Engine

Version: 0.13

Libs: -L${libdir} -lode

Libs.private: -lstdc++ -lm

Cflags: -I${includedir}

なので、

$ pkg-config ode --cflags

  • I/usr/local/include

$ pkg-config ode --libs

  • L/usr/local/lib -lode

となる。

drawstuffが必要な場合はさらに以下のコマンドで, /usr/local以下に必要なファイルをコピーする.

$sudo cp -r include/drawstuff /usr/local/include/

$sudo cp drawstuff/src/.libs/libdrawstuff.* /usr/local/lib

$sudo ldconfig

今回インストールしたODEを使った自分のソースコードコンパイルするときには、

インクルードオプション

  • I/usr/include/ode -I/usr/local/include/drawstuff -DdTRIMESH_ENABLED -DdDOUBLE

ライブラリオプション

  • lode -ldrawstuff -lGL -lGLU -lglut -lX11

を追加.

ode-0.12までは-lX11は不要だったが, 今回コンパイル時に怒られたので追加した.

さらに、テクスチャファイルもlibにコピーしておく。

$sudo mkdir /usr/local/lib/drawstuff.textures

$sudo cp drawstuff/textures/* /usr/local/lib/drawstuff.textures/

参考

API: ODE: Main Page

出村先生の解説サイト: demura.net » Maintenance Mode

松下先生のサイト: Open Dynamics Engine - PukiWiki ODEでロボットシミュレーション開発環境を構築しよう! | Think IT(シンクイット)

natural scienceの解説サイト: コンピュータシミュレーション講座ODE (Open Dynamic Engine) 入門/natural science Laboratory

ODEのpythonラッパーpyODEの解説サイト: PythonによるOpenDynamicsEngine講座


==== 古いの ======

ここ

https://www.youtalk.jp/post/24185013033/install-ode

を参考に。

まずはソースをダウンロード

現在のODEの最新バージョンは0.13です。

次に、ソースのビルドに必要なパッケージをダウンロード

ソースを生成するautogen。

コンパイルオプションを指定するconfigure。

順に実行します。

sudo apt-get install automake libtool freeglut3-dev

./autogen.sh ## これ何?知らんぞ。バージョン0.12にはあったらしい。0.13にはない。

./configure --enable-release --with-x --enable-double-precision --with-libccd

コンパイルオプションとして下記を指定。

デバッグ情報を除いたリリースコンパイル

Xを使った描画

浮動小数点にdoubleを使用

libccdを使った衝突検出

make; sudo make install

ただし、これだけだとdrawstuffがインストールされません。

drawstuffが必要なら、

/usr/local 以下に必要なファイルをコピー。

sudo cp -r include/drawstuff /usr/local/include/

sudo cp drawstuff/src/.libs/libdrawstuff.* /usr/local/lib

sudo ldconfig

これでインストール完了。

今回インストールしたODEを使った自分のソースコードコンパイルするときには、

インクルードオプション

  • I/usr/include/ode -I/usr/local/include/drawstuff -DdTRIMESH_ENABLED -DdDOUBLE

ライブラリオプション

  • lode -ldrawstuff -lGL -lGLU -lglut

を追加。

トラックバック - http://d.hatena.ne.jp/hikaru149/20180402/1522639370