Manual mode do not drive straight

Hi, everyone,

I have a rover with two motors and two ESC (Servo1_Function 73 and Servo3_Function 74
, in manual mode it does not drive straight ahead but pulls to the right.
In automatic mode it drives very straight.

What is the correct procedure to properly trim the engines?
I didn’t get a good result via the remote control or via Servo1_max.

I found the following ->
https://ardupilot.org/rover/docs/savetrim.html

But I don’t know if and how I should adjust it. Many thanks for your help.
Hardware is a Pxhawk 2.1 cube Purple or Pixhawk 2.4,8 and Rover version 3.5.2 and 4.0

Many Thanks .

The way I accomplish this is to put the rover (in my case a zero-turn mower) on blocks and then work to get both left and right drive wheels responding the same to outputs from the controller. To follow my method, you need a way to measure the RPM of each wheel, at least approximately. In my case, I can put a sticker on each wheel and count the number of revolutions of the sticker over 20 seconds or so. But, a better way is to use a tachometer. I recently bought this inexpensive tach from MPJA.com: Pistol Grip LASER Photo Tachometer | MPJA.COM and after a learning curve, it has been very helpful. If you have a rover with high rpm wheels, you would almost certainly need a tach.

Generally, I follow these steps:

  1. Run left and right wheels at full forward speed and record both rpm readings. Reduce SERVOx_MAX for the fastest wheel until its rpm is the same as the slower wheel.
  2. Run left and right wheels at full reverse speed and record both rpm readings. Increase SERVOx_MIN for the fastest wheel until its rpm is the same as the slower wheel.
  3. For each wheel, determine the SERVOx_TRIM value by finding the mid point between the output value that just causes the wheel to start to turn forward and the output value that just causes the wheel to start to turn backwards. One way to do this is to put the controller in the HOLD mode and then increase the SERVOx_TRIM a little at a time until the wheel begins to turn. Then decrease it until it starts to turn in the reverse direction. Now set the SERVOx_TRIM to the average of the two.

I have found that this method makes my rover track pretty true in manual. It may not be perfect, but close.

I recently worked on some loose linkages on my mower and went through this exact process again. I videoed the process and will post it on YouTube soon. I have a video from a few months ago that shows the process a bit, but not in detail. It is at (23) Changing Out a Servo and Calibrating the Servo Outputs - YouTube. Jump to the 5:45 point.

Of course, I am not using ESCs, but rather servos moving the mechanical linkage to the transaxles of the mower. You could also have some other issues related to the ESCs.

I hope this helps! Good luck.