[レポート] ROB201:新たなクラウドロボティクスサービス「AWS RoboMaker」のご紹介 #reinvent

re:Invent 2018レポート。API Gateway, Sagemakerを使ったAlexaスキルの構築を行うワークショップの模様をレポートします。
2018.11.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

せーのでございます。このエントリはROB201 「Announcing AWS RoboMaker: A New Cloud Robotics Service」のセッションレポートとなります。
ちなみにこのセッションに参加した全員にRoboMakerのノベルティが配られました。

レポート

  • 現在のロボティクスはハンディキャップを持つ方の支援など幅広い分野で活躍している
  • ロボティクス開発は難しく、とても時間を消費する
    • 初期セットアップや設定に時間を使う
    • 様々なスコープでプロトタイプを回すのに時間を使う
    • リアルシミュレーションの環境を構築するのに数ヶ月かかる
    • 限られた資源で大量リソースのテストができない
  • これらを僅かな時間に短縮することがイノベーションとなる

ROS

  • ROS: Robot Operating System
    • 多対多でPub/Subを行うフレームワーク
    • マルチプラットフォーム、マルチ言語
    • オープンソース
    • 教育分野ではとても有名
    • 商用ロボティクスに幅広く利用されている
  • ROSの今できること
    • センサーデータ(LiDAR, FLIR, Depthカメラ、Kinectなど)の取得方針
    • アルゴリズム(SLAM, ナビゲーション)
    • シミュレーション(2D、3Dデータ)
    • デバッグ
    • ロギングとテスト
  • ROSの用途
    • 空、空中(ドローン等)
    • 海中
    • 製造業(ロボットアーム等)
    • 家(ペッパーくん等)
    • 教育用
    • 自動運転の車など
    • 国際宇宙基地
  • 今やどこでも使っている
  • ROS2
  • ROSと同じ点
    • Node
    • メッセージ
    • Publishers
    • Subscribers
    • サービス
  • ROSと違う点
    • ミドルインターフェース
    • DDSベース
    • シリアライズ
    • トランスポート
    • QoS改善
    • データセキュリティ
    • 冗長化
  • ROS2はAWS, Intel, トヨタなどのメンバーから構成される運営委員会で運営している
  • ロボティクスを簡単に作る組み合わせは何か
    • シミュレーション自体をサービス化する
    • AWSサービスの使用
    • IDEをクラウドに
    • ROS / ROS2対応
  • こうして誕生したのが「Amazon RoboMaker」

RoboMakerについて

  • 機能
    • デプロイ環境の構築
    • Cloud extensions for ROS
    • Simulation
    • Fleet management

デプロイ環境の構築

  • ボタンひとつでセットアップの苦労なくアプリ開発環境を構築
  • ダウンロード、コンパイル、設定をOS, 開発用ソフトウェア, ROSに対して自動で行う
  • RoboMaker Simulation(後述)と連携
  • RoboMaker cloud extensions for ROS(後述)と連携
  • Cloud9を使ってコード作成、ビルド処理を行ってシミュレーション用、ロボット用のアプリを構築
  • この際にROSやCloud extensions for ROSを適用させることができる
  • S3にそれらのアプリをバンドル
  • RoboMaker Simulationを使ってシミュレーション

Cloud extensions for ROS

  • 機械学習で必要なモニタリングや分析に必要なAWSサービスをセレクト
  • ROSパッケージと親和性が高くなるように書かれている
  • セキュアなコネクションでロボットとAWSを橋渡しする
  • Getting Startとしてサンプルアプリがある
  • 用意されているサービス
    • Lex(会話分析)
    • Polly(応答の音声変換)
    • Kinesis Video Stream(ビデオストリーミング)
    • Rekognition(画像、動画分析)
    • CloudWatch(ロギング、モニタリング)

    ※例: CloudWatch extensions for ROS

  • サンプルアプリ

    • Hello world
    • ロボットモニタリング
    • ナビゲーション & 人物分析
    • 音声コマンド

    Simulation

  • Pre-Builtされた3Dの「World(世界)」を描画

  • Worldはカスタムで作っても良い
  • プロビジョン、設定、管理はインフラ部分に関してはない
  • 複数のシミュレーションが並列に動く
  • オートスケールベース
  • シミュレーションに使うのはGazebo, rgt, rviz
  • 開発時に作成したシミュレーション用のアプリ、ロボット用のアプリを使ってシミュレーションする
  • 動きの結果はCloudWatchにログとして吐かれる

Fleet management

  • Greengrassと連携
  • ビルトインでロボットの登録、セキュリティ、フォールトトレラント(一部が故障しても止まらない仕掛け)
  • マネージメントコンソールからリモートでロボティクスのアプリをデプロイできる

Recap

  • RoboMakerは主に三層に分かれている
  • 基盤となるものはROS/ROS2
  • 中間層として「Cloud Extensions for ROS」「開発環境」「Simultion」「Fleet管理」
  • その上にアプリ層
  • Cloud extensions
    • Lex
    • Polly
    • Rekognition
    • Kinesis Video Stream
    • CloudWatchメトリクス
    • CloudWatch Logs

    まとめ

    いかがでしたか?ロボティクスという普段全く接していない分野のサービスですが、AWSサービスの組み合わせで実現できるとあって、なんとなく勇気が湧いてきます。ちなみに私はこのあともRoboMakerのセッションに出続ける予定ですので、帰国するまでには大体「掴んで」おきたいと思います。