OpenHRP
OpenHRPとは 独立行政 法人産業技術総合研究所、東京大学、
財団法人製造科学技術センターによって開発されたヒューマノイドロボティクスのための総合ソフトウェア開発環境で、動力学シミュレー タV-HRP、 基本動作ライブラリHRP-C等から構成されています。OpenHRPを使用 すると、 ロボット実機を用いること無く、ロボット動作制御則(コントローラ) を仮想環境内で開発/検証することが可能になります。
財団法人製造科学技術センターによって開発されたヒューマノイドロボティクスのための総合ソフトウェア開発環境で、動力学シミュレー タV-HRP、 基本動作ライブラリHRP-C等から構成されています。OpenHRPを使用 すると、 ロボット実機を用いること無く、ロボット動作制御則(コントローラ) を仮想環境内で開発/検証することが可能になります。
ってのが公式サイトからのコピペ
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/
よーするに2足歩行ロボット向けのシミュレータです。
上の公式サイトで大体の使い方は書いてあるけど、まあ細々とした補足をまとめようかと
ただし、これを書いている本人はロボット工学などは全の初心者のため、書いてあることに
誤りがある可能性も否定できないので注意
上の公式サイトで大体の使い方は書いてあるけど、まあ細々とした補足をまとめようかと
ただし、これを書いている本人はロボット工学などは全の初心者のため、書いてあることに
誤りがある可能性も否定できないので注意
導入編しましょ
まあ、何はともあれ正式に使うにはライセンスがいります。
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/license.html
ちゃちゃっと登録しましょう。あと、パスワードは忘れないように。
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/license.html
ちゃちゃっと登録しましょう。あと、パスワードは忘れないように。
ライセンス登録が終わったらインストールと起動のページに従って環境を整えましょう。
OpenHPR本体以外に必要なものは以下の通り
OpenHPR本体以外に必要なものは以下の通り
| GCC Version 2.95.x | Java2 SDK 1.4.1 Standard Edition | Java3D API 1.3 | vrml97.jar | Java Media Framework API |
gccはthreadを有効にしないと使えないので公式サイトにもあるようにソースからmakeし直しましょう。
| Visual C++ 6.0 | Java2 SDK 1.4.1 Standard Edition | Java3D API 1.3.1 | vrml97.jar | Java Media Framework API 2.1.1e |
VC++は書いてあるように6.0を使った方がいいです。.
NETなどはコンパイル後のバイナリが使えませんでした。
JAVAについてはJREでもOKと書いてありますが、JREは付属しているコマンド(jarとか)
が足りないのでOpenHRPのmakeで引っかかります。ごり押しでも配置は可能ですが
J2SDKの方が無難でしょう。
あとWindowsの人はJAVAのインストールパスに注意!"c:\Program File\java"など
パスにスペース含むとnmakeで引っかかります。
が足りないのでOpenHRPのmakeで引っかかります。ごり押しでも配置は可能ですが
J2SDKの方が無難でしょう。
あとWindowsの人はJAVAのインストールパスに注意!"c:\Program File\java"など
パスにスペース含むとnmakeで引っかかります。
起動したっスよ
導入の一連の作業が終わったらise.shかise.batでクライアントのWindowが出てきます。
出てこない人は公式ページのインストールと起動のところを百回ぐらい読み直してください。
それで駄目ならあきらめれ
出てこない人は公式ページのインストールと起動のところを百回ぐらい読み直してください。
それで駄目ならあきらめれ
まぁ、ともかく。基本的な操作方法は
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/ISEmanual.pdf
に書いてあります。操作方法を読みながらサンプルプロジェクトを動かしてみましょう。
ブロックが落ちてきたり、骨ロボットが歩いたりしたら成功です。
http://www.is.aist.go.jp/humanoid/openhrp/Japanese/ISEmanual.pdf
に書いてあります。操作方法を読みながらサンプルプロジェクトを動かしてみましょう。
ブロックが落ちてきたり、骨ロボットが歩いたりしたら成功です。
モデルも作ってみますか?
OpenHRPはモデルのデータにVRML?2.0を使います。
VRML2.0にはH-ANIM(Humanoid Animation)と言う人体モデルを定義する規格があり、
こいつを使ってモデルを作ります。
モデルの作り方とサンプルモデルのページを一通り読んでおきましょう。
VRML2.0にはH-ANIM(Humanoid Animation)と言う人体モデルを定義する規格があり、
こいつを使ってモデルを作ります。
モデルの作り方とサンプルモデルのページを一通り読んでおきましょう。
作り方の手順おおざっぱな手順です
- まずはリンク機構を決める
これは、説明し出すと長いので詳細はなしにします。
- 各リンクごとのオブジェクトモデルを作成
この辺は、出来れば3DCAD、譲歩して3Dモデラーを使いましょう。テキスト手書きはたぶん神業の域です。
当り前の話ですが、VRML出力可能なものを使いましょう。
SolidWorksがVRML2.0も対応していて最適なのですが、100万円ほどします( ´∀`)
で、オブジェクト作成時の注意点です。説明は後述。
- オブジェクトはモデラーやCADで言う原点を中心に回転するように作成する。
- オブジェクトはZ軸を中心にX-Y平面に水平に回転するように作成する。
- 作成したオブジェクトを統合する本体VRMLを作成
- Jointノードのうち使えるパラメータはjointType,jointId,translation,rotation,dhのみ
- centerやjointAxisなどのパラメータは使用できないため、回転の中心点や回転軸の変更はできません。(デフォルトはオブジェクトモデルの原点中心にZ軸回転)よって上のオブジェクト作成時の規制があるわけです。
- rotation(回転)のパラメータは(x,y,z,θ)の4つ
- (x,y,z)で表されるベクトルを中心軸にθ回転します。
- 座標上の長さの1単位につき1m、massは単位/kg
- massを大きさ的にあり得ない値にするとシミュレーションしたときにえらいことになります。
二足歩行ロボットのモデルなんて作るの無理じゃぁって人には(僕もだが)
東京大学 中村・岡田研究室のHPでhoap-1のモデルが公開されているのでありがたく使わせていただきましょう。
http://www.ynl.t.u-tokyo.ac.jp/hoap-1/hoap-1.html
hoap-1の取扱説明書も参考にするとやりやすいと思います。
東京大学 中村・岡田研究室のHPでhoap-1のモデルが公開されているのでありがたく使わせていただきましょう。
http://www.ynl.t.u-tokyo.ac.jp/hoap-1/hoap-1.html
hoap-1の取扱説明書も参考にするとやりやすいと思います。
コントローラ製作
モデルも用意できたところでとりあえず動かしてみよう。
とりあえずここに書いてあることを一通り目を通しておきましょう。
ちなみに、今回は独自コントローラは無視です。簡易コントローラでも十分使えますし…
独自コントローラに関してはMLなどで質問した方が良いでしょう。
とりあえずここに書いてあることを一通り目を通しておきましょう。
ちなみに、今回は独自コントローラは無視です。簡易コントローラでも十分使えますし…
独自コントローラに関してはMLなどで質問した方が良いでしょう。
COLOR(RED): *注意! C++とある程度オブジェクト指向を知ってないと厳しいです。
デフォルトで用意されているのは、HGコントローラとPDコントローラです。
前者は各関節の角度、角速度、角加速度をあたえるとそのとおりに動くシステムで名前のとおり、
何がなんでもその動作をするためにほぼ無限のゲインで動きます。
後者のPDコントローラは関節ごとの角度などから自分でトルクを計算してその結果で動作します。
前者は各関節の角度、角速度、角加速度をあたえるとそのとおりに動くシステムで名前のとおり、
何がなんでもその動作をするためにほぼ無限のゲインで動きます。
後者のPDコントローラは関節ごとの角度などから自分でトルクを計算してその結果で動作します。
PDはヒジョーにややこしいのでHGで行きましょう。
つづかない