Hello,
I have a custom-built drone with a CubeOrange FC (PX4 v1.14) and a Here2 GNSS module. I was trying the position hold mode flight at approximately 10m altitude. I took off in STABILIZED mode, switched to ALTITUDE mode, and then to POSITION mode at 9m.
The drone was maintaining altitude well for around 40 seconds, but then suddenly began losing altitude at 8:00 (see the attached image).
It descended nearly 5m, even when the throttle stick was at 50% (zero on the joystick plot). I had to manually increase the throttle stick to stop the descent.
Could someone help me understand whether this is a configuration issue or a problem with the sensor?
I am sharing the logs link here to visit the rest of the graphs. [link]
I’m not so sure but what I can see is that the GPS is thinking it is going up, while the baro clearly indicates going down. The fused altitude estimate is somewhat in-between but still leads to the issue of it sinking that you saw.
It’s quite odd because the GPS seems to be quite confident in its vertical measurement:
Have you ever seen this again, or was this just a one off?
@JulianOes Thanks for this insight. I completely missed comparing the barometer plots. I have few questions:
-
(t = 7:35 - 7:55) The GPS shows a rise in altitude, barometer shows a loss in altitude, and the fused altitude (blue line) shows a rise of approx 2 m. However, the local position plot shows about a 0.3 m loss, followed by altitude correction.
(t = 8:00 - 8:20) The barometer shows nearly constant altitude, GPS and fused altitude indicate approx 2 m rise. The local position shows 4 m altitde loss, which matches the actual flight behavior.
How are the fused altitude and local position estimates computed, as they provide different information? My understanding is that the accelerometer-derived vertical velocity is also fused into the final local position estimate. Please correct me if wrong.
-
I performed several flights last week and did not experience this issue. I will inform if it appears again. Which sensor is likely creating the problem? What can I do to ensure it does not appear again?