Verwendung exportierter Welten in der Simulation - 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.

Verwendung exportierter Welten in der Simulation

Die Simulation WorldForge kann verwendet werden, um Welten zu erstellen, mit denen sie verwendet werden könnenAWS RoboMaker. Sobald Welten erstellt wurden, müssen sie exportiert werden, um sie in Simulationen zu verwenden. Sie können auch Welten hochladen, um sie in Ihrer Simulation zu verwenden.

Der Export von Welten bietet die Möglichkeit, Folgendes zu nutzen:

  • Physik, die sich von der Standard-SDF-Physik unterscheidet

  • Spezielle Beleuchtung

  • Maßgeschneiderte Modelle

In den folgenden Abschnitten erhalten.

Wichtig

Weitere Informationen darüber, wie Ihnen das in Rechnung gestellt wirdAWS RoboMaker, finden Sie unter AWS RoboMaker Preise.

Eine exportierte Welt als Datenquelle verwenden

Mit Simulation können Sie Welten exportieren WorldForge, die Sie in Ihrer ROS-Umgebung verwenden können. Die Welt, die Exportieren von. Exportieren Amazon S3. In diesem Abschnitt wird beschrieben, wie Sie eine exportierte Welt in einem Amazon S3-Bucket in einem Simulationsjob verwenden. Dazu werden Anweisungen zum Anpassen der Startdatei gegeben und anschließend ein Simulationsjob entweder über die BefehlszeilenschnittstelleAWS Management Console oder mithilfe der Befehlszeilenschnittstelle erstellt.

Sie müssen zuerst die Startdatei Ihrer Simulationsanwendung aktualisieren, bevor Sie dasAWS Management Console oder verwendenAWS CLI, um eine Datenquelle hinzuzufügen.

So aktualisieren Sie Ihre Simulationsstartdatei:
  1. Führen folgenden Startbefehaus:::

    <launch> <!-- Always set GUI to false for AWS RoboMaker Simulation Use gui:=true on roslaunch command-line to run with gzclient. --> <arg name="gui" default="false"/> <include file="$(find aws_robomaker_worldforge_worlds)/launch/launch_world.launch"> <arg name="gui" value="$(arg gui)"/> </include> <!-- Your other launch commands go here. --> </launch>

    Du kannst deinen Roboter bei spawnen(0, 0, 0). Die Welten, die Simulation WorldForge generiert, haben garantiert einen 1-Meter-Zylinder frei(0, 0, 0).

  2. Baue dein Image neu auf und drücke wie gewohnt. Weitere Informationen finden Sie unter Verwenden von Bildern zur EntwicklungAWS RoboMakerAnwendungen.

Um eine Datenquelle hinzuzufügen

Befolgen Sie die Schritte unter einer der folgenden Registerkarten:

Using the console
  1. Gehen Sie wie unter beschrieben vorEin texportaufgabe erstellen, um eine Welt zu exportieren.

  2. Fügen Sie beim Erstellen eines Simulationsjobs eine neue Datenquelle hinzu. Geben Sie der Datenquelle einen aussagekräftigen NamenWorldForge, z. B. den im Beispiel verwendeten.

  3. Identifizieren Sie optional ein Zielverzeichnis, in das Sie die Welt platzieren möchten.

    Anmerkung

    Verwenden Sie nicht Ihr Workspace-Verzeichnis als Ziel, da das Ziel mit DataSource-DateienAWS RoboMaker überschrieben wird. Stattdessen können Sie ein separates Verzeichnis unter dem Workspace angeben, z.your_workspace/src/aws_exported_world B. das Ziel.

  4. Wählen Sie Archiv als Typ aus. AWS RoboMaker entpackt die Welt in das Zielverzeichnis.

  5. Wählen Sie Browse S3 und suchen Sie den richtigen weltgenerierten Export.

  6. Fahren Sie mit der Erstellung des Simulationsjobs wie gewohnt fort.

Using the AWS CLI

Gehen Sie wie unter beschrieben vorEin texportaufgabe erstellen, um eine Welt zu exportieren.

Angenommen, der Workspace befindet sich im Container unter/home/simulation_ws, extrahiert der folgende Befehl die Welt in das Standardzielverzeichnis:

