HunoSample
Simple Wiki Based Contents Management System
ソフトウェア関連 >> RTMコンテスト >> HunoSample

人型ロボットをジェスチャで制御

概要

これは、Kinectセンサを用いた音声認識とジェスチャ認識を同時に使用したシステム例です。このシステムの概要図を下に示します。

このシステムでは、ChoreonoidとG-Robotを使った操作システムで、操作者の動作をそのまま追従する追従動作モードとジェスチャ認識と音声認識結果に応じたバッチ処理を行うコマンドモードの2つのモードで動作させています。
この2つのモードの切り替えには、ジェスチャ認識を主として利用していますが、音声によるコマンド動作命令も補助的に用いることができるようになっています。
このシステムは、2012年12月に開催されたOMG Meeing のRobotics Dayで動展示しました。その時複数のユーザによる操作デモを実演することができましたので、ある程度のロバスト性は持っていると思います。
下にこのシステムを操作した時のビデオを添付します。
Please download FLASH Plug-in

動作環境および必要なハードウェア

このシステムは、KinectRTCを使いますので、
  • Windows7,8,8.1が動作するPC
  • KINECT for Windows
が必要です。
また、動作させる人型ロボットは、Choreonoidに対応しているロボットまたはRobotMotionRTCと同様の入力データポートを持ち、動作するロボットが必要になります。
現在、私の方で動作確認済みのロボットは、
です。
このシステム例を構成するソフトウェアは、本ページに添付されたアーカイブをダウンロードし、適当なフォルダに展開してください。

コンポーネント構成

本システムのコンポーネント構成は、下図のようになります。

このシステム例では、RQ Hunoを使った例です。G-ROBOTS GR-001の場合には、Choreonoidから直接制御することができますので、HunoRtc0というコンポーネントは、不要になります。また、他のロボットシステムで本システム構成を使いたい場合には、HunoRtc0と互換性のある制御コンポーネントを作成するだけで、同じ動作を実現することができます。
また、Choreonoidの中で起動しているRoborMotionRtcに関しては、外部サイトを参照してください。

起動手順

準備

本システムを動かすために、ハードウェアとソフトウェアの準備を行います。
まず、下記のハードウェアを準備してください。
  • Windows7以降のOSを搭載したKINECT for Windowsが動作するPC(動作条件に関しては、オフィシャルサイトを参照して下いさ)
  • KINECT(for XBOXでも可)
  • RQ Hunoロボット(ハードウェアがなくともChoreonoid上のバーチャルロボットであればなくてもOKです)
  • ロボット接続用のデバイス(BluetoothまたはUSBシリアルアダプタ)
次に、上記のハードウェアを接続し、適切なドライバのインストールを行います。KINECTを接続する場合には、前もってKinect for WindowsをPCにインストールしておく必要があります。
また、ロボットに関してハードウェアを使う場合には、BluetoothまたはUSBシリアルアダプタを用いてロボット接続し、コミュニケーション用のシリアルポートを確認してください。シリアルポートの確認は、デバイスマネージャーで確認することができます。
最後に、OpenRTM-aist-1.1.0-RELEASEをダウンロード&インストールし、本ページに添付されているアーカイブをダウンロードし、適当なフォルダに展開しておいてください。
以上で準備完了です。

コンポーネントの起動

本システムの起動する前に、ネームサーバーとRTシステムエディタを起動しておきます。
次に、本ページのアーカイブを展開したフォルダを開き、その下の ''HunoDemo\00 Demo'' というフォルダをエクスプローラで開きます。
このフォルダに、起動、コンポーネント間の接続、アクティベーション化用のバッチファイル(先頭が0で始まるバッチふぁおる)と終了用のバッチファイル(先頭が1で始まるバッチファイル)があることを確認して下いさい。
''00 StartDemo.bat''をダブルクリックで起動させれば、本システムで利用するコンポーネントが起動します。このバッチファイルは、必要なコンポーネントが既に起動しているかをチェックしていますので、コンポーネント起動後にダブルクリックしても2重起動はしないようになっています。
次に、コンポーネントを接続します。コンポーネントの接続には、''01 ConnectAll.bat''というバッチファイルを使います。このバッチファイルでは、rtshellを使ってコンポーネント間の接続を行っています。
これ以降のコンポーネントの操作は、RTシステムエディタでも操作可能ですが、''02 ActivateAll.bat''を使ってもすべてのコンポーネントのアクティベーションが可能です。
以上で、本システムの起動終了です。
KINECTの前に立てば、認識されますので自由に動作してみてください。

操作の詳細

システム操作時

本システムの動作の詳細は、上部に添付したビデオを参照していただければ、ほぼ理解できると思います。本システムでは、2つのロボット操作モードがあります。一つが、直接操作モードでもう一つがジェスチャコマンドモードです。起動直後は、直接操作モードになっており、両腕、腰の位置でロボットを操作することができます。
直接操作モードでは、両腕に関しては、Kinectで認識した人と同じ動きをし、腰の位置に応じて、ひざ関節等を動かし、ロボット全体を上下させることができます。
直接操作モード中、両腕を頭とほぼ同じ位置まで上にあげるとジェスチャコマンドモードに変更します。これは、SimpleGestureコンポーネントのstart_gestureの姿勢を認識したことと同値です。これ以降、SimpleGestureコンポーネントのstop_gestureの姿勢(両腕をほぼ水平状態に保った姿勢)を認識するまで、このモードが持続します。
ジェスチャコマンドモードでは、以下の状態遷移が起きています。

これを見るとわかるように、ロボットの現在の状態によって、受け付けるコマンドが変わることがわかります。また、すべての状態でstop_gestureが認識されれば、直接操作モードに遷移していることも分かります。

システム終了時

最後にこのシステムの終了ですが、上述のようにフォルダの1から始まるバッチファイルを順番に起動していただければよいと思います。ただし、CommandInコンポーネントは、標準入力待ちになっていますので、デアクティベート時には、キーボードから何らかの入力を行ってください(改行キーを押下するだけでOKです)。
最後にすべてのコンポーネント、Chorenoidを終了させれば、すべて終了です。

添付ファイル:HunoDemo.zip