Vectored thruster orientation

Even the master branch doesn’t seem fully updated for 22.04 yet, and the updates that have occurred are all from March or later, which is more recently than the ArduSub stable branch has been updated. I’d recommend using 20.04 if possible, and if that’s not possible as your main OS then you can perhaps try in a virtual machine instead (using e.g. VirtualBox).

You can of course wait until 22.04 is fully supported for ArduSub, but there isn’t a fixed date where that will happen, and I expect we’ll try to push out ArduSub 4.1 as the new stable first.

hi eliot, i tried the version 18.04. im still having an error when i do the submodule update and the error is the same in version 22.04. but i will try the version 20.04, hopefully its the solution for the error.

Good day im still having the same error when updating the submodule. i attached the guide im using and the entire output. What do you think the problem in here? i tried all the linux version 18.04, 20.04 and 22.04. All of them has the same error. Thank you!

I’ve read through this post more fully again, and realised you’re running into the same issue that was discussed further up. That issue hasn’t yet been fixed in ArduSub-stable, so the workaround I originally suggested is likely the best course of action for now.

I spoke with our software team and @williangalvani is working on updating submodules to solve the issue properly for ArduSub >= 4.1, but completing that may take some more time.

I’ve just tried a fresh install of a fresh ardupilot fork on Ubuntu 20.04, and it worked without issues when using that workaround. Combining for a full set of instructions:

git clone
cd ardupilot
# fetch the latest tags
git fetch --tags
# checkout the latest stable tag, and branch off it in your own 'new-branch'
git checkout ArduSub-stable -b new-branch
# manually fix deprecated authentication format
sed -i -e s/git:/https:/ .gitmodules
# initial submodule update and initialisation
git submodule update --init
# fix the same issue within a submodule
sed -i -e s/git:/https:/ modules/mavlink/.gitmodules
# update submodules recursively and continue as normal
git submodule update --init --recursive
# install prerequisites
Tools/environment_install/ -y
# reload the path
. ~/.profile
# configure waf for your board (e.g. Pixhawk1)
./waf configure --board Pixhawk1

Note that if you try to initialise submodules before the links have been changed properly then the incorrect link is stored internally, so it’s much easier to start with a fresh ardupilot clone and work through the instructions from the top.

hi thanks. it works!
If i will do a modification again in AP_Motors6DOF.cpp, should i need to repeat all this?

or only in the configure(./waf configure --board Pixhawk1) then modify in AP_Motors6DOF.cpp then compile(./waf sub)?

The original “detailed instructions” post I linked you to covers this (and more) in some depth :slight_smile:

I tried it already and it worked :blush: thank you for your help. We can proceed now on testing our ROV.

1 Like

Dear BR2 forum community.

We were able to successfully test our ALON-8VEC with the new thruster configuration.

Thanks to @EliotBR 's patiences and @Christopher 's multiple trial and errors, we finally got it right.

As promised when we first started, here are our final results.

QGC version:

Ardusub version:

Companion Version:

Thruster table:

Thruster direction table:

Thruster direction depends on prop used (CW/CCW)

Note that the ROV needs to be on stabilize before putting it on auto-depth, else it goes down hard. (Same issue as the regular BR2)

Since this is one giant hassle, you may download our ardusub file (ardusub 8VEC.apj) from the download section of our website:

Please note that this is provided free of charge, without guaranty or support.


Hello @EliotBR,

I hope you are well. We have migrated to BlueOS and Navigator board and cannot upload our 8VEC file anymore.

We get this error:

How do we resolve this?


Hi @etienne,

Pixhawk and Navigator run on different processors, so cannot use the same firmware build (they don’t have the same pins or hardware interfaces). You’ll need to re-build the firmware for Navigator, which should compile a .elf file that the Navigator can run on :slight_smile:

Thanks we will give it a go

@EliotBR So the only difference in the process is this?

building ArduSub for Navigator and was told it should be the same but using ./waf configure --board navigator instead of ./waf configure --board pixhawk .

I think I compiled it properly :sweat_smile:

This might be a stupid question but how can I verify that what I compiled was the latest 4.1 version?

Sorry, I am not super familiar with Github/Linux/Python.


Hi @EliotBR ,

Unfortunately it didn’t work. I’m able to upload the elf file but got no comms. (The ROV works with normal firmware) Can you send me the ardusub 4.1 files like you did last time for the older version? My attempt to load the toolchain have been unsuccessful…



Steps are basically

git clone
cd ardupilot
git checkout Sub-4.1
git submodule update --init --recursive
./waf configure --board Navigator --toolchain /opt/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf

output file ends up in build/navigator/bin/ardusub

I can build it for you if you share the matrix as text.

That would be great.

        add_motor_raw_6dof(AP_MOTORS_MOT_1,     1.0f,           -1.0f,          -1.0f,           -1.0f,               1.0f,               -1.0f,           1);
        add_motor_raw_6dof(AP_MOTORS_MOT_2,     -1.0f,          -1.0f,          1.0f,          -1.0f,               1.0f,               1.0f,          2);
        add_motor_raw_6dof(AP_MOTORS_MOT_3,     1.0f,           1.0f,           1.0f,          -1.0f,               -1.0f,              -1.0f,           3);
        add_motor_raw_6dof(AP_MOTORS_MOT_4,     -1.0f,          1.0f,           -1.0f,           -1.0f,               -1.0f,              1.0f,          4);
        add_motor_raw_6dof(AP_MOTORS_MOT_5,     -1.0f,          1.0f,           -1.0f,           1.0f,              1.0f,               -1.0f,           5);
        add_motor_raw_6dof(AP_MOTORS_MOT_6,     1.0f,           1.0f,           1.0f,          1.0f,              1.0f,               1.0f,          6);
        add_motor_raw_6dof(AP_MOTORS_MOT_7,     -1.0f,          -1.0f,          1.0f,          1.0f,              -1.0f,              -1.0f,           7);
        add_motor_raw_6dof(AP_MOTORS_MOT_8,     1.0f,           -1.0f,          -1.0f,           1.0f,              -1.0f,              1.0f,          8);

That is pretty much what I did but the toolchain argument doesn’t work…

ardusub_etienne.bin (1.8 MB)
I had to rename to .bin for discuss to accept it, but blueos should not mind.

1 Like

thanks mate

Works great! thanks.

1 Like