Навигация по ArUco-маркерам

Запуск навигации по ArUco-маркерам

Для активации навигации используйте следующую команду:

drone.aruco_map_navigation(state=True, fly_in_borders=True)

Параметры:

  • state - включает или отключает режим навигации

  • fly_in_borders - ограничивает перемещение дроном пределами карты

  • True - перемещение строго в границах карты (по умолчанию)

  • False - ограничения отключены

Рекомендуется вызывать эту команду после взлета дрона

После активации все команды управления будут выполняться в системе координат карты ArUco-маркеров.

Генерация карты ArUco-маркеров

При подключении по SSH скрипт находится по пути ~/ros2_ws/src/eurus_edu/edu_aruco_navigation/edu_aruco_navigation/generate_map.py

Скрипт можно запускать локально: python generate_map.py cx cy length sx sy

Основные параметры:

  • cx - количество маркеров по оси X

  • cy - количество маркеров по оси Y

  • length - длина стороны маркера (в метрах)

  • sx - расстояние между центрами маркеров по X (в метрах)

  • sy - расстояние между центрами маркеров по Y (в метрах)

Дополнительные параметры:

  • -o, --out - имя выходного файла (по умолчанию generated_map.csv)

  • -i, --id - начальный ID маркера (по умолчанию 0)

  • -bl, --bottom_left - установка начала координат (0,0) в левом нижнем углу

  • -rev, --reverse - записать маркеры в обратном порядке ID

Пример:

python generate_map.py 8 5 0.3 0.5 0.5 -i 100 -bl

В результате будет создан файл generated_map.csv со следующими параметрами:

  • размер карты: 8×5 маркеров

  • размер стороны маркера: 0.3 м

  • расстояние между центрами: 0.5 м

  • диапазон ID: от 100 до 139

  • начало координат (0, 0) - левый нижний угол (маркер 130)

Настройка пути к карте

Путь к файлу карты задается в конфигурационном файле:

~/ros2_ws/src/eurus_edu/edu_aruco_navigation/eurus.ini

Параметр:

  • map_path - абсолютный путь к CSV-файлу карты

Отладочный интерфейс

При подключении к дрону по Wi-Fi доступен веб-интерфейс:

http://10.42.0.1:5000

В интерфейсе можно просматривать:

  • Визуализацию обнаружения ArUco-маркеров

  • Отладочное изображение с камеры

Навигация по маркеру

При активированной навигации по ArUco доступна команда:

drone.move_to_marker(marker_id, z, speed=None, yaw=None)

Параметры:

  • marker_id - ID маркера (тип: str или int)

  • z - высота над маркером (в метрах)

  • speed - скорость перемещения (необязательно, по умолчанию 1)

  • yaw - целевой угол рысканья. Если None - сохраняется текущий yaw

Примеры использования:

drone.move_to_marker(100, 1)
drone.move_to_marker("100", 1, 0.5, 0)

results matching ""

    No results matching ""