Due to our wiring installation, we had to reverse one of the horizontal thrusters via the GUI. We thought this was no problem as was mentioned in the construction guide. Well fast forward almost a year of troubleshooting this little guy for all sorts of issues, and now I think we have identified another software bug.
The amount of math done against the thrusters seems to lead to problems. I think it would be simpler to just pass through the command from the Cockpit to the Arduino but I guess OpenROV have their reasons.
Our latest problem is that in forward or reverse directions, one motor spins roughly twice as fast as the other. This makes flying the ROV almost impossible. By code and github issue inspection, I can see that you are doing some biasing to get a more linear response from the motors. OpenROV are already aware that this needs to be adjustable (issue #325) but another problem seems to be that this is applied backwards if the ESC is reversed in the OpenROV configuration.
Here is a video demonstration. You can see that for the starboard thruster, forward is slow and reverse is fast. The port thruster is the opposite, forward goes fast and reverse is slow. Try to ignore that one of our motors has a bearings problem and sounds horrible.
My plan is to copy the hardcoded bias from https://github.com/OpenROV/openrov-software/blob/462591babb844d922ee4f77b67043932e3850031/src/lib/config.js#L35 to /etc/rovconfig.json and hack on it until the motors sound right. I'm thinking that I just need to transpose the 1s and 2s for our starboard thruster.
I'd like to know what you think.