シミュレーションでのエクスポートしたワールドの使用 - AWS RoboMaker

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

シミュレーションでのエクスポートしたワールドの使用

Simulation WorldForge を使用して、AWS RoboMaker で使用するワールドを作成できます。シミュレーションで使用するには、ワールドの作成後にエクスポートする必要があります。ワールドをアップロードしてシミュレーションに使用することもできます。

ワールドをエクスポートすると、以下を利用できるようになります。

このセクションでは、生成されたワールドをシミュレーションで使用する方法について詳しく説明します。

重要

AWS RoboMaker の課金の詳細については、「AWS RoboMaker 料金表」を参照してください。

エクスポートされたワールドをデータソースとして使用する

Simulation WorldForge を使用すると、ROS 環境で使用できるワールドを簡単にエクスポートできます。エクスポートするワールドを選ぶと、Amazon S3 バケット内の 1 つの .zip ファイルにコピーされます。このセクションでは、Amazon S3 バケットにエクスポートされたワールドをシミュレーションジョブで使用する方法について説明します。起動ファイルの調整方法を説明した後、AWS Management Console または CLI のいずれかを使用してシミュレーションジョブを作成します。

AWS Management Console または AWS CLI を使用してデータソースを追加する前に、まずはシミュレーションアプリケーションの起動ファイルを更新する必要があります。

シミュレーションの起動ファイルを更新するには
  1. 以下のコマンドを実行します。

    <launch> <!-- Always set GUI to false for AWS RoboMaker Simulation Use gui:=true on roslaunch command-line to run with gzclient. --> <arg name="gui" default="false"/> <include file="$(find aws_robomaker_worldforge_worlds)/launch/launch_world.launch"> <arg name="gui" value="$(arg gui)"/> </include> <!-- Your other launch commands go here. --> </launch>

    (0, 0, 0) でロボットをスポーンできます。Simulation WorldForge により生成されたワールドは、(0, 0, 0) で 1 メートルシリンダーがクリアになることが保証されています。

  2. イメージを再ビルドして通常どおりにプッシュします。詳細については、「イメージを使用した AWS RoboMaker アプリケーションの開発」を参照してください。

データソースを追加するには

以下のいずれかのタブのステップに従ってください。

Using the console
  1. ワールドエクスポートジョブの作成」の手順に従ってワールドをエクスポートします。

  2. シミュレーションジョブの作成中に、新しいデータソースを追加します。データソースには、例で使用している WorldForge など、わかりやすい名前を使用します。

  3. オプションで、ワールドを配置する宛先ディレクトリを指定します。

    注記

    AWS RoboMaker は宛先を dataSource ファイルで上書きするため、ワークスペースディレクトリを宛先として使用しないでください。代わりに、your_workspace/src/aws_exported_world など、ワークスペースの下の別ディレクトリを指定できます。

  4. タイプに [アーカイブ] を選択します。AWSRoboMaker はワールドを目的のディレクトリに解凍します。

  5. [S3 を参照] を選択し、ワールドを生成した正しいエクスポートを探します。

  6. シミュレーションジョブの作成を通常どおり続けます。

Using the AWS CLI

ワールドエクスポートジョブの作成」の手順に従ってワールドをエクスポートします。

ワークスペースが /home/simulation_ws のコンテナにある場合、以下のコマンドでワールドをデフォルトの保存先ディレクトリに抽出します。

aws robomaker create-simulation-job \ --max-job-duration-in-seconds <time> \ --iam-role <IAM role ARN> \ --data-sources '[{ "name": "WorldForge", "type": "Archive", "destination": "/home/simulation_ws/src/aws_exported_world", "s3Bucket": "worldforge-test", "s3Keys": ["aws-robomaker-worldforge-export-q376mqk4z7gm.zip"] }]' \ --robot-applications <config> \ --simulation-applications <config>

エクスポートされたワールドを ROS と Gazebo で使用する

前のセクションで説明したように、Simulation WorldForge は選択したワールドを単一の .zip ファイルにエクスポートします。.zip ファイルには、ROS と Gazebo を使用してワールドを変更および視覚化するために必要なすべてのアセットが含まれています。このファイルは次の重要なフォルダが含まれています。

  • ルートフォルダ workspace_src は ROS ワークスペースです。これには、共有モデル、ワールドデータ、ワールドのその他の情報が含まれています。ROS 1 および ROS 2 との互換性があります。

  • 共有モデルworkspace_src/src/aws_robomaker_worldforge_shared_models/models にコピーされます。例えば、複数のワールドで同一の椅子が使用されている場合、その椅子は共有モデルフォルダに配置されます。

  • ワールドデータworkspace_src/src/aws_robomaker_worldforge_worlds/worlds/ にコピーされます。

シミュレーションの起動ファイルを更新するには
  1. ワールドエクスポートジョブの作成」の手順に従ってワールドをエクスポートします。

  2. ワールドを ROS ワークスペースに Unzip します。

    cd MyApplication/simulation_ws unzip MyExportedWorld.zip
  3. ワールドを構築します。

    rosdep install --from-paths src --ignore-src -r -y$ colcon build
  4. ワールドを起動します。

    source install/setup.sh roslaunch aws_robomaker_worldforge_worlds launch_world.launch gui:=true
ワールドを構築して起動する方法は次の通りです。
  1. ワールドエクスポートジョブの作成」の手順に従ってワールドをエクスポートします。

  2. dataSource を使用して、エクスポートしたワールドをワークスペースのソースパッケージディレクトリ /home/simulation_ws/src/aws_exported_world にインポートします。

  3. シミュレーションアプリケーションの LaunchConfig を変更します。

    "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", "GAZEBO_MODEL_PATH":"@GAZEBO_MODEL_PATH:/home/simulation_ws/src/aws_exported_world/aws_robomaker_worldforge_pkgs/aws_robomaker_worldforge_shared_models/models" }, "streamUI": true, "command": [ "/bin/bash", "-c", "cd /home/simulation_ws && colcon build && source install/setup.sh && roslaunch hello_world_simulation worldforge_world.launch" ] },

エクスポートしたワールドをカスタム物理演算、照明、モデルで使用する

シミュレーションシナリオのカスタマイズが必要な場合は、ワールドをエクスポートして変更を加えることができます。例えば、カスタム物理演算の適用、さまざまな照明効果の適用、カスタムモデルの追加、その他の変更を行うことができます。

ワールドをエクスポートしたら、.world ファイルに変更を加えてエクスポートしたワールドモデルを含める必要があります。.world ファイルでは SDF が使用されます。SDF の詳細については、SDFormat を参照してください。

.world ファイルに変更を加えてエクスポートしたワールドモデルを含める方法
  1. ワールドエクスポートジョブの作成」の手順に従ってワールドをエクスポートします。

  2. 以下のコードを .world ファイルにコピーします。ワールド名がエクスポートされたモデル名と一致していることを確認してください。

    <sdf version="1.6"> <world name="generation_82856b0yq33y_world_16"> <model name="WorldForge World"> <include> <uri>model://generation_82856b0yq33y_world_16</uri> </include> </model> <!-- Your other <world> elements go here --> </world> </sdf>
  3. 起動ファイルに、変更した .world ファイルが含まれていることを確認します。更新した起動ファイルを使用して、シミュレーションを起動します。