Simulation konfigurieren - 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 konfigurieren

In den folgenden Abschnitten wird die Konfiguration von Simulationsaufträge beschrieben. Weitere Informationen finden Sie in dem beschriebenen KonzeptAnwendungskonfiguration.

Konfiguration eines Simulationsjobs für den Amazon VPC-Zugriff

Erstellen Sie diese Ressourcen in der Amazon Virtual Private Cloud (Amazon VPC), können sie nicht über das öffentliche Internet lesen. Beispielressourcen könnten Amazon Redshift Data Warehouses oder ElastiCache Amazon-Cluster sein. Sie könnten auch Ihre Dienste auf einer Amazon Elastic Compute Cloud-Instance sein. Standardmäßig sind Ressourcen in einer Amazon VPC für einenAWS RoboMaker Simulationsjob nicht zugänglich.

Anmerkung

AWS RoboMakerführt Ihren Simulationsjob in einem isolierten Netzwerk ohne externe Konnektivität aus. Soll auf Ressourcen in Ihrer Amazon VPC zugreifen können, müssen Sie VPC-spezifische Daten angeben, beispielsweise Amazon VPC-Subnetz-IDs und Sicherheitsgruppen-IDs. AWS RoboMakerverwendet diese Daten, um elastische Netzwerkschnittstellen (ENIs) einzurichten. ENIs helfen Ihnen dabei, eine sichere Verbindung zu anderen Ressourcen in Ihrer privaten Amazon VPC herzustellen.

AWS RoboMaker stellt keine Verbindung zu Ressourcen innerhalb dedizierter Mandanten-VPCs her. Weitere Informationen finden Sie im Abschnitt zu Dedicated-VPCs.

Sie können IhremAWS RoboMaker Simulationsjob Amazon VPC-Daten hinzufügen, indem Sie denVpcConfig Parameter bei der Erstellung eines Jobs verwenden (sieheCreateSimulationJob). Im Folgenden finden Sie einAWS CLI Beispiel, in dem eine öffentliche IP zugewiesen wird.

aws robomaker create-simulation-job \ --output-location s3Bucket=my-bucket,s3Prefix=my-output-folder \ --max-job-duration-in-seconds 3600 \ --iam-role my-role-arn \ --failure-behavior Continue \ --robot-applications application='my-robot-application-arn,launchConfig={command=["roslaunch", "hello_world_robot", "rotate.launch"]}' \ --simulation-applications application='my-simulation-application-arn,launchConfig={command=["roslaunch", "hello_world_simulation", "empty_world.launch"]}' \ --vpc-config assignPublicIp=true,subnets=comma-separated-vpc-subnet-ids,securityGroups=comma-separated-security-group-ids
Anmerkung

Wenn ein Simulationsauftrag so konfiguriert ist, dass er in einer VPC ausgeführt wird, erfolgt eine ENI-Verzögerung. Die Adressauflösung kann verzögert werden, wenn Sie versuchen, eine Verbindung zu Netzwerkressourcen herzustellen.

Internetzugang für Simulationsjobs

AWS RoboMaker verwendet die VPC-Daten, die Sie zur Einrichtung von ENIs bereitstellen. ENIs ermöglichen Ihrem Auftrag den Zugriff auf VPC-Ressourcen. Jeder ENI ist eine private IP-Adresse aus dem Bereich der von Ihnen angegebenen Subnetze zugewiesen. Der ENI werden standardmäßig keine öffentlichen IP-Adressen zugewiesen.

Wenn für Ihren Job Internetzugang erforderlich ist (vielleicht umAWS Dienste zu finden, die keine VPC-Endpunkte haben) und Sie private Subnetze verwenden, können Sie ein NAT in Ihrer VPC einrichten. Sie können das Amazon VPC-NAT-Gateways verwenden undAWS RoboMaker die Zuweisung einer öffentlichen IP anfordern. Weitere Informationen finden Sie unter NAT-Gateways im Amazon VPC-Benutzerhandbuch.

Anmerkung

Sie können kein Internet-Gateway verwenden, das direkt an Ihre VPC angeschlossen ist, da für eine Internetverbindung die ENI über öffentliche IP-Adressen verfügen muss. Standardmäßig hat Ihre ENI eine private IP-Adresse.

Um den Internetzugang zu konfigurieren, wenn Sie öffentliche Subnetze verwenden, stellen Sie ein,assignPublicIp=true dass Sie Ihrem ENI eine öffentliche IP zuweisen.

Wenn Ihr Simulationsjob nur Zugriff auf öffentlicheAWS APIs erfordert und Sie mehr Datenschutz wünschen, finden Sie weitere Informationen unterAWS RoboMaker und Schnittstellen-VPC-Endpunkte (AWS PrivateLink). Mit diesen Informationen können Sie Ihren Schnittstellen-VPC-Endpunkt erstellen und die VPC mithilfe derCreateSimulationJob API hinzufügen.

Konfiguration vonSimulationJob Compute

