Achieving Stable Indoor Position Control with Optical Flow and ToF Sensors in GPS-Denied Environments

We have the Multi-copter QUAV250 set up with the Holybro PMW3901 Optical Flow sensor and the Holybro ST VL531LX Lidar sensor for range measurement. We are testing in an indoor environment, which is a GPS-denied environment (GPS is disabled).

However, with this setup, the vehicle_local_position x, y outputs are providing delta x, y readings instead of the absolute position we expected. Is this behavior expected, or are there any parameters that can be adjusted to enable absolute position estimation from vehicle_local_position x, y when only optical flow measurements are available for x,y?

We have also tried integrating the VehicleOpticalFlowVel -> flow_compensated_integral, and computed delta_x, y by integrating that velocity, then track them to get an absolute local position. However, it is not robust during flights.

We would like to know if there are additional considerations for achieving stable indoor autonomous position control flight using an Optical Flow and ToF sensor setup in the absence of GPS.

Here are the parameters we are using to enable position control flight with OFlow and ToF:

  • EKF2_OF_CTRL: Enabled
  • SENS_EN_PMW3901: Enabled
  • SENS_TFLOW_CFG: TELEM2
  • EKF2_HGT_REF: RangeFinder