RTミドルウエアを用いたロボットシステム開発
RTミドルウエア開発環境のインストール
本連載では、RTミドルウエア規格にのっとった実装の1つであるOpenRTM-aist(http://www.is.aist.go.jp/rt/OpenRTM-aist/)を使った開発を行います。
OpenRTM-aistはRTミドルウエアの策定作業の中心となっている産業技術総合研究所(産総研)が開発しており、分散処理用ミドルウエアであるCORBAがベースとなっています。執筆当時(2009年5月16日)での最新版は0.4.2です。開発言語はC++とJavaとPythonがあり、OSはUNIX系OSとWindowsに対応しています。
ここでは、お使いのコンピューターがWindows XPであり、Visual C++ 2008 Express Editionを使った開発を例としてお話を進めます。Windows XPが実行できるコンピューターならば開発に問題ありません。
まずは、OpenRTM-aistが利用するライブラリ群のインストールからはじめます。これらはすべて無料で入手できます。
OpenRTM-aistでは、「ACE (Adaptive Communication Environment)」、Python、PyYAML、omniORBを利用しています。この4つのライブラリで最低限、OpenRTM-aistを動作させることができます。まずはこれらのインストールを行うため、OpenRTM-aistのダウンロードページ(http://www.is.aist.go.jp/rt/OpenRTM-aist/html/E38380E382A6E383B3E383ADE383BCE383892FC2B2B.html#f81fb05d)よりダウンロードを行います。ここで注意する点は、Visual Studio 2008用とVisual Studio 2005用で、使用するライブラリが異なるということです。ここでバージョンが違うライブラリをインストールした場合、RTCが実行できませんので注意してください。
すべてのライブラリはインストーラになっていますので、簡単にインストールができると思います。
次にOpenRTM-aistをインストールします。これもVisual Studio 2008用をダウ
ンロードしてインストールします。
最後に開発環境として、Visual C++ 2008 Express Edition(以下、VC++)と、Eclipseをインストールします。
VC++はマイクロソフトのウェブサイト(http://www.microsoft.com/japan/msdn/vstudio/Express/)からダウンロードしてください。
さて実際のコーディングはVC++で行いますが、Eclipseを利用した方がスケルトンコードの自動生成において開発効率が高くなるので、Eclipseのインストールをお勧めします。
すでにEclipseをお使いの方はOpenRTM-aistのウェブサイト(http://www.is.aist.go.jp/rt/OpenRTM-aist/html/E38380E382A6E383B3E383ADE383BCE383892FRTSystemEditorE383BBRTCBuilder.html)から必要なプラグイン(RTSystemEditorとRTCBuilder)のみをダウンロードしてくれば使用できますが、ここでは紙面の都合上、開発環境がすべて入っているEclipseを産総研のウェブサイトからダウンロードしてくることをお勧めしておきます。
ダウンロードページ(http://www.is.aist.go.jp/rt/OpenRTM-aist/html/E38380E382A6E383B3E383ADE383BCE383892FRTSystemEditorE383BBRTCBuilder.html#o533f25c)からEclipse(Windows用全部いり)をダウンロードし、ZIPファイルを展開して適当なディレクトリ(Cドライブ直下など)に置いてください。インストールの必要はありません。「eclipse.exe」を実行すればすぐに使えます。
eclipse.exeへのショートカットをデスクトップなどに置いておくと便利でしょう。
Eclipseを使用するにはJavaの環境が必要です。JDK6以上をインストールしてください。
サンプルでRTミドルウエアを体験しよう
さて、インストールが終わったら動作確認をしてみましょう。ここでは例としてOpenRTM-aistに同梱されている、USBカメラを使ったRTCを使ってみます。
まずこのRTCを実行するためには、OpenCVというライブラリが必要になります。まだインストールするの?と思った方(著者もそう思います)……ここは我慢です。
OpenCVとはフリーの画像処理ライブラリで、カメラの画像を表示する意外にもさまざまな画像処理ができます。この連載でも、OpenCVを使った画像処理RTCを例として紹介する予定です。
OpenCVは産総研のサイトにリンクがありますので、そちらからインストールすると良いでしょう。
最後にUSBカメラですね。私は30万画素クラスのUSBウェブカメラでの動作確認をしました。100万画素クラスのカメラでは画像表示用のRTCが動作しないバグがあるので、30万画素クラスのUSBカメラを用意してください。