Eine Simulation protokollieren - AWS RoboMaker

Ende des Supporthinweises: Am 10. September 2025 AWS wird der Support für AWS RoboMaker eingestellt. Nach dem 10. September 2025 können Sie nicht mehr auf die AWS RoboMaker Konsole oder die AWS RoboMaker Ressourcen zugreifen. Weitere Informationen AWS Batch zur Umstellung auf containerisierte Simulationen finden Sie in diesem Blogbeitrag.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Eine Simulation protokollieren

Um Ausgabedateien und andere Artefakte aus Ihrem Simulationsjob zu erfassen, können Sie benutzerdefinierte Uploads konfigurieren. Sie können benutzerdefinierte Uploads für Ihre Roboteranwendung und Ihre Simulationsanwendung konfigurieren. Wenn Sie einen benutzerdefinierten Upload konfigurieren, werden die von Ihnen angegebenen Dateien aus dem Simulationsjob an den von Ihnen angegebenen Amazon S3 S3-Simulationsausgabespeicherort hochgeladen. Dies kann nützlich sein, wenn Sie die während eines Simulationslaufs generierte Anwendungsausgabe überprüfen oder analysieren oder Artefakte wiederverwenden möchten.

Bevor Sie benutzerdefinierte Uploads konfigurieren können, müssen Sie ein Amazon S3 S3-Ausgabeziel für Ihren Simulationsjob angeben. AWS RoboMaker lädt passende Dateien unter einem von Ihnen angegebenen Namen in einen Ordner hoch. Passende Dateien können hochgeladen werden, wenn alle Simulationsjob-Tools heruntergefahren werden, oder sie können bei der Erstellung hochgeladen und dann entfernt werden.

Standard-Upload-Konfigurationen werden automatisch zu Ihren benutzerdefinierten Upload-Konfigurationen hinzugefügt, sofern Sie sie nicht deaktivieren. Die Standard-Upload-Konfiguration lädt Dateien hoch ROS und die Gazebo-Standard-Logging-Ausgabe. Dadurch wird die Kompatibilität mit früheren Konfigurationen für die Ausgabe von Simulationsjobs, die hochgeladen wurden, ROS und der Standard-Loggingausgabe von Gazebo gewahrt. Sie können die Standard-Upload-Konfiguration deaktivieren, wenn Sie einen Simulationsjob in der Konsole konfigurieren. Sie können ihn auch ausschalten, indem Sie false in der useDefaultUploadConfigurations die Einstellung auf setzen CreateSimulationJobAPI.

Ihre Simulationsanwendungen werden auf eine einzelne 128-GB-Partition extrahiert, und Sie haben Schreibzugriff auf die Partition.

Hinzufügen einer benutzerdefinierten Upload-Konfiguration

Um eine benutzerdefinierte Upload-Konfiguration zu erstellen, müssen Sie ein Namenspräfix angeben, das angibt, wohin die Dateien in Amazon S3 hochgeladen werden, einen Unix-Glob-Pfad, der die hochzuladenden Dateien angibt, und ein Upload-Verhalten, das angibt, wann die Dateien hochgeladen werden.

Name

Ein Name ist ein Präfix, das angibt, wie Dateien in Amazon S3 hochgeladen werden. Es wird an den Speicherort der Simulationsausgabe angehängt, um den endgültigen Pfad zu bestimmen.

Wenn Ihr Speicherort für die Simulationsausgabe beispielsweise lautet s3://amzn-s3-demo-bucket und Ihr Name der Upload-Konfiguration lautetrobot-test, werden Ihre Dateien in hochgeladen. s3://amzn-s3-demo-bucket/<simid>/<runid>/robot-test

Pfad

