시뮬레이션 실행 - 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-ARNYOUR-SIM-APP-ARN의 반환된 값을 저장합니다. 시뮬레이션 작업을 제출하려면 둘 다 필요합니다. WorldForge 에셋을 시뮬레이션 작업으로 가져와야 하는 경우 DataSource API를 사용합니다. 이렇게 하면 월드 내보내기 작업의 Amazon S3 출력 디렉터리에서 시뮬레이션 작업 컨테이너 내에서 선택한 대상으로 월드 자산을 가져올 수 있습니다. 자세한 내용은 시뮬레이션에서 내보낸 월드 사용 섹션을 참조하세요.

시뮬레이션 작업을 제출하려면 create_simulation_job.json 작업 디렉토리에 JSON 파일을 생성합니다. 빨간색 기울임꼴 텍스트로 식별되는 문자열을 복사, 붙여넣기 및 편집하여 YOUR-IAM-ROLE-ARN, YOUR-ROBOT-APP-ARN, 및 YOUR-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에서 실행 중입니다!