2010年8月17日火曜日

ROS C Turtleの新しいタスクプランナー SMACH



ROS C Turtleに追加された新しい機能の一つは、最近私たちが行った"ハッカソン"において極めて重要なコンポーネントだったものです。例えば、飲み物を冷蔵庫から取ってくるとき、ロボットは冷蔵庫のハンドルをつかむ、ドアを開ける、中に入っている飲み物をスキャンするなど、多くのタスクをこなさなければなりません。予期せぬ状況やエラーに対処しながら、慎重に、これらのタスクを指揮する必要があります。以前、私たちはこういった動作の指示のために複雑なタスクプランニングのシステムを利用していたのですが、開発者、研究者の間で、ロボットの行動のプロトタイプ化のためには、何かもっと迅速に使えるものが必要だと考えていました。

その答えを、インターンの一人が生み出しました。SMACH ("State MACHine"「スマッシュ」と発音)はタスクの指定とコーディネーションのためのアーキテクチャで、Jonathan Bohrenがウィローガレージでの2度目のインターンの研究の一つとして開発しました。Jonathanは、当初ペンシルベニア大学GRASP研究室に在籍していましたが、現在はジョンズホプキンス大学のComputational Sensing and Robotics (LCSR)研究室で博士課程の研究を進めています。ウィローガレージでのインターン期間を延長して研究を続ける間、SMACHは様々なPR2プロジェクトに活用されました。

SMACHはまず、電源差し込みとドアを開けるコードの書き直しに使われ、その後、ビリヤードカート押し飲み物を取りに行く、という3つのハッカソンを通じて洗練されました。これらのプロジェクト全てにおいて、ロボットの行動タスクに関するコードを迅速に書き、タスクの失敗に対応しながらロバストな行動を創りあげていく能力は、非常に重要な役割を果たしました。

SMACHは、ROSから独立したPythonライブラリなので、ROSとでも、そうでなくても、使用可能です。また、現在のSMACHを使ったタスクプランの状況を可視化するビジュアライザーや、内部の状況やデータフローをモニターする内部状態監視ツールなどの重要な開発ツールと一緒に利用できるようになっています。
すでに、たくさんのSMACHのチュートリアルSMACH関連のROS wikiにアップされています。これから、SMACHがより多くのクールなロボットアプリを作り出すのに使われるのを楽しみにしています。

原文

0 件のコメント:

コメントを投稿