Skip to content

StarkitRobots/androsot_core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AndroSot Workspace

AndroSot Workspace - ROS2 проект для автономной игры в гуманоидный робофутбол в лиге AndroSot с роботами Roki-4.

Из основных особенностей лиги можно выделить:

  • Использование внешних камер: роботы не имеют бортового зрения, используются две боковые камеры
  • Централизованное управление роботами: для игры нужен один ноутбук, который управляет сразу всей группой роботов
  • Отсутствие GameController: каждая команда может реализовать свой интерфейс для управления состояниями игры, которые можно отправлять вручную по сигналу рефери

Основные особенности робота Roki-4:

  • Принимает команды по Bluetooth: любое удалённое управление подразумевает отправку скорости и/или команды при помощи BLE-модуля
  • Имеет камеру OpenMV: в AndroSot её может использовать вратарь
  • Движок ходьбы реализован на ЗУБР-контроллере: изменять прошивку робота можно только при помощи специальной программы IronArt

Содержание

Структура проекта

Проект состоит из нескольких основных частей:

  • configs: здесь хранятся все общие конфигурационные файлы
  • docker: здесь хранится Docker-образ, предназначенный для упрощения развертывания проекта
  • docs: здесь хранится документация по разным аспектам работы с роботами и проектом
  • external: здесь хранятся все внешние зависимости проекта
  • src: здесь хранится исходный код проекта, ROS2-пакеты

На данный момент реализованы следующие ROS2 пакеты:

  • androsot_bringup: пакет для централизованного запуска нескольких модулей проекта. Сам по себе не содержит кода кроме launch-файлов и файлов конфигурации
  • androsot_description: пакет, содержащий конфигурационные файлы и модели всех устройств, необходимых для участия в AndroSot

Установка проекта

Для того, чтобы начать работу с проектом, необходимо выполнить следующие действия:

  • Шаг 1: клонировать репозиторий проекта
git clone https://wavegit.mipt.ru/starkit/androsot_workspace.git --recursive # клонируем репозиторий и все submodules

Данное действие перенесёт все файлы проекта на Ваше устройство. Обратите внимание, что для успешного выполнения команды необходимо быть зарегистрированным на WaveGit и иметь роль в группе Starkit не ниже Developer

  • Шаг 2: docker build
cd androsot_workspace
./androsot.py --build # или ./androsot.py -b

Данное действие запустит процесс сборки контейнера по файлу образа. Используйте данную команду, если в процессе разработки Вам необходимо пересобрать контейнер для установки необходимых зависимостей.

Запуск проекта

На данный момент существуют следующие опции запуска контейнера:

  • Запуск терминала для разработки:
./androsot.py --run-terminal # или ./androsot.py -t

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

Данная команда в первую очередь необходима при разработке проекта.

Для того, чтобы начать работу с проектом в терминале, в первую очередь необходимо выполнить сборку проекта. Для этого в терминале контейнера выполните команду:

cd workspace # переходим в рабочую директорию
./workspace_build # выполняем сборку ROS2 проекта
source install/setup.bash # автоматически задаём в контейнере пути до исполняемых файлов проекта и библиотек

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

