Ubuntu 10.04 上に graspPlugin の環境を構築するには、下のソフトウェアのインストール手順を順に実行します。GraspPlugin の構築が完了したら、GraspConsumer プラグインによる把持動作計画チュートリアルでハンドロボット PA10 に缶をつかむ動作をさせることができます。なお、GraspConsumerプラグインを使わないのであれば、Choreonoid とgraspPlugin のインストールとビルドで十分です.
一括セットアップスクリプトを使って、OpenRTM を Ubuntu 12.04 にインストールする。
ここでは、インストール先を~/src/choreonoid-1.3.0 とする。
OpenRTM-aist-1.0.0-RELEASE から Ubuntu 用一括セットアップスクリプト pkg_install_ubuntu.sh をダウンロードする。
(注:ウェブサイト上では pkg_install_ubuntu.sh と表示されているが、実際にダウンロードするファイルは pkg_install_ubuntu100.sh となる。ただし、2013年9月現在このファイルは存在しないようです。結果的にOpenRTM1.1をインストールすることになると思いますが、問題なく動作することを確認しています。)
ブラウザを使わずに、wget でダウンロードする場合は以下の通り。(以降、囲み内で %で始まる行は端末に打ち込むコマンドを示す。最初の%は含まない)
% wget http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/build/pkg_install_ubuntu.sh
% sudo sh pkg_install_ubuntu.sh
OpenRTM-aist のリポジトリが登録されていません。 Source.list に OpenRTM-aist のリポジトリ: deb http://www.openrtm.org/pub/Linux/ubuntu/ lucid main を追加します。よろしいですか?(y/n)
この操作後に追加で XXXkB のディスク容量が消費されます。 続行しますか [Y/n]?
警告: 以下のパッケージは認証されていません! (注:ここに表示されるパッケージ名は、その都度異なります) 検証なしにこれらのパッケージをインストールしますか [y/N]?
OpenRTM のサンプルのソースは /usr/share/OpenRTM-aist/examples にインストールされる。
% cp -pr /usr/share/OpenRTM-aist/examples ~/workspace
2012/2/20現在、apt-getでOpenRTM1.0系をインストールしようと思っても、1.1系がインストールされてしまいます。この場合、/etc/apt/preferencesを編集します。OpenRTMのサイトにも書いてありますが、preferencesに以下の記述を追加してください。
--<ここから>--
Package: openrtm-aist
Pin: version 1.0.*
Pin-Priority: 1001
Package: openrtm-aist-dev
Pin: version 1.0.*
Pin-Priority: 1001
Package: openrtm-aist-doc
Pin: version 1.0.*
Pin-Priority: 1001
Package: openrtm-aist-example
Pin: version 1.0.*
Pin-Priority: 1001
Package: openrtm-aist-python
Pin: version 1.0.*
Pin-Priority: 1001
Package: openrtm-aist-python-example
Pin: version 1.0.*
Pin-Priority: 1001
--<ここまで>--
ロボット動作振り付け統合ソフトウェア Choreonoid の導入手順を以下に記す。ここでは一度にgraspPluginの導入はせず、Choreonoidのみをビルドして実行する。なお、graspPluginはChoreonoidのバージョン1.0から1.3.1に対応しています。バージョン1.4への対応は少しお待ちください。
Choreonoid ホームページ のダウンロードページから、ソースパッケージ http://choreonoid.org/_downloads/choreonoid-1.3.1.zip をダウンロードして、展開する。
展開先に~/srcを指定することで、~/src/choreonoid-1.3.1ディレクトリが作られ、ビルドに必要なファイルが展開される。
端末を立ち上げ、この~/src/choreonoid-1.3.1ディレクトリをカレントディレクトリとする。
% cd choreonoid-1.3.1
% cd choreonoid/misc/script % sudo ./install-requisities-ubuntu-1*.**.sh (中略) 続行しますか [Y/n]?
% sudo apt-get update % sudo ./install-requisities-ubuntu-1*.**.sh
% sudo apt-get install libgstreamermm-0.10-dev libqt4-phonon-dev
% sudo apt-get install libeigen3-dev
% cd ../..
Makefile を生成するため、ccmake を起動する。
% ccmake .
% make
make が完了したら、 choreonoid を実行する。
% bin/choreonoid
glaspPlugin のインストール手順を以下に記す。
加えて、wx-common パッケージをインストールする。
% sudo apt-get install wx-common
これらがすでにインストール済みであれば、この項はスキップして graspPlugin インストール から作業を始めることができる。
graspPlugin は Choreonoid のプラグインとして提供される。
以下のサイトにブラウザからアクセスする。
https://code.google.com/p/grasp-plugin/downloads/list
graspPluginのソースを ~/src/choreonoid-1.3.1 の extplugin 以下に展開する。
% cd ~/src/choreonoid-1.3.1/extplugin % unzip graspPlugin-1.3.zip
% cd ~/src/choreonoid-1.3.1/extplugin/graspPlugin % unzip PRM-1.3.zip
% ./graspPlugin/Grasp/install-requisities-ubuntu.sh
graspPlugin をプラグインとして導入するため、ccmake で Choreonoid のビルド設定を変更する。
% cd ~/src/choreonoid-1.3.1 % ccmake .
2度cキーを押して configure すると、GRASP_PLUGINS と GRASP_ROBOT_MODEL_PLUGINS の二つの項目ができる。
となる。目的とするプラグインが依存しているプラグインについては、各プラグインの解説の中に依存プラグインとして記述している。
値を編集したら、「c」キーを押して configure を行う。
数秒後に configure が無事に終了すると、画面の下のキーメニューに新しく「Press [g] to generate and exit」の項目が出る。
「g」キーを押すと、makefileが生成され、ccmake が終了する。
% make
choreonoid を実行する。
% bin/choreonoid
graspPlugin を組み込んだことによって、ツールバーの種類が増えている。
また、Messageタブにもプラグインファイルを読み込み、起動した旨のメッセージが表示されている。
把持動作計画モジュール GraspPlannerComp のコンパイル方法について、以下に記す。
ここでは、graspPlugin のインストールとビルド まですでに完了しているとする。
GraspPlanner 本体のソースのあるディレクトリに移動し、make する。
% cd ~/workspace % cd Choreonoid/extplugin/graspPlugin/GraspConsumer/GraspPlan20100623/ % make
`rtm-config --idlc` `rtm-config --idlflags` -I`rtm-config --prefix`/include/rtm/idl GraspController.idl rtm-skelwrapper --include-dir="" --skel-suffix=Skel --stub-suffix=Stub --idl-file=GraspController.idl GraspControllerSkel.h was generated. GraspControllerSkel.cpp was generated. GraspControllerStub.h was generated. GraspControllerStub.cpp was generated. rm -f GraspPlanner.o g++ `rtm-config --cflags` -I. -c -o GraspPlanner.o GraspPlanner.cpp rm -f GraspPlanningImpl.o g++ `rtm-config --cflags` -I. -c -o GraspPlanningImpl.o GraspPlanningImpl.cpp rm -f GraspControllerSkel.o g++ `rtm-config --cflags` -I. -c -o GraspControllerSkel.o GraspControllerSkel.cpp rm -f GraspControllerSVC_impl.o g++ `rtm-config --cflags` -I. -c -o GraspControllerSVC_impl.o GraspControllerSVC_impl.cpp rm -f GraspPlanner.so g++ -shared -o GraspPlanner.so GraspPlanningImpl.o GraspPlanner.o GraspControllerSkel.o GraspControllerSVC_impl.o `rtm-config --libs` -L/usr/lib -L/usr/local/lib rm -f GraspPlannerComp.o g++ `rtm-config --cflags` -I. -c -o GraspPlannerComp.o GraspPlannerComp.cpp g++ -o GraspPlannerComp GraspPlanningImpl.o GraspPlanner.o GraspControllerSkel.o GraspControllerSVC_impl.o GraspPlannerComp.o `rtm-config --libs` -L/usr/lib -L/usr/local/lib
% ./GraspPlannerComp
Eclipse 全部入り(OpenRTM Eclipse tools)を動作させるには、Ubuntu 標準の Open JDK ではなく、Sun製の JDK が必要である。
Sun製の JDK sun-java6-jdk をインストールするには、まず apt のリポジトリを追加したうえで、パッケージリストを取得する。
% sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" % sudo apt-get update
% sudo apt-get install sun-java6-jdk アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 0 個。 57.0MB のアーカイブを取得する必要があります。 この操作後に追加で 168MB のディスク容量が消費されます。
続いて、以下の画面が表示されたら「はい」を選択する。
インストールが終了したら、デフォルトのjavaをsun-java6に設定する。
% sudo update-alternatives --config java
There is only one alternative in link group java: /usr/lib/jvm/java-6-sun/jre/bin/java Nothing to configure.
There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path 優 Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode * 1 /usr/bin/gij-4.4 1044 manual mode 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode Press enter to keep the current choice[*], or type selection number:
OpenRTM Eclipse tools 1.0-RELEASE から、 Linux用全部入りパッケージ をダウンロードして、(例として)ホームディレクトリのworkspace 以下に展開する。
% cd workspace % wget http://www.openrtm.org/pub/OpenRTM-aist/tools/1.0.0/eclipse342_rtmtools100release_linux_ja.tar.gz % tar xzf eclipse342_rtmtools100release_linux_ja.tar.gz % cd eclipse
そこで、以下のコマンドラインで起動する。
% ./eclipse -clean -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner-1.9.2.13/xulrunner
Eclipse のRT System Editor 上で、Name Server View が有効にならない場合があります。
これは、 /etc/hosts の IPv6 関係の項目(The following lines are以降の行)をコメントアウトすることで回避できます。
% sudo gedit /etc/host
として、/etc/hosts を編集してください。
/etc/hosts の例
127.0.0.1 localhost
127.0.1.1 yourservername # 注:この項はサーバ名(PC によって異なる)
# The following lines are desirable for IPv6 capable hosts
#::1 localhost ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
#ff02::3 ip6-allhosts
Eclipse 上で作成した Choreonoid プロジェクトに対して、細かい設定を行う。
インクルードパスを設定すると、不明な型にカーソルを合わせてF3を押すだけで宣言部を参照できるようになる。
まずプロジェクトのプロパティを開く。プロジェクト名を右クリックしてコンテキストメニューを表示し、その一番下の「プロパティ」を選択すると、プロパティ画面が現れる。等がある。
Choreonoid では、ccmake で Makefile を生成しているので、Eclipse からもこれを呼び出せるようにしたい。
インクルードパスの場合と同様にプロジェクトのプロパティを開き、C/C++ Build を選択すると、以下のような画面が出る。
[inline:CppBuild.png]
ここで、「Generate Makefiles automatically」のチェックを外すと、Build directory のロックが外れるので、「${workspace_loc:/Choreonoid}」に修正する。
また、マルチコアCPUを積んだPCであれば、並列コンパイルでトータルビルド時間を短縮できる。
Behaviourタブを開いて、「Use parallel build」をチェック、「Use parallel jobs」にコア数に応じた適切な値を設定するだけでよい。
「適切な値」はPCによって異なる。CPUのコア数、デュアル版・クアッド版、ハイパースレッディング機能の有無、等々。
ひとまず コア数(一般に2~8程度)+1~2 として、パフォーマンスに余裕があるなら増やし、なければ減らすことになるだろう。
また、まれに並列コンパイルを行うと問題の発生するプロジェクトもある。
[inline:BuildBehaviour.png]
エラーが出たら即make を中断する「Stop on first build error」は並列コンパイルとは相性がよくないので、通常は外しておくが、上流のコンパイルエラーが下流に響いて大量のエラーが出るときなどはチェックした方がよい。