RTCとRTミドルウエア
チャットプログラムをRTC化する
前回は、モジュールの組み上げでロボットを作るための標準である「RTC」の生まれた背景について話しました。今回は、RTCとRTミドルウエアの実体に踏み込んで、ソフトウエアエンジニアの視点でこの技術を考えてみましょう。
まずは、図1-1を見てください。これは何に何に見えますか?そうです、チャットの画面です。実は、このチャットの画面はRTCで作成しています。正確には、チャットを行うプログラムそのものを1つのRTCとして作成しています。これがRTC?と思うでしょうか。でも、これも立派なRTCなのです。RTCとRTミドルウエアはソフトウエアの技術ですから、その気になれば、皆さんが普段作成されているシステムをすべてRTCで組み上げることも可能なのです。
それでは、チャットプログラムの構造を見てみましょう。図1-2をご覧ください。真ん中にあるチャットコンポーネントと書いてある箱がRTCです。
RTCの右側に、矢印のついた赤い箱と青い箱があります。これは、ほかのRTCとやりとりするための口、すなわち、RTC間のインターフェースポイントです。モジュールの組み上げでロボットを作るための技術がRTCですから、RTC同士でやりとりするための口が設けられている、というのは容易に理解できると思います。
RTCがどんなインターフェースを持つのか、これは前回お話ししたOMGの仕様で決められています。実際にはインターフェースだけでなく、RTCのとるべき状態、RTCのコンフィギュレーション情報の持ち方、RTCのプロファイル情報の切り方などなど、RTCが持つべき型がひととおり決められています。
詳細に関しては、早稲田大学の菅さんの連載(http://thinkit.jp/article/948/1/)に譲り、ここでは概要の理解を優先します。
図1-2で紹介した赤い箱と青い箱を、RTCの仕様では「データポート」と呼びます。これは、ほかのRTCにデータを送ったり受け取ったりする時に使うことから、そのように呼ばれています。
また、赤い箱をIN(入力)ポート、青い箱をOUT(出力)ポートと呼びます。図1-3では、チャットプログラムで、相手からのメッセージをINポートで受け取り、自分のメッセージを相手に送るところでOUTポートに出力している様子を表しています。
チャットプログラムRTCを試してみる
さて、あとはキーボード入力と画面出力ですが、こちらはRTCとは直接関係がありません。皆さんが、普段お使いのキーボード入力の受付プログラムと、画面出力のプログラムをRTCの中から呼び出すだけです。
いかがでしょうか。もっとも単純なRTCならこれだけです。これなら普段の仕事と大きく変わらずに考えられるのではないでしょうか。普段の仕事と異なるのは、
「RTCの型が決められていて、RTCをプログラミングするための作法がある」
ということだけです。ですから、ソフトウエアエンジニアである読者の皆さんなら、作法だけ理解すれば、すぐにでもRTCを作ることができるようになります。まずは、ロボットだからと肩ひじ張らずに、ソフトウエアロジックだけRTCにすればいい、と考えれば気が楽になると思います。
このチャットプログラムは、.NET Framework3.5をインストール済みのWindowsパソコンがあれば、すぐに試してみることができます。5分もあれば十分ですので、お時間のある方はぜひ試してみてください。この5分は主にマニュアルを読む時間です。
ダウンロードして、インストーラーを起動することで準備は完了ですので、ダウンロードファイルに同梱(どうこん)されている「チャットコンポーネント利用マニュアル」だけを読んで、すぐに実行してみてください。ネットワークにつながっていなくても、「1人チャット」で動きを確認することもできます。
※ソースファイルは(OpenRTM.NET-1.0.1.zip)からダウンロードできます。
.NET Framework3.5がパソコンに入っていない方は、マイクロソフトのサイト(http://www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=ja)からダウンロードしてください。