На данный момент существуют следующие launch-файлы:

  • androsot_ble_bridge : robot_control.launch.py - запускает BLE коннектор (старый) и ноду для связи с этим коннектором. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2

  • androsot_bringup : camera.launch.py - ноды, необходимые для работы с камерой. В результате будет запущен процесс передачи изображения и CameraInfo через топики. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2
  • androsot_bringup : camera.test.launch.py - запускает camera.launch.py вместе с нодой rviz2 для проверки работы камеры Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2

  • androsot_bringup : localization.launch.py - запускает ноду локализации роботов с одной камерой и её калибровкой. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2
    • team_id: идетификатор команды роботов для локализации. По-умолчанию: team_red
  • androsot_bringup : localization.test.launch.py - запускает ноду локализации роботов с одной камерой и её калибровкой в Debug режиме с rviz2 для проверки. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2
    • team_id: идетификатор команды роботов для локализации. По-умолчанию: team_red
  • androsot_bringup : localization.double.launch.py - запускает ноду локализации роботов с двумя камерами и калибровкой. Аргументы:
    • camera_id_1: первая подключаемая камера. По умолчанию: camera_1
    • device_id_1: идентификатор первой камеры в Ubuntu. По-умолчанию: /dev/video2
    • camera_id_2: вторая подключаемая камера. По умолчанию: camera_2
    • device_id_2: идентификатор второй камеры в Ubuntu. По-умолчанию: /dev/video4
    • team_id: идетификатор команды роботов для локализации. По-умолчанию: team_red
  • androsot_bringup : localization.double.test.launch.py - запускает ноду локализации роботов с двумя камерами и калибровкой в Debug режиме с rviz2 для проверки. Аргументы:
    • camera_id_1: первая подключаемая камера. По умолчанию: camera_1
    • device_id_1: идентификатор первой камеры в Ubuntu. По-умолчанию: /dev/video2
    • camera_id_2: вторая подключаемая камера. По умолчанию: camera_2
    • device_id_2: идентификатор второй камеры в Ubuntu. По-умолчанию: /dev/video4
    • team_id: идетификатор команды роботов для локализации. По-умолчанию: team_red

  • androsot_bringup : vision_tf.launch.py - запускает ноду калибровки камеры (вычисление экстринсиков) с камерой. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2
  • androsot_bringup : vision_tf.test.launch.py - запускает ноду калибровки камеры (вычисление экстринсиков) в Debug режиме с камерой и rviz2 для проверки. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
    • device_id: идентификатор камеры в Ubuntu. По-умолчанию: /dev/video2
  • androsot_bringup : vision_tf.double.launch.py - запускает ноду калибровки (вычисление экстринсиков) с двумя камерами. Аргументы:
    • camera_id_1: первая подключаемая камера. По умолчанию: camera_1
    • device_id_1: идентификатор первой камеры в Ubuntu. По-умолчанию: /dev/video2
    • camera_id_2: вторая подключаемая камера. По умолчанию: camera_2
    • device_id_2: идентификатор второй камеры в Ubuntu. По-умолчанию: /dev/video4
  • androsot_bringup : vision_tf.double.test.launch.py - запускает ноду калибровки (вычисление экстринсиков) с двумя камерами в Debug режиме и rviz2 для проверки. Аргументы:
    • camera_id_1: первая подключаемая камера. По умолчанию: camera_1
    • device_id_1: идентификатор первой камеры в Ubuntu. По-умолчанию: /dev/video2
    • camera_id_2: вторая подключаемая камера. По умолчанию: camera_2
    • device_id_2: идентификатор второй камеры в Ubuntu. По-умолчанию: /dev/video4

  • androsot_description : cube.launch.py - запускает robot_state_publisher для ArUco-куба. Не рекомендуется использовать без дополнительных нод.
  • androsot_description : cube.test.launch.py - запускает cube.launch.py вместе с нодой rviz2, сконфигурированной для просмотра публикации tf куба.

  • androsot_vision_tf : runtime_vision_tf.launch.py - запускает ноды, необходимые для работы калибровки (поиска экстринсиков). Невозможно использовать без камеры, предварительно запустите дополнительные ноды. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1
  • androsot_vision_tf : runtime_vision_tf.debug.launch.py - запускает runtime_vision_tf.launch.py с нодой детекции ArUco и rviz2 для тестирования и отладки. Невозможно использовать без камеры, предварительно запустите дополнительные ноды. Аргументы:
    • camera_id: подключаемая камера. По умолчанию: camera_1

Разработка

Задачи разработчиков описаны в разделе Issues на WaveGit. В процессе работы над своей задачей необходимо создать новую ветку с названием в формате <task_tag>/<task_name>, где <task_tag> - это назначение задачи, а <task_name> - её короткое название(например, feature/ble_protocol_build или fix/ball_detection).

Когда работа над задачей завершена, необходимо сделать Merge Request (создать его можно на WaveGit), после чего дождаться Code-Review и Approve на слияние ваших разработок.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •