RTCを組み合わせてロボットを作ろう
ロボット業界の未来とRTミドルウエア
いかがでしたでしょうか?本連載では、特にRTCの開発方法に関して説明をしました。
私は友人の企業と共同で、本連載で作成したロボットを拡張して「名刺受け機能つきマスコットロボット」を製作しました(図3)。RTミドルウエアで開発されたシステムは、機能の追加やカスタマイズが容易であり、またコンポーネントの再利用をスムーズに行うことができます。
私はロボット開発を行う技術者として、RTミドルウエアの思想の美しさにほれ込んでいます。
また大学の研究室においては、複数のプロジェクトを担当する私の立場から見ても、RTCの再利用性は研究活動の効率化とプロジェクト間の交流の活発化を引き起こすと考えています。
さらに私はRTミドルウエアを取り巻く現状にさまざまなチャンスが眠っていると 確信しています。若い技術者や研究者たちが集まり、組み込みデバイスやソフトウエア資産をRTC化することで、新たな商品価値の発掘やイノベーションを引き起こす原動力になっていきます。
読者の皆さんも、まずはRTCを開発し、それを世に送り出すことでRTミドルウエアの活動に参加されてはいかがでしょうか。企業や研究室、サークルなど、団体の規模や種類を問わず多くの参加者が集まることで、チャンスが大きなうねりとなり、ロボット業界を席巻することを、私は強く期待しています。
補足:本連載で扱えなかった話題について
最後に本連載では扱いきれなかった話題について触れます。
■サービスポート
サービスポートは本連載で扱ったデータポートと同じく、RTC間をつなぐインターフェースです。データポートではRTC間のデータのやり取りを実現しましたが、OpenやClose、Refreshなど、データのやり取りが規定できない「サービス」を提供する場合、サービスポートを使います。
サービスポートは非常に強力なインターフェースですが、IDLを定義することで設計者が望むインターフェースを提供できるため、RTCの再利用性が低くなる可能性があります。サービスポートを使用する場合は、インターフェースの設計に細心の注意を払う必要があるでしょう。
■ほかの言語版OpenRTM-aistについて
OpenRTMは2009年6月現在、C++以外にもPython、Java、そして.NETでの実装があります。例えばJavaでのソフトウエア資産を多くお持ちの方は、Java版のRTミドルウエアを試してみるとよいでしょう。RTC作成の基本的な手順はC++版と大きな違いはありません。
■OpenRTM-aistの最新バージョンに関して
本連載中にOpenRTM-aistの最新バージョン(C++、ver. 1.0-RC1)がリリースされました。ほかの言語(PythonとJava)に関しては、RC(Release Canditate)が取れた時期から開発が始まるようです。
RTC開発に関しては、この連載で扱った0.4.2との大幅な変更はありませんが、バージョン0.4系のRTCと1.0系のRTCでは接続を行うことができませんので注意が必要です。
最新バージョンでは現行の0.4.2とは大幅にコードが変更されており、国内のたくさんの研究者たちが毎日のようにバグ報告や実装に関する議論を深めています。
まずはぜひ、OpenRTM-aistのメーリングリストに参加されることをお勧めします。OpenRTM-aistの公式ウェブサイト(http://www.is.aist.go.jp/rt/OpenRTM-aist/)からメーリングリストの登録が可能です。
【参考図書】
長瀬 雅之ほか
『はじめてのコンポーネント指向ロボットアプリケーション開発 ~RTミドル ウェア超入門~』毎日コミュニケーションズ