On an agricultural rover with a Pixhawk, I want to use an auto-center joystick to increase/decrease the throttle in up/down positions, while in the middle-idle position to maintain its current speed, i.e.:
- initial idle-position after arming: no speed
- throttle up: increase speed. Return to idle, maintain speed
- throttle down: decrease speed. Return to idle, maintain speed.
I connected an H-bridge on the Brushed output #3, providing to the motion actuator 0-4.7V analog input (0V stop, 4.7V full throttle). For reverse, I can trigger an I/O relay to enable reverse direction on the rover’s actuator, not an issue.
I could use a joystick with a non auto-centered stick (without sprinkles), but the panel I found from Logitech (Logitech G Farm Simulator Side Panel Control Deck) is exactly what I want for the job (btw, the bottom-left wheel operates as a 3-button, roll-up/roll-down/press).
I tested also with Rover v.4.2 firmware, just to check some new parameters for idle throttling.
Is it something I could achieve with configuration?
Is there an ESC that can work with throttle increments/decrements?
Could I use a button to increment/decrement throttle, instead of a an analog input/output like a joystick?
Even something with scripting would be fine, though I don’t have experience but I can dig into it.
Try using acro mode, if that exists in rover. But it will cause the steering to also behave like that
I wouldn’t want to affect steering.
The idea is that the farmer sets a steady speed for its rover and simply adjusts the steering manually from time-to-time, to align the rover if off course (to avoid stepping onto the growing vegetables)
btw, Acro mode exists in rover.
Acro mode will not behave that way (at least not by default, and I’m unaware of an autopilot setting that will do so).
For what modes would you prefer this style of control?
For most modes except AUTO/GUIDED, mapping the throttle to a roller/slider should provide the simplest solution.
If you want to use the stick the way you describe, it’s probably best achieved using a transmitter function rather than relying on the autopilot. I have no idea how to make that happen on a USB joystick.
For manual mode would be fine.
I’m using a USB joystick on a laptop, running either Mission Planner or QGroundControl, as the GCS.
How does that jog wheel work on that controller? Is it like a mouse wheel with continuous rotation?
Exactly like a mouse wheel. Three buttons are assigned to it (24, 25, 26). When rolling upwards, every click step is pushing button 25, downwards button 26 and if you press it (like a mouse wheel) it’s button 24.
That’s why I’m looking if/how I can control throttle (increase/decrease) in increments (e.g. 2%) by using two buttons.
This morning, I found this setting in QGroundControl that does exactly what I want, with the spring joystick !!!
It’d be great if this also exists on MP.
Very nice to hear you have found a solution
This is the default configuration in Ardurover.
I’m pretty sure I haven’t seen such an option for the throttle rate instead of the throttle itself on MP or with an Ardurover firmware parameter.
This is from QGC documentation:
Spring loaded throttle smoothing: In this mode you control not the throttle itself, but the rate at which it increases/decreases. This is useful for setups where the throttle stick is spring loaded, as the user can hold the desired throttle while releasing the stick.