Базовые разрывы образцов VISUAL_POSITION_ESTIMATE PX4 EKF2

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

Результатом является то, что в такой установке невозможно даже вооружить дрон.

Если кто-то вооружает беспилотник и взлетает без учета сообщений VISUAL_POSITION_ESTIMATE, а затем начинает рассматривать их после того, как беспилотник находится в воздухе, беспилотник в конечном итоге упадет и начнет двигаться беспорядочно.

Интересно, что я делаю неправильно, и как заставить работать сообщения VISUAL_POSITION_ESTIMATE. Любая помощь приветствуется.

Детали эксперимента:

У меня есть настройка PX4 SITL с использованием AirSim, как описано здесь: https://dev.px4.io/en/simulation/airsim.html. Я использую последний мастер для прошивки PX4. Исполняемый файл./build/posix_sitl_default/bin/px4 запускается из исходного каталога. скрипт запуска PX4: https://pastebin.com/C7ExQzuk

после запуска я запускаю мое минимальное приложение VISUAL_POSITION_ESTIMATE, которое основано на примере кода mavlink_upd.c, вот источник: https://pastebin.com/FfxRkQYJ

если я начну PX4 с учетом визуальных оценок положения, я даже не смогу его вооружить:

pxh> param set EKF2_AID_MASK 25
+ EKF2_AID_MASK: curr: 1 -> new: 25
pxh> INFO  [ecl/EKF] EKF commencing external vision position fusion
INFO  [ecl/EKF] EKF commencing external vision yaw fusion

pxh> INFO  [ecl/EKF] EKF GPS checks passed (WGS-84 origin set, using GPS height)
INFO  [ecl/EKF] EKF commencing GPS fusion

pxh> commander arm
WARN  [commander_tests] PREFLIGHT FAIL: EKF INTERNAL CHECKS
ERROR [commander] arming failed

Если я запускаю его только с помощью GPS, я могу включить и выключить, но затем время истечения на фьюжн закончится, и дрон упадет / переместится:

pxh> commander arm
pxh> INFO  [logger] Start file log
INFO  [logger] Opened log file: ./log/2018-08-21/15_11_20.ulg

pxh> 
pxh> 
pxh> commander takeoff
pxh> INFO  [commander] Takeoff detected

pxh> param set EKF2_AID_MASK 25
+ EKF2_AID_MASK: curr: 1 -> new: 25
pxh> INFO  [ecl/EKF] EKF commencing external vision position fusion

pxh> WARN  [ecl/EKF] EKF GPS fusion timeout - reset to GPS
WARN  [ecl/EKF] EKF GPS fusion timeout - reset to GPS

акробатика связана с событиями тайм-аута синтеза, отмеченными выше.

Интересно, что я делаю не так, и каков самый простой способ заставить наивный фиктивный образец сообщений VISUAL_POSITION_ESTIMATE работать.

Акос

0 ответов

Другие вопросы по тегам