Servo Relay Node for ROS 2
Dieses Repository enthält einen ROS 2–Knoten, der Servo-Befehle von einem Topic empfängt und über einen Service an die Studica-Hardware weiterleitet. Damit lässt sich die normalerweise service-basierte Servo-Ansteuerung in ein Topic-basiertes Paradigma überführen und in Netzwerkanwendungen (z. B. Flask-basierten Steuerungs-UIs) integrieren.
- Topic Subscription: Der Knoten lauscht auf
/<servo_name>/angle_cmd(z. B./servo1/angle_cmd) auf Nachrichten vom Typstd_msgs/Int32. - Service-Aufruf: Eingehende Winkelbefehle werden in einen
SetData-Service-Request übersetzt und asynchron an/<servo_name>/set_servo_anglegesendet. - Feedback-Logging: Erfolgreiche oder fehlgeschlagene Service-Aufrufe werden über das ROS-Logger-Interface ausgegeben.
-
Klonen dieses Repositories in dein ROS 2–Arbeitsverzeichnis:
cd ~/ros2_ws/src git clone https://github.com/Merlin2LmmL/servo-helpers.git
-
Abhängigkeiten installieren (z. B. aus
package.xml):cd ~/ros2_ws rosdep update rosdep install --from-paths src --ignore-src -r -y
-
Build:
colcon build --packages-select servo_helpers source install/setup.bash
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
servo_name |
string |
servo1 |
Name des Servos (muss konfiguriert sein) |
ros2 run servo_helpers servo_relay_node --ros-args -p servo_name:=<dein_servo_name>Beispiel:
ros2 run servo_helpers servo_relay_node --ros-args -p servo_name:=servo2Dieses Paket bildet die Basis, um Servo-Befehle in Web-Interfaces verfügbar zu machen:
- Flask-Server: Nutze FlaskRobotControl, um eine Web-Oberfläche aufzusetzen.
- Topic Publisher: Innerhalb der Flask-Anwendung publishst du auf
/<servo_name>/angle_cmd. - Netzwerksteuerung: Dadurch können Servos lokal im Netzwerk vom Browser aus angesteuert werden.
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für Details.