「Tech-Circle PepperでROS開発をはじめよう」に行ってきました。
2016年4月6日、アトリエ秋葉原で開催された「Tech-Circle PepperでROS開発をはじめよう in アトリエ秋葉原(ハンズオン)」に行ってきました。
今回の勉強会は「ROSを使ってPepperに物体認識をさせるアプリを作ろう」という内容。
世界トップシェアのロボット用フレームワークのROS(Robot Operating System)を使い、Pepperで何ができるかを実際にアプリケーションを作りながら体験してみるというものです。
最初にTIS株式会社白石氏からTech-Circleの紹介です。
Tech-Circleとは、人におすすめしたい技術をシェアし、これから来る技術を仲間と共に学ぶ勉強会です。
Tech-Circleが大切にしていることは、メンバーがその時に一番おすすめしたい技術を取り上げるです。また、参加者同士で対話できる距離と会場を見渡せる少人数形式をとり、技術に触って試せるハンズオンスタイルで運営を行うということです。
Tech-Circleが取り扱うテーマは以下の3つ。
・Infrastructure Technology
・Machine Learning
・Application Technology
Tech-Circleは、以下の方におすすめです。
・最近、このツールの名前よく聞くんだけどどうなんだろう?
・ツールを使ってみたいけど、なかなか試す時間がとれないなー
・話聞くだけじゃわからないから触ってみたい。でも、最初にどこから手をつけていいかわからない
・機会学習技術を応用する方法を学びたい
・インフラにも機会学習技術を使いたい、機会学習をインフラ技術で自動化したい
Tech-Circleで過去に取り上げたツールの一覧です。
Tech-Circleの紹介は以上です。
ここから今日の勉強会のスタートです。
今日の発表者はTIS株式会社戦略技術センターAI技術推進室の古賀勇多氏。大学時代はロボットの製作や地図作成(SLAM)を行い、現業は自律移動ロボットや機械学習の技術検証に従事しています。
今日の勉強会のゴールは、PepperをROSで動かせるようになることと、ROSの豊富な機能・ツールを活用してPepperがより賢くなるアプリを開発できるようになることです。
最初にROSについて。
ROS(Robot Operaing System)は、ロボット開発のためのオープンソースのフレームワークで、ロボットの研究・開発における、コードの再利用性を高めることが目的です。
Willow Garageによって開発され、その後はOSRF(Open Source Robotics Foundation)がメンテナンスしています。
ROSは通信システム、ツール、機能、エコシステムの4つで構成されています。
ROSの通信システムです。出版・購読(Pub/Sub)型の通信で、複数の独立したノード間をトピックを介して通信を行います。
この通信システムで得られる恩恵は、以下の3点。
・コードの再利用性向上
・システム全体のダウンにつながらない堅牢性の向上
・分散ネットワークへ拡張可能
ROSの特徴に充実したツール群というのもあります。2D,3Dの可視化ツール、ログ生成ツール、ノード同時起動ツール、パッケージビルド・依存管理ツールなどなど。
ROSの機能群です。ROSは移動、操作・認識に特化しています。ライブラリ・シミュレータ等との連携と、多くのセンサ・ロボットに対応しています。
数千にのぼるパッケージ(機能・追加ツール等)を世界中の大学・企業・研究機関が公開しているので、これらをロボットの機能の一部として即使えて試すことができます。
例えば、操作+認識では、ROSを使ってドアノブを掴んでドアを開けたり、ものを掴んだりできます。
操作+移動では、デプスカメラを使って3D認識し、障害物を回避しながら移動させることができます。
ROSは世界中で使われています。一ヶ月間のwiki.ros.orgへのビジター数ですが、アメリカ、中国、ドイツ、日本の順で突出しています。
ROSの公式ページ http://www.ros.org/ はWiki、質問、パッケージ検索などを1つのサイトに集約し、Wikiページ数で16,403ページ、質問数で24,026件と活発な情報やり取りがされています。
ここから、ROSへの質問あるあるです。質問その1「ROSを使うと何が嬉しいの?」
その答えは、ROSの膨大な資産を使って、高性能なロボットを素早く開発できるです。
質問その2「ROSを試してみたんだけど、ROSで動いて安価に使えるロボットないの?」
おすすめは「Raspberry Pi Mouse (Raspberry Pi 無し)」か「Turtlebot2(ドッキングステーション付+Xtion Pro Live用柱)」です。
ちなみにPepperでもROSが動くので、アトリエ秋葉原を活用すると無料でROSが動くロボットの自習が行えます。
ここからが本題の Pepper + ROS です。
Pepperの機能拡張の代表的な方法として、Choregrapheのボックスを使う、WEB API(クラウドサービス)を使う、ROSの機能群(パッケージ)を使うなどがあります。
去年6月、PepperがROSに正式対応という公式リリースが出ましたが、「ROSに正式対応」とはどういうことなのでしょうか?
Pepper(Naoqi-API)とROSの豊富な機能群をつなぐ「Naoqi-ROSブリッジノード群」がアルデバランにより作られ、これにより「ROSに正式対応」となりました。Pepper自体が何か変わったわけではないのでご注意を。
PepperでROSが動く仕組みです。
Choregrapheで作ったロボットアプリはパッケージ化されPepperにアップロードし実行されます。ROS側ではPepperのNAOqi APIを呼び出すことによって動かしています。
現時点でのPepperのROS対応注意点です。PepperノードはNAOqi-APIの一部機能しかブリッジ出来ていません。そのため、PepperのROS対応は、まだまだはじまったばかりと言えます。
現在Pepper+ROSでできること/できないことです。
できることは、センサデータ取得、移動、発話、モーション、MoveIT!、Gazebo利用(一部問題あり?)
できないことは、センサー系に難あり(デプス、レーザー)、対話や音声認識です。後者は今後対応の可能性があります。
Pepper+ROSで取得したレーザスキャンデータと2D地図を見てみると、レーザーの精度が良くないことがわかります。そのため、PepperのレーザセンサをSLAMに使うのは厳しそうです。
また、デプスデータが歪んでいる?かもしれません。
説明は以上で終了です。
ここから参加者によるハンズオンの時間です。
まずは、紹介したコマンドを使ってセンサの生データを見てみます。
ROSからPepperを発話させてみます。声のピッチを変えることもできます。
ROSからPepperを移動させてみます。座標の指定で移動をさせます。
次のハンズオンはPepperに学習・認識させ、認識結果に応じた発話をさせてみます。
認識結果の中身を表示するコマンドです。
みんなでいろんなものを認識させてみます。
最後の時間は有志によるLTの披露です。
インテック先端技術研究所の蘇氏によるPepperが自動でパワーポイントのプレゼンテーションを行うアプリケーションです。
特徴は、インターネット接続がなくても動作させることができます。回線が不安定な環境ではありがたいです。
Pepperへのインストール不要で動作させることができます。
そして「ROSによる遠隔操作」というPepperのテレプレセンスロボット化も披露いただきました。
こちらは現在試作段階だそうで、正式リリースが楽しみです。
今回の勉強会は以上です。
ABOUT THE AUTHOR /
北構 武憲本業はコミュニケーションロボットやVUI(Voice User Interface)デバイスに関するコンサルティング。主にハッカソン・アイデアソンやロボットが導入された現場への取材を行います。コミュニケーションロボットやVUIデバイスなどがどのように社会に浸透していくかに注目しています。