強化学習 (RL) とは、機械学習 (ML) の高度な技術で、ラベル付けされたトレーニングデータがない場合でも非常に複雑な動作を学習することが可能です。長期的な目標に向けた最適化を行いつつ短期的な決定を下すこともできます。

AWS RoboMaker のサンプルアプリケーションを使用すると、シミュレーションされたRL 向けのトレーニングデータを作成できます。RL モデルは、ロボットに対して物体を追跡しそれに追従するよう教育します。これは、倉庫における作業員支援や、ユーザーの後を追う家庭向けのエンタテインメントロボットといったユースケースにも拡張可能なシンプルなデモンストレーションです。

本プロジェクトでは、ロボットのアプリケーションを順を追って構築していきます。このアプリケーションは、強化学習を使ってロボット (例として TurtleBot 3 Waffle Pi を使用) をトレーニングし、静止したロボット (例として TurtleBot 3 Burger を使用) へ向って自律走行させます。AWS RoboMaker のシミュレーションで強化学習モデルのトレーニングと評価を行い、AWS RoboMaker のフリート管理を使ってモデルを物理ロボットへデプロイする方法を学ぶことができます。

この学習過程は、次のステップで構成されています。

  • S3 バケット、IAM ロール、ポリシーの作成
  • AWS Cloud9 を使用した AWS RoboMaker の開発環境のセットアップ
  • AWS RoboMaker を使用した強化学習モデルのトレーニングとアプリケーションの視覚化
  • シミュレーションを用いたモデルの評価
  • モデルをロボットにデプロイ

AWS の使用経験: 中級

完了に要する時間: 10 時間 (モデルのトレーニング時間: 8 時間)

完了までのコスト: チュートリアルのコストは約 35 USD*

使用するテクノロジー:

• アクティブな AWS アカウント**
AWS RoboMaker
• Amazon Simple Storage Service (Amazon S3)
AWS IAM
AWS Cloud9
Amazon CloudWatch
AWS IoT Greengrass

オプション: TurtleBot 3 Waffle Pi (カメラ付き) と TurtleBot 3 Burger

*この見積もりは、ユーザーが、チュートリアル全体で推奨されている構成に従っていることを前提としています。

**過去 24 時間以内に作成されたアカウントは、このプロジェクトに必要なリソースへのアクセス権をまだ付与されていない可能性があります。

  • ステップ 1: リージョンの選択

    このロボットアプリケーションは、AWS RoboMaker サービスをサポートしている AWS リージョンにデプロイできます。

    各リージョンでサポートされているサービスについてはリージョン表を参照してください。AWS マネジメントコンソールの右上隅にあるドロップダウンの一覧からリージョンを選択します。

    Region drop down

    (拡大イメージを見る)

    Region drop down
  • ステップ 2:S3 バケットの作成

    Amazon S3 コンソールに進みバケットを作成します。このバケットは、トレーニングした強化学習モデルを保存するときに必要になります。また、シミュレーションログの保存にも使用します。バケットに名前を付け (例: robomaker-objecttracker-yourinitials)、ステップ 1 で選択したリージョンと同じリージョンを選択します。その他はデフォルトの設定をそのまま使用し、バケットを作成します。
    Bucket name

    (拡大イメージを見る)

    Bucket name
  • ステップ 3:IAM ロールとポリシーの作成

    このステップでは、ユーザーに代わって AWS RoboMaker にシミュレーションを実行させるためのロールを作成します。チュートリアルの最中にロールが実行するアクションには、以下のようなものがあります。バンドルされたアーカイブを Amazon S3 からダウンロードし、シミュレーションジョブを作成する。トレーニングした強化学習モデルを Amazon S3 へアップロードする。メトリクスと ROS のログをシミュレーション中に Amazon CloudWatch へ発行する。


    a.IAM コンソールに進み、左パネルで [ポリシー] を選択し、次に [ポリシーの作成] を選択します。

    b. [ポリシーの作成] ページで [JSON] 表を選択し、以下のポリシーをコピーして貼り付けます。ARN 忘れずに自分のバケットに変更し、[ポリシーの確認] を選択します。

    {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "cloudwatch:PutMetricData",
                     "ec2:*",
                     "iam:PassRole",
                     "logs:CreateLogGroup",
                     "logs:CreateLogStream",
                     "logs:DescribeLogStreams",
                     "logs:PutLogEvents",
                     "robomaker:*"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": "s3:*",
                 "Resource": [
                     "arn:aws:s3:::robomaker-objecttracker-yourinitials",
                     "arn:aws:s3:::robomaker-objecttracker-yourinitials/*"
                 ]
             }
         ]
     }
    c. [ポリシーの確認] ページでポリシーに名前を付け (例: RoboMaker-ObjectTracker)、[ポリシーの作成] を選択します。
    Policy

    (拡大イメージを見る)

    Policy
    d. IAM コンソールへ進み、左パネルで [ロール] を選択し、次に [ポリシーの作成] を選択します。
    Role

    (拡大イメージを見る)

    Role
    e.ロールの詳細ページで、信頼されたエンティティとして [RoboMaker] を選択し、ページの一番下でユースケースとして [RoboMaker – Simulation] (RoboMaker – シミュレーション) を選択します。これで、AWS RoboMaker は作成したポリシーを使用できます。[Next: Permissions] (次: アクセス許可) を選択します。
    StepE

    (拡大イメージを見る)

    StepE
    f. 検索ボックスで、先ほど作成した "RoboMaker-ObjectTracker" ポリシーを検索します。ポリシーの横にあるボックスをチェックし、ロールにアタッチします。[Next: Tags] (次: タグ) を選択します。
    StepF

    (拡大イメージを見る)

    StepF

    g. タグのセクションは空欄のままでかまいません。[Next: Review] (次: レビュー) を選択します。

    StepG

    (拡大イメージを見る)

    StepG

    h.ロールに名前を付与します (例: RoboMaker-ObjectTracker-Role)。最後に [ロールの作成] を選択します。

    StepH

    (拡大イメージを見る)

    StepH

    i.IAM コンソールで作成したロールを探し、ロールの ARN を書き留めます。これは、後ほどチュートリアルで使用します。

    StepI

    (拡大イメージを見る)

    StepI