Um die GPU in Ihrem zu verwendenSimulationJobs, können Sie dieComputeType GPU Compute so konfigurierenSimulationJob, dass sie GPU Compute verwendet. Sie profitieren von den folgenden Vorteilen, wenn Sie Simulationsjobs auf Basis der Graphics Processing Unit (GPU) in verwendenAWS RoboMaker.

  • GPU-basierte Simulationsjobs ermöglichen die Ausführung von Anwendungen, die GPU-fähige Sensor-Plugins sowie hochauflösendes Rendering und Leistung mit OpenGL, CUDA, OpenCL und Vulkan erfordern.

  • GPU-basierte Simulationsjobs stellen sicher, dass dieAWS RoboMaker GUI-Tools eine hochwertige HD-Auflösung haben, sodass Sie Objekte detaillierter sehen können. Die Erfahrung mit den GUI-Tools ist ideal, da die GPU eine höhere Framerate pro Sekunde gewährleistet.

  • Die GPU-basierte Simulation beschleunigt die Abschlusszeit der Simulationsaufgabe. Mit der GPU können Sie komplexe Simulationsszenen ausführen, ohne den Echtzeitfaktor und die Bilder pro Sekunde zu beeinträchtigen.

  • GPU-basierte Simulationsjobs verbessern das Training von Reinforcement Learning-Modellen.

Datenverarbeitung

DerCompute Parameter in derCreateSimulationJob Anfrage kann verwendet werden, um zu konfigurieren, welche Art von Compute für die benötigt wirdSimulationJob.

ComputeType

ComputeTypegibt die Art der Datenverarbeitung an, die für den Job erforderlich ist. Gültige Werte sind CPU und GPU_AND_CPU. Der Standardwert ist CPU. WennGPU_AND_CPU angegeben, kann der erstellte Job die GPU zusammen mit der CPU verwenden.

GpuUnitLimit

Mithilfe desGpuUnitLimit Parameters können Sie die Anzahl der GPU-Einheiten angeben, die Ihrem Job zugewiesen werden müssen. DennGPU_AND_CPU ComputeType es muss 1 sein. DennCPU ComputeType es muss 0 sein.

Hinweise zum Erstellen von Containern zur Verwendung von GPU finden Sie unterErstellen von Images zur Ausführung von GPU-Anwendungen.

Konfiguration benutzerdefinierter Simulationstools

MitAWS RoboMaker können Sie benutzerdefinierte Tools für die Anwendungen in einem Simulationsjob konfigurieren. Verwenden Sie benutzerdefinierte Tools, um mit der Simulation zu interagieren, als Diagnosewerkzeuge oder für andere Zwecke. Sie können auch Standardtools wierqt oderrviz bereitgestellt von konfigurierenAWS RoboMaker. Wenn Ihr Simulationsjob Teil einer automatisierten Pipeline ist, können Sie die Standardwerkzeuge deaktivieren und weniger Ressourcen verbrauchen.

Sie können bis zu 10 benutzerdefinierte Tools konfigurieren. Benutzerdefinierte Tools werden gestartet, nachdem der ROS-Hauptprozess gestartet wurde.

Eine benutzerdefinierte Werkzeugkonfiguration umfasst die folgenden Elemente:

  • Werkzeugname — Der Name des Werkzeugs.

  • Befehl — Der Befehl zum Aufrufen des Tools in einerbash Shell. Sie müssen den Namen der ausführbaren Datei des Tools angeben. Sie können Umgebungsvariablen, beispielsweise benutzerdefinierte Variablen, in Ihren Argumenten verwenden. Um beispielsweise die aktuelle Simulationsjob-ID zu verwenden, können Sie referenzierenAWS_ROBOMAKER_SIMULATION_JOB_ID.

  • Verhalten beim Beenden — Legt fest, welche Aktion ausgeführt wird, wenn das benutzerdefinierte Tool beendet wird. Wenn Sie angebenfail, schlägt der Simulationsjob fehl. Wenn Sie dies angebenrestart, wird das Tool neu gestartet. Der Standardwert ist restart.

  • UI-Streaming — Gibt an, ob eine Streaming-Sitzung für das Tool konfiguriert ist. Wenn True, wird eine VerbindungAWS RoboMaker konfiguriert, sodass Sie mit dem Tool interagieren können, während es in der Simulation ausgeführt wird. Es muss eine grafische Benutzeroberfläche haben. Der Standardwert ist false.

  • Verhalten protokollieren — Gibt an, ob das Toolstdout zu CloudWatch Logs gestreamtstderr wird. Der Standardwert ist false.

Root-Zugriff und Systemfunktionen

AWS RoboMaker bietet eingeschränkten Root-(sudo)-Zugriff auf Anwendungen, die in einem Simulationsauftrag ausgeführt werden. Die folgende Liste enthält wichtige (aber nicht alle) blockierten Systemaufrufe.

  • acct

  • add_key

  • bpf

  • clock_adjtime

  • clock_settime

  • clone

  • create_module

  • delete_module

  • finit_module

  • get_kernel_syms

  • get_mempolicy

  • init_module

  • ioperm

  • iopl

  • kcmp

  • kexec_file_load

  • kexec_load

  • keyctl

  • lookup_dcookie

  • mbind

  • mount

  • move_pages

  • name_to_handle_at

  • nfsservctl

  • open_by_handle_at

  • perf_event_open

  • personality

  • pivot_root

  • process_vm_readv

  • process_vm_writev

  • ptrace

  • query_module

  • quotactl

  • reboot

  • request_key

  • set_mempolicy

  • setns

  • settimeofday

  • stime

  • swapon

  • swapoff

  • sysfs

  • _sysctl

  • umount

  • umount2

  • unshare

  • uselib

  • userfaultfd

  • ustat

  • vm86

  • vm86old