MAG_HOLD diff limiting and MAG controller refactoring (#195)
commitdd8a8aead526f9308f79fba523f3eb5204479f37
authorPaweł Spychalski <pspychalski@gmail.com>
Sun, 15 May 2016 12:46:55 +0000 (15 14:46 +0200)
committerKonstantin Sharlaimov <konstantin.sharlaimov@gmail.com>
Sun, 15 May 2016 12:46:55 +0000 (15 22:46 +1000)
treee99043e981ecb5e694ae60833ac7bc95166fcbbe
parenta09f07caf2951ece6a7ebdc9617a202f077c10d8
MAG_HOLD diff limiting and MAG controller refactoring (#195)

* MAGHOLD constrained to 30 degrees
* mag_hold_heading_diff_limit CLI setting added to allow custom MAG_HOLD diff limit
* magHeading moved to pid.c and real interface created to inject data into it
* mag hold controller with current logic moved to pid.c
* 2Hz LPF filter added to magHold error to smoothen controller response
* variable name changed to clearly state its purpose
* LPF filter in MAG_HOLD controller moved after error limiting
* yaw_control_direction passed to pidController as argument, mag_hold_heading_diff_limit moved to pidProfile
* yaw_control_direction setting removed
* pidMagHold translates directly to rotation rate in dps
* pidMagHold refactored to the new principles and limiting
* name of filter changed to reflect its purpose
* HEADING_LOCK mode can be used only when MAG_HOLD is not enabled
* compiler warning supressed
* new MAG_HOLD defaults, RATE_LIMIT increased to 80dps, MAG_HOLD P to 60
* mag_rate_limit 90dps
12 files changed:
docs/Cli.md
src/main/config/config.c
src/main/config/config_master.h
src/main/flight/navigation_rewrite_fixedwing.c
src/main/flight/navigation_rewrite_multicopter.c
src/main/flight/pid.c
src/main/flight/pid.h
src/main/io/serial_cli.c
src/main/io/serial_msp.c
src/main/mw.c
src/main/mw.h
src/test/unit/serial_msp_unittest.cc