Joystick and frame configuration

Hi everyone!!!

First of all, I’d like to thank the community for being so active

In the past few days we put our ROV in the water. It has 12 thrusters, and we configured a new frame inside the file:

AP_Motors6DOF.cpp and its header file.Then we compiled with waf and uploaded the firmware.So far so good.

However, we noticed that when we command forward, the thrusters do not move correctly and the ROV starts rotating on itself.

Instead, we noticed that if we swap the X axis with R, the robot moves forward.So I have two questions:

Besides the frame configuration (cpp and header), are there other parameters or information that must be set for a 12‑thruster ROV?

Regarding the axes shown in the cockpit — X, Y, Z, S, R, T — what do they represent? Are they the same as those described in MAVLink directional control?

Thank you for all your help

Hi @Ruben_malacarne,

Is this in manual mode, or one with some kind of auto-stablisiation?

Not specifically for a 12-thruster ROV, but parameters like the AHRS_ORIENTATION are critical for the autopilot’s sense of what each direction means.

They are indeed sent via MAVLink manual control messages, but the interpretation has a bit more nuance than the MAVLink specification describes, partly from an axis-toggling feature, and partly from legacy implementation details.

This Issue describes the relevant mapping, though be aware the Z axis range is 0 to +1000.

So in the cockpit I expect the axes to be oriented as shown in the figure. For example, does the X axis correspond to the correct forward movement?

Regarding the AHRS_ORIENTATION parameter, now that I’m checking it, I don’t think I should have changed it. The navigator board is mounted with the arrow pointing toward the ‘nose of the ROV’, and it is positioned flat/horizontal relative to the vehicle. So it is in the default orientation.

Yes (except if you’ve engaged the roll/pitch toggle via the joystick button function, but that does not persist between firmware boots).

This sounds like the value should be set to None (0).