Holybro H-Flow sensor

Hi everyone,

I have a couple of doubts regarding EKF3 configuration while using the H-Flow sensor and would appreciate your guidance.

  1. As recommended VELZ Handling (EK3_SRC1_VELZ = 0)
    I have configured:
  • EK3_SRC1_VELZ = 0 (None)

So there is no vertical velocity sensor configured.
In this case, from where does EKF estimate VELZ?


  1. H-Flow Usage and GPS Switching Above 30 m
    I am using the following configuration:
  • EK3_SRC1_POSXY = 0 (Optical Flow)

  • EK3_SRC1_VELXY = 5 (Optical Flow)

  • EK3_SRC1_POSZ = 1 (Barometer)

  • EK3_SRC1_VELZ = 0 (None)

  • EK3_SRC1_YAW = 1

  • EK3_SRC_OPTIONS = 0 (FuseAllVelocities disabled)

The H-Flow sensor has a maximum reliable range of around 30 meters.

My concern is:

  • After crossing ~30 m, Optical Flow will not be reliable

  • In this case, how does EKF handle POSXY and VELXY?

    How can I automatically switch to GPS above 30 m altitude?

    FuseAllVelocities Option
    Ardupilot recommended setting EK3_SRC_OPTIONS = 0 (disabling FuseAllVelocities).

  • Would enabling FuseAllVelocities provide better robustness by allowing fusion of multiple velocity sources?

    • What is the best recommended setting for EK3_SRC_OPTIONS for our use case (Optical Flow below 30 m and GPS above 30 m)?

You may like to read more about this post and future releases.

Hi @Anil123,

The EKF can estimate the vertical velocity without any sensor directly providing the velocity by using the IMU (which provide acceleration) and Baro (which provides altitude).

Re switching between optical flow and GPS we have this wiki page which talks about using Lua scripts to do the transition automatically or you can use an auxiliary switch to do the transition yourself.

BTW, I’ve moved this discussion from “General” to Copter-4.6

Txs for using AP!

2 Likes