시뮬레이션에서 내보낸 월드 사용 - AWS RoboMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

시뮬레이션에서 내보낸 월드 사용

Simulation WorldForge를 사용하여 AWS RoboMaker와 함께 사용할 수 있는 월드를 생성할 수 있습니다. 월드를 생성한 후에는 이를 내보내기하여 시뮬레이션에 사용해야 합니다. 시뮬레이션에 사용할 월드를 업로드할 수도 있습니다.

월드를 내보내기하면 다음을 사용할 수 있습니다.

다음 섹션에서는 시뮬레이션에서 생성된 월드를 사용하는 방법에 대한 추가 정보를 제공합니다.

중요

AWS RoboMaker 요금이 청구되는 방식에 대해 자세히 알아보려면 AWS RoboMaker 요금을 참조하세요.

내보낸 월드를 데이터 소스로 사용

Simulation WorldForge를 사용하면 ROS 환경에서 사용할 수 있는 월드를 내보낼 수 있습니다. 내보내려는 월드는 Amazon S3 버킷의 단일 .zip 파일로 복사됩니다. 이 섹션에서는 시작 파일을 조정한 다음 명령줄 인터페이스를 통해 AWS Management Console 또는 명령줄 인터페이스를 사용하여 시뮬레이션 작업을 생성하는 방법에 대한 지침을 제공하여 시뮬레이션 작업 시 Amazon S3 버킷에서 내보낸 월드를 사용하는 방법을 설명합니다.

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. 유형으로 아카이브를 선택합니다. AWS RoboMaker는 대상 디렉터리에 월드의 압축을 풉니다.

  5. Browse 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 파일이 포함되어 있는지 확인합니다. 업데이트된 시작 파일을 사용하여 시뮬레이션을 시작합니다.