2010年3月9日火曜日

ROSを使ったロボット その4: スタンフォード自律走行車 Junior


米国西海岸時間: March 9, 2010

Juniorはスタンフォードレーシングチームの自律走行車です。DARPAアーバンチャレンジで僅差2位となったことで有名です。市街地(軍事基地跡)でのレースは、交通ルール、駐車、追い越しなど、現実の運転で必要な多くの課題に従わなくてはならない難しい環境ですが、見事ナビゲーションを成功させました。

http://willowgarageja.blogspot.com/2010/06/pr2-beta-sites-spotlight-bosch.html
Juniorをよく知る人はおそらく「JuniorはROSを使ってない。IPCを使ってるんだ」と言うでしょう。

確かにそれはほとんど正解なのですが、最近研究者たちはJuniorの障害物分類システムにROSの知覚ライブラリーを使い始めたんです。

ROSを始めた時からのゴールの一つは、ライブラリーを小さく分けて作るのを守っていくことでした。それによってROSを少しだけでもたくさんでも、自分の使いたい分だけ使うことができます。小さなi-SOBOTの場合、開発者はROSのPS3コントローラー用ドライバーだけを使えました。もし構造が大きくなりすぎると、他のシステムとの統合が難しくなってしまいます。

Juniorの場合、Alex Teichmanは彼が去年ウィローガレージでの夏期インターン中に開発に取り組んだROSのイメージ・ディスクリプターをJuniorに実装することができました。彼はJuniorの障害物分類システムの開発のために、このライブラリをROSのポイントクラウドライブラリーと一緒に使っています。チームの他の開発者も、今後適切なプログラムがあればROSを選ぶことが許されます。

Alexのイメージ・ディスクリプターについて、詳しくはros.org/wiki/descriptors_2dで。

2010年3月8日月曜日

東大JSK - 今回はPR2で部屋をお片付け


米国西海岸時間: March 8, 2010

東京大学情報システム工学研究室(JSK)の3人の研究者(花井亮さん、山崎公俊さん、矢口裕明さん)が2週間の春休みを利用して、PR2ベータロボットとROS 1.0を体験しにやってきました。東京大学JSK研究室のウィローガレージへの訪問はこれが2度目ですが、PR2を初めてさわる研究者がどのように使うのか、私たちは楽しみにしていました。

訪問前にROSチュートリアルを少し勉強してきただけでしたが、彼らはすぐに三次元認識、ナビゲーション、コントローラーなどのROSライブラリの使い方を習得し、2週間の滞在で、PR2に様々な片付けをさせる4つのデモを行いました。
その1つめは、テーブルの上に置かれた小物を検出し、トレイにのせ、部屋を横切って他の場所にに運ぶというものです。2つめと3つめは、PR2が皿と衣類を掴み上げて持ち運び、片付けます。最後のデモは2つの似たもの(本と箱)を見分けるための画像処理を使っています。

これらのデモでは、認識のためのさまざまなアプローチが要求されました。彼らは、模様のない皿には円形検出機能、衣類にはシャツのシワを使い認識させました。本と箱については、まずPR2は各々のアイテムを自分でカメラの近くまで引き寄せた上で、SURFを使って判別しました。
きれい好きになったPR2のおかげで、もうすぐ私たちはオフィスの整理整頓をしなくてすむようになるかもしれませんね。

コミュニティによるROSドキュメンテーションの日本語化が始まったばかりであるにもかかわらず、このチームが達成したことに、私たちは非常に感動しました。上のビデオでは、JSKのチームのデモとともに、彼らのウィローガレージについての生の声を聞くことができます。また去年6月に私たちが日本にいって、ナビゲーションスタックをJSKの川田工業製HRP2-Vロボットに実装した時のビデオもご覧ください。

ROSを使ったロボット その3: Nao


米国西海岸時間: March 8, 2010

アルデバランロボティクスのNaoは、研究や教育用に販売されている身長約60cmのロボットです。Naoは小型ですが、4つのマイク、2つのVGAカメラ、頭上のタッチセンサー、赤外線センサーなど、たくさんのものを備えています。

コードのオープンソース化によって、共通のハードウェアでのコミュニティの協力がいかに迅速に行われるようになるか、ROSで動くNaoを使うことで実証されてきています。

ROS用の最初のNaoドライバーは、2009年11月にブラウン大学RLABによってリリースされました。このリリースには頭部コントロール、テキストの音声変換、基本的ナビゲーション、前面カメラへのアクセスが含まれていました。そのたった2、3日後にフライブルク大学(ドイツ)のヒューマノイド・ロボット研究室がブラウン大学のNaoドライバーを使って、走行距離測定、ジョイスティックでの遠隔操作を含む新しい機能を開発したんです。しかも開発はそこでは終わりませんでした。同12月、ヒューマノイド・ロボット研究室は、IMU(Inertial Measurement Unit 慣性計測装置)情報、URDF形式モデル、rvizでのデータ可視化など多くを加えて、Nao用の完全なROSスタックを作り上げたのです。

Naoのソフトウェア開発キットには、オープンソースであるOpenCVライブラリのサポートもすでに組み込まれています。フリーで使用できる何百種類ものROSパッケージにつながることで、今後、Naoにどんな機能が加わっていくのか楽しみです。

ブラウン大学では、オープンソースとROSを研究過程にも活用しています。
「ROSコードを書き公開することは、今や論文と同じくらい、私たちの研究を広く知らしめるために欠かせなくなりました。
ROSは、ロボット研究者がその研究成果を発表し、最先端の研究をさらに加速させることができる最良の方法なのです。」(ブラウン大学 Chad Jenkins教授) 

フライブルク大学のNaoスタックはalufr-ros-pkg、ブラウン大学のNaoドライバーは、iRobot Create用ドライバーとGstreamベースのウェブカム用ドライバーと一緒にbrown-ros-pkgにあります。

2010年3月7日日曜日

Box Turtleの中身 その2: 3D可視化ツール rviz 


米国西海岸時間: March 7, 2010

ROS Box Turtleには、ナビゲーションなどの主要なライブラリに加えて、ロボットのアルゴリズムやアプリケーション開発のために有用な様々なツールも含まれています。中でも最も使われているのがROSビジュアライゼーション・スタックの一部である、三次元環境の可視化(ビジュアライゼーション)ツール、rvizです。

rvizは、三次元のポイントクラウド、カメラデータ、マップ、姿勢、任意の可視化マーカー等の情報をカスタマイズして見ることができます。rvizは実際の物理的世界とロボットがどう見ているかの違いを示すことができ、ロボットが何をしようと計画しているかをユーザーに表示することができます。

ROSのrvizツールで何かできるか、詳しくは上のビデオをごらんください。ドキュメンテーションまたはソースコードのダウンロードはros.org/wiki/rvizからどうぞ。

2010年3月4日木曜日

ROSを使ったロボット その2: i-SOBOT


米国西海岸時間: March 4, 2010

ROSは日本でも、初期に導入してくれた献身的な方々や翻訳に取り組んでくださっているコミュニティの方々のおかげで、勢いが増しはじめています。昨年、ROSナビゲーションスタックが東京大学の川田工業製HRP2-Vに実装されました。そして今同じように、ホビーロボットでも使われています。

ROSライブラリは、小さくバラバラに使うことが簡単にできるよう設計されています。この場合、ROSを少し使うことが「最小のヒューマノイドロボットをROSでコントロールする」という要求につながったと言えます。このビデオが説明しているように、ROSはロボットの上を走っていません。i-SOBOTはArduinoにつながっていて、それがPCでROSにつながり、PS3のコントローラーで動かせるようになっているのです。

ROSナビゲーションスタックのような大きなものであれ、PS3コントローラドライバのような小さなものであれ、私たちはコードが再利用されるのを見ていつも興奮しています。

このデモビデオは、ROSに関する日本語ブログ「ROS勉強記録」の筆者oguttiさんがアップしたものです。つい最近、彼はCare-O-bot 3のシミュレーションについても書いていました。

oguttiさんの日本語ROSブログに加えて、ros.org/wiki/jaでROSドキュメントの日本語訳の進行をごらんいただくことができます。

原文 Robots Using ROS: i-Sobot (ROS.orgより)

2010年3月3日水曜日

Box Turtleの中身 その1: ROSナビゲーション


米国西海岸時間: March 3, 2010

ROSディストリビューション「Box Turtle」がリリースされたので、その主要な機能の紹介と次のリリースに向けて現在取り組んでいる機能をいくつかご紹介したいと思います。

第1回めは、おそらくROSライブラリの中でも最も広く使われているであろうナビゲーションスタックです。このナビゲーションスタックは、ROSコミュニティのいたるところで使用されていて、大きなものから小さなものまでロボットを動かしています。スタンフォード大学、Bosch、ジョージア工科大学、東京大学を含む多くの研究機関が、自分たちのロボットにこのライブラリを実装してきています。


ROSナビゲーションスタックは堅牢で、オフィス室内という環境で数日間をかけてマラソン距離(42キロ)の自律走行を達成しました。ロボットがオフィスにころがっているスクーターを避けたり、角に隠れて見えないところを走行するときなど、このナビゲーションスタックはロボットに雑然とした現実的な環境で動くための機能を提供します。

ROSナビゲーションスタックでどんなことができるのかについて、より詳しくは上のビデオや ros.org/wiki/navigation からソースコードをダウンロードしたり、ドキュメントをご覧ください。

ROSを使ったロボット その1: STAIR 1

米国西海岸時間: March 3, 2010

ROSライブラリには、非常に多くのリポジトリが公開されています。そこでこれからROSが使われている様々なロボットにスポットを当ててみたいと思います。最初に取り上げるのにふさわしいのは、やはりROSの発祥地、STAIR1(スタンフォード人工知能ロボット1)でしょう。Morgan Quigleyは、彼らの移動マニピュレーションプラットフォームにロボットフレームワークを提供するために、スイッチヤードフレームワークを作成しました。ソフトウエアの構築は、移動マニピュレーションロボットの課題を明らかにするレッスンになり、そこからROSが誕生したのです。

移動マニピュレーション空間における問題は、1つのグループが解決するには大きすぎます。認識、ナビゲーション、視覚、把持という別々の課題に取り組むには複数のチームが必要なのです。STAIR1はこうした課題を明らかにするために作られた研究用ロボットであり、NeuronicsのKatanaアーム、セグウェイのベース、変幻自在なセンサアレイ、他にもカスタムレーザラインスキャナ、北陽のレーザレンジファインダ、AxisのPTZカメラなどからできています。研究環境でこのプラットフォームのための開発を行った経験が、小さなコンポーネント、シンプルな再構成、軽量なカップリング、簡単なデバッグ、拡張性など、ROSにも非常に役立っています。

STAIR 1は、口頭によるコマンドを受け取ってホチキスを見つけることから、ドアを開け、エレベータを操作するなど、様々な研究課題に取り組んでいます。下のビデオではSTAIR 1がエレベータを操作しています。

STAIRプログラムに関して、より詳しく知りたい方は、stair.stanford.eduでビデオをごらんください。Morgan QuigleyがIROS2009のワークショップで使ったROSとSTAIRに関するスライドも見ることができます。

ROSへの多大な貢献とSTAIR特有のライブラリがsail-ros-pkg.sourceforge.net/ にあります。エレベータ操作に使われたコードも含まれています。


原文 Robots Using ROS: STAIR 1 (ROS.orgより)