ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

re:invent2018 RoboMakerのハンズオンを受けてきました

こんにちは、クラウドインテグレーション事業部の菊池@re:invent初参加です。

re:Invent 2018のMidnight Madnessで発表されたRoboMakerのハンズオンが追加されたので、さっそく月曜の回を予約して受けてきました。

f:id:fvkikuchi:20181129061812j:plain

Midnight MadnessでのRoboMaker発表時の曲が「エブリバディ・マッチョ、ミスター・ザ・マッチョ」にしか聞こえなかったのですが、本当の歌詞を知ってる方がいらっしゃたら教えてください。

RoboMakerとは

aws.amazon.com

f:id:fvkikuchi:20181129162544j:plain

構成要素は4つ。

  • Cloud Extensions for ROS
  • Development Environment
  • Simulation
  • Fleet Management

オープンソースのロボット向けミドルウェアであるROSにAWS拡張を加え、開発環境(Cloud9)とシミュレータ、ロボット管理機能を持ったものとなります。

RoboMakerハンズオン

f:id:fvkikuchi:20181129062216j:plain

RoboMakerのハンズオンでは、内側に写真の貼られた六角形の中にロボットを入れ、犬の写真を探索させます。

ハンズオン資料が示され、各自がそれにしたがって実習を進め、うまく行かなかったりわからないところがあれば質問していく形式でした。

f:id:fvkikuchi:20181201190009p:plain

1. Development environment and HelloWorld

第1段階ではRoboMakerでの開発の方法と、簡単なプログラムの実行をしました。

RoboMakerでの開発はCloud9で行います。画面右上にRoboMaker用のメニューが追加されています。 「RoboMaker Resources」メニューからダウンロードした「Hello World」サンプルを使ってRoboMakerの開発手法を学びました。

f:id:fvkikuchi:20181201185610p:plain

まず、RoboMakerのIAMロールを作成しました。 ハンズオンの手順ではCloud9のターミナル上で行うはずでしたがうまくいきません。 Cloud9の制限でIAMロールは作成できないからです。そこでIAMの画面から作成することに。 ロール作成時のサービス選択にRoboMakerはまだ表示されないので、一度EC2を選択してから編集する手順となりました。

続いて設定ファイルを書き換え、ロボットとシミュレーション環境のビルドとバンドルを行うのですが、バンドルは時間がかかりぼーっとしてました。

シミュレーション環境用にバンドルしたファイルをS3にアップロードし、シミュレーション開始です。 しかし、アップロードがなかなか成功しません。 イベントの参加者が多いために提供されたWiFiが安定しないためだったようで、成功するまで何回か挑戦する必要がありました。

f:id:fvkikuchi:20181201195522p:plain

上がシミュレータの画面になります。スクリーンショットなので伝わりませんが、ロボットは反時計回りに回転しています。

f:id:fvkikuchi:20181201201229p:plain

シミュレーション環境にオブジェクトを配置し、ロボットのカメラ視点を見てシミュレーションは終了です。

最後にシミュレータのログの確認があるのですが、手順で作成したIAMロールに付与していたポリシーが「AmazonS3ReadOnlyAccess」だったために書き込ていません。 「AmazonS3FullAccess」に変更する必要がありました。

2. Cloud service integrations to do object detection

第2段階ではAWSとの連携を行う…はずでしたが、時間が足らずに実施することができませんでした。

日本に帰国したらじっくりと実施します。

終わりに

このRoboMakerは、基調講演で発表されたDeepRacerを構成する技術の一つでもあります。 DeepRacerのハンズオンも受講したので、後日そちらの記事もあげます。