国際ロボット展用のサンプルRTC
An Open Software Platform for Robotic Technologies
Home RTC Software
OpenRT Platformソフトウェア >> 国際ロボット展用のサンプルRTC

国際ロボット展のRTC

USB赤外線リモコンと音声合成のRTC

2009年の国際ロボット展の出展にともなって、Buffalo RemoteStationでi-sobotを操作できるようにRemoteStation用のRTCとジョイスティックパネルRTCを使ってi-sobotの簡単な操作ができるようなRTCを作成してみました。Windows上のPython2.6+OpenRTM-aist-1.0RC+ PySerialで動作確認をしています。
また、AquesTalkのPython Wrapperを作成していた方がいらっしゃいましたので、こちらもRTCにしてみました。AquesTalkは、PyWin32が必要でしたが、簡単に実装できました。こちらもジョイスティックパネルRTCと接続するとジョイスティックの方向をしゃべってくれます。

添付ファイル:AquesTalkComp.zip

添付ファイル:IsobotComp.zip

Wiimote(Wiiリモコン)を調べる

WiimoteをWindowsで簡単に使うためにWiimoteのようなライブラリを検索したところ、Wiiuseというライブラリを見つけました。このライブラリには、Pythonのラッパーを作成した方がいらっしゃったので、ダウンロードして試してみましたが、最新版には対応していませんでした。(どうもpiiuseというPython Wrapperを作るプロジェクトがあるようですが、、、)
そこで、簡単なラッパーを作ってみました。ボタンや方向、加速度は取れているようですが、自信はありません。
ここにあげておきます。
とりあえず、実装版

添付ファイル:py_wiiuse.py

クラスを作ってみました。

添付ファイル:pyWiiUse.py

また、RTCもしてみました。これもとりあえずの実装です。もう少し整備して、国際ロボット展で使います。i-SOBOTのコントロールは何となくできていますので。

添付ファイル:WiimoteComp.zip


国際ロボット展でWiimoteの電池交換したときに自動接続ができませんでしたので、Wiimoteの自動接続用のスクリプトも書いてみました。

添付ファイル:bth.py

これとpyWiiUse.pyを組み合わせると自動接続ができるようになったのですが、なぜか2度目に再接続後にWindowsから再起動を進められるメッセージがでるようになってしまいました。再起動しなくても、問題なく使えるのですが、原因は不明です。
上記のbth.pyを拡張して、WiiリモコンのPythonライブラリの初期実装をしました。Windows上でMSのBluetoothスタックを利用することを前提としており、本体のボタンとRoll、Pitchしか取れませんが、一応動作しております。また、自動接続にも対応しています。(2009/12/09追加)
(2009/12/10:追加)簡単なデモを追加しました。また、WiimoteのクラスとBluetoothのクラスを完全に分離しました。Wiiリモコンでマウス操作ができます。
(2009/12/14:追加)拡張ポートの部分を書いてみました。ヌンチャクの動作は確認しています。このファイルをエクスプローラからダブルクリックで起動さえるとマウス操作のデモが起動します。これは、Wiiリモコンを探して、自動接続しますので、初めての場合には、「1」、「2」ボタンを同時押ししていてください。「Home」ボタンで終了しますが、デバイスの削除をしません。また、右、左ボタンは「+」「-」にそれぞれ割り当てていますが、感度が悪いです。
(2009/12/15:追加)クラスの書き直し。Classicコントローラーの動作確認をしました。
(2009/12/16:追加)ボタンイベントをコールバック方式に変更したので、反応が速くなりました。

添付ファイル:pyWii.py

SAPIで音声認識&対話エンジン

SEATのSAPI対応版を、松坂さんに作成していただきました。まだ、単純なSEATMLの読み込みテストしかしていませんが、Windows7の音声認識機能をつかった対話RTCができています。
英語の発話は、PySpeecというのがありましたので、日本語、英語の音声合成も提供できると思います。
とりあえず、下記に添付しておきます。

添付ファイル:seat.py

添付ファイル:sample.xml

このモジュールとAquesTalkモジュールで、対話ができると思います。

松坂さんより、sapi対応のseatでコンポーネント起動後にseatmlファイルを指定できるようにして頂きました。
また、OutPortの型も指定できるようになったようです。(2009/12/09追加)

添付ファイル:seatsapi.py

添付ファイル:sapi-sample.seatml