We are trying to achieve indoor autonomous flight in a drone we are developing. For this, we want to use Ultra-Wide Band (UWB) beacons. We are already able to track the location (not orientation) of an UWB beacon quite accurately. The next step for us is to have the Pixhawk (original Pixhawk, FMUv2, running PX4 v1.8.1) that we are using make use of this location. For this, we have set up a UP board with mavros, which sends the xy-data from the tracked UWB beacon to the Pixhawk over the /mavros/vision_pose/pose topic.
Pixhawk seems to have correctly received this location, as we saw in VISION_POSITION_ESTIMATE.
However, we can’t reliably LOCAL_POSITION_NED follow the ultra-wideband position: when the drone’s ground is stationary, the position is correct, but when we take off (using position control, for safety), the VISION_POSITION_ESTIMATE still receives the correct, but ekf2 fusion Local_position/pose data cannot follow the data published by vision_pose/pose
Set EKF2_AID_MASK to 8vision position fusion in qgc, EKF2_HGT_MODE to 2Range sensor, lidar gives height information,
EKF2_EV_DELAY is 23ms, EKF2_ACC_NOISE is 0.7, EKF2_GYR_NOISE is 0.03, my uwb is 9Hz or masquerading is 50Hz (the status_vision/pose is sent by timing regardless of the location information is not updated)