Dockerized ROS Node, позволяющий контролировать мобильных роботов с ROS с Logitech F710 Gamepad. Joy2twist node преобразует сообщение sensor_msgs/Joy
в geometry_msgs/Twist
чтобы обеспечить команды скорости для мобильного робота. Поэтому этот пакет соответствует (но не поддерживается Husarion) с любым другим контроллером Gamepad, который может публиковать сообщение sensor_msgs/Joy
.
Подключите радость через Nano USB -приемник и убедитесь, что он находится в режиме DirectInput (переключатель перед накладкой с буквами D и X , выберите D ).
Чтобы проверить, работает ли радость, используйте jstest /dev/input/js0
. Если выход:
jstest: No such file or directory
См ls /dev/input | grep js
и найдите свой номер радости. Если он отличается, примените изменения в compose.yaml и запуск файла.
ROS2 Дистриблент | Поддерживаемые архитектуры |
---|---|
galactic | linux/amd64 , linux/arm64 |
humble | linux/amd64 , linux/arm64 |
Доступно в Docker Hub
Проверкайте правильную прошивку:
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 к Rosbot XL и запустите (на Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
Проверкайте правильную прошивку:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Подключите Logitech F710 Dongle к Rosbot 2R и запустите (на Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Подключите USB -ключ Logitech F710 к вашему ПК. Клонировать это репо своему компьютеру и перейдите в каталог joy2twist/demo/
и запустите в отдельном терминале:
./sync_with_robot.sh < YOUR_ROSBOT_IP >
Измените пространство имен в файле multiple_robots/.env
:
ROS_NAMESPACE=robot1
Теперь SSH своему роботу:
ssh husarion@ < YOUR_ROSBOT_IP >
Перейдите в папку /home/husarion/demo/multiple_robots
и запустите контейнер для Rosbot:
docker compose -f compose.rosbot2r.yaml up
Фильтрация темы
Если вы будете проверить на ПК доступные узлы ROS 2, которые вы получите:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutОбратите внимание, что тема Single
/robot1/cmd_vel
доступна вне робота благодаря конфигурации из файлаros2router_config.yaml
.Чтобы контролировать робота с помощью TeleoP, просто запустите:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
Чтобы запустить контейнер joy2twist
выполнить следующую команду на вашем ПК в каталоге joy2twist/demo/multiple_robots
:
docker compose -f compose.pc.yaml up