オーディオ・アニマトロニクスのためのRTコンポーネント

オーディオ・アニマトロニクスのためのRTコンポーネント

投稿者: 
thorikawa

概要

本研究ではエンターテインメント用途のロボットの中でも,音とアニメーションが同調することで人を楽しませる,いわゆる「オーディオ・アニマトロニクス」で利用するためのRTコンポーネント群を作成する.
作成したRTコンポーネントは「スクリプト制御」「音声合成」「サーボ制御」の3つから構成され,組み合わせによってスクリプトに沿ったオーディオ・アニマトロニクスの発話とアニメーションの処理を簡単に実装できる.

ソースコード

スクリプト制御

https://github.com/thorikawa/rtc-script-reader

サーボ制御

https://github.com/thorikawa/rtc-johnny-five

音声合成

https://github.com/thorikawa/rtc-rospeex

システム構成

  • 音声はPCと接続されたスピーカーから出力される
  • 現バージョンではロボット2台(arduino2機)までをPCと接続し、コントロールできる
  • PCと接続するArduinoにはFirmata(StandardFirmata)が書き込まれていることを前提とする。FirmataはPCからArduinoをコントロールするために定義されたプロトコルで、書き込むためのスケッチはArduino IDEのexampleに含まれている。
  • 動かすサーボモーターの制御ポートは、各ArduinoのD3ピンに接続されていることを前提とする

動作環境

以下の環境で動作確認を行っているが、基本的にはpythonのRTCが動作するPC・Arduino互換のマイコン・PWMサーボモーターがあれば動作はするはずである。

  • Mac OS X 10.11.1
  • Python 2.7.10_2
  • OpenRTM-aist 1.1
  • Arduino UNO, Intel Edison Kit for Arduino
  • マイクロサーボ SG92R

依存ソフトウェア

以下のpythonモジュールがPCにインストールされていることを前提とします。pipなどでインストールしてください。

  • pyfirmata
  • numpy
  • pyaudio
  • requests

使用方法

1. 設定ファイルの準備
各ロボットに喋らせたい内容を定義した設定ファイルを準備する。設定ファイルはjsonフォーマットで、サンプルは以下の通り。
喋る内容のオブジェクトの配列となっており、各オブジェクトの"robot_id"は現状1と2のみ対応している。すでに録音済の音声ファイルがある場合は"audio_url"でURLを、テキストから音声合成した場合は"text"で文字列を指定する。

---
[
    {
        "robot_id": 1,
        "audio_url": "http://localhost:8080/audio/m1.wav"
    },
    {
        "robot_id": 2,
        "text": "こんにちは、僕はロボット2号だよ"
    }
]
---

2. RTCコンポーネントの起動
2.1 スクリプト制御コンポーネント
$ python script_reader.py

2.2 サーボ制御コンポーネント
ロボットの数だけコンポーネントを登録する必要があるため、登録名が重複しないように-fオプションで異なる設定ファイルを指定することに注意。
# ロボット1台目
$ python firmata_servo.py -f rtc0.conf
# ロボット2台目
$ python firmata_servo.py -f rtc1.conf

2.3 音声合成コンポーネント
$ python rospeex.py

3. RTCコンポーネントの接続
以下のように接続する。

4. RTCコンポーネントの設定
script_reader(スクリプト制御コンポーネント)の設定で、1で準備した設定ファイルのパスを指定する。

firmata_servo(サーボ制御コンポーネント)の設定で、Arduinoが接続されたCOMポートのパスを指定する。

デモ動画

問合先(メールアドレス): 
horikawa.takahiro@gmail.com
Resources
Project Information
言語: 
Python
OpenRTM ver.: 
1.1
Average: 
4
Average: 4 (1 vote)
最終更新日時: 
月, 2015-12-14 04:05

コメント

投稿者: 

もうちょっとマニュアルが欲しいです.特に使用するハードウェア,依存ソフトウェア等の環境について,メモ程度で良いのであると助かります.

投稿者: 

ご意見ありがとうございます!いくつかドキュメントを追加させて頂きました。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク