Настройка бортового компьютера и ArUco-навигации для БВС

Эта инструкция описывает создание и настройку карты ArUco-маркеров, необходимых для работы режима удержания позиции (Position) на платформе "Обрик". Без них стабильный автономный полет невозможен. Система ArUco обеспечивает взлет/посадку, навигацию по ID маркеров и следование по маршруту. Точность зависит от калибровки камеры и качества маркеров

Помните, что точность навигации напрямую зависит от качества калибровки камеры, освещенности и физического состояния маркеров. Регулярно проверяйте систему и при необходимости повторяйте калибровку

Бортовой компьютер

Бортовой компьютер представляет собой компактное устройство, основу которого составляет процессорная плата Raspberry Pi: Этот миниатюрный одноплатный компьютер размером с ладонь построен на базе мобильного микропроцессора ARM.

Материнская плата: Данное устройство обеспечивает возможность подключения дополнительных элементов к модемной плате и оснащено слотом для SD-карты.

Основная структура образа

clover/
├── aruco_pose/                   # ROS-пакет для работы с ArUco-маркерами
│   ├── map/                      # примеры карт маркеров
│         ├── map.txt             # стандартная карта (id, pose, размер)
│         └── ...                   # дополнительные карты
│
├── clover/                       # основной ROS-пакет Clover (API автономных
|                                                                    \полётов)
│   ├── launch/                   # launch-файлы Clover
│         ├── clover.launch       # главный launch-файл, запускает весь стек
│         │                                                           Clover
│         ├── mavros.launch       # конфигурация MAVROS
│         ├── main_camera.launch  # запуск и конфигурация основной камеры
│         ├ aruco.launch          # настройка ArUco-навигации
│         └── led.launch          # запуск подсветки и эффектов
│                                                      ROS-пакета
│
├── clover_blocks/                # блочное программирование
│                                        (Blockly-интерфейс)
│
├── clover_simulation/            # симуляция Clover (Gazebo + PX4 SITL)
│   ├── airframes/                # airframe-конфиги PX4
│   ├── launch/                   # simulator.launch + другие файлы симулятора
│   └── resources/
│       └── worlds/               # миры для Gazebo: clover.world,
│                                              clover_aruco.world
└── README.md                     # общее описание проекта

Подключение

  • Подключите питание 5V к бортовому компьютеру с помощью кабеля USB Type-C
  • Подключитесь к сети Wi-Fi БВС
  • Откройте браузер и в адресной строке введите IP-адрес: http://172.20.10.7

После подключения доступен Веб-интерфейс с основными веб-инструментами:

  • Документация
  • Список топиков образа
  • Доступ к топику на котором можно увидеть работу камеры
  • Онлайн терминал
  • 3D визуализация
  • Блочное программирование
  • Логи БВС

input password

Вход в систему

  • В веб-интерфейсе найдите и откройте раздел "Web Terminal"

result password

  • В открывшемся терминале введите пароль: raspberry

Символы пароля не отображаются при вводе в целях безопасности

  • После успешного ввода вы увидите командную строку:

result password

Основные команды для работы с бортовым компьютером

Для уверенной работы в системе вам понадобятся основные команды Linux, а также специализированные утилиты платформы “Сверх”

Работа с файловой системой и редактором

  • Показать список файлов в текущей директории: ls
  • Перейти в папку по указанному пути: cd catkin_ws/src/clover/clover/launch/
  • Вернуться в домашнюю директорию: cd
  • Перейти на директорию выше: cd ..
  • Удалить файл или папку с именем “name”: rm -rf name

Операция выполняется без подтверждения и безвозвратно. Будьте осторожны!

  • Команда позволяет создавать и редактировать файл: nano
  • Вывести путь к текущей директории: pwd
  • Создать и открыть файл с названием “file”, с расширением.py (Python) в редакторе: nano file.py

Если файл уже создан, то он открывается для редактирования

  • Редактировать файл с названием “file”, с расширением “.txt” по полному пути (из любой директории): nano ~/catkin_ws/src/clover/clover/launch/file.txt

Символ ~ обозначает домашнюю директорию вашего пользователя. Если вы уже находитесь в ней, можно обойтись командой “cd”

  • Сохранить изменения и выйти из nano:
    Нажмите последовательно: “Ctrl”+”X”, затем “Y”, затем “Enter”
  • Для вставки текста в терминале Linux используются сочетания клавиш Shift+Insert или Ctrl+Shift+V
  • Для копирования текста в терминале Linux используется сочетание клавиш Ctrl + Shift + C
  • Остановка текущей активной программы: Нажмите Ctrl + C. Эта комбинация отправляет сигнал прерывания (SIGINT) программе

Управление системой и процессами

  • Позволяет выполнять команды с правами суперпользователя (администратора), если у текущего пользователя есть на это разрешение: sudo
  • Полная перезагрузка БВС: sudo reboot
  • Перезапуск сервисов БВС: sudo systemctl restart clover
  • Самопроверка систем БВС: rosrun clover selfcheck.py
  • Запуск Python-скрипта “myprogram.py”: python3 myprogram.py
  • Принудительная остановка запущенной программы:
    Сочетание клавиш “Ctrl”+”C”.

Команды генерации файла карты ArUco-маркеров бортового компьютера

Подробности описаны в статье «Навигация по картам ArUco-маркеров»

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

Определите следующие значения для вашей карты:

  • length - длина стороны маркера в метрах (например, 0.3)
  • x - количество маркеров по оси X (столбцов)
  • y - количество маркеров по оси Y (строк)
  • dist_x - расстояние между центрами маркеров по оси X (м)
  • dist_y - расстояние между центрами маркеров по оси Y (м)
  • first_ID - ID первого маркера
  • --top-left — нумерация с верхнего левого угла (важный параметр, так как это стандарт для большинства полей)

Выполните команду генерации

  • В терминале выполните следующую команду, подставив свои параметры: rosrun aruco_pose genmap.py <length> <x> <y > <dist_x > <dist_y > <first_ID> > ~/catkin_ws/src/clover/aruco_ws/src/clover/aruco_pose/map/<Имя_файла>.txt --top-left Пример: rosrun aruco_pose genmap.py 0.3 3 2 0.5 0.5 0 > ~/catkin_ws/src/clover/aruco_pose/map/sverk.txt --top-left

Стандартное имя файла карты — map.txt. Если вы укажете другое имя при генерации, его необходимо прописать в конфигурационном файле aruco.launch (параметр <param name="map" value="$(find aruco_pose)/map/ВАШ_ФАЙЛ.txt"/>)

Настройка ROS-ноды для работы с новой картой:

  • Откройте конфигурационный файл:
    nano ~/catkin_ws/src/clover/clover/launch/aruco.launch
  • Найдите строку и отредактируйте параметр map: ''
  • Замените map.txt на имя вашего файла: ''
  • Сохраните изменения и выйдите из редактора: Нажмите Ctrl+X, затем Y, затем Enter

Примечание: aruco.launch - это файл запуска ROS (Robot Operating System), предназначенный для детектирования маркеров ArUco. Он обычно запускает узлы, которые: принимают изображения, обрабатывают эти изображения, публикуют позы маркеров aruco.launch позволяет вашей роботизированной системе "видеть" и отслеживать специальные квадратные маркеры ArUco в реальном времени.

Пример генерации карты ArUco-меток

На изображении ниже показана физическая карта ArUco-меток

aruco

Параметры для генерации ArUco-меток обозначены под каждой из них:

  • length - 0.3 - длина стороны маркера (м)
  • x - 3 - количество маркеров по оси X (столбцов)
  • y - 2 - количество маркеров по оси Y (строк)
  • dist_x - 0.5 - расстояние между центрами маркеров по оси X (м)
  • dist_y - 0.5 - расстояние между центрами маркеров по оси Y (м)
  • first - 42 - ID первого маркера

