コンフィグレーションを使ったRTC開発

2009年6月16日(火)
菅 佑樹

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ミドルウェア超入門~』毎日コミュニケーションズ

早稲田大学
早稲田大学創造理工学部総合機械工学科助手。博士(工学)。人間とロボットとの物理的な相互作用と飽きに関する研究に従事。その他に木登り・枝打ちロボットや、車椅子搭載型ロボットアームの開発などに携わる。計測自動制御学会RTミドルウェア賞受賞(2008年)。http://www.ysuga.net

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています