Sehr sehr sehr lange hat sich bei meinem Roboter minibot nichts mehr getan, aber das soll sich nun wieder etwas ändern.
Nachdem in einem der der letzten Beiträge die Steuerung des Roboter per Gamepad an einem „remote“ Laptop umgesetzt hatte, wollte ich meinen Roboter nun auch direkt ohne Laptop steuern können – solange er noch immer nicht autonom fährt.
Dazu hatte ich mir bereits vor langer Zeit einen Microsoft Xbox Controller mit Wireless Adapter zugelegt. Dieser funktioniert unter Ubuntu Linux nämlich out of the box.
Um es vorweg zu nehmen, so sieht die Steuerung (derzeit noch per Tasten) derzeit aus:
Um den Controller unter ROS zu nutzen, müssen noch zwei ROS-Pakete installiert werden:
sudo apt-get install joystick ros-kinetic-joystick-drivers
Alle Sourcecodes dazu findest du in meinem GitHub-Repository. Das „Übertragen“ der Controller-Tasten „startet“ im Launchfile joystick_in_robot.launch. In diesem lässt sich auch die Geschwindigkeit des Bots einstellen; und zwar separat die Fahr- und die Drehgeschwindigkeit (0-254). Denn beim Drehen erzeigen die vier Räder eine hohe Reibung, sodass ich hier eine höhere Geschwindigkeit wählte. Auch der Joystickport (Pfad) lässt sich dort eintragen; zum Beispiel „/dev/input/js0“.
Mein Node joy_motor_listener hört dann auf die Gamepad-Tasten und sendet an den Knoten motor_server die Signale für die Motoren (Richtung und Geschwindigkeit).