Amazon Web Services ブログ

Category: Robotics

AWS RoboMaker でのフリートおよびマルチロボットのシミュレーション

AWS RoboMaker でのフリートおよびマルチロボットのシミュレーション ロボティクスの開発者は、多くの場合、シミュレーションでロボットのフリートを実行する必要があります。一般的なシナリオは次のとおりです。 ロボットが同じ環境内で互いに通過できることを確認する カスタムデータ駆動型アプリケーションのために同時に実行されている複数のロボットからデータを収集する 機械学習を使用して、同じ環境でアクティブな他のロボットに反応する方法をロボットにトレーニングする フリートの他のロボットからの状態データを使用してふるまいを形成するアルゴリズム (経路計画など) を開発する これらのシナリオではシミュレーションが役立ちますが、ロボットの数の増加に応じて拡張できる仮想環境をセットアップするのは難しい場合があります。これは、Gazebo のシミュレーションが通常オンプレミスのサーバーで行われ、Gazebo で複数のロボットを実行するには、名前空間、tf ツリーの分離、コンピューティングの制限を管理するための専門知識が必要になるためです。 AWS RoboMaker は、クラウドでシミュレーションを提供し、ロボットの大規模なフリートのシミュレーションを構築できます。 次のシミュレーションでは、シミュレートされた倉庫環境で単一のロボットをホストしています。ロボットは、ロボット視覚化ツールの Rviz を介してコマンドを受信して​​います。 別のロボットをシミュレーションに追加できます。 また、ロボットアプリケーションに機能を追加して、そのセンサーが共有環境内の他のロボットを「参照」できるようにすることもできます。これは、アルゴリズムの開発と改良に役立ちます。 このテクノロジーの詳細に興味がある場合は、お問い合わせください ! タグ: AWS、Robotics、AWS RoboMaker、シミュレーション、マルチロボット、Robot Operating System、ROS Vamshi Konduri Vamshi Konduri は、AWS RoboMaker チームのシニアソリューションアーキテクト (SA) です。

Read More

AWS RoboMaker を使用した ROS アプリケーション CI パイプラインの構築

AWS RoboMaker を使用した ROS アプリケーション CI パイプラインの構築 動的で変化する実世界環境向けのロボットアプリケーションの構築およびテストは、困難で複雑なタスクです。開発者は、事実上無限の実世界の状況を考慮し、さまざまなハードウェア関連の問題に耐えられるようにアプリケーションを構築し、チームのメンバーによって記述されたコードと正常に統合できるアルゴリズムおよびアプリケーションを作成する必要があります。多くの企業にとって、これは一見克服できない課題であり、ロボットおよびアプリケーションの俊敏性と市場投入までの時間に大きな悪影響を及ぼします。 ロボット用のアプリケーションを構築する場合、開発者は、物理的なロボットで時間と費用をかけて行うデプロイとテストのプロセスを経る前に、コードをシミュレーション環境で実行し、反復することで、速度を上げることができます。シミュレーションでのテストは、開発者が物理的なロボットにアクセスできない場合や、将来遭遇する実世界環境に日常的にロボットを持ち込むことができない場合に特に役立ちます。 AWS RoboMaker を使用すると、シミュレーションでの ROS アプリケーションのテストがこれまでになく簡単になります。 AWS RoboMaker は、フルマネージド型のロボティクスシミュレーションサービスを提供します。このサービスを使用して、物理ベースの複数の回帰テストを実行し、シミュレーションの複雑さに基づいて基盤インフラストラクチャを自動的にスケーリングします。このブログでは、継続的インテグレーションおよび継続的デリバリーパイプライン (CI/CD) の一部として AWS RoboMaker でパラメーター化されたシミュレーションを実行することによる、ROS アプリケーションの自動テストのアプローチについて説明します。このソリューションにより、開発者は、本番環境のお客様に影響を与える前に、バグを迅速かつ正確に特定できます。定期的にコードを統合し、ロボットが実世界で遭遇するさまざまな条件下で整合的に動作するようにすることで、お客様は、メンテナンスが必要となるテストのインフラストラクチャの量を減らしながら、テスト速度とカバレッジを向上させることができます。高レベルのアーキテクチャは次のとおりです。 シナリオを使用した ROS アプリケーションのテスト ロボットソフトウェアアプリケーションをテストする方法は複数あります。以下では、シナリオベースのテストを使用したテストアプローチを紹介します。 シナリオは、実世界の条件、アクターのふるまい、期待される結果を定義するパラメーターセットです。これにより、開発者は、シミュレーションで実行するテストを定義するパラメーターからシミュレーションアプリケーションコードを疎結合化できます。この疎結合化により、QA エンジニアとのコラボレーションが容易になり、チームが回帰テストを実行する方法が標準化されます。また、QA エンジニアは、目的のテストシナリオをより完全にカバーできる (パラメーターのさまざまな組み合わせを用いた) さまざまなテストケースを簡単に定義できる柔軟性を獲得します。 これらのシナリオは、AWS RoboMaker シミュレーションサービスを使用した簡単な API 呼び出しを通じて自動的に実行されます。 GitHub にサインインし、AWS RoboMaker CloudWatch Monitoring Sample Application をフォークします。 リポジトリを任意の開発環境に複製し、このチュートリアルの新しいブランチを作成します。 git clone <MY_CLONED_REPO> cd aws-robomaker-sample-application-cloudwatch git checkout -b <MY_INTEGRATION_BRANCH_NAME> 今回の例では、AWS RoboMaker のサンプルアプリケーションセクションで提供される AWS […]

