Hi ! I am trying to build an autonomous little boat. Until now it reacts well in manual mode but when I start auto mode it gets terrible. It makes turns in every direction, and is never on its line… Can someone give a look at the logs please ? I put the tlogs, bins and also the param list if it can help… The weather conditions were perfect, a very flat water and no clouds.
What kind of PID tuning did you do? You are aware that you must tune it, right?
How to tune ArduPilot rover steering controller?
To tune the steering controller of an ArduPilot rover, follow these steps:
-
Set Initial Parameters: Begin with conservative values for key parameters:
STEER2SRV_P
: Set to the diameter of the turning circle in meters.TURN_MAX_G
: Adjust to the highest level where the rover remains stable.NAVL1_PERIOD
: Start with a value of 6 for smoother turns.
-
Manual Mode Setup: Measure the turning circle diameter in manual mode to set
STEER2SRV_P
. -
Tune in AUTO Mode: Create a mission and adjust
NAVL1_PERIOD
for optimal navigation. Increase for less weaving, decrease for sharper turns.
For detailed guidance, refer to the Tuning Steering and Navigation for a Rover.
And:
How to adjust NAVL1_PERIOD for weaving rover?
To address weaving issues in your rover during AUTO mode, you can adjust the NAVL1_PERIOD
parameter. This parameter controls the aggressiveness of the navigation algorithm. If your rover weaves along the straights, increase NAVL1_PERIOD
in increments of 0.5 until the weaving stops. A typical range is between 6.0 and 8.0, but some rovers may require higher values.
Additionally, consider adjusting NAVL1_DAMPING
to improve navigation in tight courses. If weaving persists, you may need to fine-tune the steering controller parameters like STEER2SRV_P
. For more details, refer to the Tuning Navigation guide.
Hello ! First thank you for your quick answer, I tried to follow this page : Tuning Speed and Throttle — Rover documentation.
I’ll try yours right away and come back to you
Hum sorry but I don’t have steer2srv_P and NAVL1_period parameters, I use ArduRover V4.5.6 with frame_type boat. Did I do something wrong ?
No, that documentation might be outdated sorry.
Here is a better source: Tuning Navigation — Rover documentation
Okay, now it is better but I still have some problems, sometimes the boat came in the wp_radius (it is 3 m for now) but don’t consider the wp cleared and turns around the waypoint over and over instead of continuing. Is there an other parameter than wp_radius that defines this ? something else : sometimes it follows well the line and sudenly leave the line and I can’t understand why.
I put the tlogs and bin in this folder if someone wants to give it a look. Thank you for your help
Hi @Alex3,
I’ve had a quick look at the logs.
It looks like the ARMING_CHECKs have been disabled. Can you please set that back to 1 and try and resolve any issues that appear at arming. I know it’s temping to “shoot the messenger” but the checks are there to catch issues that could likely be the cause of the issues you’re seeing.
It looks like maybe the autopilot is using a NMEA GPS and no external compass? Internal compasses very often suffer from interference from metal near the autopilot. Dual GPS (see GPS-for-yaw) or an external compass are required for most vehicles I’m afraid.
I think I’ll just leave it there for now
Aha you are right about the arming checks I wanted to go too fast I think, I tried disabling them and got a mavlink message : “PreArm: Check mag field: 1252, max 875, min 185” do you understand this message ?
And I already use two Ublocks antennas for compas.
Hi @Alex3,
So that complaint about the compass means that it’s suffering from very bad interference.
If you’re trying to use GPS-for-yaw it’s probably best to go back and review the GPS-for-yaw wiki page because it doesn’t appear that it’s been setup correctly.
We’ve put a lot of work into the wiki to help users.