Навигация по карте ArUco маркеров
Конфигурирование
Аргументы настройки Aruco находятся в файле ~/ros2_ws/src/eurus_edu/edu_aruco_navigation/eurus.ini:
[aruco]
; 4x4_50/4x4_100/4x4_250/4x4_1000/5x5_50/5x5_100/5x5_250/5x5_1000/
dictionary = 4X4_1000
map_path = /home/orangepi/ros2_ws/src/eurus_edu/edu_aruco_navigation/maps/map.csv
[settings]
aruco_debug = true
camera_topic = /edu/downward_camera
camera_config_path = /home/orangepi/ros2_ws/src/eurus_edu/camera_calib/calibration_data.json
camera_direction = 0
Где:
dictionary- словарь ArUco маркеров (доступны: 4x4_50, 4x4_100, 4x4_250, 4x4_1000, 5x5_50, 5x5_100, 5x5_250, 5x5_1000)map_path- путь к файлу карты маркеровaruco_debug- включение отладки (true/false)camera_topic- топик камеры для распознавания маркеровcamera_config_path- путь к файлу калибровки камерыcamera_direction- поворот камеры в градусах
Настройка карты маркеров
Карта маркеров хранится в CSV файле по пути
/home/orangepi/ros2_ws/src/eurus_edu/edu_aruco_navigation/maps/map.csv
Формат файла (разделитель ;):
id;length;x;y;z
250;0.3000;0.0000;3.5000;0.1000
Где:
id- идентификатор ArUco маркераlength- длина стороны маркера в метрахx, y, z- координаты маркера в метрах
Генерация карты маркеров
Для генерации файла карты маркеров используется скрипт generate_map.py, расположенный в директории /home/orangepi/ros2_ws/src/eurus_edu/edu_aruco_navigation/edu_aruco_navigation/generate_map.py
Также скрипт можно запустить на ПК:
python generate_map.py cx cy length sx sy
Параметры:
cx- количество маркеров по оси Xcy- количество маркеров по оси Ylength- длина стороны маркера в метрахsx- расстояние между центрами маркеров по оси X в метрахsy- расстояние между центрами маркеров по оси Y в метрах
Дополнительные параметры:
-o, --out- задать имя выходного файла (по умолчанию generated_map.csv)-i, --id- начальный ID маркера (по умолчанию 0)-bl, --bottom_left- нумерация маркеров с левого нижнего угла-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 м, расстояние между центрами по X и Y - 0.5 м, начальный маркер - ID 100 (карта от 100 до 139 маркера), с началом координат (0, 0) в левом нижнем маркере.
Проверка
Для контроля карты, по которой в данный момент дрон осуществляет навигацию, в веб-интерфейсе можно посмотреть snapshot ArUco карты
