robco_hardware
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.
Das Paket robco_hardware stellt ein ros2_control-Hardware-Interface für RobCo-Roboter
bereit.
Die ROS-2-Schnittstelle wird derzeit nicht standardmäßig auf RobCo-Robotern ausgeliefert. Wenn Sie die ROS-2-Schnittstelle auf Ihrem RobCo-Roboter nutzen möchten, wenden Sie sich bitte an den RobCo-Support.
Das Hardware-Interface verwenden
Die ROS-Schnittstelle ist beim Start der Control Unit des Roboters deaktiviert und muss vor der Nutzung des Hardware-Interface über die RobFlow-API aktiviert werden. Das ist im Browser möglich und unter Das Hardware-Interface verwenden beschrieben.
Standardmäßig erwartet das Hardware-Interface, über die Topics robco_joint_states und
robco_joint_commands mit der auf dem Controller laufenden ROS-Bridge zu kommunizieren. Diese
Topic-Namen lassen sich über die optionalen Parameter joint_states_topic und
joint_commands_topic am XML-Tag <hardware> der URDF-Datei konfigurieren, wie unter
Die URDF-Datei zusammensetzen
gezeigt.
Bereitgestellte Command-Interfaces
Das Hardware-Interface stellt die folgenden Arten von Command-Interfaces bereit:
position+velocity+acceleration(müssen alle gleichzeitig aktiv sein)effort(Gelenkmoment)
Zu jedem Zeitpunkt muss an allen Gelenken des Roboters derselbe Satz von Command-Interfaces aktiv sein. Ein Gelenk kann also keinen anderen Satz von Command-Interfaces verwenden als ein anderes.
Interface für Gelenkposition/-geschwindigkeit/-beschleunigung
Sind die Interfaces position, velocity und acceleration aktiv, arbeitet der interne
Controller im Modus Trajektorien-Streaming. Die internen Sollwerte für Gelenkposition,
-geschwindigkeit und -beschleunigung werden unmittelbar aus den von ros2_control kommenden
Werten übernommen.
Interface für das Gelenkmoment (effort)
Ist nur das Interface effort aktiviert, arbeitet der interne Controller im Modus
Drehmoment-Streaming. In diesem Modus kompensiert der Controller ausschließlich die
Gravitation (τg) und die Coriolis-Kräfte (τcoriolis). Der
effort-Befehl (τROS) wird anschließend addiert, um den endgültigen
Drehmomentvektor zu bilden, der an die Motoren kommandiert wird:
τmotor = τROS + τg + τcoriolis