Boat spins in circles when using “go here” function or loiter

I am certain that reversing RC channels is not the proper way to command the autopilot motor direction and that what you have done is masked a problem by forcing manual mode to work while retaining the issue in all other modes.

Understand than Manual Mode is essentially passthru. It tells you almost nothing about how the Autopilot is configured. Keep troubleshooting until it’s controllable in Acro!

1 Like

Then as a starting point. If all the ESC wires are correct. What can cause forward to be reverse and reverse to be forward? I was thinking it is the way the joystick on Herelink works. Or some bug

It’s neither a bug nor an RC issue.

What ESC are you using?

Basic ESC from Blue Robotics.

Maybe the problem is the boat is turning so fast it always overshoots?

It appears they are brushless DC ESCs. Simply switch any two motor wires on the ESC to reverse the motor direction.

But why do I need to do this in the first place?

Because one of the motors is running in reverse. Which way does the boat spin when you select acro mode?

Both are running reverse, but swapping the wires shouldn’t be necessary, there must be some explanations as to why things went wrong in the first place. When I throttle, boat reverses in a straight line. When I reverse, it throttles in a straight line.

I am not sure I remember correctly, but I think it was turning right in a perfect circle. I can check again tomorrow. No scratch that, I am not sure at all. Could be left also. I will check tomorrow.

You are still confusing manual and acro mode. Undo the RC reversing as I described. That should result in the boat misbehaving. At that point, you can establish which motor is reversed and fix it.

Let me try and explain in a slightly different way:

ArduPilot generally expects your RC PWM signals to be as such:

  • Forward throttle: 1500-2000µs
  • Reverse throttle: 1000-1500µs

It then translates those signals to throttle output based on the flight mode selected.

In MANUAL mode, it’s effectively a direct passthrough.

In ACRO mode, it assumes that you are commanding velocity and turn rate. It takes the proportion of your RC throttle signal between neutral and full throttle and uses a control loop to try to achieve the target rates.

If you have to reverse the RC channels to get MANUAL mode to work correctly, ArduPilot doesn’t have any way to know that you’ve done that. So ACRO (and all other automated modes) will behave incorrectly, the way you describe - going backwards or in circles. This is not a traditional RC vehicle. There is a controller in the loop, and it must be configured correctly.

So again, undo all of the RC reversing as I previously described. Then determine which motor is going opposite the way you intend. Switch two wires on that motor such that it spins in the correct direction.

Reread everything that’s been said here so far. I understand there is a language barrier, which is why I’m taking the time to try and explain in different ways.

1 Like