Ejecución de una simulación - AWS RoboMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecución de una simulación

Para empezar a ejecutar una simulación, utilice los siguientes comandos de la CLI de AWS para describir las aplicaciones. Estos comandos ofrecen resultados que puede examinar para confirmar que todo está listo para continuar con la creación de un trabajo de simulación.

El siguiente comando recupera los datos asociados a la aplicación de robot.

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

El archivo de describe-robot-application contiene los datos siguientes.

{ "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" } }

El siguiente comando recupera los datos asociados a la aplicación de simulación.

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

La salida de describe-simulation-application contiene los datos siguientes.

{ "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" } }

Guarde los valores devueltos para YOUR-ROBOT-APP-ARN y YOUR-SIM-APP-ARN. Necesitará ambos valores para enviar su trabajo de simulación. Si tiene que importar activos de WorldForge a su trabajo de simulación, utilice la API de DataSource. Esto le permite importar activos de mundos del directorio de salida de Amazon S3 del trabajo de exportación de mundos a un destino que elija dentro de su contenedor de trabajos de simulación. Para obtener más información, consulte Uso de mundos exportados en la simulación.

Para enviar su trabajo de simulación, cree un archivo JSON en su directorio de trabajo denominado “create_simulation_job.json”. Copie, pegue y edite las cadenas identificadas con texto en cursiva de color rojo para que contengan YOUR-IAM-ROLE-ARN, YOUR-ROBOT-APP-ARN y YOUR-SIM-APP-ARN. Los ajustes de comandos de roslaunch, de variables de entorno de TurtleBot y de las herramientas que se detallan a continuación son específicos para la aplicación de muestra “hello world”. Actualice los ajustes según sus valores personalizados en función de las necesidades de su trabajo de simulación. Para obtener más información, consulte la API CreateSimulationJob.

{ "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" } ] } ] }
nota

Preste especial atención a los ajustes de las variables de entorno específicos de ROS_ y GAZEBO_ del objeto launchConfig en el robot y en la aplicación de simulación. Los valores de la cadena ROBOMAKER_* y los números de puerto son necesarios para que el contenedor de aplicaciones de robot pueda comunicarse con el contenedor de aplicaciones de simulación.

En cuanto haya confirmado la configuración del trabajo, puede enviarlo mediante el siguiente comando.

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

Para confirmar que la simulación se está ejecutando en AWS RoboMaker, visite la página Trabajos de simulación en la consola de AWS RoboMaker. Busque el trabajo en ejecución y selecciónelo para ver la información e iniciar las herramientas asociadas al mismo. ¡Enhorabuena! Su trabajo de simulación ya está en ejecución en AWS RoboMaker.