[[searchwing-ardupilot-parameters]]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
searchwing-ardupilot-parameters [2020/02/28 16:20]
wf68spef [PI Zero Telemetry for image metadata]
searchwing-ardupilot-parameters [2022/05/23 14:29]
wf68spef [Ardupilot Parameter Setup]
Line 1: Line 1:
 ====== Ardupilot Parameter Setup ====== ====== Ardupilot Parameter Setup ======
  
-[[https://​ardupilot.org/​plane/​docs/​parameters-Plane-stable-V4.0.3.html|Ardupilot description of the parameters]]+[[https://​ardupilot.org/​plane/​docs/​parameters-Plane-stable-V4.2.0.html|Ardupilot description of the parameters]]
  
-[[https://​gitlab.com/​searchwing/​operational/​searchwing-config/​-/​tree/​master/​ardupilot%2Fv4.0.3|Kurdi Settings on gitlab]]+[[https://​gitlab.com/​searchwing/​operational/​searchwing-config/​-/​blob/​master/​ardupilot/​searchwing/​LATEST.params|Standard set of SearchWing ArduPilot parameters]]
  
 ==== Arming / Safety ==== ==== Arming / Safety ====
Line 60: Line 60:
 ^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 ​  |          |MAVLink1 ​|Only MAVLink1 works for pymavlink on pi |+|SERIAL2_PROTOCOL ​  |          |MAVLink2 ​Mavlink2 needed ​for PLAY_TUNE ​|
 |SR2_RAW_SENS ​      ​|0 ​          |0 Hz |no raw data needed | |SR2_RAW_SENS ​      ​|0 ​          |0 Hz |no raw data needed |
 |SR2_EXT_STAT ​      ​|1 ​          |1 Hz | | |SR2_EXT_STAT ​      ​|1 ​          |1 Hz | |
 |SR2_RC_CHAN ​       |0           |0 Hz | | |SR2_RC_CHAN ​       |0           |0 Hz | |
 |SR2_RAW_CTRL ​      ​|0 ​          |0 Hz | | |SR2_RAW_CTRL ​      ​|0 ​          |0 Hz | |
-|SR2_POSITION ​      |          |Hz | Contains GLOBAL_POSITION_INT,​ LOCAL_POSITION_NED messages | +|SR2_POSITION ​      |          |Hz | Contains GLOBAL_POSITION_INT,​ LOCAL_POSITION_NED messages | 
-|SR2_EXTRA1 ​      |          |Hz | Contains ATTITUDE message |+|SR2_EXTRA1 ​      |          |Hz | Contains ATTITUDE message |
 |SR2_EXTRA2 ​      ​|0 ​          |0 Hz |  | |SR2_EXTRA2 ​      ​|0 ​          |0 Hz |  |
 |SR2_EXTRA3 ​      ​|1 ​          |1 Hz | Contains SYSTEM_TIME message | |SR2_EXTRA3 ​      ​|1 ​          |1 Hz | Contains SYSTEM_TIME message |
 |SR2_PARAMS ​      ​|0 ​          |0 Hz |  | |SR2_PARAMS ​      ​|0 ​          |0 Hz |  |
 |SR2_ADSB ​        ​|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         |
  
  
Line 90: Line 136:
     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 =====
  • searchwing-ardupilot-parameters.txt
  • Last modified: 2022/05/23 14:30
  • by wf68spef