precise landing by openmv | ardupilot preland init fail

Hi guys! I am trying to use openmv as the camera for the precise landing mode of ardurpilot.
I use the official example code mavlink_apriltags_landing_target_1.py. The camera and QR code have been tested and can transmit information at a distance of about 3m. The corresponding information and parameters can also be seen on QGroundControl. but when I take off and land by QGroundControl, it often displays “land target found”, and then displays “preland init fail”.
Is my code or setting wrong? I have a flight log file. Can anyone help me? I would appreciate it really much.

Hello,

Referring to the code == we have lost the target, not enough readings to initialize the EKF

Hello, thank you very much for your reply!
Yes I have read the code, but the instructions are a bit vague, does this situation require me to resize the Apriltag? I printed an Apriltag of approximately 50cm*50cm, or should I adjust the position where OpenMV is placed?

Look at mavlink inspector on QGC - my guess is that you are missing readouts due to vibration

Make sure the vibration level is minimal and camera is fixed with vibration pads or else

thank you very much for replying again!
This is my log. Does it refer to this vibration parameter?




the parameter is around 1-5/2-8, does it matter a lot? :cry:
My openmv is indeed not very stable. It is attached with Velcro. :rofl:
Thank you very much for your help! I’m trying to find a solution from this aspect!

I’ve tried to used a 3d-printed part for openmv, which can help to connect the openmv to the drone. The connection is quite stable I think. But the problem still existed, so I am here for help again.

The log said that The target was found at first, but got lost again in the next 2 or 3 seconds, and failed to complete the precise landing process.

Ps: the apriltag I printed is 5050cm, and I also tried for 11m, but still doesn’t work.