Registro 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.

Registro de una simulación

Puede configurar cargas personalizadas para capturar los archivos de salida y otros artefactos de su trabajo de simulación. Puede configurar cargas personalizadas para su aplicación de robot y su aplicación de simulación. Al configurar una carga personalizada, los archivos que especifique se cargarán desde el trabajo de simulación a la ubicación de salida de la simulación de Amazon S3 que proporcione. Esto puede resultar útil cuando desee revisar o analizar el resultado de la aplicación generado durante una ejecución de simulación o reutilizar artefactos.

Antes de configurar las cargas personalizadas, debe proporcionar un destino de salida de Amazon S3 para su trabajo de simulación. AWS RoboMaker cargará los archivos coincidentes a una carpeta con el nombre que especifique. Los archivos coincidentes se pueden cargar cuando todas las herramientas del trabajo de simulación se desactivan o a medida que se generen y, a continuación, se eliminan.

Las configuraciones de carga predeterminadas se añaden automáticamente a las configuraciones de carga personalizadas, a menos que las desactive. La configuración de carga predeterminada carga la salida de registro predeterminada de ROS y Gazebo. Esto mantiene la compatibilidad con las configuraciones de salida de los trabajos de simulación anteriores, que cargaron la salida de registro predeterminada de ROS y Gazebo. Puede desactivar la configuración de carga predeterminada al configurar un trabajo de simulación en la consola. También puede desactivarla configurando useDefaultUploadConfigurations como false en la API CreateSimulationJob.

Sus aplicaciones de simulación se extraen en una sola partición de 128 GB y usted tiene acceso de escritura a la partición.

Adición de una configuración de carga personalizada

Para crear una configuración de carga personalizada, debe indicar un prefijo de nombre que especifique dónde se cargan los archivos en Amazon S3, una ruta de glob de Unix que especifique qué archivos se van a cargar y un comportamiento de carga que especifique cuándo se cargarán dichos archivos.

Nombre

Un nombre es un prefijo que especifica cómo se cargan los archivos en Amazon S3. Se añade a la ubicación de salida de la simulación para determinar la ruta final.

Por ejemplo, si la ubicación de salida de la simulación es s3://my-bucket y el nombre de la configuración de carga es robot-test, los archivos se cargarán en. s3://my-bucket/<simid>/<runid>/robot-test

Ruta

La ruta especifica qué archivos se cargan. Se aceptan las reglas de concordancia glob de Unix estándar siempre que cumplan los siguientes requisitos:

  • La dirección URL debe comenzar por /home/robomaker/ o /var/log.

  • La ruta no debe contener una expresión de ruta inversa (/..).

  • No se siguen las conexiones simbólicas.

  • Puede usar ** como un superasterisco en la ruta. Por ejemplo, especificar /var/log/**.log provoca que se recopilen todos los archivos .log del árbol de directorio /var/log.

    También puede usar el asterisco estándar como comodín estándar. Por ejemplo, /var/log/system.log* busca archivos coincidentes, como system.log_1111, system.log_2222, etc., en /var/log.

Comportamiento de la carga

Puede seleccionar uno de los siguientes comportamientos de la carga:

  • Cargar al terminar (UPLOAD_ON_TERMINATE) carga todos los archivos que coincidan con la ruta una vez que el trabajo de simulación entre en el estado de finalización. AWS RoboMaker intentará cargar los registros durante un máximo de 60 minutos.

    AWS RoboMaker no comenzará a cargar archivos hasta que se detengan todas las herramientas que se ejecutan en la simulación.

  • Carga continua con eliminación automática (UPLOAD_ROLLING_AUTO_REMOVE) carga todos los archivos que coinciden con la ruta a medida que se generan. Las rutas se comprueban cada 5 segundos. Los archivos de origen se eliminan cuando se cargan los archivos. Si se genera un nuevo archivo con el mismo nombre una vez que este se haya eliminado, reemplaza al archivo cargado anteriormente. AWS RoboMaker realizará una última comprobación de los archivos una vez que se hayan detenido todas las aplicaciones que se ejecuten en la simulación.

    La carga continua con eliminación automática es útil para cargar registros continuos. Escriba o transmita el resultado a un archivo “activo” que no cubra el glob de la ruta. Cuando termine de escribir en el archivo activo, coloque el archivo en una ubicación que cubra el glob de la ruta para cargarlo y eliminarlo.

    Esta configuración puede ayudarle a ahorrar espacio en su trabajo de simulación. También puede ayudarle a acceder a los archivos antes de que finalice el trabajo de simulación.

El tamaño de la partición del trabajo de simulación es de 128 GB. Si su trabajo de simulación finaliza por algún motivo, AWS RoboMaker intentará cargar todos los archivos especificados en su configuración de carga personalizada.

Variables de entorno creadas por AWS RoboMaker

AWS RoboMaker define las variables de simulación del trabajo de simulación que se detallan a continuación:

  • AWS_ROBOMAKER_SIMULATION_JOB_ID

  • AWS_ROBOMAKER_SIMULATION_JOB_ARN

  • AWS_ROBOMAKER_SIMULATION_RUN_ID

Puede acceder a estas variables desde su aplicación o desde la línea de comandos. Por ejemplo, para obtener el ARN del trabajo de simulación actual en Python, utilice os.environ.get("AWS_ROBOMAKER_SIMULATION_JOB_ARN").

Si ha especificado un bucket Amazon Simple Storage Service de salida de AWS RoboMaker para el trabajo de simulación, puede emplear las variables de entorno para encontrar la ruta de salida. RBM escribe la salida a s3://bucket-name/AWS_ROBOMAKER_SIMULATION_JOB_ID/AWS_ROBOMAKER_SIMULATION_RUN_ID. Úselo para gestionar objetos en Amazon S3 desde el código o la línea de comandos.

AWS RoboMaker también gestiona variables de entorno específicas configuradas en CreateSimulationJobRequest para permitir que los contenedores de robot y aplicaciones de simulación se comuniquen entre sí. Para obtener más información, consulte Preguntas frecuentes sobre los contenedores ROS.