Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
searchwing-ardupilot-parameters [2020/02/27 11:20] beckmanf [Power Module] |
searchwing-ardupilot-parameters [2022/05/23 14:30] (current) wf68spef |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Ardupilot Parameter Setup ====== | ====== Ardupilot Parameter Setup ====== | ||
- | [[https://ardupilot.org/plane/docs/parameters-Plane-stable-V4.0.3.html|Description of the parameters]] | + | **Documentation is outdated. Please take a look at the standard SearchWing configuration in the searchwing-config git.** |
+ | |||
+ | [[https://ardupilot.org/plane/docs/parameters-Plane-stable-V4.2.0.html|Ardupilot description of the parameters]] | ||
+ | |||
+ | [[https://gitlab.com/searchwing/operational/searchwing-config/-/blob/master/ardupilot/searchwing/LATEST.params|Standard set of SearchWing ArduPilot parameters]] | ||
==== Arming / Safety ==== | ==== Arming / Safety ==== | ||
Line 8: | Line 12: | ||
|BRD_SAFETYENABLE |0 |Disable the safety switch |Safety switch is not accessible, because it is inside the fuselage | | |BRD_SAFETYENABLE |0 |Disable the safety switch |Safety switch is not accessible, because it is inside the fuselage | | ||
|ARMING_RUDDER |2 |Arm and Disarm with rudder |Default is that you can only arm but not disarm with rudder | | |ARMING_RUDDER |2 |Arm and Disarm with rudder |Default is that you can only arm but not disarm with rudder | | ||
- | |BRD_SAFETY_MASK |15 |Servo 1,2,3,4 enabled |These servos can move also in safe state - NOT REQUIRED??? | | + | |BRD_SAFETY_MASK |27 |Servo 1,2,4,5 enabled |These servos can move also in safe state - NOT REQUIRED??? | |
|INS_GYRO_CAL |0 |Disable Gyro Calibration at startup | This prevents INS calibration at startup| | |INS_GYRO_CAL |0 |Disable Gyro Calibration at startup | This prevents INS calibration at startup| | ||
|ARSPD_TYPE |0 |No Airspeed Pitot Tube | Disable the Pitottube airspeed sensor (we don't have one)| | |ARSPD_TYPE |0 |No Airspeed Pitot Tube | Disable the Pitottube airspeed sensor (we don't have one)| | ||
+ | |COMPASS_USE2 |0 |Disable PixRacer compass | Disable the PixRacer internal compass | | ||
+ | |COMPASS_USE3 |0 |Disable PixRacer compass | Disable the PixRacer internal compass | | ||
Is the safety_mask maybe not required because the pixracer is always in safe state? Safe and disarmed is different? | Is the safety_mask maybe not required because the pixracer is always in safe state? Safe and disarmed is different? | ||
Line 39: | Line 44: | ||
^Parametername ^Value ^Description ^Remark ^ | ^Parametername ^Value ^Description ^Remark ^ | ||
- | |MIXING_GAIN |1.0 |Mixing of pitch and rudder to vtail |Default is 0.5 - full pitch will yield only 50 percent of vtail servo output | | + | |MIXING_GAIN |0.75 |Mixing of pitch and rudder to vtail |Default is 0.5 - full pitch will yield only 50 percent of vtail servo output | |
Line 57: | Line 62: | ||
^Parametername ^Value ^Description ^Remark ^ | ^Parametername ^Value ^Description ^Remark ^ | ||
|SERIAL2_BAUD |9 |9600 Baud |reduced to 9600 as otherwise no wifi with MAVESP connection possible | | |SERIAL2_BAUD |9 |9600 Baud |reduced to 9600 as otherwise no wifi with MAVESP connection possible | | ||
- | |SERIAL2_PROTOCOL |1 |MAVLink1 |Only MAVLink1 works for pymavlink on pi | | + | |SERIAL2_PROTOCOL |2 |MAVLink2 | Mavlink2 needed for PLAY_TUNE | |
+ | |SR2_RAW_SENS |0 |0 Hz |no raw data needed | | ||
+ | |SR2_EXT_STAT |1 |1 Hz | | | ||
+ | |SR2_RC_CHAN |0 |0 Hz | | | ||
+ | |SR2_RAW_CTRL |0 |0 Hz | | | ||
+ | |SR2_POSITION |5 |5 Hz | Contains GLOBAL_POSITION_INT, LOCAL_POSITION_NED messages | | ||
+ | |SR2_EXTRA1 |5 |5 Hz | Contains ATTITUDE message | | ||
+ | |SR2_EXTRA2 |0 |0 Hz | | | ||
+ | |SR2_EXTRA3 |1 |1 Hz | Contains SYSTEM_TIME message | | ||
+ | |SR2_PARAMS |0 |0 Hz | | | ||
+ | |SR2_ADSB |0 |0 Hz | | | ||
+ | |||
+ | |||
+ | ===== Logging ===== | ||
+ | |||
+ | Several bits can be set for logging of different informations: [[https://ardupilot.org/plane/docs/parameters.html#log-bitmask-log-bitmask|Log Bitmask Description]] | ||
+ | |||
+ | Enabled all (''==65535'') results in following per message data sum in bytes for a 20 minute flight: | ||
+ | |||
+ | {{ ::average_log_msg_sizes.png?1400 |}} | ||
+ | |||
+ | * The PID, NKF(EKF) and IMU take a lot of space. | ||
+ | * The PID and EKF is saved using the "attitude" bit in the logging parameter setting (see [[https://github.com/ArduPilot/ardupilot/blob/6af0f460afa6f51c41056cd25fe2c70164d9d460/ArduPlane/Log.cpp#L39|Code]]). For the attitude two settings are available: Fast (50Hz), Medium(10Hz) according to [[https://github.com/ArduPilot/ardupilot_wiki/blob/6c81c28126e6cb2bdbb9cb58291342ca3ade96a0/dev/source/docs/using-the-command-line-interpreter-to-configure-apmcopter.rst#reading-logs-through-the-cli|LINK]]. I think 10Hz could be enough for us. __**But in the Code actually the Logging is done with 25Hz**__ (see [[https://github.com/ArduPilot/ardupilot/blob/d8d3494b170d50f7b45dced928cd5d9150b50d2f/ArduPlane/ArduPlane.cpp#L87|Code]]) | ||
+ | * IMU logging **could be disabled,** as its already triggerd by attitude logging anyway (see [[https://github.com/ArduPilot/ardupilot/blob/d8d3494b170d50f7b45dced928cd5d9150b50d2f/ArduPlane/ArduPlane.cpp#L209|Code]]), but with less data amount. **UPDATE:** Actually IMU also loggs the **BARO**, so it should not be disabled (see [[https://github.com/ArduPilot/ardupilot/search?q=set_log_baro_bit|INFO]]. | ||
+ | * TECS (Total Energy Control System) controls altitude vs speed and is important and **should be enabled**. | ||
+ | * CTUN Logs contain baro and ** should be enabled.** | ||
+ | * NTUN Logs navigation tuning info at 10 Hz and ** should be enabled.** | ||
+ | |||
+ | This results in the following Table (according to [[https://ardupilot.org/plane/docs/parameters.html#log-bitmask-log-bitmask|Log Bitmask Description]]): | ||
+ | |||
+ | ^ Bit ^ Meaning ^ Enabled ^ | ||
+ | | 0 | ATTITUDE_FAST(50Hz) | OFF | | ||
+ | | 1 | ATTITUDE_MED(10Hz) | ON | | ||
+ | | 2 | GPS | ON | | ||
+ | | 3 | PM | ON | | ||
+ | | 4 | CTUN | ON | | ||
+ | | 5 | NTUN | ON | | ||
+ | | 6 | MODE | ON | | ||
+ | | 7 | IMU | ON | | ||
+ | | 8 | CMD | ON | | ||
+ | | 9 | CURRENT | ON | | ||
+ | | 10 | COMPASS | ON | | ||
+ | | 11 | TECS | ON | | ||
+ | | 12 | CAMERA | OFF | | ||
+ | | 13 | RC | ON | | ||
+ | | 14 | SONAR | OFF | | ||
+ | | 15 | ARM/DISARM | ON | | ||
+ | | 19 | IMU_RAW | OFF | | ||
+ | | 20 | ATTITUDE_FULLRATE | OFF | | ||
+ | |||
+ | This results into the following parameter values. In the remarks you can see empirical Results for some settings from ArduPlane Simulator. | ||
+ | |||
+ | ^Parametername ^Value ^Description ^Remark ^ | ||
+ | |LOG_BITMASK | 65535 | Log all | ~3.04 MB/Min Log | | ||
+ | |LOG_BITMASK | 45054 | Log from table above (IMU disabled) | TODO | | ||
+ | |LOG_BITMASK | TODO | Log from table above (IMU enabled) | TODO | | ||
+ | |LOG_BITMASK | 2 | Log only attitude Medium | ~1.75 MB/Min Log | | ||
===== MAVESP8266 Wifi Telemetry ===== | ===== MAVESP8266 Wifi Telemetry ===== | ||
Line 73: | Line 135: | ||
1 1 BATT_MONITOR 4 2 | 1 1 BATT_MONITOR 4 2 | ||
1 1 BATT_SERIAL_NUM -1 6 | 1 1 BATT_SERIAL_NUM -1 6 | ||
- | 1 1 BATT_VOLT_MULT 10.13 9 | + | 1 1 BATT_VOLT_MULT 10.213 9 |
1 1 BATT_VOLT_PIN 2 2 | 1 1 BATT_VOLT_PIN 2 2 | ||
1 1 BATT_WATT_MAX 0 4 | 1 1 BATT_WATT_MAX 0 4 | ||
+ | | ||
+ | | ||
+ | ===== RPM ===== | ||
+ | |||
+ | To measure the RPM of the motor we can use a BACK-EMF Measurement from 2 of the 3 motorcables. For more info check out the page: | ||
+ | |||
+ | https://www.hobbywingdirect.com/products/rpm-sensor | ||
+ | |||
+ | We connected the output pins to a AUX pin of the FC. Check out the info from Ardupilot for some info regarding the following config: | ||
+ | |||
+ | https://ardupilot.org/copter/docs/common-rpm.html | ||
+ | |||
+ | |||
+ | ^Parametername ^Value ^Description ^Remark ^ | ||
+ | |RPM_MAX |100000.000000000000000000 | | | | ||
+ | |RPM_MIN |10.000000000000000000 | | | | ||
+ | |RPM_MIN_QUAL |0.100000001490116119 | | | | ||
+ | |RPM_PIN |Pin | PIN | depending on FC | | ||
+ | |RPM_SCALING |0.143 | | check the hints below for this setting | | ||
+ | |RPM_TYPE |2 | AUX | Type needs to be AUX to calc using the given sensor | | ||
+ | |||
+ | The RPM in general can be calculated using the formula from https://www.radiocontrolinfo.com/brushless-motor-efficiency/measuring-motor-rpm/ : | ||
+ | |||
+ | ''RPM = ( 120 x Frequency ) / # of Motor Poles'' | ||
+ | |||
+ | Thats because: | ||
+ | |||
+ | ''The AC current that is produced alternates each time 2 magnetic poles pass by a winding in the stator. | ||
+ | '' | ||
+ | |||
+ | As Ardupilot measures the periode duration ''dt_avg'' of the sensor rectangular signal, and calculates the RPM using | ||
+ | |||
+ | ''float rpm = scaling * (1.0e6 / dt_avg) * 60;'' | ||
+ | |||
+ | the scaling needs to correct this using | ||
+ | |||
+ | ''SCALING = ( 1 / # of Motor Poles ) * 2'' | ||
+ | |||
+ | For the Extron 800KV Motor , we have 14 Poles. | ||
===== Tuning ===== | ===== Tuning ===== | ||
Line 96: | Line 197: | ||
If min groundspeed is net met, plane increases throttle | If min groundspeed is net met, plane increases throttle | ||
- | 1 1 NAVL1_DAMPING 0.600000023841857910 9 | + | 1 1 NAVL1_DAMPING 0.800000023841857910 9 |
- | 1 1 NAVL1_PERIOD 10.000000000000000000 9 | + | 1 1 NAVL1_PERIOD 17.000000000000000000 9 |
- | TBD! | + | This is the default value for NAVL1 (Beck, 27.2.20) |
1 1 PTCH2SRV_RLL 1.299999952316284180 9 | 1 1 PTCH2SRV_RLL 1.299999952316284180 9 | ||
Line 107: | Line 208: | ||
1 1 TECS_CLMB_MAX 6.500000000000000000 9 | 1 1 TECS_CLMB_MAX 6.500000000000000000 9 | ||
1 1 TECS_SINK_MAX 5.000000000000000000 9 | 1 1 TECS_SINK_MAX 5.000000000000000000 9 | ||
- | 1 1 TECS_SPDWEIGHT 1.000000000000000000 9 #TBD! | ||
- | |||
- | Height is more important than speed | ||
- | SPDWEIGHT - Setting it to 0.0 will cause the pitch control to control height and ignore speed errors. This will normally improve height accuracy but give larger airspeed errors. | ||
- | 1 1 WP_LOITER_RAD 40 4 | + | 1 1 WP_LOITER_RAD 60 4 |
- | 1 1 WP_RADIUS 25 4 | + | 1 1 WP_RADIUS 90 4 |
- | TBD; should increase precission | + | WP settings are set to default (Beck, 27.2.20) |
# Modes Setup (Special Switches) | # Modes Setup (Special Switches) | ||
to be done. | to be done. |