[blog-日々のこと] ODEにも興味を(健忘禄もかねて)

こんにちは

もう9月も9日を残すところになってしまいました。

さて今回はODEです。 ODEとはOpen Dynamics Engineの略のようで、これを使ったロボットシミュレーションに興味を覚えてしまいました。

というかネットでふとしたことから、「簡単!実践! ロボットシミュレーション」という本があることを知り新品ではないのですが、思わず購入してしまいました。

たまたま「ROS」を使い始めていて、そこでもロボットシミュレータ Gazeboというものがあることを知っていたため 思わずといったところです。

こんなに手を広げていてどうするんだと思うのですが、こればっかりは

この「ロボットシミュレーション」という本ですが、2007年に初版として出版されたようで、この本のサポートサイトが「ロボットの開発と教育 demura.net」にあります。

Windows, Mac, Linuxで走らせることができるようですが、ネットの情報の多くが結構古いこともありdemoを走らせるまで時間がかかってしまいました。

Linux(ubuntu 16.04)へのODEのインストール

ここでは、Linux(ubuntu 16.04)にODEをインストールし、Demoを走らせることと、

「簡単!実践! ロボットシミュレーション」の本で紹介されているプログラム 1.2 bounce.cppと 1.4.4 エクササイズ EX 1.7までを実行するところまで、について簡単に紹介したいと思います。

ネット上の多くの資料を参考にさせていただきました。ここに感謝の意を表したいと思います。本当にありがとうございました。

ODE-0.16のインストール

現在(2019)のODEの最新版はode-0.16のようです。

資料

Info on Open Dynamics Engine (ODE)

Installing ODE on Linuxにしたがってインストールしました。

ただし一部修正が必要のようで、以下の記事を参考に修正しました。

ODEとpyODE 

https://bitbucket.org/odedevs/ode/addon/pipelines/home#!/results/128

を参考にさせていただきました。

なお最新版のodeは以下のサイトから入手できるようです。

https://bitbucket.org/odedevs/ode/downloads/

$ cd /home/xx    / ** xx はuser名 **/
$ tar -xvzf ode-0.16.tar.gz
$ cd ode-0.16

$ sudo apt-get install automake libtool freeglut3 freeglut3-dev freeglut3-dbg

$ ./bootstrap
$ ./configure --enable-double-precision --enable-ou --enable-libccd 
--enable-double-precision

がないとエラーになるようです。これで悩みました。

$ make

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

参考までに
include/drawstuff は ~/ode-0.16/include/drawstuff です。

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

参考までに
drawstuff/src/.libs/libdrawstuff.* は ~/ode-0.16/drawstuff/src/.libs/libdrawstuff.* です。

$ sudo ldconfig
$ sudo mkdir /usr/local/share/drawstuff
$ sudo cp -r drawstuff/textures /usr/local/share/drawstuff/

ところで、ODEがインストール出来たかどうかは

$ cd ode/demo
は
( $ /home/xx/ode-0.16/ode/demo)です。

$ ./demo_crash

のシミュレーションが実行できればインストールは無事に終了しています。

プログラムのコンパイル

「簡単!実践! ロボットシミュレーション」で紹介されているプログラムをコンパイルしてみました。 

ここからプログラムをダウンロードできます。

3. こんにちは物理世界

sample3-081011.zip

これを以下のところで解凍します。

$ cd ~/ode-0.16/ode

で解凍します。

すると以下のようにsample3のフォルダが出来ます

$ cd /home/xxx/ode-0.16/ode/sample3

sample3のフォルダの中は以下のようになっていました。

sample3.cbp
sample3.cpp
sample3.vcproj
-$README

これをコンパイルするのですが、以下のようにして行います。

$ ~/ode-0.16/ode/sample3の中で

$ g++ -I/usr/local/includesample3.cpp -L/usr/local/lib -lode -ldrawstuff -lglut -lGL -lGLU -lX11 -lXi -lm -lpthread -DdDOUBLE

結果は

a.out で出力されます。

これを実行するには

$ ./a.out

エラーがなければシミュレーションが実行されます。

面倒なので出力のファイル名(a.out)はそのままにしてあります。 

紹介されているプログラム 1.2 bounce.cpp

紹介されているbounce.cppのプログラムを先ほどのsample3.cppに追加しました。

bounce.cppは以下のところに作ります。

$ cd ~/ode-0.16/ode
$ mkdir bounce
$ cd bounce

$ ~/ode-0.16/ode/bounceの中で

$ g++ -I/usr/local/include bounce.cpp -L/usr/local/lib -lode -ldrawstuff -lglut -lGL -lGLU -lX11 -lXi -lm -lpthread -DdDOUBLE

結果は先ほどと同じように

$ a.outです。

実行は

$ ./a.out

シミュレーションの結果が表示されます。

エクササイズは本の通りに値を変更すれば

その通りにシミュレーションされました。

これで本に書かれていることを実行できるようになりました。

でもプログラムを入れるのは大変です。できれば先ほどのところからダウンロードしてきましょう。

この本を終えるころには、ODEについての知識が増えることと思っていますが。

Windows 10へのODEのインストール

Visual Studio 2017を使いましたが、沢山の情報がネット上にありました。なかなか新しい情報は見つからなかったのですが、いくつかのサイトの情報でエラーがでなくなりました。

一応ビル

以下のサイトのサイトの通りにすればビルドできます。

VisualStudio2017でODEシミュレータ

ただしビルド中にエラーが出ることがありました。 それは

Windows 10 SDKがインストールされていなことが原因のようです。エラー情報からサイトを検索して回答を得ることが出来ました。

Windows10 SDKのインストール

Visual Studio 2017をインストールするときに、私はVisual Studio Installer(2017用)を使用するのですが、そこで

「ワークロード」を選択して

「C++によるデスクトップ開発」をクリックすると、その中にWindows10 SDKがありますので、それをクリック(多分でボルドでチェックが入っていると思いますが)

これでWindows10 SDKがインストールされます。

どうも「C++によるディスクトップ開発」をインストールすることが必要だったということのようです。

あとは前述のサイトの通りにすれば、ビルドが完了します。

一応ビルドは終わってdemoも問題なく動いていますが、demo以外のプログラムをどうすればいいのか、手をつけていないので、これから勉強したいと思っています。

demura.netに簡単な方法は書いてあるのですが、それ以外の方法を探そうと思っています。

簡単な方法つまりdemoに追加する方法ですが、やってみましたところビルドできました。

出来たファイルはdemo_sample4.exe で管理者権限で実行します。

なお色は黄色になっています。

projectを作っていくのかな?

方法がわかりましたら改めてここで紹介したいと思います。

コメント