1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xshadower-openrobot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 09:29 a996ad2

openrobot

Введение

Используется архитектура «главный-подчиненный» на примере человекоподобного робота xshadower как универсальная открытая система роботов, не основанная на ROS. Система управляет реальными роботами без имитационной среды.

В этой системе используется makefile для интеграции platformIO CLI в качестве среды разработки и для объединения основного и подчинённого кода. Это удобно для интеграции с системами CI, такими как Jenkins. Главный компьютер работает под управлением Windows 10 и использует Python для управления другими компьютерами и подчинёнными устройствами. Главный компьютер использует Flask в качестве веб-интерфейса, UDP-связь для удалённого управления командами и USB-последовательный порт для связи с подчинённой системой. Другие компьютеры подключаются к главному компьютеру через проводные или беспроводные сети. Они могут использовать Jetson Nano и Raspberry Pi 3B. Подчинённая система состоит из узлов и конечных узлов. Узлы и конечные узлы могут напрямую подключаться к главному компьютеру через последовательный порт. Узлы могут использовать последовательный порт для подключения к конечным узлам, а конечные узлы не имеют дополнительных функций. Узлы используют плату разработки nucleo_f303re и операционную систему mbed для управления двигателями и передачи данных к конечным узлам. Конечные узлы используют минимальную системную плату STM32F103C8 и Arduino для управления двигателями.

Архитектура программного обеспечения

введите сюда описание изображения

Архитектура ROS слишком сложна и не имеет функций управления узлами. Эта система объединяет главный и подчинённый компоненты и обеспечивает единое управление.

Среда компиляции

  1. В настоящее время эта система работает только под операционной системой Windows и зависит от Python 3.6 и библиотек Flask, platformio и pyserial. Команда установки выглядит следующим образом: pip install --trusted-host mirrors.aliyun.com -i http://mirrors.aliyun.com/pypi/simple/ platformio
  2. Откройте командную строку cmd, чтобы активировать команду env для просмотра всех проектов роботов.
  3. Активируйте проект робота с помощью команды lunch, как показано на рисунке ниже.

введите сюда описание изображения 4. Скомпилируйте узел с помощью команды make xxx, где xxx — имя узла. Например, make right_arm компилирует узел right_arm. make right_arm-clean очищает узел right_arm и связанные с ним файлы компиляции. make clean-all очищает все файлы компиляции.

eg: make right_arm 编译名为right_arm的节点 make right_arm-clean 清除right_arm及相关编译 make clean-all清除所有编译

введите сюда описание изображения

Загрузка на целевую плату

  1. Подключите целевую плату к главному компьютеру. На следующем рисунке показано подключение платы nucleo_f303re к главному компьютеру (на основе mbed, можно изменить конфигурацию и использовать другие совместимые платы).

введите сюда описание изображения 2. Запустите команду make xxx-burn для загрузки соответствующего файла bin на целевую плату. Например, команда make right_arm-burn загружает файл bin для узла right_arm. Подробности см. на следующем рисунке.

введите сюда описание изображения введите сюда описание изображения 3. Используйте последовательный порт для отправки программы check, чтобы проверить, работает ли она нормально. Как показано на рисунке, будет получено много символов @.

введите сюда описание изображения

Использование и управление

  1. Закройте программу последовательного порта. Откройте окно командной строки cmd и запустите start_host.bat. Этот пакетный файл вызовет скрипт ./robot/xshadower/host/manager/xshadower_manager.py, который автоматически откроет все последовательные порты, обнаружит, есть ли символ @, и если соответствующий последовательный порт получит символ @, это означает, что этот порт имеет доступный узел, автоматически отправит команду reg для получения информации об узле. Как показано на следующем рисунке:

введите сюда описание изображения введите сюда описание изображения 2. Откройте окно командной строки cmd и выполните команду cmd.bat. Этот пакетный файл автоматически перейдёт в каталог ./robot/xshadower/host/manager и запустит инструмент xshadower_term.py. Этот инструмент может отправлять команды управления соответствующими узлами через командную строку. Как показано на следующем рисунке, где @xxx представляет соответствующую команду управления узлом xxx, > является разделителем команд. Например, @right_arm>REG отправляет команду reg на узел right_arm для получения информации о нём.

введите сюда описание изображения 3. Общие команды узлов следующие:

введите сюда описание изображения

  • REG: Зарегистрировать команду, отправить информацию об узле на хост.
  • SEND: Отправить последовательность команд в FIFO команд узла.
  • RUN: Выполнить все команды в очереди команд FIFO узла.
  • EXEC: Немедленно выполнить соответствующую команду.
  • RST: Перезапустить узел.
  • Пользовательские команды: MOTOR, DELAY и т. д. Используют формат команды с добавлением 4 параметров, разделённых символом |. Например: @right_arm>SEND DELAY|200|0|0|0 (отправить команду задержки 200 мс в очередь команд FIFO узла right_arm); @right_arm>SEND MOTOR|1|180|0|0 (управлять первым двигателем узла right_arm, чтобы он повернулся на 180 градусов). При управлении двигателем требуется некоторое время для перемещения из одного положения в другое, плюс время передачи команды, которое может быть довольно длительным. Использование очереди команд FIFO позволяет одновременно отправлять до 10 команд в очередь.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xshadower-openrobot.git
git@api.gitlife.ru:oschina-mirror/xshadower-openrobot.git
oschina-mirror
xshadower-openrobot
xshadower-openrobot
master