Boat vector steering not working in auto mode

Hi folks - I respectfully request help diagnosing this problem from flash log here:
00000006.BIN (748 KB)

I’m running Rover v3.5.0 on a one-man pontoon boat with a trolling motor with vectored steering provided via a servo turning the motor shaft. All works fine in manual mode but cannot figure out why no steering action in auto mode. To diagnose this I created the simplest possible waypoint file with a single waypoint about 50 ft to the right of where the boat sits on its trailer in my garage. From the log file you can see the successful thrust and steering in manual mode after the initial auto mode period. In auto mode the prop immediately spins up but the expected steering turn does not happen (despite the “SteerOut” pulse you can see in the logs). I have played with steering tuning per http://ardupilot.org/rover/docs/rover-tuning-steering-rate.html to no avail.

What am I missing here ? On a side note, the thrust (and observed prop speed) are at full throttle in auto mode in this test regardless of the CRUISE_THROTTLE setting.

Thanks for any pointers,
Tom

More information on this. Since Acro mode supposedly uses the same control logic as Auto I ran a test of these 2 modes in sequence to compare their behavior.

This tlog screen capture shows the raw thrust servo output (in green) and steering servo output (in red). You can see 2 cycles of forward & reverse thrust, followed by 2 cycles of left & right steering in Acro mode. So far so good. Then you see two cycles of switching in and out of Auto mode running a single-waypoint file to a point to the right of the stationary boat. The two green thrust pulses look ok but they are accompanied by 2 very small right-turn steering servo pulses that barely exceed the 1500us pwm midpoint and don’t budge the servo at all. This is consistent with what I see out on the water when running a more complex waypoint file - i.e. full throttle with no steering.

Again, I’ve been thru the Steering Tuning doc many times and believe all params are set reasonably tho not yet totally optimized. Any ideas ???

Hi guys - @David_Boulanger @rmackay9 @iampete @xbnr99

I hope I’m not abusing your good graces here but you have consistently posted some of the best info & pointers on diagnosing auto/nav issues and I am completely at a loss on next steps. Pls see description of problem in my posts below. I have read thru your posts to others with similar issues plus everything else I can find on this topic, have been thru my flash & t logs many times, and believe I have no significant set-up, calibration or interference issues.

Could this be a pixhawk h/w issue ?

Tom

Waiting for the posts below. :smile:

Do you mean the previous questions?

Sorry David, I meant the previous 2 posts above (not below).

I 'm going to download that .bin log and give my two cents within an hour.

It appears that the boat is not in the water for this test. No matter what your CRUISE_THROTTLE is if the boat is on the ground and can’t move the throttle will go to full. You need to put this in the water, the environment it is supposed to operate in, and test it. I did not look at your PID’s but there is not much to comment on until you attempt something in the water

1 Like

David - thanks very much for the quick feedback.

Right, the boat was on its trailer in my garage for this test. I saw a comment somewhere where a test like this was recommended as a first step in troubleshooting auto mode with a boat. Obviously one could at most see the results of trying to navigate to the first waypoint. I was hoping to get some kind of positive test results from a very simple, stationary, dry test since I was seeing the same behavior on the water in previous attempts to test auto mode.

Your explanation for why thrust goes to full throttle sounds reasonable, but why no steering ? Does the auto steering algorithm expect some forward motion before it tries to turn ?

I’m charging up the batteries and will do more auto testing on the water tomorrow.

Honestly I don’t know. I noticed your steering servo has a min and max of 600 and 2400 I think. bit unusual but maybe you are using a servo stretcher. As far as the steering goes I’m not sure if the gps is drifting one way or another and the boat really doesn’t know where it is heading. Keep in mind in a heavy cross wind often my boat points 10 degrees or more off the direction it needs to go to make it to the waypoint. Get it out on the water and put up a log. Do you have a log of when it was in Auto on the water?

I will run some tests and gather good log files tomorrow on the water and post them.

I’m blending two gps’s which are elevated and well shielded, and am seeing their drift looks minimal in the logs.

I’m using a 300 degree servo for steering which is geared down via timing belt pulleys 2:1 so its full range is 150 degrees - i.e. +/-75 degrees from straight. The 600/2400 min max was the vendors recommendation for full range, but perhaps +/-75 degrees is too much and should be turned down.

@David_Boulanger
Per discussion above, here is link to flash log from today’s auto test run on the water.
https://1drv.ms/u/s!AgBpOtMFaJBV_SDcOZxeC3UV6LIB

Several things of note:

  1. from the map view you can see the very erratic steering behavior when executing the simple triangle shaped waypoint file. There was no wind or current and the water was very flat. (Note the run appears to start on the dry part of the boat ramp, but that is actually under water this time of year.)

  2. if you graph THR.ThrOut you can see two auto mode attempts of the triangle waypoint mission between 9:28 & 9:30, plus some manual mode activity before 9:28 and after 9:30. Note that thrust output is 100% throttle in auto mode even tho CRUISE_THRUST is set to 75%.

  3. if you then graph STER.SteerOut you can see the erratic steering output wildly swinging left & right during auto mode between 9:28 & 9:30.

In short, all auto mode tests I’ve run in the water behave the same - full throttle with wildly erratic steering (I erroneously said “no steering” in previous post).

First thing appears to be that your CRUISE_SPEED is 2 and the boat is not capable of this speed. This is why the boat is running at full throttle when in Auto. CRUISE_THROTTLE is a parameter that is roughly the throttle percentage needed to attain CRUISE_SPEED. First thing I would do is slow my CRUISE_SPEED to 1 M/S. I looked at your ATC_STR_RAT’s and they may be a bit high. FF,P,I, but it is hard to tell when the boat can’t go the speed it is being asked to go. The other Parameter that seems extremely important on boats is the NAVL1. Default is 8 but 14 to 16 seems to be a good number for slow boats. Try a CRUISE_SPEED of 1 and tune it at that speed.

See screenshot of speed vs. des speed.

Point well taken about setting CRUISE_SPEED down to 1 m/s. I will make that change and the NAVL1 change you recommend, and then retest and do tuning per doc.

Still, that doesn’t seem to explain the wildly erratic steering. Its clear actual speed never gets to 2 in your last graph, but the spikiness of actual speed seems almost certainly due to the steering flopping all over the place. ThrOut graph is a steady 100%.

One thing to keep in mind is the NAVL1 is usually adjusted last. In other words once your FF, P, and I are reasonable it is used to take out the little wiggle the boat may exhibit in auto going from waypoint to waypoint. @rmackay9 may have better advice but I think he is a very busy man but the expert. 9 times out of 10 when people are having problems tuning a boat it seems to be because they are asking the boat to go faster than it can. With vectored steering this may magnify the problem. As always my advice is marginal at best and I may be missing something. Once I saw the speed vs. des speed I did not look at much else other than your ATC_STR_RAT P, I and FF

1 Like