Auto-altitude control

Eliot,

Thank you for the prompt response! Good to know that Clyde is working on it, I look forward to seeing its progress.

Thanks again,
Logan

1 Like

We’re really looking forward to potentally using a ‘terrain-follow’ or ‘altitude-hold’ mode using the DVL as a rangerfinder as part of our automated surveys :grinning: Do you know if there is an updated beta version of ArduSub with this functionality even partially implemented which we could test?

Hi @AndyM,

Until it’s merged in to the main fork there can’t be a beta version of it, so you’d need to either ask @clyde for a build of his version of the firmware, or build it yourself from his fork. I spoke with @williangalvani yesterday and he said the current state may be possible to use at the moment, but even if it is runnable it doesn’t yet have a threshold built in for the sensor confidence, so it could be quite flaky/buggy.

Eliot, that’s super helpful, thank you so much! We’ll work around your recommendations and comments :grin:

Hi, @AndyM – feel free to post questions and observations, and I’ll try to respond in a timely manner.

The code as-written works, and has been tested one 2 ROVs with 2 different sonar sensors, but it isn’t ready for prime-time. There are several remaining tasks, including:

  1. I need to add outlier rejection. Part of this is done, but there is still some work to do.

  2. The sonar readings lag the barometer readings, so the pilot experience can be a bit confusing. E.g., you can use the joystick to move to a different depth while range-hold is engaged, and when you let go of the throttle the most recent rangefinder reading is used to set the rangefinder target. In practice this means you need to carefully watch the rangefinder reading in QGC instead of the depth reading. The fix that Willian and I talked about is to track the depth change while the pilot is in control, then apply that delta to the rangefinder target. This should make the experience more intuitive.

  3. There are some other improvements I’d like to make to the pilot experience, like showing the rangefinder target in QGC, and perhaps some joystick button actions like “set rangefinder target to X”. These will happen after the basic control code is on DEV.

Thanks,
/Clyde

That’s great Clyde,
When you say ‘2 deifferent sonar sensors’, is one of them a DVL? And if so does that present different outlier rejection challenges?

Yes, one of the sensors is a WL A50. There’s a bug in the BlueOS extension where the DISTANCE_SENSOR.signal_quality field is always 0 so this information isn’t useful for rejecting outliers. You can see the VISION_POSITION_DELTA.confidence field (also published by the extension) to get a sense of signal quality.

I really like this idea, so I’ve added it to my list of ideas for the depth/altitude indicator in Cockpit :slight_smile:

1 Like

We’re all rooting for you on this one @clyde
Terrain following is essential when there are restrictions on seabed disturbance for example.
If there’s any beta release we’d be happy to test it.

+1 on that @clyde! Thanks for your hard work on this. Like @GavXYZ , we’re in a position where seafloor disturbance is a no-no for biosecurity reasons. We’re working on benthic imaging for detection of invasive exotics. Ideally some kind of altitude lock (for holding same camera to seafloor distance) and maybe even a safety “floor” you can’t drive through would be awesome features. We’ve transitioned across to Cockpit so should be able to customise some of the UX on this over time.

@PeterM if you check the PR it’s actually already been merged into ArduSub master, and there’s even support for it in Cockpit :slight_smile:

If I’m remembering correctly we’ve avoided shouting about it so far because master is quite unstable at the moment (the transition from 4.1 straight to 4.5 is significant, and the latest state of the codebase for Sub hasn’t been tested much). You could try testing the latest dev version of ArduSub if you want, but I’m not sure whether we expect it to be usable at this stage (@williangalvani may have some insight there).

Once it’s in a beta release we’ll start more actively recommending for people to try it out :slight_smile:

1 Like

Hi all!

Surface tracking is now included in ArduSub 4.5 beta :slightly_smiling_face:

3 Likes