We have built a boat with two motors configured in differential mode. When using the boat in manual mode we should have the possibility to drive backwards. Up to now the motors are stopped at the minimum throttle position (I think this has been configured by calibrating the ESC’s). If we turn the boat with throttle = 0, one motor goes forward and the other goes backward. The ESC’s are therefore correctly configured to operate the engines in both directions.
What is the most elegant way to solve this problem?
We have found an elegant way to solve the problem: Setting RC3_TRIM to 1500 us allows to change the direction of the motors and driving backwards in manual mode. Don’t forget to move the throttle stick in the middle position before arming .
Yes, Boats and Rovers essentially have same conceptual design (reversible motors & steering).
On the side note, the solution presented here is probably coming from the fact that in QGC there’s a hotfix that has always resetted the throttle channel’s TRIM value (e.g. commonly RC3_TRIM) to the minimum value (e.g. 1002), and not the mid-range value (1500).
Thanks for the report and posting how you solved it!
Setting RC3_TRIM to 1500 us
In newer versions of PX4 I do this automatically:
It’s working around the “hotfix”/hack in QGC which @junwoo0914 mentioned and we need to get rid of.
Related to that I just recently found that QGC has an extra case for vehicles like rovers and boats where it just changes the range of joystick values:
This is disturbing in my eyes since the ground station should not need to know how it has to scale the joystick before being sent to the autopilot depending on vehicle details. It should rather send clearly defined joystick input and the autopilot which has the context of vehicle, mode, configuration can then interpret it the right way.
The problem is the seamless transition away from such mistakes from the past.
Hi MaEtUgR, I’m encounting the same question as described above.
I noticed that in the firmare v1.14.0, rc3_trim is already defined 1500 PARAM_DEFINE_FLOAT(RC3_TRIM, 1500);
But with this version I still cannot drive the motor reversely with the RC stick. Do I also need to set the parameter in QGC UI?
Thanks a lot.