joy_converter
Описание пакета joy_converter
Данный пакет осуществляет перевод данных джойстика, поступающих с пакета Joy, в управляющие команды для МОРСа (в частности, cmd_commutator).
По умолчанию joy_converter шлёт данные в семейство топиков /joy_converter:
/joy_converter/cmd_vel
/joy_converter/cmd_pose
/joy_converter/ef_position/command
/joy_converter/joint_group_position_controller/command
/joy_converter/status
Если вы используете пакет навигации, замените /joy_converter на /nav в конфиг-файлах пакетов cmd_comutator и joy_converter
Также пакеты вызывает следующие сервисы:
Настройка пакета производится через конфигурационный файл.
Если вы хотите сконфигурировать пакет локально, то используйте файл: mors_base/joy_converter/config/joy_converter_config.yaml
Эта конфигурация используется при ручном запуске конкретно этого пакета
(команды roslaunch joy_converter joy_converter_start.launch
или
rosrun joy_converter joy_converter_main.py
, во втором варианте запустите Joy)
Если вы хотите сконфигурировать пакет, чтобы конфигурация учитывалась при запуске через roslaunch mors bringup_sim.launch
тогда используйте файл: mors_base/mors/config/joy_converter_config.yaml
Схема работы
С самим джойстиком взаимодействует стандартный ROS-пакет Joy (см. подробнее). Он публикует сообщение, имеющее два поля: Joy.axes и Joy.buttons в топик /joy. Внутри каждого поля находится массив значений.
Пакет joy_converter анализирует сообщения пакета Joy и выполняет и посылает команды в топики МОРСа: переключает режимы, задает скорость и направление ходьбы, управляет положением корпуса.
Для корректной работы joy_converter необходимо в его config-файле описать какое значения массива за какую кнопку/стик джойстика отвечает.
Описание конфигурационного файла
Стандартный пакет Joy выдает сообщение, имеющее два поля: Joy.axes и Joy.buttons. Внутри каждого поля находится массив значений. За сопоставление наименования кнопки и порядкового номера в массиве отвечает блок joystick_config в файле joy_converter_config.yaml.
Поле joystick_config содержит дефолтные значения, которые подходят для популярных джойстиков: Logitech Gamepad F710, Microsoft X-Box 360 pad.
Настройка конфигурационного файла под нестандартный джойстик
Если преднастроенные параметры вам не подходят то отредактируйте поле следующим образом:
Запустите пакет Joy и подпишитесь на его топик /joy
В первом терминале запустите roscore командой
roscore
Во втором терминале запустите пакет Joy командой
rosrun joy joy_node
В третьем терминале подпишитесь на топик командой
rostopic echo /joy
Если после команды rostopic echo /joy
ничего не появляется, значит в пакет Joy "не видит" ваш джойстик в ПК.
Нажимайте кнопки и двигайте стики, отмечая какое значение в сообщении топика меняется
Названия кнопок в конфигурационном файле и места, где они расположены на джойстике:
Первое значение (в примере выше: 0) отвечает за поле сообщения Joy (Joy.axes или Joy.buttons) откуда брать значения. 0 - Joy.axes, 1 - Joy.buttons
Второе значение (в примере выше: 3) отвечает за порядковый номер массиве значения этого поля. Нумерация ведётся с нуля.
Таким образом, данные для rstick_x хранятся в сообщении топик /joy в следующем месте:
Сопоставьте все кнопки и стики джойстика в конфигурационном файле и сохраните его
Правильность настройки конфигурационного файла можно проверить, запустив симуляцию с джойстиком (см. подробнее)
Last updated