Drone enters dutch roll mode while precision landing

Hello everyone,

Currently I am working on Aruco based precision landing via mavlink and as soon as the drone sees the marker, it starts drifting similar to an aircraft in Dutch roll mode. It starts drifting away but somehow manages to land close on the marker. I’m using rpi 4b compute module with waveshare nano c as the companion computer. The flight controller is a cube orange plus with arducopter 4.6.2.

I have attached the logs for your reference.(https://drive.google.com/file/d/1P0j7u066Jzf4dTuDIzIFYDjjCz4UfenO/view?usp=sharing, https://drive.google.com/file/d/1ZpwROiInRet6dEQFZlagUJdoIBF5pktt/view?usp=sharing)

Regards,
Yeshes P

Hi Yeshes,

I looked at your first log (see screenshot). The landing-target position measurement shows many step changes, which is highly abnormal. This suggests an issue either with the Aruco position reported by the companion computer or—more likely—with the coordinate transform, causing the target the vehicle is tracking to keep moving.

I also noticed you set PLND_EST_TYPE = 0 (raw_sensor). With this setting, any jump in the input target position is passed straight through, so the internal landing-target tracker jumps as well.

Recommendations

  1. Set PLND_EST_TYPE = 1 (KalmanFilter).
  2. Review the companion-computer code from ArUco detection through the transform and into the MAVLink message. ArduPilot expects the landing-target position in the MAV_FRAME_BODY_FRD frame (x-forward, y-right, z-down).

Hope this helps.

Hello @zhen_xue ,

Thankyou for your valuable inputs. I conducted few test flights after your recommendation by setting PLND_EST_TYPE = 1. But the FC is rejecting the inputs. I am getting the message such as “x_ang_filt=0.094 rad, y_ang_filt=0.027 rad, tvec=(182.42,17.51,894.70) CRITICAL:autopilot:PrecLand: Init Failed”. The UAV just hovers over there. So this did not help.I also reviewed the code and found no issues.
Is there any other issue that you could think of?

Thanks and regards,
Yeshes P

Hi Yeshes,

  1. The “PrecLand: Init Failed” message only appears when the FC hasn’t received a LANDING_TARGET for >500 ms. This suggests a companion–FC comms/timing issue. Please ensure the companion is already sending the message before starting precision landing.
  2. In LOITER, manually hover over the target to check whether the companion’s FRD position is correct.
  3. The values you mentioned — x_ang_filt=0.094 rad, y_ang_filt=0.027 rad, tvec=(182.42,17.51,894.70) — are these from the GCS or printed by your companion code? I didn’t find these field names in the FC code.

Thanks,
zhen_xue