Skip to content

A ROS 2 package that subscribes to a command topic and exposes the received commands as a service interface, enabling network-accessible control of servo motors.

License

Notifications You must be signed in to change notification settings

Merlin2LmmL/servo-helpers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

servo_helpers

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.


Inhalt


Funktionsweise

  1. Topic Subscription: Der Knoten lauscht auf /<servo_name>/angle_cmd (z. B. /servo1/angle_cmd) auf Nachrichten vom Typ std_msgs/Int32.
  2. Service-Aufruf: Eingehende Winkelbefehle werden in einen SetData-Service-Request übersetzt und asynchron an /<servo_name>/set_servo_angle gesendet.
  3. Feedback-Logging: Erfolgreiche oder fehlgeschlagene Service-Aufrufe werden über das ROS-Logger-Interface ausgegeben.

Installation

  1. Klonen dieses Repositories in dein ROS 2–Arbeitsverzeichnis:

    cd ~/ros2_ws/src
    git clone https://github.com/Merlin2LmmL/servo-helpers.git
  2. Abhängigkeiten installieren (z. B. aus package.xml):

    cd ~/ros2_ws
    rosdep update
    rosdep install --from-paths src --ignore-src -r -y
  3. Build:

    colcon build --packages-select servo_helpers
    source install/setup.bash

Parameter

Parameter Typ Default Beschreibung
servo_name string servo1 Name des Servos (muss konfiguriert sein)

Starten des Knotens

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:=servo2

Integration mit FlaskRobotControl

Dieses Paket bildet die Basis, um Servo-Befehle in Web-Interfaces verfügbar zu machen:

  1. Flask-Server: Nutze FlaskRobotControl, um eine Web-Oberfläche aufzusetzen.
  2. Topic Publisher: Innerhalb der Flask-Anwendung publishst du auf /<servo_name>/angle_cmd.
  3. Netzwerksteuerung: Dadurch können Servos lokal im Netzwerk vom Browser aus angesteuert werden.

Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für Details.

About

A ROS 2 package that subscribes to a command topic and exposes the received commands as a service interface, enabling network-accessible control of servo motors.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages