qgroundcontrol icon indicating copy to clipboard operation
qgroundcontrol copied to clipboard

Guided Altitude Slider Linear Slider with Snapping

Open JMare opened this issue 1 year ago • 16 comments

This is a continuation of a short discussion on Discord, and is my concept for an improvement to the guided altitude slider. This is something I have modified in a custom build already, but I am making this issue to discuss whether it would benifit others and would be appropriate for integrating into master.

Background

The current exponential altitude slider is designed to "allows for fine adjustment around the current altitude, but also allows the upper/lower end of the range to hit a full range adjustment" see #5150 for background.

The issues with the current design

My suggestions are based on my experience of deploying a fleet of multirotors flown exclusively with guided mode through qgroundcontrol (On a 10" tablet). The drones are flown between 0 and 120m. We have found the following issues with the current behavior:

  • The exponential slider makes it difficult to precisely make large altitude changes, as the resolution decreases away from center. While it is very easy to "go up 1.5m" it is hard to precisely "go to 80m" which at least in our case is a more common scenario.
  • The non linearity makes for a less predictable experience and requires the user to concentrate quite hard to dial in specific altitudes.
  • The change altitude slider behaves differently from the takeoff slider

Solution Mockup

In my custom build, I have written the following: The slider snaps to the tickmarks and the red section shows the minimum guided height, below which you cant drag the slider. I find it works quite well. This is similar to what was suggested in #5795. image

When would this not work?

While I appreciate that there may be scenarios in which the exponential slider is a better option for this, I believe they are the minority of use cases. I believe the solution I am proposing would not work when:

  • High altitude precision is required - eg the ability to go to 43m exactly, rather than being content with coarser altitude steps
  • A very large altitude range is in use, beyond the normal 0-120m
  • The vehicle needs to fly below the home point

My suggestion for integration

  • Under the guided command settings section, a drop down to select linear vs exponential slider (default whatever is deemed appropriate for most users)
  • a tickbox to enable snapping on the linear slider if desired (default enabled)
  • a setting for slider snap resolution, ie a setting of 10 will snap to the nearest of 10 values. We can setup the defaults for this setting to be low for mobile builds, and high for desktop builds. eg a value of 16 is what is used in my example above and is practical on desktop/laptop, but on a phone a value of 8 eg 50ft resolution would probably be more usable. (we could also limit the maximum allowed value depending on platform)

JMare avatar Jul 21 '23 04:07 JMare