Робо-голова
  • Общая информация
  • Технические характеристики
  • Комплект поставки
  • Полезные ссылки
  • Быстрый старт
  • Настройка и обслуживание
    • Подключение к Робоголове по сети
      • Настройка подключения к Сети
      • Подключение по SSH к Робоголове
      • Подключение по SFTP
      • Подключение через VSCode
    • Смена данных устройства
    • Выключение головы
    • Возврат к заводским настройкам
    • Ubuntu-сервис
    • Подключение аккумулятора
    • Зарядка батареи
    • Подключение сервоприводов к плате расширения
  • Интеграция с роботом TurtleBro
  • Устройство головы
    • Аппаратная конфигурация
    • Программное обеспечение
    • ROS-пакеты
      • robohead_controller
      • display_driver
      • neck_driver
      • ears_driver
      • speakers_driver
      • respeaker_driver
      • voice_recognizer_pocketsphinx
        • ROS-нода ~kws_recognizer
        • ROS-нода ~cmds_recognizer
        • Настройка собственных команд и ключевых слов для распознавания
      • sensor_driver
      • usb_cam
  • Кейсы взаимодействия
    • 1. Смена ресурс-пака стандартных действий
    • 2. Внесение изменений в стандартные действия
    • 3. Написание своего действия для robohead_controller
    • 4. Создание своих сценариев взаимодействия без использования robohead_controller
    • 5. Создание ROS-пакета со своим сценарием взаимодействия и его автозагрузка
Powered by GitBook
On this page
  1. Устройство головы
  2. ROS-пакеты

neck_driver

Previousdisplay_driverNextears_driver

Last updated 1 month ago

Пакет позволяет взаимодействовать с шейным суставом головы: плавно перемещать голову по двум углам.


Запуск пакета через CLI:

перед экспериментами отключите все запущенные пакеты. В частности, остановите , чтоб отключить пакеты, запущенные автоматичеси: sudo systemctl stop robohead.service

roslaunch neck_driver neck_driver_py.launch

Для установки положения шейного сустава воспользуйтесь ROS-сервисом /neck_driver/NeckSetAngle с типом сообщения neck_driver/NeckSetAngle:

rosservice call /neck_driver/NeckSetAngle "vertical_angle: 15
horizontal_angle: 0
duration: 1.5
is_blocking: 1" 

Обозначения:

  • vertical_angle - угол поворота по вертикали (тангаж), градусы-degrees

  • horizontal_angle - угол поворота по условной горизонтали (рысканье), градусы-degrees

  • duration - время, за которое голова должна достичь заданного положения, секунды

  • is_blocking - блокирующий ли вызов, 0-нет, 1-да

Углы задавайте в небольшом диапазоне: -30...30 градусов, чтобы избежать резких движений и повреждения конструкции.

Если указать duration равным нулю, то голова достигнет заданного положения с максимальной скоростью - не рекомендуется использовать такое значения.

#TODO update photo:

Возвращаемые значения при вызове сервиса:

  • 0 - успешный вызов

  • -1 - угол по вертикали не подходит под ограничения (см. конфигурационный файл neck_driver.yaml)

  • -2 - угол по горизонтали не подходит под ограничения (см. конфигурационный файл neck_driver.yaml)

  • -3 - отрицательное значение длительности движения (должно быть >=0)


Пример управления шеей на Python:

rosrun neck_driver example_zigzag.py

Файлы примеров расположены в директории examples этого пакета.


Конфигурационный файл neck_driver/config/neck_driver.yaml

  • service_name - название сервиса, по которому устанавливается положение шеи

  • std_vertical_angle - стандартное положение головы по вертикали (при включении)

  • std_horizontal_angle - стандартное положение головы по горизонтали (при включении)

  • servo_1_channel - канал на плате расширения, к которому подключен сервопривод 1

  • servo_2_channel - канал на плате расширения, к которому подключен сервопривод 2

  • servo_1_coef - линейное смещение, которе учитывается при вычислении угла сервопривода 1

  • servo_2_coef - линейное смещение, которое учитывается при вычислении угла сервопривода 2

  • constraints: v_from и v_to - диапазон допустимых углов по вертикали

  • constraints: h_from и h_to - диапазон допустимых углов по горизонтали

  • i2c_address - i2c адрес PWM-контроллера сервоприводов

Ubuntu-сервис
Направления углов