UWB+laser ranging sensor as messages for vision_pose

I want to send external position measurements to PX4 EKF. The settings are:

  • PX4 1.13.0
  • EKF2_AID_MASK = 24 (position fusion and yaw fusion)
  • EKF2_HGT_REF = 3 (vision)

The messages I send to the vision_pose/pose topic contain:

  1. horizontal position measurements from a UWB positioning system,
  2. vertical position measurements from a laser ranging sensor,
  3. time.

Here are things I have observed:

  1. Before starting to publish messages to vision_pose/pose, the orientation in imu/data has slow drifts in yaw. After starting to publish messages to vision_pose/pose, the orientation in imu/data directly changes to values close to (0,0,0,1). The estimated orientation in local_position/pose is close to the one in imu/data.
  2. The estimated attitude appears to respond only to changes in roll and pitch. When the yaw of the drone is changed, the estimated attitude remains nearly constant at (0,0,0,1).
  3. The drone has some positional changes during hovering.

Here are some flight logs:

https://review.px4.io/plot_app?log=068a92b1-ca53-4987-a7ee-f2ec969c42ce

https://review.px4.io/plot_app?log=8ee0d0f3-637a-435b-835e-a99ff143ab83

What should I do to improve the flight performance? Thanks in advance.