Hi @Eloi,
What’s your context for this question?
Direct Thruster Control
If you’re looking to control individual thrusters then I’d likely recommend something like our Thruster Commander over a full joystick or gamepad.
Vehicle Control
Controller Options
If you’re looking for controllers that will allow you to control a vehicle via a flight controller, mass produced game controllers tend to work well in general (as long as they’re compatible with QGroundControl), and the surface-controller
forum tag has a few interesting posts about a variety of custom controller designs. From a uniqueness standpoint I suppose the right side of the Logitech X56 and @UnderseaROV’s ROVorb are the furthest out options I’ve seen from more standard dual-stick gamepads/controllers.
Precision / Resolution / Accuracy
On precision, I tried to find some reference values but couldn’t find much with actual evidence provided to back it up. From what I did find, it seems
- a low-cost gamepad like the Logitech F310 has 8-bit stick resolution (255 values),
- the DualShock3 (PS3 Controller) may have 10 bits (1024 values)
- unclear whether the DualShock4 (PS4) and DualSense (PS5) have the same, higher, or 8 bits, although going backwards seems unlikely
- the original XBox controller may have had 8-bit resolution
- this forum post and elsewhere seem to suggest an XBox controller has 16-bit resolution (65535 values) - perhaps that’s true of recent ones, not sure, and even if it does it likely isn’t accurate to 16 bits (16-bit resolution may only have 10-12 bits of accurate precision)
ArduSub supports 800 values for both its control input and the servo outputs, so any controller with 10-bit stick resolution or higher will have more steps than are meaningful for ArduSub to deal with. Beyond that, higher quality controllers will generally suffer less from stick drift over time, and have smaller dead zones (wiggle room near the ‘neutral’ point).
Vehicle and System Design
Note that there’s a lot more that goes into controlling a vehicle than just the physical controller in your hand(s) - the mass and buoyancy distribution, thruster locations and orientations and the control algorithm(s) involved can all have a significant impact on the effectiveness, efficiency, and intuitiveness of control. Careful controller selection can be valuable for intuitiveness and convenience of having your important controls readily available, but intuitive controls don’t help much if the thing being controlled is poorly balanced and/or poorly tuned for its dynamics.
Latency
As things get to the higher end, latency is likely as important as fidelity (accurate stick resolution). If you’re trying to precisely align something, or are manoeuvring quickly between obstacles, then lag needs to be minimised between your perception (video stream(s), sonar data, etc) and the responses to your actions. Overall latency involves sensors, communication (in both directions), and operator reaction times, and if there’s too much latency then finer-grained control doesn’t help.