Simulation protokollieren - AWS RoboMaker

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.

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 Speicherort für die Amazon S3-Simulationsausgabe 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-Ausgabeziel für Ihren Simulationsjob angeben. AWS RoboMakerlä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 während der Produktion hochgeladen und dann entfernt werden.

Standard-Uploadkonfigurationen werden automatisch zu Ihren benutzerdefinierten Uploadkonfigurationen hinzugefügt, sofern Sie sie nicht deaktivieren. Die Standard-Upload-Konfiguration lädt die ROS- und Gazebo-Standardprotokollierungsausgabe hoch. Dadurch bleibt die Kompatibilität mit früheren Ausgabekonfigurationen für Simulationsjobs erhalten, mit denen die Standardprotokollierungsausgabe von ROS und Gazebo hochgeladen wurde. Sie können die standardmäßige Uploadkonfiguration deaktivieren, wenn Sie einen Simulationsjob in der Konsole konfigurieren. Sie können es auch ausschalten, indem Siefalse in derCreateSimulationJob APIuseDefaultUploadConfigurations auf setzen.

Ihre Simulationsanwendungen werden auf eine einzelne 128-GB-Partition exportiert 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, wo 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 die Position der Simulationsausgabe angehängt, um den endgültigen Pfad zu bestimmen.

Wenn Ihr Standort für die Simulationsausgabe beispielsweise lautets3://my-bucket und der Name Ihrer Upload-Konfiguration lautetrobot-test, werden Ihre Dateien ins3://my-bucket/<simid>/<runid>/robot-test.

Pfad

Der Pfad gibt an, welche Dateien hochgeladen werden. Die standardmäßigen Unix-Glob-Matching-Regeln werden unter den folgenden Bedingungen akzeptiert:

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

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

  • Symbolischen Links wird nicht gefolgt.

  • Du kannst** es als Superstern in deinem 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-Verhalten 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 RoboMakerversucht, Logs für maximal 60 Minuten hochzuladen.

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

  • Upload Rolling mit auto remove (UPLOAD_ROLLING_AUTO_REMOVE) lädt alle Dateien hoch, die dem Pfad entsprechen, sobald sie generiert werden. 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 RoboMakerführt eine letzte Überprüfung der Dateien durch, sobald alle Ihre in der Simulation ausgeführten Anwendungen gestoppt wurden.

    Upload Rolling mit auto Entfernung ist nützlich, um rollende Logs hochzuladen. Schreiben oder streamen Sie die Ausgabe in eine „aktive“ Datei, die nicht vom Pfad glob abgedeckt wird. Wenn Sie mit dem Schreiben in die aktive Datei fertig sind, rollen Sie die Datei an einen Speicherort, der vom Pfadglob bedeckt ist, um hochgeladen und entfernt zu werden.

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

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

Von AWS RoboMaker erstellte Umgebungsvariablen

AWS RoboMakerdefiniert 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 RoboMakerschreibt die Ausgabe ins3://bucket-name/AWS_ROBOMAKER_SIMULATION_JOB_ID/AWS_ROBOMAKER_SIMULATION_RUN_ID. Verwenden Sie dies, um Objekte in Amazon S3 über Code oder die Befehlszeile zu verwalten.

AWS RoboMakerverarbeitet auch spezifische Umgebungsvariablen, die eingerichtet wurdenCreateSimulationJobRequest, damit Roboter- und Simulationsanwendungscontainer miteinander kommunizieren können. Weitere Informationen finden Sie unter Häufig gestellte Fragen zum ROS-Container.