Skip to content

Surface tracking rangefinder bug #32881

@Georacer

Description

@Georacer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions