2010年3月8日月曜日

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より)

2010年3月1日月曜日

ROSディストリビューション「Box Turtle」リリース!


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

はじめてのROSディストリビューション「Box Turtle」がダウンロード可能になりました!ディストリビューションの定期的なリリースによって、安定性が向上することとROSの導入が促進されることを願っています。

ROSディストリビューションはLinuxディストリビューションと同様、テスト済み、リリース済みの幅広いライブラリを一緒に提供します。Box Turtleには最近リリースされたたくさんの1.0(安定版)ライブラリが含まれています。これらBox Turtleの1.0ライブラリは安定したAPIを搭載しているので、バグの修正時のみアップデートされます。また次の「C Turtle」のリリース時に、古いバージョンとの互換性を保つよう努力を続けていきます。

ディストリビューションのリリースには、たくさんの利点があります。あなたが一貫性のあるROSライブラリのセットを使って試しに開発してみようと考えている開発者であれ、ロボット研究の教材を開発するために安定性のあるプラットフォームを必要としているインストラクターであれ、共有インストールをしようとしている管理者であれ、誰にとってもディストリビューションによって、ROSをインストールしたりリリースしたりするプロセスが単純化されます。またBox Turtleにより、新しい機能は古いバージョンとの互換性を保てるだろうかと心配することなく、簡単にバグの修正ができるようになります。

Box Turtleのリリースによって、Ubuntu debianへのROSのインストールは非常に簡単になり利便性が向上しました。"apt-get install"を使ってROSとたくさんのライブラリをインストールできるんです。私たちはこの機能をウィローガレージのすべてのロボットへのROSのインストールに使ってきています。PR2のブラグ差し込みチームは、Box Turtleのライブラリを利用して改良コードを書けたので、時間の節約と高い安定性を得ることができました。

Box Turtleには、ROSのみのインストールの他に「base」と「pr2」の2種類があります。「base」はナビゲーションやビジュアライゼーション(可視化)など主要な機能やツールを含むもので、「pr2」にはPR2の共有インストールで使うライブラリやシミュレーション上でPR2を動かすのに必要なライブラリなどが含まれています。ロボットはパーソナルコンピューターよりも種類が様々なので、次のバージョンでは他のロボットのハードウェアもカバーしたものをリリースできれば、と思っています。

Box Turtleのための新しいインストール手順を作成しました。ぜひ試してみてご意見を聞かせてください。

ディレクター、PR2ベータプログラムを語る


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

今年の初め、PR2ベータの無償提供先の募集を開始し、120もの応募意思表明をいただきました。
今日3月1日はいよいよプロジェクトの最終提案書の締切り日です。このプログラムに興味をもってくださったすべての方々、プロジェクト案取りまとめにご尽力くださった方々に、心から感謝いたします。最終提案書を読ませていただくのがとても楽しみです。

上は、PR2、ROS、PR2ベータプログラムについてのビデオです。ぜひごらんください。

(以下はビデオの内容です。)

「PR2ベータプログラムについて」

今やパーソナルコンピュータが、私たちの生活に不可欠なものとなったように、パーソナルロボットにも同じような未来が待っています。まだ先は長いですが、確実に前に進んでいます。

これまでは、移動用の車輪の製作など本来のロボット研究開発以外の部分に多くの時間を費やさなければなりませんでした。PR2+ROSというプラットフォームを提供することによって、研究者はプラットフォームに悩まされることなく開発に専念でき、リソースの共有が効果的に行われるようになります。

PR2ベータプログラムでは約10台のPR2ロボットを、大学、企業、ハッカー(コード開発者)コミュニティなどに無償で提供します。PR2がウィローガレージの外でも使われるようになれば、開発コミュティ全体が育ちますし、お互いに開発の成果を公開し、活用しあうことで、開発が促進されます。

「ソフトウェア開発者のためのロボット」

PR2ROSは、より良い環境でソフトウェア開発を行えるよう、細部にこだわって作られています。例えばロボットの力を最大限に発揮するためのコンピュータ。PR2は最先端の高性能なコンピュータ(8コアi7 Xeonシステム、24GBのRAM、2TBのハードディスク)2基を搭載しています。ログ用ハードディスクは取り外し可能なので、膨大な量のログを迅速に得ることができます。またPR2は開発用プラットフォームですので、堅牢性を重視しています。

「ロボットを使って開発する」

ソフトウエア開発者は、ロボットを使って実験する必要があります。失敗をおそれず開発できるというのはイノベーションにとって非常に重要なことです。
PR2がドアを開ける実験に使ったドアは、ペンキがはがれたり、ひっかき傷などが残っています。
何度も失敗するのは当たり前です。ロボットにもドアにもダメージがあることはわかっていますが、失敗しても繰り返し実験できるというのは開発には必要なことです。そのためにPR2があるのです。


「すぐに開発にとりかかれる」

ROSはソフトウェア開発プラットフォームです。たくさんのライブラリ、ツールがあり、最初から高レベルの開発が可能です。低レベルのハードウェアドライバに関するライブラリから始めて、ナビゲーション、二次元、三次元認識と進めていくこともできます。また開発ツールセットを使うと、データロギング、プレイバック、キャリブレーションや他の研究所とのコードシェアなどができます。
ライブラリもツールもオープンソースなので、自由に使用でき、必要にあわせて新しい機能の開発、成果の共有が簡単にできます。

「ROSでロボットを動かす」

ROSが素晴らしいのは、誰もが使える、ということです。ベータプログラムの参加者でなくても、ROSを使って開発したり、あなたのロボットを動かすことができます。
すでに10数か所の企業や大学の研究機関がオープンソースコードをROSでリリースしています。ROS開発コミュニティはほんとにすごい。PR2ベータプログラムでどんなことが行われていくのか非常にわくわくしています。
多くの開発者が、ロボットをROSで動かしてみて、その開発環境やツールがいいので、とても喜んでくれています。ROSコミュニティに開発者が集うことで、同じ研究を重複して行うような無駄を省き、他の開発者の成果を生かして自分のやりたい開発を行えるので、ロボットの研究開発は飛躍的に進歩していきます。より迅速に、より効率的に、そして、どんな研究機関や個人が単独で行うよりも、大きな成果をももたらすことができるでしょう。