在模擬中使用匯出的世界 - AWS RoboMaker

支援終止通知:在 2025 年 9 月 10 日, AWS 將停止對 的支援 AWS RoboMaker。2025 年 9 月 10 日後,您將無法再存取 AWS RoboMaker 主控台或 AWS RoboMaker 資源。如需有關轉換至 AWS Batch 以協助執行容器化模擬的詳細資訊,請造訪此部落格文章

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在模擬中使用匯出的世界

模擬 WorldForge 可用於創建與配合使用的世界AWS RoboMaker。建立世界後,必須將它們匯出以在模擬中使用。您也可以上傳要在模擬中使用的世界。

匯出世界提供使用的機會:

下列各節提供有關在模擬中使用產生世界的詳細資訊。

重要

若要深入瞭解如何收費AWS RoboMaker,請參閱AWS RoboMaker 定價

使用匯出的世界作為資料來源

透過模擬 WorldForge,您可以匯出可在 ROS 環境中使用的世界。您選擇匯出的世界會複製至 Amazon S3 儲存貯體中的單一 .zip 檔案。本節說明如何在模擬任務中使用 Amazon S3 儲存貯體中的匯出世界,方法是提供如何調整啟動檔案,然後透過AWS Management Console或使用命令列界面建立模擬任務的說明。

您必須先更新模擬應用程式啟動檔案,然後才能使AWS CLI用AWS Management Console或加入資料來源。

若要更新模擬啟動檔案:
  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)。模擬 WorldForge生成的世界保證在 1 公尺的圓柱體清晰(0, 0, 0)

  2. 重建您的圖像並正常推送。如需詳細資訊,請參閱使用影像進行開發AWS RoboMaker應用

若要新增資料來源

請遵循下列其中一個標籤下的步驟進行:

Using the console
  1. 按照中的程建立世界匯出工作序匯出世界。

  2. 建立模擬任務時,新增資料來源。為資料來源提供有意義的名稱,例如WorldForge範例中使用的名稱。

  3. 或者,識別要放置世界的目標目錄。

    注意

    請勿使用工作區目錄作為目的地,因為會使用資料來源檔案AWS RoboMaker 覆寫目的地。相反地,您可以在工作區下指定個別目錄,例your_workspace/src/aws_exported_world如目的地。

  4. 選擇存檔作為類型。AWS RoboMaker 將世界解壓縮到目標目錄中。

  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 和涼亭中使用出口世界

如上一節所述,Simulation 會將您選擇的世界 WorldForge 匯出至單一 .zip 檔案。.zip 檔案包含使用 ROS 和涼亭修改和視覺化世界所需的所有資產。它包括以下重要文件夾:

  • 根資料夾是 ROS 工作區。workspace_src它包含共享模型,世界數據和世界其他信息。它與 ROS 1 和 ROS 2 兼容。

  • 共用模型複製到workspace_src/src/aws_robomaker_worldforge_shared_models/models。例如,如果在多個世界中使用同一張椅子,則會將其放置在共用模型資料夾中。

  • 世界資料會複製到workspace_src/src/aws_robomaker_worldforge_worlds/worlds/

若要更新模擬啟動檔案:
  1. 按照中的程建立世界匯出工作序匯出世界。

  2. Unzip將世界變成 ROS 工作空間。

    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. /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檔案。使用更新的啟動檔案來啟動模擬。