このページはOpenHRP3を使ってみた体験に基づく
メモ書き ページです。チュートリアルではありません。
基本的に、HRP関係はもとより、動力学シミュレーションも全くの素人です(ロボットは直感で作って動いてから理由を考える派)。
なので、質問されても全く答えられないことが大半です。ある意味、「直感で動かしてそれっぽく動いた」の記録です。
あくまでメモ書きであって、この通りに動くかどうかとかは全く不明、インストール過程なども大きく省略。
メモ書きなら表に出すなよ、という指摘もありますが、いろいろ試すに当たって、ネットにあったメモ書き程度のものでも参考になったことがおおいので、どうせなら、表に出しておこう、程度です。ご注意ください。
ただ、自分でツールとして使いたいから、やっていることはそれなりにまじめです。
用語:
- OpenHRP3:
「分散コンポーネント型ロボットシミュレータ」プロジェクトに係わる複数の研究機関、企業が共同で開発したソフトウエア開発・シミュレーションのための統合ソフトウエアプラットフォーム。
公式ページ(の
ミラー)
平たく言えば、シミュレータの中でロボットのモデルをつくって、ボタンをぽちっとすれば、多関節のロボットのシミュレートができる。
本来は、HRPシリーズのシミュレーション用に開発されたので、ヒューマノイドロボットのシミュレーションに強い。
また、OpenRTM(RTミドルウエア)を利用して、そのシミュレーション内のロボット制御プログラムを連結できる。
平たく言えば、ロボットのハードとのやりとり部分とロボットの制御系をOpenRTMで繋ぐようにシステム設計をしておくと、ハードとのやりとり部分をシミュレータにそっくり置き換えると、実機を動かさなくても制御系の開発、チェックができる。
もちろん、「現実に忠実なシミュレーションモデル」か「シミュレーションモデル通りに動く実機」がないと、結果は大きく食い違う。
シミュレーションとはそういうもので、実はこのページの執筆者は、ロボットシミュレーションは常に懐疑的に見ていて、「実機が動く」至上主義。
(なのにシミュレータを試そうとしたのは、実機で試行錯誤するには危険なロボットをつくってしまったから)
- OpenRTM:
環境構築の最終目標である「RTミドルウエア」。
RTミドルウエアも規格であって、実装が二つ以上あるらしいが、ここでは産総研開発のOpenRTM-aistをつかう。
一言で言えば、各種OSの上に積む、ネットワーク重視のロボット技術(Robot Technology)用途向けOSの一種。
「ミドル」というのは、基盤となるいわゆるOS部分とアプリケーションの間にあるという意味合い。
データベースなどもミドルウエアの範疇。そういう「間のソフト」の一種として、大規模ロボット制御・運用ソフトウエアを構築するのを効率化/手助け/再利用性向上などを目的として、国家プロジェクトの一部として開発されたシステム。
なお、ロボット技術はいわゆるロボットにとどまらず計測、制御など、ある意味「物理的実世界と関わり実体を持つコンピュータ応用技術」とも言え、その意味でネットワークベースの広域計測システムに使われることもある。
実装面で注目すべきは、機能を「コンポーネント」と呼ぶソフトウエアのモジュールに分解し、これをRTMを通じてネットワーク経由(もちろん、1台のコンピュータ内のローカルなネットもあり)でリンクして動作させること。
これにより
- 部分ごとに開発が出来る
- コンポーネントの入出力をしっかり規定することで流用性が増す
- 一部分だけをバージョンアップできる
- 実ロボットとシミュレータをつなぎ替えて制御実験することができる(もちろん、相応のシミュレータが必要)
- 一部機能だけを別コンピュータに飛ばせる。例えばコンピュータのスペック的に1台で動かし切れないときにコンポーネントの一部をネットワークで接続された別のPCに移動させられる。
といったことが可能となる。
インストール
インストールに関しては、ファイルをダウンロードしてボタンを押していただけなので、しかも、すでにOpenRTMのインストールなどはしたあとなので、何が正しいかは不明です。
備忘:
- OpenRTM関係でインストールしたもので関係有りそうなもの:
OpenRTM-aist-1.0.0-RELEASE_vc9_100212.msi
OpenRTM-aist-Python-1.0.1.msi
PyYAML-3.09.win32-py2.6.exe
python-2.6.4.msi
- OpenHRP関係でインストールしたもの:
OpenHRPSDK3.1.0-Rel-v2-j.msi:コンパイル済みでインストールできる一式
OpenHRP-3.1.0-Release.zip:ソースからビルドするためのソース一式
Package-1.2.0.zip:ビルドで必要なツール
cmake-2.8.4-win32-x86.exe:ビルドで必要なツール
eclipse342_hrpdependencies_win32_ja_20100602.zip:ビルドで必要なツール
jdk-6u24-windows-i586.exe:ビルドで必要なツール
OpenHRP3は、OpenHRPSDK3.. をインストールすれば動きますが、自分でソースからビルドする場合はいろいろ必要です。
ただ使ってみる分には、ビルドはいらないと思いますが、微妙な不具合に気づいて、そのあれこれをするために、ソースビルドをしました。
また、その不具合の解消のためのパッチを頂いたので、それを適用したGrxUIを再構築しました。
ソースからのビルド(GrxUIの改修が目的)
基本的には、OpenHRPのサイトにある、WindowsにおけるOpenHRP3のインストール(Ver.3.1.0-Release)の通りに進めてできました。
サイトと異なるところで覚えていること:
- 前もってコンパイル済みバイナリでインストールしておいた
- コンピュータ名は8文字超えたまま。
- Visual C++ は Visual Studio 2008のセット(アカデミック)を導入済み。
- VC++でのインストールは実行しない(すでにバイナリで済み)
- eclipse342_hrpdependenciesのEclipseを起動。
プロジェクト→自動ビルドをはずす。
プロジェクト→クリーン、ビルドを即時開始。
※エラー無し、警告184個。
- パッケージエクスプローラーでMETA-INFのMANIFEST.MFを開く。
「概要」が開く。
同ページの右下のエクスポートのエクスポートウイザード→ダイアログが開く。
宛先が「 D:\home\kumagai\OpenHRP-3.1.0-Release\GrxUIonEclipse-project-0.9.8 」だったので、そのまま「完了」。
D:\home\kumagai\OpenHRP-3.1.0-Release\GrxUIonEclipse-project-0.9.8\plugins に com.generalrobotix.ui.grxui_0.9.8.jar ができた。
- com.generalrobotix.ui.grxui_0.9.8.jar をコンパイル済みバイナリを入れたところの、 GrxUI\plugins にコピーした。
本ページ利用上の注意
あくまでメモです。AS ISです。
本ページを読む人に想定するレベルとして、
- OpenRTMのおおざっぱな原理が分かる。
- 動力学シミュレーションなるものが、いったい何を根拠にどういう目的で行われるのかを知っている。
- シミュレートしたい対象については、十分に特性や原理を知っている(シミュレートしなくても実機を動かし理解できる)。
です。
つまり、大学学部生が、突然先生からなんかやれ、といわれてやってみるか、というレベルではいきなりは無理です。
ご注意下さい。
繰り返しますが、本ページはメモ書きであって、チュートリアルではありません。
私も素人なので質問を頂いても、まったくお答えできない部分があります。
自分の使う技術は可能な限り中身を理解すべきという信念ではありますが、そろそろ「ブラックボックスを信じてつかってもいいかな」と思う程度に年をとりました。
といいますか、理解するのは不可能な規模です。
熊谷正朗
[→連絡]
東北学院大学
工学部
機械知能工学科
RDE
[| ]