aws robomaker create-simulation-job \ --max-job-duration-in-seconds <time> \ --iam-role <IAM role ARN> \ --data-sources '[{ "name": "WorldForge", "type": "Archive", "destination": "/home/simulation_ws/src/aws_exported_world", "s3Bucket": "worldforge-test", "s3Keys": ["aws-robomaker-worldforge-export-q376mqk4z7gm.zip"] }]' \ --robot-applications <config> \ --simulation-applications <config>

Verwendung einer exportierten Welt in ROS und Gazebo

Wie im vorherigen Abschnitt erwähnt, WorldForge exportiert Simulation die von Ihnen gewählte Welt in eine einzige ZIP-Datei. Die ZIP-Datei enthält alle Ressourcen, die zum Modifizieren und Visualisieren der Welten mit ROS und Gazebo benötigt werden. Es enthält die folgenden wichtigen Ordner:

  • Der Stammordner,workspace_src, ist der ROS-Workspace. Es enthält gemeinsame Modelle, Weltdaten und andere Informationen für die Welten. Es ist kompatibel mit ROS 1 und ROS 2.

  • Geteilte Modelle werden in kopiertworkspace_src/src/aws_robomaker_worldforge_shared_models/models. Wenn derselbe Stuhl beispielsweise in mehr als einer Welt verwendet wird, wird er im gemeinsamen Modellordner abgelegt.

  • Weltdaten werden kopiertworkspace_src/src/aws_robomaker_worldforge_worlds/worlds/.

So aktualisieren Sie Ihre Simulationsstartdatei:
  1. Gehen Sie wie unter beschrieben vorEin texportaufgabe erstellen, um eine Welt zu exportieren.

  2. Unzipdie Welt in einen ROS-Workspace.

    cd MyApplication/simulation_ws unzip MyExportedWorld.zip
  3. Baue die Welt.

    rosdep install --from-paths src --ignore-src -r -y$ colcon build
  4. Starte die Welt.

    source install/setup.sh roslaunch aws_robomaker_worldforge_worlds launch_world.launch gui:=true
Um die Welt in einem Simulationsjob zu bauen und zu starten:
  1. Gehen Sie wie unter beschrieben vorEin texportaufgabe erstellen, um eine Welt zu exportieren.

  2. Importieren Sie die exportierte Welt/home/simulation_ws/src/aws_exported_world mithilfe von DataSource in das Workspace-Quellpaketverzeichnis

  3. Ändern Sie dieLaunchConfig Simulationsanwendung.

    "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", "GAZEBO_MODEL_PATH":"@GAZEBO_MODEL_PATH:/home/simulation_ws/src/aws_exported_world/aws_robomaker_worldforge_pkgs/aws_robomaker_worldforge_shared_models/models" }, "streamUI": true, "command": [ "/bin/bash", "-c", "cd /home/simulation_ws && colcon build && source install/setup.sh && roslaunch hello_world_simulation worldforge_world.launch" ] },

Verwendung einer exportierten Welt mit benutzerdefinierter Physik, Lichtern und Modellen

Wenn Ihr Simulationsszenario eine Anpassung erfordert, können Sie die Welt exportieren und modifizieren. Sie können beispielsweise benutzerdefinierte Physik und verschiedene Lichteffekte anwenden, benutzerdefinierte Modelle hinzufügen oder andere Änderungen vornehmen.

Nachdem die Welt exportiert wurde, müssen Sie die.world Datei so ändern, dass sie das exportierte Weltmodell enthält. Die.world Datei verwendet SDF. Weitere Informationen zu SDF finden Sie unter SDFormat.

Um Ihre.world Datei so zu ändern, dass sie das exportierte Weltmodell enthält:
  1. Gehen Sie wie unter beschrieben vorEin texportaufgabe erstellen, um eine Welt zu exportieren.

  2. Kopieren den folgenden Code.world in. Stellen Sie sicher, dass der Weltname mit dem exportierten Modellnamen übereinstimmt.

    <sdf version="1.6"> <world name="generation_82856b0yq33y_world_16"> <model name="WorldForge World"> <include> <uri>model://generation_82856b0yq33y_world_16</uri> </include> </model> <!-- Your other <world> elements go here --> </world> </sdf>
  3. Stellen Sie sicher, dass Ihre Startdatei die geänderte.world Datei enthält. Verwenden Sie die aktualisierte Startdatei, um Ihre Simulation zu starten.