基本的VISUAL_POSITION_ESTIMATE示例中断PX4 EKF2

时间:2018-08-21 15:16:37

标签: px4

我正在尝试使VISUAL_POSITION_ESTIMATE消息正常工作。经过大量的试验和错误,我最终创建了一个非常基本的示例程序,该程序以VISUAL_POSITION_ESTIMATE消息的形式简单地提供了PX4为无人机报告的位置和方向。我希望这不会发生,因为发送到PX4的视觉位置与它已经计算出的相同。

结果是在这样的设置下,甚至无法武装无人机。

如果一个人在不考虑VISUAL_POSITION_ESTIMATE消息的情况下武装无人机并起飞,则在无人机空降之后开始考虑它们,无人机最终会翻滚和移动不正常。

我想知道我在做错什么,以及如何使VISUAL_POSITION_ESTIMATE消息正常工作。任何帮助表示赞赏。

实验细节:

我有一个使用AirSim的PX4 SITL设置,如此处所述: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消息的简单虚拟样本的最简单方法是什么。

Akos

0 个答案:

没有答案