Пакет dwm1000_pose
состоит из двух нод: map
публикует карту маяков, трансформации TF, и маркеры визуализации, pose
публикует позицию коптера относительно карты маяков.
Для расчета позиции коптера используется алгоритм трилатерации в виде системы нелинейных уравнений. Решение данной системы производится с помощью алгоритма Левенберга-Марквардта.
Чтобы запустить систему позиционирования:
roslaunch dwm1000_pose sample.launch
pose
публикует рассчитанную позицию на основе расстояний от коптера до маяков с помощью алгоритма трилатерации.
dwm1000/beacon_data
(dwm1000_msgs/BeaconDataArray) – список расстояний от маяков до коптераrangefinder/range
(sensor_msgs/Range) – расстояние от коптера до пола
mavros/vision_pose/pose
(geometry_msgs/PoseStamped) – рассчитанная позиция коптера
map
публикует карту маяков
map
– путь к текстовому файлу со списком маяков
Файл карты имеет один маркер на строку со следующим форматом строки:
marker_id x y z yaw pitch roll
/dwm1000/visualization_anchor
(visualization_msgs/MarkerArray) – визуализация карты маркеров для rviz
-
<map>
=><anchor_map>
– положение карты маяков -
<map>
=><anchor><id>
– положение маяков