Kobuki紹介記事 第四回 KobukiをRTMで使う その1

どうも.SUGAR SWEET ROBOTICSのysugaこと菅です.

前回の記事ではKobukiをROSで使ってみる,と題して,SLAM用ROSスタックを使ったマップ作成を体験してみました.
今度は,ここからはRTミドルウエアの世界に触れてみましょう.

RTミドルウエアとは何か

「RTミドルウエア (RT-Middleware: RTM) とは、ロボット機能要素 (RT機能要素) のソフトウエアモジュールを複数組み合わせてロボットシステム (RTシステム) を構築する為のソフトウエアプラットフォーム一般を指す名称です(公式ページより).

つまり,RTミドルウエアという言葉は,特定のソフトウエアやライブラリを指すのではなく,あるカテゴリーをさす名称というわけです.この意味では,ROSもRTミドルウエアに分類されちゃいそうですが,ここでの「RTミドルウエア」という言葉は,ソフトウエアの国際規格標準化団体「OMG (Object Management Group)」が管理している「Specification of Robotics Technology Component (RTC) 」に準じたプラットフォームソフトウエアを指しています.

ここで言うRobotics Technology Component (RTコンポーネント,RTC) とは,カメラなどのセンサやアクチュエータ,コントローラやデータベースなどの機能要素を指す言葉です.従ってRTミドルウエアの世界では,RTCを組み合わせることによって,一個のシステムを形作ります.この点ではROSと非常に似ています.

これから使うOpenRTM-aistは,このRTC規格に準じたソフトウエアライブラリで,日本の産業技術総合研究所(産総研)が開発・管理しています.産総研は,RTCの標準化にも関わっていますから,皆でOpenRTM-aistを使って,RTC規格をより良いものにするためにフィードバックを集めている,とも言えます.

まず,ROSとRTMの違いは,このように規格・標準化を押し進めながら実装も開発している所です.

インストール

さて,ではOpenRTM-aistを早速インストールしてみましょう.OpenRTM-aistは,WindowsとLinuxで動作しており,Macでの動作も報告されています(実際に筆者はMacで使っています).
ここでは,Windows版を例にとってみます.インストールについては,公式ページのこのページに詳しく書かれています.

インストーラは,公式ページのトップからダウンロード出来ます.Windows用,C++言語版,Version 1.1の32bit版です.64bit版もありますが,動作は不安定なのと,Express EditionのVisual Studioでは対応出来ないので,Windowsでは特別な理由が無い限りは32bit版を使う方が良いと思います.下記のボタンを押すとダウンロードできますので,実行してインストールしてください.
スクリーンショット_2013_05_25_13_16

これだけで良いです.

あと,もしお使いの環境にJavaの実行環境が存在しない場合は,下記のリンクからJRE (32bit版) をダウンロードしてください.64bit版のJREが入っている状況の場合は,切り替えて使うか,アンインストールしてください.

Kobuki用RTCのインストール

初回の記事をご覧になった方はlibkobukiをダウンロードしてインストールしていると思いますが,そうでない方は,初回の記事を見ながら,ダウンロード&インストール&動作確認をお願いします.

このlibkobukiを使ったRTコンポーネントをダウンロードして,インストールしてください.

KobukiRTCはこちらからダウンロードできます.

テスト用RTCのインストール

ここでは,私ysugaが作った台車移動ロボットシミュレータに同梱している仮想ジョイパッドと,ジョイパッドのデータを速度指令値に変換するコンポーネントを使ってみましょう.
下記のリンクをクリックしてダウンロードしてzipファイルを展開してください.
http://ysuga.net/wp-content/uploads/2011/05/MobileRobotSimulator1.4.zip

中に,4つのbatファイルがあると思いますが,VirtualJoystickとMobileRobotControllerを使います.

RTCの起動

RTCを起動する前に,ROSで言う所のmaster (roscore) にあたる,ネームサーバーを起動します.スタートメニューからプログラム>OpenRTM-aist > C++ > Tools > Start Naming Serviceを選択すると,コマンドプロンプトが現れてネームサーバーが起動します.
Windows8を使っている場合は,スタート画面に現れないので,エクスプローラから起動します.通常は,”C:¥Program Files (x86)¥OpenRTM-aist¥1.1¥bin¥”にある”rtm-naming.bat”というファイルを起動すれば,同様にネームサーバーを起動できます.
スクリーンショット_2013_05_25_13_38

さらに,スタートメニューから,プログラム > RT-net > KobukiRTCを起動します.

先ほどのMobileRobotSimulatorのフォルダ内のVirtualJoystick.batとMobileRobotController.batをダブルクリックします.

これでRTCをすべて起動しました.

システムの接続・起動

RTコンポーネント間の通信を可能にするには,「接続」が必要になります.そこで,それを行うツールとして,RT System Editorがインストールされています.スタートメニューからプログラム>OpenRTM-aist > C++ > Tools > RT System Editorを起動します.

全画面_2013_05_25_13_46

最初からネームサーバーを起動していれば,localhost(自分自身)のネームサーバーに接続した状態で起動します.
「1」の矢印にあるマークをクリックすると,localhostに登録されているRTコンポーネントを確認することが出来ます.お使いのPCのホスト名によって,多少違う表示が出ると思いますが,3つのRTコンポーネントが起動されているのが確認出来ると思います.

「2」の矢印の先にあるボタンをクリックすると,キャンバス(Online System Editor)を開くことができ,この中に左のツリーからRTコンポーネントをドラッグ&ドロップすると,RTコンポーネントを視覚化することが出来ます.
スクリーンショット_2013_05_25_13_51

各RTコンポーネントには,凸型の印や凹型の印がありますが,これが「ポート」と呼ばれる通信のためのチャネルで,これをドラッグ&ドロップするとポート間をつなぐことが出来ます.
どのポートでもつなげられる訳ではありませんので,下の図を参考につなげてみてください.
スクリーンショット_2013_05_25_14_57

さらにRTコンポーネントは「コンフィグレーション」を持っています.これにより今回は,Kobukiが繋がっているCOMポートを設定してみましょう.KobukiRTCを選択状態にすると,RT System Editorの画面下部に,コンフィグレーションの表が現れますので,「編集」ボタンを押します.
スクリーンショット_2013_05_25_14_58

すると,下図のようなダイアログが表示されますので,「port」の値を適切な値にします.「OK」を押す前に「Apply」にチェックを入れるのをお忘れなく.
スクリーンショット_2013_05_25_14_59

さて,このままではシステムは動作していません.RTコンポーネントには「状態」があり,現在は起動しても動作していない,「INACTIVE」な状態です.これを「ACTIVATE」するのもRT System Editorです.
各RTCを選択して右クリックし,「ACTIVATE」を選択するか,もしくはキャンバスの空白の部分で右クリックして「All Activate」を選択すると動作します.

VirtualJoystickで表示されるボタンを押すとKobukiが動作します.
スクリーンショット_2013_05_25_21_03

キャンバスの白い所で右クリックして,Saveを選択すると,現在のシステムの構成を保存することが出来ます.
同様にOnline System Editorを開いてから,白い所で右クリックして,Load and Restoreを選択すると,RTコンポーネントが起動していれば,接続&コンフィグレーションを行うことが出来て便利です.

まとめ

いかがでしょうか?RTミドルウエアという言葉が意味する所,そしてRTミドルウエアの実装であるOpenRTM-aistとツールを体験してみました.
グラフィカルなツールが揃っているのがOpenRTM-aistの特徴です.

タイトルとURLをコピーしました