Vmeta drone ground_distance

For our precise landing we are using the ground_distance reading from the vmeta video stream element:

self.ground_distance = vmeta[‘drone’][‘ground_distance’]

This generally works, but sometimes and at the moment just with a particular drone we are observing nonsense readings of “0.2” here, which don’t fit into the current sequence, for instance:

0.67

0.65

0.63

0.2

0.2

0.61

0.59

etc.

What might cause this sporadic 0.2 reading?

Hello Daniel,

The ground_distance is estimated from either :

  • the ultrasound range sensor,
  • sometimes the vertical camera’s optical flow, when good ultrasound measures are not available.

The ultrasound sensor has a minimal measurement range between 40cm and 65cm, since it is the same capsule which switches from emission to reception.
When the ground is closer than the ultrasound’s minimal range, the autopilot is able to detect that the ground is close (somewhere between 0m and 0.65m), but it is unable to estimate its exact distance. In this state, the autopilot sets the ground_distance to the fix value of 0.2m.

The ultrasound emission duration, varies slightly between drones or with the temperature. And it directly affects the minimal measurement range of the ultrasound sensor. Hence the effect visible on a particular drone.

The 0.2m reading can be interpreted as a real ground somewhere between 0m and 0.65m distance.

Have a nice day

Aurélien

This topic was automatically closed after 30 days. New replies are no longer allowed.