Hi,
I am currently working on a skid steering catamaran boat prototype along with some friends for bathymetric surveys and mapping.
The boat is about 1.8m long, 1.4m wide and weigh about 70kg.
The hardware used:
FCU: Blue Robotics Navigator Flight Controller with Raspberry Pi 4 with ardurover 4.5.7
Thrusters: 2x T200
GPS: 2x ublox zed F9P in RTK Fixed mode, one module at the base station and the other on the boat.
For several days we have been trying to get the boat to perform an autonomous mission with few waypoints and tuning the PID parameters of the throttle and steering controllers by following the tuning guides as well as the navigation or SCurve controller.
We haven’t had much luck of getting the controllers ot perform well enough, the boat usually tends to overshoot in corners and as such takes long time to follow the straight line between waypoints and also never perform SCurves at all even though the pivot turns parameters was set to 0.
Request:
I hope if someone could have some time to investigate the DataFlash logs attached and points us to where things could be improved.
Few things I noticed from reading through different topics here in the forums and during the trials that could help narrow down the source of errors, please correct me if i’m wrong:
-
I have to specify the offset between the GPS antenna and the FCU in GPS_POS1, which I haven’t yet.
-
From the logs the yaw innovation looks very high even though we calibrated the compass in the navigator (which blue boat uses as well so we think it should be adequate enough for our use case until we switch to a more robust method of estimating the yaw like a moving baseline) by using the default onboard mag calibration “process many times” (we had to detach the two hulls from the main compartment to manage to carry and rotate the compartment during calibration).
-
The gz graph indicated that the boat’s angular velocity can reach up to 38 degree/sec but when we tried to calculate it manually by steering the boat 360 degree repeatedly it managed to achieve a full rotation in about 17 to 20 sec which indicated a maximum of 21 degree/sec turn rate, so we had to write this value in ACRO_TURN_RATE parameter instead of the 38 value.
-
Limiting linear speed of the boat through decreasing the WP_SPEED did improve the performance of the controllers a bit.
-
The number of visible satellites is always 12 from mission planner, but when connecting the gps module at the base station to u-blox center it’s visible that the number of the satellites is way much more, so I’m not sure if there is a certain parameter in ardupilot that should be set to remove this limit if it exist?
Photo:
Here is a photo of the boat with the black circle denoting the placement of the GPS antenna on the boat and the red square as the FCU:
Logs
Here are two DataFlash logs during two different trials each with different PID parameters:
Thanks a lot !