Software Architecture of AMSL Racing

Build a system up with modules

The Final Process of Robotic Development

環境計測やナビゲーションなど,AMSLが所有する様々な要素技術は,最終的に統合され,ロボットシステムの構成要素として機能しなければなりません.たくさんの技術要素を無理なく統合するためには,要素間のインタフェースの統一や,各要素の実行周期や同期の調整,リソース管理などを十分に考慮する必要があります.AMSLでは,ソフトウェアインターフェイスを共通化するため,Robot Operating System (ROS)*を利用して自律システムを開発しています. ROSは,Willow Garage社が開発し,フリーで公開されています. これは,ロボットのためのメタ・オペレーティング・システムで,ネットワーク機能,モジュール分散開発,ログ記録・再生など自律移動に必要となる機能を含んでおり, 自律移動システムを開発する際に付随するルーチンワークが大幅に軽減できます. これらの事から,AMSLではROSを利用して開発を行っています. また,ROSに存在する他者が開発した自律移動システムを利用する事で,開発の効率改善をはかる事ができます.

Not Only for Integration

モジュールのネットワーク化は,先の統合に関する問題の解決だけでなく,様々な戦略的意味を持っています.モジュールのネットワークインタフェースは,研究室のLANにも繋がることができ,研究室内の様々な場所からロボットの状態(搭載センサの出力など)を取得し,同時並行で開発を進めることができます.また,このようなネットワーク透過なインタフェースにより,ソフトウェアの視点から見れば,ソフトウェアがどのロボットに繋がっているのかということも,些細な問題となります.つまり,ソフトウェアを卓上ロボットやシミュレーションモデルで十分にテストした後,簡単に実機に移植することができるのです.

system.png

Fig.1 ネットワークモジュール化された機能要素群




* この様なソフトウェアシステムのインプリメンテーションとしては,RTミドルウェアが有名ですが,AMSLでは,ROSを使っています.(http://www.ros.org/wiki/)