RTM-URG
RTM-URG とは、URG-04LX, Top-URG からのデータを、RTM 上で利用するためのコンポーネントです。SCIP2.0 に準拠しており、URG, Top-URG に限らず SCIP2.0 規格のセンサからの測距データを CSV 形式で取得することができます。
rtm_urg-0.0.1.tar.gz を SourceForge.jp からダウンロードできる。
http://sourceforge.jp/projects/beego/files/?release_id=28369#28369
コンパイルには、OpenRTM-aist (http://www.is.aist.go.jp/rt/OpenRTM-aist/), および SDL (http://www.libsdl.org) が必要となる。 取得パッケージを展開後、configure, make によりコンポーネントを生成できる。
% tar zxvf rtm_urg-0.0.1.tar.gz
% cd rtm_urg-0.0.1
% ./configure
% make
UrgDeviceComp が UrgDevice/ のディレクトリ以下に、UrgHandlerCsvComp が UrgHandlerCsv/ ディレクトリ以下に生成される。
- UrgDevice / UrgDeviceComp ... URG が接続されている側でデータ取得を行うコンポーネント
- データ送信用のポートを1つ持つ
- コンポーネント初期化時に URG への接続を行い、アクティブ時にデータを送信する
- UrgHandlerCsv / UrgHandlerCsvComp ... URG データの受信、利用を行うコンポーネント
- データ受信用のポートを1つ持つ
- UrgDeviceComp の動作を確認するためのコンポーネント
ConnectorComp::cpp を用い、UrgDeviceComp と UrgHandlerCsvComp を接続して、受信データを UrgHandlerCsvComp 側のターミナルで確認方法を示す。
ConnectorComp::cpp のコンパイル
% g++ `rtm-config --cflags` ConnectorComp.cpp `rtm-config --libs`
スクリプト run::sh を実行すると、UrgHandlerCsv 側のターミナルから、URG からの CSV データが出力されているのがわかる。CSV のデータ形式は、
(以降の CSV データ総数), (スキャンライン 0 番目の測距データ), (スキャンライン 1 番目の測距データ), ...
となる。 スクリプトの実行方法は、以下の通り。
詳細は、OpenRTM-aist のページ (http://www.is.aist.go.jp/rt/OpenRTM-aist/) を参照のこと。
- 追加実装する予定の機能
- SCIP2.0 コマンドを受信し、その応答を返すコンポーネントの作成
- URG のシリアル ID を指定して接続を行う仕組みを備える
- 今後の予定 現在は、CORBA, および RTM コンポーネントへの理解不足のため、1本の入出力を使うコンポーネントしか作成できなかった。
CORBA および RTM コンポーネントの理解を行ったのち、センサデータ受信側のコンポーネントから、URG センサを制御するコンポーネントに対して、受信指令を出せるように変更したい。このように変更することで、URG センサの性能を十分に生かしたデータ測距を行うことができる。
また、出力データのフォーマットは、取得データ情報を含めるように改善を行う予定である。
以上。
Generated on Mon Dec 3 08:54:28 2007 by
1.5.3