Робот-собака МОРС
  • Общая информация
  • Технические характеристики
  • Комплект поставки
  • Безопасность
  • Быстрый старт
  • Полезные ссылки
  • Обозначения
  • Настройка и обслуживание
    • Джойстик RadioLink T8S
    • Зарядка батареи
    • Выключение робота
    • Подключение к роботу по сети
      • Параметры точки доступа
      • Подключение через SSH
      • Подключение через Remote Desktop Protocol (RDP)
      • Подключение через SFTP
      • Настройка VSCode
    • Подключение робота к Интернету
    • Подключение к ROS на роботе
    • Установка ПО
    • Графический интерфейс
    • Ubuntu-сервис
    • Смена пароля пользователя
    • Обновление дампа памяти BLDC драйвера 10А
    • Замена приводного ремня
    • Переинициализация приводов
    • Подключение дополнительных устройств
      • Подключение головы VBRoboHead
      • Подключение видеокамеры Intel Realsense D435i
      • Подключение видеокамеры Luxonis OAK-D Lite
      • Подключение лидара RPLIDAR A1M8-R5
    • Обновление управляющего ПО
    • Возврат к заводским настройкам
    • Устранение неполадок
  • Симуляция
    • Описание имитационной модели
    • Параметры файла bringup_sim.launch
    • Подключение джойстиков к ПК
    • ROS-параметры
    • OpenAI Gymnasium
  • Устройство робота
    • Электроника
    • Программное обеспечение
    • Файлы и папки в системе
    • Советы по разработке собственного ПО
    • Примеры
    • ROS-пакеты
      • mors_hardware
        • bhi360_imu_node
        • ds4_teleop
        • power_bridge
        • radiolink_teleop
        • status_tracker
      • mors_base
        • champ_msgs
        • cmd_commutator
        • joy_converter
        • locomotion_controller
        • log_writer
        • mors
        • servo_state_lcm2ros
        • servo_cmd_ros2lcm
      • mors_pc
        • robogui
        • mors_sim
    • ROS-топики
    • ROS-сервисы
      • robot_mode
      • robot_action
      • stride_height
      • joints_kp
      • joints_kd
    • LCM-каналы
Powered by GitBook
On this page
  • Схема работы
  • Описание конфигурационного файла
  • Настройка конфигурационного файла под нестандартный джойстик
  1. Устройство робота
  2. ROS-пакеты
  3. mors_base

joy_converter

Описание пакета joy_converter

Previouscmd_commutatorNextlocomotion_controller

Last updated 7 months ago

Данный пакет осуществляет перевод данных джойстика, поступающих с пакета 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 в конфиг-файлах пакетов и

Также пакеты вызывает следующие сервисы:

/

/

/


Настройка пакета производится через конфигурационный файл.

Если вы хотите сконфигурировать пакет локально, то используйте файл: 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


Схема работы

Пакет joy_converter анализирует сообщения пакета Joy и выполняет и посылает команды в топики МОРСа: переключает режимы, задает скорость и направление ходьбы, управляет положением корпуса.

Для корректной работы joy_converter необходимо в его config-файле описать какое значения массива за какую кнопку/стик джойстика отвечает.

Описание конфигурационного файла

# joy_converter_config.yaml

joystick_config:
# rstick_x: [0,3]:
# '0' - get data from Joy.axes or Joy.buttons:
# 0 - Joy.axes, 1 - Joy.buttons
# '3' - index in array. Array in Joy.axes/Jot.buttons
  {
  rstick_x: [0,3],
  rstick_y: [0,4],
  lstick_x: [0,0],
  lstick_y: [0,1],
  rbtn_small: [1,5],
  rbtn_big: [0,5],
  rstick_btn: [1,10],
  lbtn_small: [1,4],
  lbtn_big: [0,2],
  lstick_btn: [1,9],
  lpad_x: [0,6],
  lpad_y: [0,7],
  rpad_down: [1,0],
  rpad_left: [1,2],
  rpad_up: [1,3],
  rpad_right: [1,1],
  start_btn: [1,7],
  mode_btn: [1,6],
  joy_btn: [1,8]
  }

Поле 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 в следующем месте:

  • Сопоставьте все кнопки и стики джойстика в конфигурационном файле и сохраните его

С самим джойстиком взаимодействует стандартный ROS-пакет Joy (см. ). Он публикует , имеющее два поля: Joy.axes и Joy.buttons в топик /joy. Внутри каждого поля находится массив значений.

Стандартный пакет Joy выдает , имеющее два поля: Joy.axes и Joy.buttons. Внутри каждого поля находится массив значений. За сопоставление наименования кнопки и порядкового номера в массиве отвечает блок joystick_config в файле joy_converter_config.yaml.

В конфигурационном файле joy_converter_config.yaml каждой кнопке сопоставлен массив из двух значений:

Правильность настройки конфигурационного файла можно проверить, запустив симуляцию с джойстиком (см. )

cmd_comutator
joy_converter
robot_mode
robot_action
stride_height
подробнее
сообщение
сообщение
подробнее
Рис. 1 - пример сообщения из топика /joy
Рис. 2 - обозначения кнопок на джойстике
Рис. 3 - расположение данных rstick_x в сообщении Joy