PR

コンフィグレーションを使った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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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