Parameters to tune for Large Boat


i spend most of my time reading and gaining experience in how to use ArduRover. Let me explain where we are and what i’m looking for.

We have a 22m Boat (Catamaran, 2 full electric Pod Engines) where we try to hook Ardurover to to make it easier for Students to get started in various topics like Collision Avoidance.
The boat is with people on board that we request access to the engines from, that are in charge to keep us and the boat safe and can overrule any of our steering commands and take back control.
we have all nessesary papers and permissions by the authorities to do these kind of experience here in the area.

The Pod-Engines are fully rotatable 360degrees (to go backward you have to rotate them) and if they do not have any throttle there is no steering power, we don’t have a classical rudder.
SkidSteering does not work due to limited power and the motors beeing way at the back of the boat and the boat beeing hevy up front. The Pods can be controlled by NMEA0183 messages both independent form each other.
FlightController is a Raspberry Pi4 with a Navio2 Module running ArduRover 4.5.4. We utilize an onboard Hemisphere GPS Receiver wich also outputs Heading so we disabled the compass of the Navio Module and configured Ardurover to use the external compass.

In First step we captured the PWM Outputs for direction and thrust with a microcontroller and converted them to the coresponding NMEA Messages. This worked fine but we decided to go a different route by adding mavproxy, outputting the MAVLINK PWM Outputvalues to MQTT and then feeding it through NodeRed to the NMEA Interface.
This works in manual mode very well besides the boat beeing difficult to steer and to drive a straight line.
We the went to Arcro Mode for tuning and are able to run a Line with a little bit of left-right-osciliation.
We figured out this to be a problem in the steering mechanism of the pods because the only turn if we send a target-direction for the pod that is 2 or more degrees of the actual position for more then one second. the hydrylic steering system in addition is not straight on point when you tell it to point at 0 degreen it might be ± .5 degrees.

When switch to Auto-Mode things get complicated so i try to understand a couple of things and trying to find the right parameters. Might be somebody here has some expierience in a simmilat project.

Let’s get started with the questions:

  • is there any kind of parameter for our problem with there beeing no rudder to tell ardupilot to generate thrust to turn if the vehicle is in motion? in Automode we observe thrust going to zero, the ship still having a speed of about 3m/s and it turns the direction and nothing happens or the ship turning in a random direction.
  • is there any kind of parameter for the steering-dead-zone like “if you change direction then in Steps more than 2 degrees” we can look at?
  • when going to auto mode with waypoints in a squre at about 1x1km it tries to meet the line between waypoints with an angle of 90 degrees and then keeps turning half circles allong the line. is there any paramter in Rover like NAVL1_PERIOD or NAVL1_DAMPENING in Ardupilot to make it aim at the line between the waypoints in a less agressive manner by aiming way more forward?
  • are there any other best ptractise parameters for large vehicles that can be tuned?

If intrested i have a log of todays 7h drive which was abour half done via Ardupilot.

Hope to get someone intrested in exchangeing knowlege for automating larger vehicles :slight_smile:


1 Like

another question:

  • does ardurover on a boatframe do anything like setting counter-rudder (steer in the opposite direction) to stop rotation when approaching desired heading? In my observation it does this if overshooting but then it’s to late. if we rotate our vessel and bring it to a certain turn rate doe to it’s mass and other characteristics it will keep turning until we set counter-rudder to stop the rotation.

Interested in your setup as it sounds like my 2000lbs boat.
The aggressive going straight to the heading line seems like it is overtuned. Have you tried PID to zero and just play with FF?
The counter steer before crossing the line is something I have not figured out yet. It either oscillates or does not turn hard enough, no in-between.
Looking forward to your updates.

Hi @nido009,

AP doesn’t yet support vectored thrust motors that rotate 360degrees so the options are either to use skid-steering (where the motors don’t turn at all) or regular vectored thrust but AP will only rotate the motors perhaps 60deg in either direction. I think the latter is probably best.

Tuning can be a bit of a challenge but we have instructions here on the wiki (which you’ve probably already seen). The navigation page is here and it is probably the navigation controller’s velocity gains that need to be reduced.

It sounds like you have acro mode working OK which is a good way to confirm that the steering and speed controllers are working OK. I’d like to see a log if possible of the vehicle turning in acro mode (maybe not 7hrs of logs though :-)). Or you could try running QuikTune… the key thing is to ensure that the steering controller (aka turn rate controller) is tuned well. Navigation won’t got well unless the steering controller is well tuned.

@rmackay9 can you post a couple of .bin files from well tuned boats? Then i can add them to the ArduPilot methodic configurator software.

Hi @rmackay9 tnx for your feedback. my collegue did a lot of reading and did another tuning ride today. he will probably add details here later on.

skidsteering does not work since to reverse motors have to turn 180 degrees and that takes 7 to 8 seconds and causes the boat to turn unpredictable so probably make the steering controller go nuts.

we tryind autotuning once but failed since not able to run usefull circles. we will try again in the future and compare tuning values to what we found the manual way.

I have uploaded a bin-log to which stays there for about a month bevor getting lost.

Only the Acro- and Auto-Modes have been driven with Ardurover, when in Hold or Manual ship was controlled by the captain. We got way closer to beeing able to run waypoint missions and probable about 10m/s Wind from West (directly from the Side) was not helping at all. We will keep trying and will report.

Time in the binlog is wrong but here are the changes that have been done that improoved overall steering:

Start with existing parameters
11:50 Start
11:56 ATC_STR_RAT_P 0.5 ->0.3
→ Change corse lead to bigger oscilations
11:58 ATC_STR_RAT_P 0.3 → 0.7
→ relativly good going straight in acro mode
12:06 Test Parameterset: P0.05, I 0.05, D 0.02, FF 0.05
12:12 → steering lazy/sluggish, when stopping turning the rotation is not stoppel
Ca. 12:16: change parameters back to P 0.7, I 0.1, D0.4, FF 2.0
1219 keep course better
12:20 Start Auto Mode Meander Searchpattern
Ca. 12:26 change PSC_VEL_P 0.2 → 0.05
12:29 change PSC_VEL_P 0.05 → 0.02
12:39 change des searchpattern
12:41 WP_PIVOT_ANGLE 60->360 to disable pivot turning but not relevant because no skidsteer configured.

90 degreen corner at waypoint not hit well, turnrate way to low.
13:18 PSC_VEL_D 0 → 0.005
13:24 new mission
13:33 heading jumpeg about 90 degreen, cancel of testing because of wrong heading

after restart of ardurover heading is fine again.

heading comes from external hemisphere GPS receiver.