Bug Report
Bug report
The surface tracking code is using the rangefinder to get a sense of the ground distance.
There are cases where a glitch is misdetected, leading to undesirable altitude change.
Issue details
AP_SurfaceDistance.cpp relies on RANGEFINDER_GLITCH_ALT_M to decide if two consecutive measurements are too far apart, hence classified as a glitch.
Later, in surface_tracking.cpp (link), the altitude target is reset.
But if the distance step is legitimate (e.g. fly over a vertical wall), there will be no change in altitude initially (undesired). Then, if you happen to go back over the step (without an glitch detected), you might actually descend too low or ascend too high.
It would be nice to have a parameter disabling the glitch detection at least. I don't think it's an easy problem to improve reliably.
Version
master
Platform
[ ] All
[ ] AntennaTracker
[X] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
Airframe type
N/A.
Hardware type
N/A
Logs
Not publicly available, but upon request.
Bug Report
Bug report
The surface tracking code is using the rangefinder to get a sense of the ground distance.
There are cases where a glitch is misdetected, leading to undesirable altitude change.
Issue details
AP_SurfaceDistance.cpp relies on
RANGEFINDER_GLITCH_ALT_Mto decide if two consecutive measurements are too far apart, hence classified as a glitch.Later, in
surface_tracking.cpp(link), the altitude target is reset.But if the distance step is legitimate (e.g. fly over a vertical wall), there will be no change in altitude initially (undesired). Then, if you happen to go back over the step (without an glitch detected), you might actually descend too low or ascend too high.
It would be nice to have a parameter disabling the glitch detection at least. I don't think it's an easy problem to improve reliably.
Version
master
Platform
[ ] All
[ ] AntennaTracker
[X] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
Airframe type
N/A.
Hardware type
N/A
Logs
Not publicly available, but upon request.