移動ロボットを,実空間上で自律的に動作させるためのRTコンポーネント群を公開しています.
これらのRTC群では,移動空間を平面マップを作成し,マップ上の自己位置を確認しながら,自律的な軌道計画,軌道追従動作が可能になっています.
以上の動作を複数のRTCで実現しており,これを我々は移動ロボットフレームワークと呼んでいます.
マップを表示したり,移動ログを収集するためのGUIツールも付属していますので簡単に試せます.
また,GUIツールを独自のRTCに置き換えれば,自分のアプリケーション内にこのフレームワークを利用することができ,会話によるナビゲーションや,空間センサとの連携など,利用の幅が広がることでしょう.
本フレームワークでは,以下の二つの利用をサポートしています.
- 環境地図の作成
- 目的地までの経路追従
マップ作成,マップ上での自己位置推定,マップ上での広域軌道計画には,本フレームワークではMobile Robot Programming Toolkit (MRPT) を利用しています.
また,基本ハードウエアとしては,
- 北陽電機株式会社のレーザーレンジセンサ Urg 04LX-UG01 http://www.hokuyo-aut.co.jp/search/single.php?serial=17
- 株式会社Doog TEC-1 http://jp.doog-inc.com/product-element-tec-1.html
- T-Frogプロジェクト&ツジ電子 二軸モータドライバ TF-2MD3-R6 http://t-frog.com/products/
に対応していますが,本フレームワークで定義されたインターフェースに準拠したRTCであれば置き換えが可能であり,移動ロボットの入れ替えや,個別のアルゴリズムの入れ替え,追加などが可能です.
我々のプロジェクトでも,今後,複数の選択肢を用意していく予定です.
準備
まず,公式ウェブサイトより,OpenRTM-aist 1.1.1 C++版をダウンロードします.
a href=”http://openrtm.org” target=”new”>http://openrtm.org
バイナリから使う
基本的にこちらを使ってください.ソースコードを変更する場合についても記述いたします
ダウンロード
最新版 ZIPファイル(動作確認が取れているRTC群ですが若干古いバージョンの場合もあります)
MobileRobotNavigationFramwork_dist_20150703
最新版 Githubよりダウンロード(定期的にメンテナンスがなされており,バグなどが減っている可能性もありますが,動作しない場合も):
https://github.com/sugarsweetrobotics/MobileRobotNavigationFramework_dist
使い方(マップ作成)
まず,スタートメニューから,OpenRTM-aist 1.1 > Tools > Start C++ Naming Serviceを選択して,ネームサーバーを起動します.
次に,TEC-1とURGセンサをPCに接続します.ドライバがインストールされていない場合はインストールします.
次に,ypspur_coordinator_TEC1.batを実行します.この時,TEC-1が接続されているCOMポートを指定します.
さらに,Mapper_ALL.batを実行します.
スタートメニューからOpenRTPを起動し,RT-System Editorを起動します.
UrgRTCのコンフィグレーションのport_nameをURGセンサが接続されているCOMポートにします.このとき,COM10以上の場合は,\\.\COM10と入力します.
アクティブ化すればシステムが起動し,NavigationManager (GUI) にロボットとレーザーセンサの出力結果が表示されます.
Start Mappingボタンを押すと,マッピングが開始されます.白く塗られた部分は障害物がないと判断された部分です.
図中右側の仮想ジョイスティックを操作すると,ロボットが移動し,マップが広がっていきます.
デフォルトのコンフィグレーションでは,不向きな環境もありますので,適宜変更しながら利用してください.
ソースコードから使う
準備
RTミドルウェアのインストール
本モジュール内のコンポーネントを利用するにはOpenRTM-aistのC++版とJAVA版をインストールしておく必要があります.産総研の公式ホームページからダウンロード可能です(1.1.0版で動作確認).
MRPTのインストール
一部のコンポーネントは移動ロボット用ライブラリである”Mobile Robot Programming Toolkit”を利用しています.MRPTのホームページよりダウンロード&インストールしてください.
各機能の概要
地図作成機能
地図作成機能はMapperViewer, Mapper_MRPT, KobukiRTC, UrgRTCの4つのコンポーネントから構成されます.
MapperViewerコンポーネントはユーザーインターフェースを提供します.現在作成中の地図やロボットのコントローラを表示します.こちらから取得できます.
Mapper_MRPTは,レンジセンサからの測距データとロボットのオドメトリを基に環境地図を作成します.生成された環境地図はサービスポートを介して利用することができます.こちらから取得できます.
KobukiRTCはKobukiRTCは,移動台車ロボット”Kobuki”を操作するためのコンポーネントです.KobukiRTC は株式会社アールティが公開しているホームページより取得できます.
UrgRTCはUrgRTCは,北陽電機株式会社製のレンジセンサからの測距データを取得するコンポーネントです.UrgRTCは産業技術総合研究所が運営する,OpenRTM-aistのホームページより取得できます.
経路追従機能
経路追従機能はMapperViewer, MapServer, PathPlanner_MRPT, SimplePathFollower, Localization_MRPT, KobukiRTC, UrgRTCの7つのコンポーネントから構成されます.このうちMapperViewer,KobukiRTC,UrgRTCに関しては地図作成機能で使用したコンポーネントと同一のコンポーネントです.
MapperViewerから目標地点の設定や経路追従の開始を行うことができます.
MapServerは環境地図をサービスポートを介して提供するコンポーネントです.地図作成機能で生成された地図データを同じディレクトリに配置してください.こちらから取得できます.
PathPlanner_MRPTは,ロボットの現在位置から目標地点までの経路を探索するコンポーネントです.こちらから取得できます.
SimplePathFollowerは計画経路に沿うようにロボットを走行させるコンポーネントです.こちらから取得できます.
Localization_MRPTはレンジセンサからの測距データとロボットのオドメトリを基に,モンテカルロ推定を用いて自己位置推定を行うコンポーネントです.こちらから取得できます.
実行方法
地図作成機能
GUI上の”Start”ボタンを押すことで,マッピングが開始されます.GUIコントローラからロボットを操縦し,環境情報を取得することで地図が作成されていきます.
地図を保存する際は,”Save”ボタンを押すことで保存できます.地図の画像ファイル(png)と地図情報ファイル(yaml)ファイルが生成されます.
経路追従機能
各コンポーネントを上図のように接続します.
GUI上の好きな地点をクリックすると,ロボットの目標地点が設定されます.
GUI上の”Plan”ボタンを押すことで,目標地点までの経路を計算します.
経路をロボットに追従させる際は,”Follow”ボタンを押すことで,目標地点に到着するまで経路追従をします.