Zum Hauptinhalt springen

Eine URDF-Datei erstellen

Veraltete Dokumentation

Dieser Bereich beschreibt die robco_ros2-Integration in der mit RobFlow 7.x ausgelieferten Form. Er wurde nicht für RobFlow 8 aktualisiert, und die Schnittstelle ist in aktuellen Systemen nicht verfügbar.

Eine URDF-Datei (Unified Robot Description Format) ist für den Betrieb eines Roboters im ROS-Ökosystem unverzichtbar. Sie beschreibt Kinematik, Dynamik und weitere Parameter des Roboters in einem standardisierten Format.

hinweis

Aufgrund des modularen Aufbaus von RobCo-Robotern lässt sich eine sehr große Zahl unterschiedlicher Roboterkonfigurationen aus RobCo-Modulen zusammensetzen, sodass keine vorkonfigurierte URDF-Datei bereitgestellt werden kann. Stattdessen stellen wir xacro-Makros für jedes Modul unseres Katalogs bereit. So lässt sich zu einer gegebenen Roboterkonfiguration (einer Liste von Modultyp-IDs) leicht eine URDF-Datei erzeugen.

Modultyp-IDs ermitteln

Jedem RobCo-Modultyp ist eine eindeutige numerische Modultyp-ID zugeordnet. Um die Modultyp-IDs des angeschlossenen Roboters zu ermitteln, können Sie das Topic /robco_robot_composition verwenden:

ros2 topic echo /robco_robot_composition

Zurückgegeben wird eine Liste von Modultyp-IDs. Mit ihr lässt sich eine URDF-Datei für den angeschlossenen Roboter zusammensetzen.

Die URDF-Datei zusammensetzen

Für die obige Roboterkonfiguration lässt sich eine URDF-Datei der folgenden Form erstellen:

<?xml version="1.0" ?>

<robot name="robco" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="$(find robco_description)/urdf/robco_modules.xacro" />
<xacro:include filename="$(find robco_description)/urdf/robco.ros2_control.xacro" />

<!-- Modultyp-IDs: 304, 301, 318, 300, 300, 8, 300, 300, 800 -->
<xacro:robco_module_0304 name="joint0" next="joint1" />
<xacro:robco_module_0301 name="joint1" next="link0" />
<xacro:robco_module_0318 name="link0" next="joint2" />
<xacro:robco_module_0300 name="joint2" next="joint3" />
<xacro:robco_module_0300 name="joint3" next="link1" />
<xacro:robco_module_0008 name="link1" next="joint4" />
<xacro:robco_module_0300 name="joint4" next="joint5" />
<xacro:robco_module_0300 name="joint5" next="tool" />
<xacro:robco_module_0800 name="tool" />

<!-- ros2_control-Konfiguration für die oben definierten Gelenke -->
<ros2_control name="RobcoRobot" type="system">
<hardware>
<plugin>robco_hardware/RobcoHardware</plugin>
<param name="joint_states_topic">robco_joint_states</param>
<param name="joint_commands_topic">robco_joint_commands</param>
</hardware>
<xacro:robco_ros2_control_joint joint_name="joint0" />
<xacro:robco_ros2_control_joint joint_name="joint1" />
<xacro:robco_ros2_control_joint joint_name="joint2" />
<xacro:robco_ros2_control_joint joint_name="joint3" />
<xacro:robco_ros2_control_joint joint_name="joint4" />
<xacro:robco_ros2_control_joint joint_name="joint5" />
</ros2_control>
</robot>

Wird diese Datei durch xacro verarbeitet, expandiert das die Makros aus dem Paket robco_description — mit Kinematik, Trägheitsparametern und 3D-Modellen für Visualisierung und Kollisionen. Über die optionalen Parameter joint_states_topic und joint_commands_topic lassen sich die Topics des Hardware-Interface anpassen.

Weitere Details zu den bereitgestellten Makros und Dateien finden Sie unter robco_description.