【レポート】AWS RoboMakerを使用してシミュレーションテストデモ及びiRobotでの実例 #ROB301 #reinvent

本記事は現地時間2019/12/2-6で行われてたre:Invent 2019のセッション「Running tests in simulation with AWS RoboMaker (ROB301-R1)」のレポートとなります。
2019.12.31

こんにちはCX事業本部のさかじです。
本記事は現地時間2019/12/2-6で行われてたre:Invent 2019のセッション「Running tests in simulation with AWS RoboMaker (ROB301-R1)」のレポートとなります。

セッション概要

In this session, we dive deep into how AWS RoboMaker simulation works, and discuss customer use cases. We demonstrate how you can use AWS RoboMaker simulation to manage your continuous integration / continuous deployment pipeline to build your robotics applications. This is followed by a presentation and demo by iRobot.

このセッションでは、AWS RoboMakerシミュレーションがどのように機能するかについて深く掘り下げ、顧客のユースケースについて説明します。 AWS RoboMakerシミュレーションを使用して継続的統合/継続的展開パイプラインを管理し、ロボットアプリケーションを構築する方法を示します。 その後、iRobotによるプレゼンテーションとデモが行われます。

スピーカー

  • PD Dutta
    Senior Product Manager AWS RoboMaker
  • Andrew Lafranchise
    Senior Software Engineer AWS RoboMaker
  • Chris Kruger
    Director Software Engineering iRobot

Youtube

スライド

スライド

アジェンダ

  • AWS RoboMakaerの紹介
  • AWS RoboMakerを使用したシミュレーションでのテスト
  • AWS上でCI / CDのシミュレーションでテストを実行する
  • デモ
  • iRobotでのケーススタディ

AWS RoboMakaerの紹介

ロボットとは

  • 環境を感知できる自律マシン
  • 感知したデータから計算を実行し実世界をアクションする

ロボットの開発サイクル

  1. ロボティクスソフトウェアフレームワークを選ぶ
  2. ロボティクスアプリケーションを開発
  3. アプリケーションのテストとシミュレーション
  4. アプリケーションのデプロイと管理
  • 新しいアプリケーションをリリース、アップデートするたびに行う
  • 開発者全員が実機へアクセスでできるわけではないので仮想世界を使って複数のテストを実施する
  • 仮想世界を微調整してテストが行える

Robot Operating System (ROS) 入門

  • ロボット工学の教育、学習にもっとも使われたフレームワーク
  • オープンソース
  • OSではなくミドルウェア
  • 低レイヤーのデバイスを処理
  • パッケージ管理も制御
  • Pub/Subモデル
  • 状態を監視するためにPublishしたデータをクラウド上でSubscribeできる
  • Gazebo
    • オープンソース
    • 3Dロボットシミュレータ

AWS RoboMaker Service suite

ロボットアプリケーションの開発、テスト、デプロイをクラウドを利用して構築できるサービス

  • クラウド拡張されたROS
    • CloudWatchでロボットを関しできる
    • ビデオストリームをKinesis Video Streamsへ送ることができる
  • マネージドサービスのシミュレータ
  • フリート管理
    • AWS IoT Greengrassを使う
    • OTAでフリート管理
    • フリート管理とは: ロボットの論理的なグループ
      参考

AWS RoboMaker Managed Simulation Service

  • Managed API
    • Gazebo
    • Rviz
    • rqt
  • シミュレーションデータのログ, 分析結果などを顧客のS3バケットへ保存
  • 使用した分のみ歯洗う料金体験

AWS RoboMakereの貢献

  • 複数の教育プログラム
    • ロボット工学について教育者、生徒が学んでいける
  • オープンソース

AWS RoboMakerを使用したシミュレーションでのテスト

シミュレーションはテストでどのように役立つか

