Ardurover pixhawk settings for autonomous operation
Building an autonomous boat based on an off the shelf autopilot platform seemed like a no brainer at the start of this project. The Ardu-rover platform seemed to offer good documentation, tested and standardized hardware, and plenty of documentation to help with the Ardu platform configuration. This it has, but the problem I ran into was in that the documentation doesn’t give a cohesive understanding how to configure all the settings in a way which makes any real sense unless the user spends hours researching ALL configurable settings.
It wasn’t until I actually tried to navigate the bewildering number of options on what and how to change the mission planner settings and autopilot configuration did I realize that the platform may be too cumbersome to be used in a way which gave predictable results without having a deep level understanding on what to configure with the platform. After hours of reading forums and testing out settings, learning the Ardu platform was almost like learning another language.
As such, this page is a compilation of settings which I have configured into LoCARB to get it working autonomously in the way I wanted it to (to always steer the rudder as soon as it gets a GPS lock and never test for error conditions).
Disable all Failsafes
If you do not disable all fail safes, your autopilot probably wont arm, will drop out into some loitering hold mode if it detects a problem, and will require end user action in order to get it back into auto mode. This could be a problem if the autopilot is expected to run autonomously.
FS_ACTION,0 | |
FS_CRASH_CHECK,0 | |
FS_EKF_ACTION,0 | |
FS_EKF_THRESH,0 | I missed this setting on the second launch which is why I believe when coupled with INS_GYR_CAL being enabled caused my boat to drop out of auto mode and go into HOLD mode. |
FS_GCS_ENABLE,0 | |
FS_OPTIONS,0 | |
FS_THR_ENABLE,0 | |
BATT_FS_CRT_ACT,0 | |
BATT_FS_LOW_ACT,0 | |
BATT_FS_VOLTSRC,0 | |
FS_CRASH_CHECK,0 |
Enable EKF3
AHRS_EKF_TYPE,3 | Enable EKF3, likes the up and down orientation more than EKF2 |
EK3_IMU_MASK,3 | A value of 3 enables both IMUs. If using a clone px4, incorporate the hardware fix, or just use one. The operation of using both IMUs still leaves me with unknowns. I do not know if the boat will have trouble navigating larger turbulence. Want to go down the IMU rabbit hole on these pixhawk platforms? Check this out
If using both IMU 1 and 2 on a pixhawk 2.4.8 (Pixhawk 1), implement the hardware fix as well. See fix on bottom of page here |
Set Initial Boot Mode
INITIAL_MODE,10 | Despite setting this, if GPS or EKF is not stabilized on boot, it will not start in Auto mode. Since GPS takes a few seconds to get a fix, this always fails. See workaround here |
Dont require any user intervention on start
AUTO_KICKSTART,0 | |
AUTO_TRIGGER_PIN,-1 | Don’t require start switch |
Disable Initial Startup Calibration of sensors
INS_GYR_CAL,0 | We disable this because we do not want sensors to calibrate while moving, such as if launching from a boat. |
Disable Logging to SD
Due to SD Card corruption common on systems with unreliable power supplies, logging should be completely disabled for the final launch. I found that when the SD card filled up, or there was corruption on the card, the operation of the autopilot experienced strange issues such as not reporting correct voltages and reporting incorrect data to the GCS. I just disabled logging since ill never look through the files anyway.
LOG_BITMASK,0 | Main Logging Control |
EK3_LOG_MASK,0 | Optional |
LOG_BACKEND_TYPE,0 | Optional |
A note about tuning PID for steering on the Pixhawk 1 autopilot
There is NO GOOD information about tuning Pixhawk P.I.D. values online for boats like LoCARB. I tried everything I could find to tune PID myself to no avail. It wasn’t until I reached out to Damon at the Seacharger project where I made any headway in this area. Please drop him a line for a PID worksheet which will help find the the correct steering properties for your specific project.
For reference, I will list LoCARBs P.I.D. settings as any boat with similar specs should be able to use it.
BOAT SPECS
Length: 6ft
Speed: 1.5-2.5knts
Rudder max angle: 30 Degrees
P: 2, I: 0.1, D: 0
Birds eye view of what the boat will look like when it makes a large course correction using the following PID:
P: | 2 |
I: | 0.1 |
D: | 0 |
P: 4, I: 0.1, D: 0
Birds eye view of what the boat will look like when it makes a large course correction using the following PID:
P: | 4 |
I: | 0.1 |
D: | 0 |