Read More

2020 年度 Amazon re:MARS の参加登録が始まりました 🎉

 信じられますか? 2020 年度 re:MARS の時間が近づいています。🎉 6 月 16 日〜19 日にネバダ州ラスベガスで開催される予定です。標準料金は 1999 USD になります。今年は、Amazon 製品チームと連携するエンジニアと開発者に向けて、真新しい Amazon re:MARS 開発者の日があります。また、昨年のように、リーダー、思想家、テクニカルアドバイザーが、Amazon のリーダーや業界の仲間によって今日のテクノロジーがどのように適用されているかについて、ブレイクアウトセッションを開催します。 将来に取り組む先見の明、現在こうした技術を適用している組織、Amazon 独自の実装の幕開けを紹介する 100 以上のメインイベントセッションやアクティビティから選択いただけます。また、新しい展示をご覧になり、昨年よりもさらに多くの仲間や専門家と交流することもできます。 機械学習🧠、自動化と音声🔊、ロボット工学🤖、宇宙🛰に特化した Amazon イベントで、Jeff Bezos、Jon Favreau などの演説を聞けるので、ご準備をどうぞ。 残念ながら去年見逃しましたか? ご心配なく! 🙃 昨年 YouTube での録画されたセッション、1 日目のブログ投稿、2019 年のセッションカタログ、さらに次のリンクから Jeff Bezos 自身のツイートを確認できます。 Amazon re:MARS 2019 予備セッションカタログ Jeff Bezos のツイート 2019 年 1 日目のブログ Amazon re:MARS YouTube Amazon […]

Read More

AWS DeepRacer ご利用後のリソース削除方法について

先日 2019年6月12日~14日に開催されたAWS Summit Tokyo 2019 では AWS DeepRacer リーグが行われました。AWS DeepRacer のご利用の際は、ご利用後に使わないリソースを適宜削除し、不要な課金を防いで利用しましょう。 AWS DeepRacer シミュレータのアーキテクチャ この図のように、AWS DeepRacer を立ち上げると、VPC 内に AWS DeepRacer の学習・推論評価用途 SageMaker, RoboMaker、描画、学習データの保存・データ転送に S3, Kinesis Video Stream, NAT Gateway が自動的に起動し、それぞれのサービスに対して課金が発生します。下記では、AWS DeepRacer ご利用後のリソース削除方法を紹介します。 注)本ブログは2019年6月15日時点の仕様を基にしており、今後変更の可能性がございます。   継続的な課金を停止するのに必要なこと リソースの自動削除 一度サービスを立ち上げると、学習・評価が終了しても、一部のサービスが起動したままの状態になっています。継続的な課金を防ぐために、下記の手順で関連リソースを削除することで、継続的な課金が防げます。 AWS DeepRacer → Reinforcement learning → Create model を選択 Account resources で、4つのリソースの左チェック印が緑色の場合、関連リソースが利用可能な状態となっています。 不要な課金を防ぐためには、Reset resources をクリックすれば、S3以外の関連リソースは削除されます。   S3 バケットの削除方法 また、S3バケットの削除は別途行う必要があります。S3 […]

