シミュレーションの実行 - AWS RoboMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

シミュレーションの実行

シミュレーションの実行を開始するには、以下の AWS CLI コマンドを使用してアプリケーションを記述します。これらのコマンドには出力があるので、シミュレーションジョブの作成に進む準備ができているかどうかを確認できます。

以下のコマンドは、ロボットアプリケーションに関連するデータを取得します。

aws robomaker describe-robot-application --application YOUR-ROBOT-APP-ARN

describe-robot-application の出力には、以下のデータが含まれています。

{ "arn": "YOUR-ROBOT-APP-ARN", "name": "YOUR-ROBOT-APP-NAME", ... # Removed extra data for clarity "robotSoftwareSuite": { "name": "General" }, ... # Removed extra data for clarity "environment": { "uri": "YOUR-ROBOT-APP-ECR-URI" } }

以下のコマンドは、シミュレーションアプリケーションに関連するデータを取得します。

aws robomaker describe-simulation-application --application YOUR-SIM-APP-ARN

describe-simulation-application の出力には以下のデータが含まれます。

{ "arn": "YOUR-SIM-APP-ARN", "name": "YOUR-SIM-APP-NAME", ... # Removed extra data for clarity "simulationSoftwareSuite": { "name": "SimulationRuntime" }, "robotSoftwareSuite": { "name": "General" }, ... # Removed extra data for clarity "environment": { "uri": "YOUR-SIM-APP-ECR-URI" } }

YOUR-ROBOT-APP-ARN および YOUR-SIM-APP-ARN の戻り値を保存します。シミュレーションジョブの送信には、この両方の値が必要です。WorldForge のアセットをシミュレーションジョブにインポートする必要がある場合は、DataSource API を使用してください。こうすることで、ワールドのエクスポートジョブのAmazon S3 の出力ディレクトリにあるワールドアセットを、シミュレーションジョブコンテナ内の好きなインポート先へインポートすることができます。詳細については、「シミュレーションでのエクスポートしたワールドの使用」を参照してください。

シミュレーションジョブを送信するには、create_simulation_job.json という名前の作業ディレクトリに JSON ファイルを作成します。YOUR-IAM-ROLE-ARNYOUR-ROBOT-APP-ARNYOUR-SIM-APP-ARN を含む赤色の斜体テキストで表示されている文字列をコピーして貼り付け、編集します。以下の roslaunch コマンド、TurtleBot 環境変数、ツール設定は、hello world サンプルアプリケーション固有のものです。シミュレーションジョブのニーズに応じて、これらの設定を独自のカスタム値に更新する必要があります。詳細については、CreateSimulationJob API を参照してください。

{ "maxJobDurationInSeconds": 3600, "iamRole": "IAM-ROLE-ARN", "robotApplications": [ { "application": "YOUR-ROBOT-APP-ARN", "applicationVersion": "$LATEST", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_ROBOT_APP_IP", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345" }, "streamUI": false, "command": [ "/bin/bash", "-c", "roslaunch hello_world_robot rotate.launch" ] }, "tools": [ { "streamUI": true, "name": "robot-terminal", "command": "/entrypoint.sh && xfce4-terminal", "streamOutputToCloudWatch": true, "exitBehavior": "RESTART" } ] } ], "simulationApplications": [ { "application": "YOUR-SIM-APP-ARN", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_SIM_APP_IP", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345", "TURTLEBOT3_MODEL":"waffle_pi" }, "streamUI": true, "command": [ "/bin/bash", "-c", "roslaunch hello_world_simulation empty_world.launch --wait" ] }, "tools": [ { "streamUI": true, "name": "gzclient", "command": "/entrypoint.sh && gzclient", "streamOutputToCloudWatch": true, "exitBehavior": "RESTART" } ] } ] }
注記

ロボットとシミュレーションアプリケーションの launchConfig オブジェクトにある ROS_GAZEBO_ に固有の環境変数設定については、特に注意してください。ROBOMAKER_* 文字列値とポート番号は、ロボットアプリケーションコンテナがシミュレーションアプリケーションコンテナと通信できるようにするために必要なものです。

ジョブの設定を確認したら、以下のコマンドを使用してジョブを送信できます。

aws robomaker create-simulation-job --cli-input-json file://create_simulation_job.json

AWS RoboMaker でシミュレーションが実行されていることを確認するには、AWS RoboMaker コンソール[シミュレーションジョブ] ページにアクセスしてください。実行中のジョブを探して選択すると、詳細が表示され、関連するツールが起動します。おめでとうございます。AWS RoboMaker でシミュレーションジョブが実行されました。