* Refactor Feedforward Angle and RC Smoothing
* update rc_smoothing at regular intervals
* add Earth Ref to OSD, update pid and rate PG
* Initialise filters correctly
* refactoring to improve performance
* Save 24 cycles in Horizon calculations, other optimisations
At a cost of 40 bytes
* save 25 cycles and 330 bytes in rc_smoothing
* feedforward max rate improvements
* typo fix
* Karatebrot's review suggestions part one
* Karatebrot's excellent suggestions part 2
* more efficient if we calculate inverse at init time
Co-Authored-By: Jan Post <post@stud.tu-darmstadt.de>
* Horizon delay, to ease it in when returning sticks to centre
* fix unit tests after horizon changes
Co-Authored-By: 4712 <4712@users.noreply.github.com>
* horizon_delay_ms, default 500
* fix unit test for feedforward from setpointDelta
* Final optimisations - thanks @Karatebrot for your advice
* increase horizon level strength default to 75 now we have the delay
* restore Makefile value which allowed local make test on mac
---------
Co-authored-by: Jan Post <post@stud.tu-darmstadt.de>
Co-authored-by: 4712 <4712@users.noreply.github.com>
* Angle and Horizon Update for 4.5
* BugFix FF noise Angle Mode on yaw and in level _race mode
* use time constant in ms for angle feedforward smoothing
* refactor to remove unnecessary definition
---------
Co-authored-by: ChrisRosser <chrisrosser91@gmail.com>
* increase FF smoothing max to suit elrs 1000hz link rate
first step to making an ERLS 1000hz preset
* changed CMS ff smoothing limit to 95 max
---------
Co-authored-by: Ivan Efimov <gendalf44@yandex.ru>
Update to anti-gravity, including removal of the old Step mode, ability to adjust the P contribution (thanks @Limon), PT2 smoothed derivative model, inherent limiting of P boost during extremely fast stick travels to minimise P oscillations, less I during the middle of a throttle up, no I boost on yaw, add hz to cutoff labels
No antigravity on yaw, fix longstanding typo
h
Adds angle setpoint roll/pitch expo for self-level modes.
Previously the angle setpoint was a simple linear calculation based on the stick deflection percentage and the angle limit. This makes control very jumpy around center stick and people would often resort to adding expo in their radios to compensate. This then adds the complication of wanting expo in the radio when in self-level but not when in acro - leading to complicated mixes, virtual switches, etc.
This PR adds separate self-level expo settings for roll/pitch so the user can customize the axis behavior. Yaw is excluded because this axis uses normal rates and expo controlling the rotational rate around the yaw axis and not an angle setpoint. The roll/pitch expo can range from 0 (off) to 100 (max) like other RC expo settings. For example:
```
set roll_level_expo = 30
set pitch_level_expo = 40
```
The default values are 0 which disables any expo and behaves as before.
The settings are available in the CMS rate profile menu.
Adds a dynamically constructed menu that will appear before the main menu when the user enters CMS if there are any outstanding setup items to complete. Currently only includes entry to calibrate the ACC if required, but provides a framework for other setup reminders as needed. The user can choose to exit this menu without remedying the problems, but the menu will reappear when they next enter CMS. If there are no required setup items then the menu will be skipped and the user will go straight to the main menu.