Системы координат (фреймы)

СОВЕТ

Документация для версий образа, начиная с 0.15. Для более ранних версий см. документацию для версии 0.14open in new window.

Системы координаты Клевера (TF2)

Основные фреймы в пакете clover:

  • map — координаты относительно точки инициализации полетного контроллера: белая сетка на иллюстрации;
  • base_link — координаты относительно квадрокоптера: схематичное изображение квадрокоптера на иллюстрации;
  • body — координаты относительно квадрокоптера без учета наклонов по тангажу и крену: красная, синяя и зеленая линии на иллюстрации;
  • navigate_target – координаты точки, в которую сейчас летит дрон (с использованием navigate);
  • setpoint – текущий setpoint по позиции;
  • main_camera_optical – система координат, связанная с основной камерой.

При использовании системы позиционирования по ArUco-маркерам появляются дополнительные фреймы:

СОВЕТ

В соответствии с соглашениемopen in new window, для фреймов, связанных с коптером, ось X направлена вперед, Y – налево и Z – вверх.

Более наглядно 3D визуализацию систем координат можно наблюдать, используя rviz.

tf2

Основная документация: http://wiki.ros.org/tf2open in new window

Для работы с системами координат в Клевере используется ROS-пакет tf2. tf2 – это набор библиотек для языков программирования C++, Python и других, которые помогают работать с системами координат. ROS-ноды публикуют в топик /tf сообщения формата TransformStamped, которые содержат в себе трансформации между заданными системами координат в определенные моменты времени.

С помощью simple_offboard можно запросить расположение коптера в любой системе координат, используя аргумент frame_id сервиса get_telemetry.

Из Python можно использовать библиотеку tf2 для преобразования геометрических объектов (например, PoseStamped, PointStamped) из одной системы координат в другую.