Zum Hauptinhalt springen

robco_description

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.

hinweis

Eine Anleitung, wie Sie eine URDF-Datei für eine bestimmte Roboterkonfiguration erstellen, finden Sie unter Eine URDF-Datei erstellen.

Das Paket robco_description stellt eine URDF-Bibliothek mit xacro-Makros für alle Module von RobCo-Robotern bereit. So lässt sich jede Modulkonfiguration einfach abbilden. Die folgende URDF-Datei zum Beispiel:

<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" />
</robot>

ergibt diese Roboterkonfiguration:

Demo-URDF, visualisiert in rviz2

Unterstützung für ros2_control

Das ros2_control-Framework benötigt einige Angaben in der URDF-Datei — mindestens, welche Command-Interfaces an jedem Gelenk unterstützt werden. Um diese Makros automatisch einzufügen, können die bereitgestellten robco_ros2_control-Makros wie in der folgenden URDF-Datei verwendet werden:

<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>
</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>