コンフィグレーションを使ったRTC開発
RTCの実行
前回、前々回と同じく、ネームサービスとEclipse(RT System Editor)を実行します。
次にRTCを実行する前に、rtc.confに「corba.nameservers:localhost」の行を追加して、実行ファイルと同じ場所、もしくはプロジェクトファイルと同じ場所(IDEからデバッグで実行する場合)に置きます。DLLファイルも実行時に必要ですので、同様に実行ファイルと同じ場所か、プロジェクトと同じ場所に置きます。
今回のAquesTalkVoiceコンポーネントは、単体では動作確認できませんので、テスト用のプロジェクト(StringGeneratorコンポーネント)を作成しておきました。こちら(StringGeneratorCompProj.zip)からダウンロードしてビルドしてください(.NETフレームワーク2.0以上が必要です)。
AquesTalkVoiceコンポーネントおよびStringGeneratorコンポーネントを実行すると、RT System EditorのName Service ViewにRTC一覧が表示されます。それぞれの「in」「out」を接続してActivateしてください。
StringGeneratorのダイアログに文字列(全角ひらがな)を入力して「送信」ボタンを押すと、StringGeneratorコンポーネントから文字列(TimedString型)が送信されます。AquesTalkVoiceコンポーネントが文字列を受け取ると、AquesTalkライブラリを使って文字列から合成音声を生成して再生します。
コンフィグレーションで「スッキリ」と設計
さて図3のようにRT System Editor上にシステムが表示されている状態で、画面下部のConfiguration Viewにはこれまでと違う選択肢が表示されています。
左側の「default」はコンフィグレーション・セット(=コンフィグレーションの集合)の名前です。コンフィグレーション・セット単位でRTCの動作モードを変更できます。中央の「speed」はあなたがRTC Builderで設定したコンフィグレーション(=個々のパラメータ)の名前です。今回の「speed」はAquesTalkDa_Play()関数に渡した「m_speed」という変数に対応しています。
右側の「Value」に50~300の値を設定すると、文字列を読み上げる速度が変化します。数値を変更した場合は、必ず「Apply」ボタンをクリックしてください。
いかがでしたか?コンフィグレーションを使えば、RTCをすっきりと設計することができ、再コンパイルすることなしに、RTCの動作を調整することができます。
次回は、少し気分を変えて、市販の制御用ボードを使ってホビー用ロボットに多く使われるサーボモータの制御を行います。
【参考図書】
長瀬 雅之ほか
『はじめてのコンポーネント指向ロボットアプリケーション開発 ~RTミドルウェア超入門~』毎日コミュニケーションズ