El nodo ROS documentado que permite el control de los robots móviles con ROS con Logitech F710 Gamepad. Joy2Twist Node está convirtiendo el mensaje sensor_msgs/Joy
en geometry_msgs/Twist
para proporcionar comandos de velocidad para el robot móvil. Por lo tanto, este paquete cumple (pero no es compatible con Husarion) con cualquier otro controlador de Gamepad que pueda publicar el mensaje sensor_msgs/Joy
.
Conecte la alegría a través del receptor Nano USB y asegúrese de que esté en modo DirectInput (cambie delante de la almohadilla con letras D y X , seleccione D ).
Para probar si la alegría funciona, use jstest /dev/input/js0
. Si la salida es:
jstest: No such file or directory
Ver ls /dev/input | grep js
y encuentra tu número de alegría. Si difiere, aplique cambios en Compose.yaml y inicie el archivo.
Ros2 Distro | Arquitecturas compatibles |
---|---|
galactic | linux/amd64 , linux/arm64 |
humble | linux/amd64 , linux/arm64 |
Disponible en Docker Hub
Flashear el firmware correcto:
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
Conecte el dongle Logitech F710 al Rosbot XL y ejecute (en Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
Flashear el firmware correcto:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Conecte el dongle Logitech F710 al Rosbot 2R y ejecute (en Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Conecte un dongle USB Logitech F710 a su PC. Clone este repositorio a su PC y vaya al directorio joy2twist/demo/
ejecute en un terminal separado:
./sync_with_robot.sh < YOUR_ROSBOT_IP >
Cambie el espacio de nombres en el archivo multiple_robots/.env
:
ROS_NAMESPACE=robot1
Ahora ssh a tu robot:
ssh husarion@ < YOUR_ROSBOT_IP >
Vaya a la carpeta /home/husarion/demo/multiple_robots
, y inicie el contenedor para rosbot:
docker compose -f compose.rosbot2r.yaml up
Filtrado de temas
Si lo considera, consulta en la PC los nodos ROS 2 disponibles que obtendrá:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutTenga en cuenta que el tema único
/robot1/cmd_vel
está disponible fuera del robot gracias a la configuración del archivoros2router_config.yaml
.Para controlar el robot usando el Telop, simplemente ejecute:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
Para ejecutar el contenedor joy2twist
ejecute el siguiente comando en su PC en el directorio joy2twist/demo/multiple_robots
:
docker compose -f compose.pc.yaml up