検索
連載

AWS RoboMakerでロボットの機械学習トレーニングをしてみようクラウド×ロボットの現在(3)(3/3 ページ)

クラウドを活用してロボットの開発や運用、管理を行うクラウドロボティクス。最終回となる今回は、実際にクラウドシミュレーターを活用して、サンプルアプリケーションを用いながらロボットを機械学習で訓練する手順を紹介する。クラウドシミュレーターにはAWS RoboMakerを使う。

Share
Tweet
LINE
Hatena
前のページへ |       

およそ1時間で学習は完了

Gazeboの画面は次のように表示されます。

シミュレーターGazeboの画面[クリックして拡大]
シミュレーターGazeboの画面[クリックして拡大](C) 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

 上記画像は強化学習が進行している状態です。「ロボットを操縦する」というアクションの結果として得られる報酬の多寡で、自身の行動の「正しさ」を評価しています。ここでは「壁から遠ざかる方向にハンドルを切った時」に報酬量が高くなるように設定しています。壁にぶつかると最初からやり直しです。ちなみに報酬を計算する関数を報酬関数といいますが、このサンプルアプリケーションでは「robot_ws / src / rl_agent / environment / meiro_runner_env.py」の中にある「infer_reward_state関数」がそれに当たります。なお、エージェントが獲得した報酬量の変化はメトリック情報を保存可能な「Amazon CloudWatch Metrics」というAWSサービスに送信されます。

獲得した報酬量の変化を表したグラフ[クリックして拡大]
獲得した報酬量の変化を表したグラフ[クリックして拡大](C) 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

 このサンプルアプリケーションの強化学習には「Coach」というフレームワークを利用しており、またOpenAI Gymが提供するライブラリを使って強化学習用の環境を実装しています。

 ロボットは試行錯誤を繰り返す中で、だんだんと壁にぶつからずに走行する方法を身に付けていきます。おおよその目安ですが、1時間ほどシミュレーションを起動し続けていれば、ロボットは迷路のゴールラインに到達できるようになるでしょう。なお作成した機械学習のモデルは「Amazon S3(Simple Storage Service)」に自動で保存されます*3)

*3)保存先はセットアップスクリプトで自動作成されます。バケット名は開発環境に生成されている「ws_settings.yaml」というファイルから確認できます。このファイルの中で「bucket_name」と表示されている行のある文字列が機械学習のモデルなどが保存されているAmazon S3のバケットです。

用事が済んだらシミュレーターはすぐに終了

 また、開発環境のメニューから[Run]→[Launch Simulation]→[MeiroRunner Evaluate]を選択すると、作成したモデルを使ってロボットの試走もできます。

 シミュレーションの動作確認が終わったら、シミュレーターを停止させましょう。シミュレーターは起動時間とシミュレーションの負荷に応じて従量課金される仕組みです。一定の時間、具体的には学習用のアプリケーション起動時は1時間半、モデル確認時は30分が経過すると自動終了するように設定されていますが、用事が終わり次第停止するほうが良いでしょう。シミュレーションを停止するためには、シミュレーションジョブの詳細画面(Gazebo を起動した画面)の右上にある[アクション]ボタンから[キャンセル]を選びます。

 今回はシミュレーションの起動や停止を全て手操作で行いましたが、AWSのコマンドラインツールやAPIを活用すればこれらの作業を自動化することも可能です。実際、実務レベルにおいて機械学習の学習環境にシミュレーターを活用する場合は、機械学習における一連のフロー内に組み込んで学習作業を自動化するのが一般的だと思われます。

AWSリソースのクリーンナップ

 試したアプリケーションをAWSのアカウントから削除するには、AWS マネジメントコンソールでAWS CloudFormationを開き、スタックの一覧から meirorunner という名前のスタックをみつけ、これを削除します。これにより「環境のセットアップ」で実行したコマンドが作成した AWS リソースが削除されます。最後にAWS RoboMakerで開発環境の一覧を開き、今回作成した開発環境を削除します。

最後に

 「クラウド×ロボットの現在」というタイトルで、3回にわたり執筆の機会をいただきました。私が担当しているAWS RoboMakerは、ロボットアプリケーションの開発/運用者に向けたクラウドサービスです。そのため、主にアプリケーションの開発のフェーズでのクラウドの活用の有効性を考察してきました。

 協働ロボットや自律走行ロボットなどロボットハードウェアにおける最近の技術の進化はめざましく、それに伴いロボットのソフトウェアもより複雑になっています。今後、ソフトウェア開発を効率化するために、ROS(Robot Operating System)のようなオープンフレームワークによるソフトウェア開発の標準化や、テスト用にシミュレーターを活用する事例はさらに増えていくでしょう。それに伴いクラウドも、開発環境からアルゴリズムの実行、メンテナンスと、あらゆるシーンで普及を遂げていくのではないかと思います。

筆者プロフィール

河田 卓志(かわた たくじ)

アマゾン ウェブ サービス ジャパン

デジタルトランスフォーメーション本部 AWS RoboMaker シニアソリューションアーキテクト

アマゾン ウェブ サービス ジャパンでAWS RoboMakerのソリューションアーキテクトとして、クラウドを活用したロボットアプリケーション開発の効率化を訴求している。前職のアマゾンジャパンでは、ソリューション・アーキテクトとしてAmazon Alexaを約2年担当した。またソフトバンクロボティクスではデベロッパーマーケティングを担当した。ソフトウェア業界を中心に25年以上の経歴を持つ自称ロボットおじさん。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る