Download
latest Releases : 2.0.0-RELESE
2.0.0-RELESE | Download page |
Number of Projects
RT-Component | 153.5 |
RT-Middleware | 35 |
Tools | 22 |
Documentation | 2 |
Choreonoid
Motion editor/Dynamics simulator
OpenHRP3
Dynamics simulator
OpenRTP
Integrated Development Platform
AIST RTC collection
RT-Components collection by AIST
TORK
Tokyo Opensource Robotics Association
DAQ-Middleware
Middleware for DAQ (Data Aquisition) by KEK
このケーススタディでは、LeapMotion センサーを利用して Choreonoid シミュレーターで機動中の GRobo を制御します。まずは準備されたコンポーネント(デモシステム及びサンプルコンポーネント)で動作確認をします。それから、自作コンポーネントでシミュレーター上のロボットを制御します。
リソースと事前準備
以下のアーカイブをダウンロードし解凍してください。
robomec2015_openrtm_tutorial_part3.zip 2015/05/20更新
アーカイブの内容にある主なるファイルは以下のとおりです。
【必須】以下のページから「Windows Download」をクリックして、LeapMotion のドライバーをダウンロードしてインストールしてください。
https://www.leapmotion.com/setup/windows
デモシステム動作確認
ここでは、デモシステムを機動し動作を確認します。以下の手順にしたがってデモシステムを起動させてください。
サンプルコンポーネントの動作確認
ここでは、デモシステムの中でロボットを制御するコンポーネント「GRobotDemo」の代わりにサンプルコンポーネントを使って、シミュレーター上のロボットを制御します。
以下の手順を始める前に、まずはデモシステムを上述の手順で起動してください。
自作コンポーネントを作る
ここでは、ロボット制御コンポーネントを作成する手順を説明します。まずは RTCBuilder を利用してソースのスタブを生成します。それから自由にソースを編集してLeapMotionからのデータに対してシミュレータ上のロボットを制御するアルゴリズムを実装します。
以上の準備ができたら、CMake と Visual Studio を利用してコンポーネントのソースを編集してコンパイルします。生成されたソースの中に「include/<コンポーネント名>/<コンポーネントト名>.h」「src/<コンポーネント名>.cpp」を開いて、以下の編集を行ってください。
ヘッダーファイルのクラス定義で以下のプライベート変数を追加してください。
.cppファイルで、12行目で以下の関数を追加してください。
.cppファイルで、コンストラクタで以下の行を追加してください。
.cppファイルで、onExecute メソッドで以下のソースをペストしてください。
サンプルコンポーネントと同じ手順でコンパイルしてください。
コンパイルされたコンポーネントを LeapMotionGRoboControlSample0 と同じように利用できます。
サンプルコンポーネントと同じ振る舞いができたら、以下の入出力データフォーマットを参照しながら、自作コンポーネントのソースを編集して振る舞いを変更してください。
LeapMotionのeSEAT0.hands_out 出力ポート(自作コンポーネントのhand_positions入力ポートにくるデータ)のフォーマットは以下のようです。
自作コンポーネントの command 出力ポートは以下のコマンドの一つを出力してロボットのポーズを制御します。
自作コンポーネントの target_angles 出力ポートは、軸の位置を出力します。フォーマットは
です。例えば、両腕の軸の位置を設定するために以下のデータを出力します。
別パソコンのコンポーネントを利用する場合
別のパソコンで機動中のコンポーネントを利用することはあります。このセクションでネットワーク越えコンポーネントの接続方法を説明します。
以下の手順を行う前に、必ず Windows Firewall を無効にしてください。
ネームサーバー接続確認
まずは両パソコンの間でネットワークが接続されて、相手側のネームサーバーが見えるかどうかを確認します。
コンポーネント接続確認
ネームサーバーが見えるようになったら、コンポーネントが通信できるかどうかを確認します。
相手側のコンポーネントが操作できない場合はあります。この場合は以下の手順を両パソコンに行ってください。CORBA の設定を変更します。
相手側の LeapMotion コンポーネントを利用する
以上の手順にしたがって相手側のコンポーネントとの接続ができたら、同じ手順で相手側の「LeapRTC0」コンポーネントをこちら側の RTSystemEditor で利用できます。
RTSystemEditor上 で System Diagram に相手側の LeapRTC0 を置き、ポートを接続すると直接センサーをこちら側のパソコンにつながっているのと同じ様に動きます。
RTSystemEditor でコンポーネントが操作できない場合は、前セクションの手順を行ってください。しかし、rtc.conf の場所は「robomec2015_openrtm_tutorial_part3/Demo/LeapMotion」と「robomec2015_openrtm_tutorial_part3/Demo/eSEAT」です。