The local position estimate of pixhawk has a large error

Hi everyone.

When running under offboard mode, the quadrotor drifted extremely. Then we display the LPos.Z of estimator. We found the data has a large error. Usually, it needs a long time to get the true value.Does anyone know why is that and how to solve it?

The following is our hardware platform:
The Motive (version 1.9.0) installed on PC1 (windows 7) is connected via wifi (5G) to the MOCAP on the aircraft board (from the new-and-old-surppot-updated branch under ROS_drivers/mocap_optitrack on GitHub). The MAVROS (version 0.17.5) on the aircraft board obtains command data from the MOCAP, and then sends the data to the PX4 (1.7.3 LPE version) through the serial port. The baud rate of the communication is 921600. MAVROS (version 0.17.5) returns the input command data and the actual flight data of the aircraft via wifi (5G) to RVIZ on PC2 (Linux) ROS (indigo).

MOCAP is configured as:

pose: /mavros/mocap/pose
pose2d: amazedrone/groud_pose
child_frame_id: local_origin
use new coordinates: true

Some parameters are changed as follow:

ATT_EXT_HDG_M:vision
LPE_FUSION FUSE: VISION POSITION, FUSE VISION YAW
LPE_VIS_DELAY:0.1sec
LPE_VIS_XY:0.010m
LPE_VIS_Z:0.010m