Der Pfad gibt an, welche Dateien hochgeladen werden. Standard-Unix-Glob-Abgleichsregeln werden unter den folgenden Bedingungen akzeptiert:

  • Der Pfad muss mit /home/robomaker/ oder /var/log beginnen.

  • Der Pfad darf keinen umgekehrten Pfadausdruck (/..) enthalten.

  • Symbolischen Links wird nicht gefolgt.

  • Sie können es ** als Super-Sternchen in Ihrem Pfad verwenden. Beispiel: Angeben von /var/log/**.log bewirkt, dass alle .log-Dateien in der /var/log-Verzeichnisstruktur erfasst werden.

    Sie können das Standardsternchen auch als Standardplatzhalter verwenden. Beispiel: /var/log/system.log* findet Dateien wie system.log_1111, system.log_2222 usw. in /var/log.

Verhalten beim Hochladen

Sie können eines der folgenden Upload-Verhaltensweisen auswählen:

  • Upload on terminate (UPLOAD_ON_TERMINATE) lädt alle Dateien hoch, die dem Pfad entsprechen, sobald der Simulationsjob in den Endzustand übergeht. AWS RoboMaker versucht, Protokolle für maximal 60 Minuten hochzuladen.

    AWS RoboMaker beginnt erst mit dem Hochladen von Dateien, wenn alle Ihre in der Simulation ausgeführten Tools gestoppt wurden.

  • Beim fortlaufenden Upload mit auto remove (UPLOAD_ROLLING_AUTO_REMOVE) werden alle Dateien, die dem Pfad entsprechen, so hochgeladen, wie sie generiert wurden. Pfade werden alle 5 Sekunden überprüft. Wenn die Dateien hochgeladen werden, werden die Quelldateien gelöscht. Sobald eine Datei gelöscht wurde und eine neue Datei mit demselben Namen generiert wird, ersetzt sie die zuvor hochgeladene Datei. AWS RoboMaker führt eine letzte Überprüfung auf Dateien durch, sobald alle Ihre in der Simulation ausgeführten Anwendungen gestoppt wurden.

    Rolling Upload mit auto Entfernen ist nützlich, um fortlaufende Logs hochzuladen. Schreiben oder streamen Sie die Ausgabe in eine „aktive“ Datei, die nicht durch den Pfad Glob abgedeckt wird. Sobald Sie mit dem Schreiben in die aktive Datei fertig sind, rollen Sie die Datei an einen Ort, der vom Pfadglob abgedeckt wird, um sie hochzuladen und zu entfernen.

    Diese Einstellung kann Ihnen helfen, Platz in Ihrem Simulationsjob zu sparen. Sie kann Ihnen auch dabei helfen, auf Dateien zuzugreifen, bevor Ihr Simulationsjob beendet wird.

Die Partitionsgröße des Simulationsjobs beträgt 128 GB. Wenn Ihr Simulationsjob aus irgendeinem Grund endet, AWS RoboMaker versucht er, alle in Ihrer benutzerdefinierten Upload-Konfiguration angegebenen Dateien hochzuladen.

Umgebungsvariablen, erstellt von AWS RoboMaker

AWS RoboMaker definiert die folgenden Umgebungsvariablen für Simulationsjobs.

  • AWS_ROBOMAKER_SIMULATION_JOB_ID

  • AWS_ROBOMAKER_SIMULATION_JOB_ARN

  • AWS_ROBOMAKER_SIMULATION_RUN_ID

Sie können diese Variablen aus Ihrer Anwendung oder über die Befehlszeile abrufen. Um beispielsweise den aktuellen Simulationsjob Amazon Resource Name (ARN) in Python abzurufen, verwenden Sieos.environ.get("AWS_ROBOMAKER_SIMULATION_JOB_ARN").

Wenn Sie einen Amazon Simple Storage Service-Ausgabe-Bucket für den Simulationsjob angegeben haben, können Sie die Umgebungsvariablen verwenden, um den Ausgabepfad zu finden. AWS RoboMaker schreibt die Ausgabe ins3://bucket-name/AWS_ROBOMAKER_SIMULATION_JOB_ID/AWS_ROBOMAKER_SIMULATION_RUN_ID. Verwenden Sie dies, um Objekte in Amazon S3 über den Code oder die Befehlszeile zu verwalten.

AWS RoboMaker verarbeitet auch spezifische Umgebungsvariablen, die so eingerichtet sindCreateSimulationJobRequest, dass Roboter- und Simulationsanwendungscontainer miteinander kommunizieren können. Weitere Informationen finden Sie unter Häufig gestellte Fragen zum ROS-Container.