hero-image

パリ・日本の専門家から直接SLAMを学ぼう!イベントレポート

2017年6月23日ソフトバンクロボティクス主催で、NAOqi 2.5.5の新機能(β版)であるSLAM(Simultaneous Localization and Mapping)機能の勉強会が行われました。
その様子をご紹介します。

本トレーニングは2部構成でした。
第1部ではSoftBank Robotics Europe(SBRE)のエンジニアによるSLAM機能についての紹介と実演が行われました。
第2部ではヘッドウォータース社による演出、モーションについてのワークショップが行われました。

第1部の目次は以下です。
[Agenda]    
1. Technical overview about SLAM    
2. Use case    
3. How to develop SLAM app    
4. Demonstration        
5. FAQ    

イベントの様子と内容を一部抜粋してご紹介します。

第1部についてはSBREのNicolas Garciaさんが解説をしてくれました。


2017年2月に行われたPepper WorldではSLAM機能を活用した展示がありました。
2日間の稼働で、1度もエラーが発生せず動き続けたそうです。

ドキュメントにあるAPIについて、ひとつひとつの用語の解説、機能などを紹介していきました。


SLAMの設計思想について、理想の環境と現実に起こる周辺環境の変化の差について。

SLAMは足元のレーザーセンサーを使うため障害物の高さは写真のように15cm程度で十分なようです。

中央の地図がPepperのセンサーのみで作成した地図になります。
角から始める事が精度を高めるポイントだと語りました。

他にもPepperの開発をしているSBREのエンジニアだからこその裏話も飛び出ました。以上で第1部は終了です。

第2部では株式会社ヘッドウォータス 渡部さんの、SLAMを使う際に使えるアニメーションづくりの考え方を学びました。


アニメーションについての講義とワークショップ形式で進んでいきます。


これまで数百のロボアプリを作ってきたヘッドウォータース社ではシナリオ作成をする上で、場所・役割・ターゲットをもとにキャラクター設定をしているそうです。

ロボアプリを作る上では絵コンテを作成し、関係者の間で合意をとることが重要です。
絵コンテでは、「アニメーション」、アニメーションと発話の「タイミング」、その「テンション・雰囲気」を盛り込み、流れの整理を行います。

SLAMのTipsの一例をご紹介します。
アニメーションを作る上では、「繰り返し動作」と「準備動作」に分ける必要があります。

繰り返し動作は腕を振る動きで、移動中にループさせるアニメーションです。
準備動作は腕を振る直前のポーズです。
準備動作をさせた後に、繰り返し動作を行うことで、動作が安定します。

最後にワークショップとして、絵コンテを書いたり、SLAMのAPIについて試しました。

以上で、簡素ではありますがイベントレポートとなります。

当日の写真は以下のURLでも公開されているのでご覧ください。
https://www.flickr.com/photos/156225279@N03/albums/72157683192671671

また、寄せられた質問とその回答を以下に記載いたします。

質問回答
SLAMはレーザーセンサーのみを利用しており、位置判定のために3mの以内に壁が必要になるとのことですが。今後改善はするのでしょうか?例えば、カメラを使ったビジュアルリローカライゼーション(カメラ映像によるマップ空間上の位置認識)などができれば問題を改善できます。後のバージョンで導入できればと思い、検討しているところです。
地図を他のシステムから作成する仕組みはありますか?地図を他のシステムから作成する仕組みはありません。
SLAM API利用時、目的地に到達していない、あるいはほとんど動いていないのにもかかわらず目的地に到達したと認識することがあります。なぜでしょうか?動作環境にもよりますがご指摘の通り、空間が複雑だったり通路が狭かったりすると、目的地に到達していない状態でも到着したと認識することがあります。障害物が比較的少なく且つ極端に狭くない空間で試していただけないでしょうか。
地図は利用時に毎回作成する必要はありますか?地図を毎回作成する必要はありません。作成済みの環境地図を読み込み、読み込んだ環境地図のどこの位置にPepperがいるかを教える動作(relocalize)が必要になります。
ライブコーディングのような動かし方をしたいのですが、デモではどのようにライブコーディングを行っていたのでしょうか?デモではpythonのインタプリタを通してライブコーディングを行なっていました。
デモ時使用していたrvizは誰でも使用可能でしょうか?デモではROS (Robot Operating System)のホームページ上で公開されているものを使用しました。
デモで利用していた環境については、開発環境のため公開できません。
Pepperが障害物と判断する最低の高さははわかりますか?障害物との距離に依るのですが、概ね3cm~10cmになります。