How to use Roll/Pitch with Lateral/Forward/Backward insted Descend/Ascend movement

Hi there,

I am wondering if there possibility to change mode Roll/Pitch control so I can choose NOT between ascend/descend and Forw/Backw/Lateral OR acend/descend and Roll/Pitch but I want to use Forw/Backw/Lateral with Roll/Pitch control mode which give me more option to move around water.

OR let’s say to which way I should dig in to setup custom made joystick which has more stick inputs comparing with regular logitech/gaming joystick.

Thank you

Hi @nurjan14,

To respond directly:

No, that’s not currently possible with ArduSub. It does seem useful, so I’ve raised an issue for it that can be tracked for any progress. You’re of course welcome to submit a pull request to add the functionality if you implement it yourself :slight_smile:

Additional control axes are also not currently supported in ArduSub and also not in QGroundControl, although that is something we’re planning to support in future.

This thread may be worth a read for understanding more about complex surface-controller setups :slight_smile:

Hi Jacob,

Is there scope/planning for this to eventually turn into mixed throttle control as well? As I understand it the ‘roll_pitch_toggle’ input will only switch roll and pitch, but not change throttle from being ‘up and down’ to ‘forward and back’ as in a conventional aircraft?

Since the BlueROV is so much more streamlined going forward than up and down, I could see a lot of benefit to easily being able to switch between the two modes to traverse greater distances up and down without using as much current.

Hi @Vincent,

I’ve moved your comment here because it’s more related to this topic than the one you posted it in :slight_smile:

As above, I raised an issue a couple of months ago which (if I’m understanding your comment correctly) is about the behaviour you’re asking about, so it’s trackable, but as far as I’m aware there’s nobody working on that at the moment, and no particular expected date when it will be implemented.

Hi @EliotBR

I am also interested in getting the pitch and roll working separately to the other inputs, hopefully utilizing the Left and Right Slider inputs from different joysticks if possible. :crossed_fingers:

@nurjan14 / @Vincent, I’ve made a poll about how best to proceed, because if enough people agree that the new behaviour would be better than the existing one then we can change it. If we have to develop the new behaviour as a separate option it will take longer.

If I’m understanding correctly you’re wanting support for additional control axes, to which I’ll direct you to the following:

If you’re specifically talking about trying to use the triggers on an xbox controller, this comment is relevant.

If I haven’t properly addressed your idea then please clarify what you’re after - we’ll likely be doing some more advanced work with joystick support later this year or early next year, and it’s good to know what features people are interested in :slight_smile:

Quick question to clarify my understanding of this as I was looking to do something with a controller which looks like it may not be possible currently:
If I were to have a controller that had additional analogue inputs that it could read to allow me to separately the lateral (left/right), forwards/backwards, ascend/descend, pitch, roll and yaw to avoid using the roll_pitch_toggle mode, this would not currently be possible due to limitations in ardusub?

Correct. As above:

As some extra context:

  • QGroundControl uses the MANUAL_CONTROL MAVLink message to send joystick axes and buttons to the vehicle
  • Technically if you send RC_CHANNELS_OVERRIDE messages directly you can already control all 6 axes at once (so it’s only kind of a limitation of ArduSub)
    • Unfortunately to use that approach in a control station software would require either not having access to the joystick button functions, or it would need to send MANUAL_CONTROL messages as well but with the motion parts ignored (which still requires a change in ArduSub, albeit a slightly simpler change than implementing additional axes)
      • Pilot gain is part of the transformation, so would either be a lost feature, or would need to be re-implemented some other way, potentially in the control station software before the motion commands get sent to the vehicle
    • MissionPlanner is a control station software that uses this approach, but it’s not supported for use with ArduSub
  • ArduSub and QGroundControl are open source, and accept public contributions
    • If you’d like to implement this functionality then you’re welcome to - we can try to provide help/support where relevant
    • If you want the feature but don’t have the resources to work on it I can register your interest in it with the BR software team, which may increase its priority / chance of being worked on by us
      • I expect we’ll likely be working on this some time within the first half of 2023 anyway, but that timeline may not suit everybody
1 Like