Read More

AWS RoboMaker を使用した強化学習の紹介

ロボット工学には、しばしば複雑な連続動作のトレーニングが含まれることがあります。たとえば、別のオブジェクトをフォローまたは追跡するように設計されたロボットについて考えてみましょう。目標については簡単に説明できますが (ロボットがオブジェクトに近いほど良いです)、タスクを達成するためのロジックを作成することははるかに難しいです。強化学習 (RL)、新しい機械学習技術は、まさにこのような問題のソリューションを開発する際に役立ちます。 この記事では RL を紹介するとともに、私たちが AWS RoboMaker を使用して TurtleBot Waffle Pi がTurtleBot Burgerを追跡するアプリケーションをどのように作成し、トレーニングした方法について説明しています。AWS RoboMaker のサンプルアプリケーション、オブジェクトトラッカーは、Intel Reinforcement Learning Coach と OpenAI の Gym ライブラリを使用します。Coach ライブラリは RL フレームワークを簡単に利用できるPython で書かれたライブラリです。TurtleBot が自律走行に使うモデルのトレーニングに使用されました。OpenAI の Gym は、自律判断を行う RL エージェントを開発および設計するために使用されたツールキットです。 サンプルオブジェクトトラッカーのアプリケーションを使用したい場合は、「強化学習を使用してロボットをトレーニングする方法」を参照してください。 RL の概要 RL では、トレーニングのコンポーネントが 2 つあります。 ロボットが行うべきアクションを判断するエージェント ロボットの次の状態を判断するために、ロボットの力学および物理学とアクションを組み合わせた環境 簡潔に言えば、エージェントはモデルを使用してアクションを決定します。ロボットの現在の状態では、モデルは可能なアクションをマッピングして、各アクションがどれだけ優れているかを推測します (強化学習では、報酬といいます)。最初、モデルはどのアクションが最適なのか分からないため、通常、間違った推測を行います。エージェントが、受け取る可能性がある潜在的報酬を最大化することを学ぶと、モデルは改善され、改善されるアクションを推測します。次の図は、仕組みについて説明しています。 サンプルオブジェクトトラッカーのアプリケーションでは、RL は次のように機能します。 ロボットがある開始位置にあるとき、エージェントはとるべき最善のアクションを推測します。 環境は新しい状態と報酬を計算します。報酬はエージェントに前回のアクションがどれほど良かったかを知らせます。 エージェントと環境は相互作用して、新しいアクションを決定し、新しい状態を計算します。エージェントは、良いアクションに対する報酬と悪いアクションに対する罰を集めます。 トレーニングが 1 回終了すると、ロボットは、全体的にどれだけうまく機能したかを表す報酬の合計を取得します。 多くのアクションをとることによって、エージェントはどのアクションが優れているか (より大きな報酬を得ているか) […]

Read More

AWS RoboMakerでROSアプリケーションのビルドとバンドルをおこなう

