Робот-собака МОРС
  • Общая информация
  • Технические характеристики
  • Комплект поставки
  • Безопасность
  • Быстрый старт
  • Полезные ссылки
  • Обозначения
  • Настройка и обслуживание
    • Джойстик 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. Устройство робота

Программное обеспечение

PreviousЭлектроникаNextФайлы и папки в системе

Last updated 7 months ago

На изображении представлена архитектура ПО робота, которое загружается при старте системы. Управление локомоцией осуществляется на базе ROS. Взаимодействие с сервоприводами происходит по протоколу .

На схеме синим показаны стрелки, обозначающие ROS-топики, зеленым - каналы LCM. Красные блоки подразумевают аппаратную часть робота, синие - программные модули.

Программа управления передвижением полностью выполняется на бортовом компьютере робота. Внешний компьютер может служить для установки желаемых параметров, отслеживания состояния робота, либо для выполнения дополнительных алгоритмов.

Программное обеспечение имеет следующие блоки:

  1. locomotion_controller - выполняет алгоритм локомоции. На основе желаемых параметров (скорость, положение корпуса, положение ног, угловое положение приводов), данных с IMU и энкодеров в сочленениях ног, формирует желаемые углы для сервоприводов.

  2. radiolink_teleop - читает данные с джойстика RadioLink T8S по радиоканалу и преобразует их в задающие параметры для алгоритма локомоции, передавая их в виде сообщений ROS.

  3. robogui - программа с графическим интерфейсом для запуска на внешнем компьютере. Предназначена для формирования команд роботу и для отслеживания текущего состояния.

  4. cmd_commutator - принимает сообщения от всех включенных в данный момент задающих устройств (ПК, джойстики и т.д.), и выводит сообщения самого приоритетного из них. Поддерживает до четырех разных устройств.

  5. power_bridge - осуществляет обмен данными с платой питания робота, взаимодействует с пьезодинамиком, светодиодами и кнопками.

  6. status_tracker - задает действие в соответсвии нажатой кнопки: кнопка экстренного торможения - сброс питания пользовательская кнопка - переход в режим переноски

  7. servo_state_lcm2ros - преобразует сообщения о состоянии сервоприводов из LCM в ROS.

bhi360_imu_node - читает данные с IMU BHI360 по USB HID и передает их по ROS и LCM-каналу. Основан на базе данного .

robot_state_publisher - стандартный ROS-модуль. Необходим для преобразования данных о состоянии робота в , который затем может использоваться пакетом rviz для графического отображения положения робота.

plotjuggler - программный пакет с , поддерживает ROS и предназначен для построения графиков в реальном времени.

Более подробно о каждом блоке и его параметрах, топиках и сервисах можно почитать в раделах , , , .

модуля
tf2
открытым исходным кодом
ROS-топики
ROS-пакеты
ROS-сервисы
LCM-каналы
LCM