オンラインストアの倉庫を例に説明

  • 広い倉庫をシミュレートして動作できる
  • 全国のフロア情報をパラメータ化
  • それは短時間に多くのことを実施できる
  • 更にランダム化してテストできるようにシナリオを作成してテストする
  • 問題修正したあとも同じようにテストできる再現性
  • 倉庫に実際投入すると期待通りに動作する

AWS RoboMakerはCI/CDをサポート

  • シミュレーションでのCI/CDをサポート

いくつかのペルソナを使って説明

  • 早くシミュレーションを開始したい
  • シミュレーションする理由は必然的にコストがかかる
  • DevOopsエンジニア
    • 統合環境構築
    • ツールチェーンを構築
    • テストシミュレーションと評価
  • QAエンジニアとテスト
    • テストを作成することでもコストはかかる
    • シミュレーションを実行してから評価する
    • 大量のシミュレーション結果のデータが残る

AWS上でCI/CDのシミュレーションでテストを実行する

上は仮想の本屋

  • 小売スペース
  • ロボットを配置
  • LIDAR
  • 小さな正方形ボックスがロボット
  • 波線はロボットの動きをプロットしたもの
  • 右の図はGazeboシミュレータで見られる3Dの世界
  • 今回は簡単なテストを行う
  • GitHubへプッシュすることでパイプラインが動作
  • ビルド、S3へアプロード、テスト走行が実施される
  • シミュレーションではLambdaを使用
  • ドキュメントもデモ中に利用することが可能

テストシミュレーションの作成

  • 顧客はシミュレーションテストの結果を待っている
  • シミュレーションがキャンセルされたときのジョブのレポート
  • シミュレーションが完了したときのタグ付け
  • 顧客は独自のテストレポートのフレームワークを持っている
  • シンプルに保つためにタグを付ける

以上のサンプル

AWS CodePipelineで自動シミュレート

CI部

AWS CodePipelineで自動デプロイ

CD部

アーキテクチャ概要

デモ

デモの箇所から再生されます

iRobotでのケーススタディ

  • iRobotは1990年に設立
  • ルンバに採用されている視覚的なマッピング機能
  • 自立的に走行

大規模シミュレーションが必要な理由

  • コードは増えつつけている
  • 新しい製品への再利用
  • テストが難しくなっていく

iRobotでの簡単なテストの歴史

  • ボストンのRDセンター
  • 4400のテストラボがある
  • 家のレプリカ
  • レーザー、カメラで追跡
  • 社員はルンバ、フラーバは配布される、それらを使ってテストを実施する
  • 数千のベータテスター
  • これにより多数のフィードバックがある
  • 異なるハードウェアバージョンがあるためテストする製品もたくさんある
  • 物理的なテストを経て6週間後にソフトウェアがリリースされる
  • それから本番環境へ移行
  • そこでシミュレーションが役立つ

シミュレーションが役立つ

  • ドライブの安定性、信頼線の安定して信頼できるものができる
  • すぐにフィードバックも得られ、コード変更も早く対応できる
  • 開発者が早く対応できる

AWS RoboMakerを選ぶ理由

  • iRobotの内部ツールがあるがROSとGazeboを使っている
  • オープンスタンダードを好んでおり、我々は助けられている
  • マネージドサービス
  • DevOps
  • テスト担当者やシステムエンジニアが維持、管理が可能
  • AWS RoboMakerチームはiRobotのQA,開発チームを助けてくれた

シミュレーション動画

デモの箇所から再生されます

iRobotのシミュレーションフロー

実際の利益

  • シミュレーションですべてできるわけではない
  • 早いフィードバック
  • スケーラビリティには大きな利点がある
  • AWS RoboMakerにより、より厳しいロボット工学の厳しい課題を可能にする

最後に

iRobotのルンバやフラーバは身近で一番稼働しているロボットのような気がします。それらがAWS RoboMakerのサービスを使うことで開発を加速していたんですね。確かにリビングのレイアウトだけでも星の数ほどのものがありその実物を用意することは無理です。そこでシミュレーションすることで開発を加速させるというのは現実的なのかもしれません。