I’m currently working with a BlueRov2 (frame config 2) and I have one idea I’d like to share with you.
During a normal dive it takes a while to get the ROV down to the operating depth also “costing” quite some energy, as the whole frame has to be pulled through the water.
My idea now is what I call side-diving.
You rotate the ROV to say 90 degrees roll to the right. From there you can rotate the nose vertically down via yaw. And then you just go forward → less drag and four motors pushing the ROV down.
I tried doing that in ACRO mode, but that’s not too easy to keep it under control and on “track”.
Some automation or at least stabilization functions would be appreciated to have less manual stabilization to do.
I’ve done some first implementations and tested them im the SIL:
- I added a new parameter called sidedive.
- With the button functions custom_1 and custom_2 I set / reset sidedive to 1.0 and 0.0 respectively.
- in control_althold.cpp I added a condition that if sidedive > 0.5 it will set the target_roll to pi and target_pitch to -pi/2.
- With ANGLE_MAX set to 80° (haven’t made it yet to set it to 90°) and MNT_ANGMAX_ROL set to 90°, the ROV nicely rolls to almost “knive-edge” when sidedive mode is enabled
Now the problems:
- The Pitch angle won’t change and stays around 0° (this could mean that yaw control is not used to control pitch in this attitude). I haven’t figured out yet all the control loops, but maybe someone could help me on this - is for attitude control a full strap down used to command the lower rate loops? E.g. When rolled 90° to the right, a theta_dot can be achieved via yaw controls.
Looking forward to comments on this!
kind regards from Germany,