Для обеспечения автоматического взлета используются ArUco-метки размером 1×1 см (левая верхняя метка), что позволяет камере уверенно их распознавать,но при генерации все метки будут одинакового указанного размера, ее необходимо отредактировать. Меток взлета на карте может быть несколько

Назовем файл sverk.txt Из вышеуказанных данных собираем команду: rosrun aruco_pose genmap.py 0.3 3 2 0.5 0.5 42 > ~/catkin_ws/src/clover/aruco_pose/map/sverk.txt --top-left

Поскольку в качестве первой метки мы указали метку №42 теперь наша карта сгенерируется, имея метки по порядку возрастания начиная с №42: 43, 44, 45, 46, 47, 48. Однако, у нас номера иные. Необходимо отредактировать ранее созданный файл.

Редактирование карты ArUco-меток

Необходимо внести изменения в карту ArUco-меток. Размер метки для для взлета должен составлять 1×1 см

  • Откройте файл с помощью команды: nano ~/catkin_ws/src/clover/aruco_pose/map/sverk.txt

    opnen path sverk.txt

  • Внесите изменения.
    Поменяем первый столбец исходя из наших номеров меток и размер первой метки для взлета:
    Было:

    was sverk.txt

    Стало:

    become sverk.txt

  • Сохраните и выйдите: Ctrl+X, Y, Enter.

  • Большинство параметров, необходимых для полета, хранится в папке catkin_ws/src/clover/clover/launch/
  • Зайти в папку: cd ~/catkin_ws/src/clover/clover/launch/
  • Открыть файл aruco.launch: nano aruco.launch

open aruco.launch

  • Найдем строчку, где прописан путь и файл указания карты. Поменяем на sverk.txt:

    find row aruco.launch

  • Для применения изменений перезагрузите сервис БВС: sudo systemctl restart clover

    restart

Проверьте вид сгенерированной карты ArUco-меток:

  • В веб-интерфейсе перейдите в раздел web_video_server
  • Откройте топик /aruco_map/image
  • Наведите камеру БВС на маркеры. Убедитесь, что они корректно определяются, а их ID отображаются поверх изображения

    aruco xyz

Генерация карты ArUco-меток для печати

Установите генератор карт ArUco-меток:

  • iOS
  • Windows
    Запустите приложение на компьютере

    app

  • Во вкладке «Словарь ArUco» выберите необходимый тип меток. Для БВС используется словарь DIST_4X4_100

    app dictionary

  • Откройте файл с конфигурацией карты ArUco-меток на бортовом компьютере, используя команду: nano ~/catkin_ws/src/clover/aruco_pose/map/ВАШ_ФАЙЛ.txt

    our file

Не забудьте заменить ВАШ_ФАЙЛ.txt на актуальное название файла

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

    copy and paste

  • Установите формат бумаги. Для печати больших полей рекомендуется задать произвольный размер. Для этого выберите пункт «Custom» и укажите параметры в миллиметрах

  • Нажмите Рассчитать размер поля для автоматической настройки

    format hill

  • Нажмите кнопку «Обновить». Проверьте правильность карты и, если всё верно, нажмите «Скачать в PDF»

    find row aruco.launch

  • Распечатайте карту ArUco-меток и разместите её в полетной зоне

После расчета размера поля, формат поля измениться на Custom

⚠️ Важное требование к печати

Печать обязательно должна быть матовой. Если метки будут бликовать, камера БВС не сможет их распознать, и автономный полет будет невозможен.

Пример сгенерированной карты ArUco-меток

Используйте карту, созданную в предыдущем примере

# id length x y z rot_z rot_y rot_x
42 0.01 0.0 0.5 0 0 0 0
18 0.3 0.5 0.5 0 0 0 0
12 0.3 1.0 0.5 0 0 0 0
27 0.3 0.0 0.0 0 0 0 0
43 0.3 0.5 0.0 0 0 0 0
5 0.3 1.0 0.0 0 0 0 0
  • Скачиваем в PDF или SVG. Откройте в любом PDF, SVG редакторе

После печати поля проверьте размеры ArUco-меток

results matching ""

    No results matching ""