Nœud ROS dockerisé permettant le contrôle des robots mobiles alimentés par ROS avec Logitech F710 GamePad. Le nœud Joy2TWist convertit sensor_msgs/Joy
Message en geometry_msgs/Twist
afin de fournir des commandes de vitesse pour le robot mobile. Par conséquent, ce package est conforme (mais non pris en charge par Husarion) avec tout autre contrôleur GamePad qui est capable de publier le message sensor_msgs/Joy
.
Connectez la joie via le récepteur Nano USB et assurez-vous qu'il est en mode DirectInput (communiquez à l'avant sur le pad avec les lettres D et X , sélectionnez D ).
Pour tester si Joy fonctionne, utilisez jstest /dev/input/js0
. Si la sortie est:
jstest: No such file or directory
Voir ls /dev/input | grep js
et trouvez votre numéro de joie. Si cela diffère, appliquez des modifications dans Compose.yaml et le fichier de lancement.
Distro ROS2 | Architectures soutenues |
---|---|
galactic | linux/amd64 , linux/arm64 |
humble | linux/amd64 , linux/arm64 |
Disponible sur Docker Hub
Flasher le bon 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
Connectez le dongle Logitech F710 au Rosbot XL et Run (sur Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
Flasher le bon firmware:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Connectez le dongle Logitech F710 au Rosbot 2R et Run (sur Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Connectez un dongle USB Logitech F710 à votre PC. Clone ce dépôt sur votre PC et accédez au répertoire joy2twist/demo/
et exécutez dans un terminal séparé:
./sync_with_robot.sh < YOUR_ROSBOT_IP >
Modifiez l'espace de noms dans le fichier multiple_robots/.env
:
ROS_NAMESPACE=robot1
Maintenant ssh à votre robot:
ssh husarion@ < YOUR_ROSBOT_IP >
Accédez au dossier /home/husarion/demo/multiple_robots
et lancez le conteneur pour Rosbot:
docker compose -f compose.rosbot2r.yaml up
Filtrage du sujet
Si vous vérifiez ensuite sur le PC les nœuds ROS 2 disponibles, vous obtiendrez:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutNotez que Nly le sujet unique
/robot1/cmd_vel
est disponible en dehors du robot grâce à la configuration du fichierros2router_config.yaml
.Pour contrôler le robot en utilisant le téléop, il suffit d'exécuter:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
Pour exécuter le conteneur joy2twist
exécutez la commande suivante sur votre PC dans le répertoire joy2twist/demo/multiple_robots
:
docker compose -f compose.pc.yaml up