12か月前から、クラウドロボティクスサービスであるAWS RoboMakerの開発を開始しました。 私たちに直面していた最大の疑問の1つは、次のとおりでした。サービス上でROSアプリケーションを簡単に実行できるようにするにはどうすればよいのか。 ロボットアプリケーションは、多数の依存関係を持つさまざまなパッケージが大量に混在しています。 シミュレーションも含まれると、その依存関係のリストがさらに増えます。 多くの検討と研究の結果、私たちはappimage、flatpak、snapcraftに触発され、ローカルのの開発環境でも私たちのサービスでも使える単一のファイルフォーマットを作成しました。 このフォーマットをbundleと呼びます。 パッケージングアーティファクトをどのような設計するかを決定した後、生成を容易にするためのコマンドラインツールを作成したいと思いました。 ツールが既存のROSエコシステム内に収まることが私たちにとって非常に重要でした。 その結果ROSのビルドツールの中で最新かつ最高のものであるcolconの上に構築することにしました。 ColconはROS1とROS2アプリケーションを構築できます。 またそれは非常に拡張性があり、革新的で重要な機能の多くを提供します。 この記事では、既存のROSビルドツールと、なぜcolconがROS2のビルドツールとして選ばれたのかを説明しています。 Colconは私たちの代わりに多くの大変な作業を肩代わりすることにより、私たちは特定の機能に集中することができます。 さらに、colcon buildはcatkin_makeとament_makeを利用してビルドしていたパッケージを変更することなく置き換えます。 つまり、colconの上にツールを構築することで、AWS RoboMakerユーザーは単一のツールをインストールしてフルワークフローを実行し、AWS RoboMakerで使用するためのbundleを生成できます。 この記事では、AWS RoboMakerで使用するbundleを作成するための通常のワークフローと、頻繁に発生する問題に対するいくつかの解決策について説明します。 2番目のセクションでは、最新バージョンの「bundle」ファイルフォーマットについて詳しく説明し、colcon bundleを実行してbundleを作成するときに何が起こるかについて概要を説明します。 なぜbundleなのか ROSシミュレーションワークフローには、ROSおよびその他のアプリケーションのランタイム依存関係がインストールされた環境が必要です。 通常は、さまざまなapt-get installコマンドを実行することによって実現されます。 このインストールは時間がかかり、さらに公開されているパッケージのアップデートはいつでも発生する可能性があるため、同じインストールを確実に再現することはできません。 私たちのサービスでは、シミュレーションを実行するたびにaptを使用して新しい環境をインストールすることの信頼性を心配していたので、さまざまなパッケージ形式を調べました。 ROSアプリケーション全体で最も魅力的で信頼性の高い配布形式はDebianパッケージでした。 それはROSのロボットを動かすのに必要な、boostまたは他の外部ライブラリ、そして実際のアプリケーションコードなど、すべてを含むことができます。 ダウンロード、作成、および更新のための最適化を柔軟に追加できるようにするため、既存のフォーマットを使用しないことにしました。 そこで私たちは「bundle」フォーマットと、それをサポートするための対応するツールを作成しました。 最初のバージョンはうまくいきましたが、以下のようないくつかの制限がありました。 ワークスペースの更新のみでbundleを更新するのは、最初のcolcon bundleの呼び出しと同じくらいの時間がかかりました。 更新されたbundleをロボットにデプロイすることは、ダウンロードとbundleコンテンツの抽出の両方において、期待したほど速くはありませんでした。 これらの制限を軽減または削除するための最適化を含むbundle形式の、バージョン2を発表できることに興奮しています。 フォーマットは現在部分的なダウンロードと部分的な抽出をサポートしています。 これには3つの大きな利点があります。 2G / 3Gといった帯域幅に制約のあるリモートデバイスであるロボットのアップデートで、使用される帯域幅を削減することができました 必要なものだけを抽出するようになりました。bundleの大部分が変更されていない場合は、ダウンロードまたは展開に無駄なコストを負う必要はありません。 ローエンドのデバイスでは、これにより大幅な時間の節約になります(TurtleBotsでは、デプロイにかかる時間が60分から1分に短縮されました) 全体のアーカイブは圧縮されていないので、段階的にbundleすることができます。 これにより、ワークスペースを簡単に更新するための再bundle時間が5分以上から数秒に短縮されます AWS RoboMakerはこの新しいバージョンをサポートしています。 これらの新しい機能を試してみたい場合は、開発環境でsudo pip3 install -U colcon-bundleを実行してください。 このブログの後半では、この新しい形式の実装について詳しく説明します。 […]

Read More