Dockerisierter ROS-Knoten, der die Kontrolle von ROS-betriebenen mobilen Robotern mit Logitech F710-Gamepad ermöglicht. Der Joy2TWist -Knoten konvertiert sensor_msgs/Joy
-Nachricht in geometry_msgs/Twist
um Geschwindigkeitsbefehle für den mobilen Roboter bereitzustellen. Daher ist dieses Paket konform (aber nicht von Husarion unterstützt) mit einem anderen Gamepad -Controller, der die sensor_msgs/Joy
-Nachricht veröffentlichen kann.
Schließen Sie Joy über den Nano -USB -Empfänger an und stellen Sie sicher, dass es sich im DirectInput -Modus befindet (wechseln Sie vorne mit Buchstaben D und X , wählen Sie D ).
Verwenden Sie zum Testen, ob Joy funktioniert, jstest /dev/input/js0
. Wenn die Ausgabe ist:
jstest: No such file or directory
Siehe ls /dev/input | grep js
und finde deine Freude. Wenn es sich unterscheidet, wenden Sie Änderungen in compose.yaml an und starten Sie die Datei.
Ros2 Distribution | Unterstützte Architekturen |
---|---|
galactic | linux/amd64 , linux/arm64 |
humble | linux/amd64 , linux/arm64 |
Verfügbar auf Docker Hub
Flash die richtige Firmware:
docker stop rosbot-xl microros || true &&
docker run --rm -it --privileged
--mount type=bind,source=/dev/ttyUSBDB,target=/dev/ttyUSBDB
husarion/rosbot-xl:humble-0.8.2-20230913
flash-firmware.py -p /dev/ttyUSBDB
Logitech F710 Dongle an den Rosbot XL anschließen und rennen (auf Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
Flash die richtige Firmware:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Schließen Sie Logitech F710 -Dongle an den Rosbot 2R an und rennen Sie (auf Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Schließen Sie einen Logitech F710 USB -Dongle an Ihren PC an. Klonen Sie dieses Repo zu Ihrem PC, gehen Sie zum joy2twist/demo/
Verzeichnis und laufen Sie in einem separaten Terminal:
./sync_with_robot.sh < YOUR_ROSBOT_IP >
Ändern Sie den Namespace in der Datei multiple_robots/.env
:
ROS_NAMESPACE=robot1
Jetzt SSH zu Ihrem Roboter:
ssh husarion@ < YOUR_ROSBOT_IP >
Gehen Sie zum Ordner /home/husarion/demo/multiple_robots
und starten Sie den Container für Rosbot:
docker compose -f compose.rosbot2r.yaml up
Themenfilterung
Wenn Sie dann den PC überprüfen, erhalten Sie die verfügbaren ROS 2 -Knoten, die Sie erhalten:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutBeachten Sie, dass das Thema Single
/robot1/cmd_vel
dank der Konfiguration aus der Dateiros2router_config.yaml
außerhalb des Roboters verfügbar ist.Um den Roboter mithilfe des Teleops zu steuern, rennen Sie einfach:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
Um den joy2twist
-Container auszuführen, führen Sie den folgenden Befehl auf Ihrem PC im Verzeichnis joy2twist/demo/multiple_robots
aus:
docker compose -f compose.pc.yaml up