Leonard Hall
1d720cc5e9
AC_PID: library update and additional functions
...
includes corrections from peer review
2021-04-03 12:07:59 +09:00
Leonard Hall
f0f87be06d
AC_PID: AC_PI_2D format changes
2021-02-18 12:59:39 +09:00
Patrick José Pereira
f9732b6c70
AC_PID: Add missing const in member functions
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Peter Hall
1a14c8a05b
AC_PID: populate pid_info limit feild
2021-01-05 10:27:28 +11:00
bnsgeyer
c565536afa
AC_PID: add support to smoothly reset the integrator
2020-12-21 23:33:48 -05:00
Andrew Tridgell
9e73922fd9
AC_PID: use calc_lowpass_alpha_dt()
2020-11-10 16:15:45 +11:00
Andrew Tridgell
739410953b
AC_PID: added slew limiter AC_PID
...
this adds the fixed wing slew limiter as an optional part of
AC_PID. It allows the user to configure a maximum slew limit to
prevent oscillations in PIDs when gains are too high
2020-10-25 10:32:48 +11:00
Jim Stockwell
1565c69943
AC_HELI_PID: spelling in comment, leaded -> leaked
2020-09-11 08:39:58 +09:00
Peter Barker
c78dcb15a1
AC_PID: remove dead get_ff(float target) method as per TODO comment
2020-09-09 13:19:17 +09:00
Andrew Tridgell
ad69f6802f
AC_PID: added AC_PI controller
...
will be used by IMU heater
2019-11-02 16:31:04 +11:00
Randy Mackay
0052dcc8f8
AC_PID: update pid_info when integrator set
2019-10-18 11:15:25 +09:00
Leonard Hall
ee820258ad
AC_HELI_PID: support for upgrade to PID object
...
updates parameters based on new PID library
rename get_leaky_i to update_leaky_i and move FILT locations
2019-07-25 17:38:15 +09:00
Leonard Hall
ab0bdc9fe6
AC_PID: upgrade to PID object
2019-07-25 17:38:15 +09:00
Peter Barker
3175a2ce19
AC_PID: correct examples with override keyword
2019-04-30 09:29:59 +10:00
Randy Mackay
54a505dade
AC_PID: fix filt_d_hz accessor
...
this accessor is not actually used
2019-04-18 10:26:56 +09:00
Randy Mackay
cae020c307
AC_PID: minor format fix
2019-04-16 11:23:46 +09:00
Peter Barker
112ace8adb
AC_PID: correct AC_PID_LEAK_MIN constant type
2019-04-05 23:04:17 -07:00
Peter Barker
2dae643280
AC_PID: update example to stop shadowing global chibios variable
2019-03-23 11:23:07 +11:00
Peter Barker
18c53b8d8a
AC_PID: remove keywords.txt
2019-02-17 00:29:38 -08:00
Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +11:00
Peter Barker
312243142b
AC_PID: remove use of never-set AP_HAL_PX4 and AP_HAL_VRBRAIN
2019-01-18 09:53:44 +11:00
Leonard Hall
8c6a24450a
AC_PID: Fix D term initialisation
2018-09-15 11:00:29 +10:00
Leonard Hall
4ceabe4838
AC_PID_2D: add reset for filter and D term
2018-09-04 13:37:28 +09:00
Peter Barker
774b091611
AC_PID: get example working again
2018-08-31 21:08:11 +09:00
Randy Mackay
b381ae7bf3
AC_PID: support storing actual
2018-08-27 16:44:33 +09:00
Peter Barker
e2b31a535c
AC_PID: update example for new rc() method
2018-08-01 12:11:30 +09:00
Michael du Breuil
1d60b0ec62
AC_PID: Support new RC_Channels::read_input()
2018-04-26 08:00:09 +10:00
Michael du Breuil
5d84850f32
AC_PID: Use RC_Channels instead of hal.rcin
2018-04-11 21:47:07 +01:00
Randy Mackay
04822152da
AC_PID: fixes after peer review of AC_PID_2D
2018-01-23 12:00:43 +09:00
Randy Mackay
398a0d89bf
AC_P: add const accessor
2018-01-23 12:00:43 +09:00
Randy Mackay
c1708db208
AC_PID: add const and use is_positive in AC_PI_2D
2018-01-23 12:00:43 +09:00
Leonard Hall
fd964a21d6
AC_PID: add AC_PID_2D
2018-01-23 12:00:43 +09:00
Randy Mackay
4e8155f4e5
AC_PID: allow non-zero ff gain default
2018-01-05 13:33:21 +09:00
Randy Mackay
91d489d91e
AC_PID: implement reset_filter
2017-10-26 19:44:47 +09:00
Randy Mackay
f995106c1e
AC_PID: minor formatting change
2017-08-09 18:03:09 +09:00
Pierre Kancir
320c5e1b96
AC_PID: example fix travis warning
...
missing function declaration
implicit cast
some style fix
2017-04-13 19:56:16 +01:00
Andrew Tridgell
b97bf5d15e
AC_PID: added feed-forward to AC_PID
2017-02-18 17:26:43 +11:00
murata
5e11497332
AC_PID: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
Andrew Tridgell
ccae8979c1
AC_PID: expose filt_hz as a AP_Float
...
this allows defaults to be overridden
2017-01-12 17:39:37 +11:00
Andrew Tridgell
2086b591a2
AC_PID: expose ff() method in AC_PID
...
this allows for an abstract AC_PID class to be used in
AC_AttitudeControl for both multicopter and heli
2017-01-12 17:39:37 +11:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Lucas De Marchi
ae53920e5b
build: don't build examples with old build system
...
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file. Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Andrew Tridgell
a6404cf1ea
AC_PID: removed AFF from heli PID
...
this is not used any more. Discussed with Rob on dev call
2016-05-12 17:37:01 +10:00
Andrew Tridgell
cf08c46f30
AC_PID: fixed default leak min for heli
2016-05-12 17:34:23 +10:00
Andrew Tridgell
412dc10353
AC_PID: expose parameters as AP_Float
...
this enables full tuning capability
2016-05-07 18:34:03 +10:00
Ricardo de Almeida Gonzaga
5bd034a5a8
Global: start using cmath instead of math.h
2016-04-05 21:06:19 -07:00
Randy Mackay
de537390c2
AC_HELI_PID: adjust parameter descriptions
...
ILMI range is now 0 to 1
2016-04-01 11:59:30 +09:00
Randy Mackay
3465f05bec
AC_HELI_PID: shorten FILT_HZ to FILT, I_L_MIN to ILMI
...
Also minor formatting fix
2016-04-01 11:59:30 +09:00
Randy Mackay
425caeabf7
AC_PI_2D: fix parameter description
2016-04-01 11:59:30 +09:00
Randy Mackay
227e4f86d7
AC_PID: fix parameter description
2016-04-01 11:59:30 +09:00
Randy Mackay
920425567c
AC_PID: shorten FILT_HZ to FILT
2016-04-01 11:59:30 +09:00
Lucas De Marchi
f637a29ab6
AC_PID: replace header guard with pragma once
2016-03-16 18:40:39 +11:00
dgrat
5148e41c1a
AP_Math: Cleaned macro definitions
...
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
2016-02-27 02:51:33 -03:00
Gustavo Jose de Sousa
c2e3f05dbf
waf: ardupilotwaf: prefix build context methods with ap_
...
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
3d22490397
waf: examples: use methods from bld instead of ardupilotwaf
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
d281067bcc
waf: make example binaries be placed in 'examples' dir
...
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Andrew Tridgell
27b43f4036
AC_PID: fixed example build warning
2016-01-04 08:22:17 +11:00
Jonathan Challinger
9e6be648b9
AC_PID: fix example build
2015-12-29 10:46:35 -08:00
Lucas De Marchi
a096703b06
Global: don't link with AP_Progmem
...
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Lucas De Marchi
247195512f
AC_PID: remove unused AP_ADC_AnalogSource
2015-12-03 13:32:42 +11:00
Caio Marcelo de Oliveira Filho
6e7b73610d
waf: add waf support
2015-12-03 07:54:30 +11:00
Lucas De Marchi
2591261af6
Global: rename min and max macros to uppercase
...
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.
Changes generated with:
git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Andrew Tridgell
8f4ce7f20b
build: removed all nocore.inoflag files
...
these were APM2 specific
2015-11-16 08:05:17 +11:00
Robert Lefebvre
c66af9b788
AC_HELI_PID: Add Leak-Min param and functionality.
2015-11-12 19:37:20 +09:00
Lucas De Marchi
831d8acca5
Remove use of PROGMEM
...
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:
git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'
The 2 commands were done so we don't leave behind spurious spaces.
AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Caio Marcelo de Oliveira Filho
9a2e0c2fd9
AC_PID: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
ec52df991c
build: compile only the HAL files needed by the board
...
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
2e464a53c2
AP_HAL: make code not depend on concrete HAL implementations
...
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.
A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.
The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.
Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.
The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
Grant Morphett
1595c137f8
AC_PID_test: fixed AC_HELI_PID constructor
2015-08-31 13:45:13 +09:00
Gustavo Jose de Sousa
286d084d83
AC_PID: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:28:41 +10:00
Andrew Tridgell
a62c450f86
AC_PID: convert example from .pde to .cpp
2015-06-01 16:58:10 +10:00
Andrew Tridgell
3ec8857fbc
AC_PID: added set_desired_rate() interface
...
used to setup _pid_info for logging
2015-05-27 14:28:48 +10:00
Andrew Tridgell
6000bb0c32
AC_PID: log desired rate for VFF as well as AFF
2015-05-27 14:28:48 +10:00
Robert Lefebvre
366f87c91c
AC_HELI_PID: Add Acceleration FF method.
2015-05-27 14:28:47 +10:00
Andrew Tridgell
e79a21d8c2
AC_PID: fill in desired rate for heli PID
2015-05-27 14:28:46 +10:00
Robert Lefebvre
967071ca62
AC_PID: Integrate PID Logging functionality.
2015-05-27 14:28:44 +10:00
Robert Lefebvre
bcc3fa0526
AC_HELI_PID: Pass default FF param setting in constructor
2015-05-22 09:38:28 +09:00
Randy Mackay
56b92e7d8c
AC_PID: fix example sketch
2015-05-13 17:55:39 +09:00
Tom Pittenger
9d74f57ed3
AP_PID: replace fabs() with fabsf()
2015-05-09 09:57:26 +10:00
Andrew Tridgell
33555b7f12
AC_PID: revert AP_Math class change
2015-05-05 13:27:05 +10:00
Tom Pittenger
54f4d4b07c
AP_PID: compiler warnings: reordered constructor
2015-05-05 13:26:56 +10:00
Tom Pittenger
01180d52c4
AP_PID: compiler warnings: apply is_zero(float)
2015-05-05 13:26:51 +10:00
Andrew Tridgell
777685ce1f
AC_PID: fix for HAL_SITL rename
2015-05-05 09:45:54 +10:00
Randy Mackay
67b0c6f5c4
AC_PID: replace is_equal with is_zero
2015-04-28 16:22:08 +09:00
Randy Mackay
3514177314
AC_PI_2D: minor format fix
2015-04-28 16:21:53 +09:00
dgrat
303cfd683a
AC_PID: replace floating point '==' with is_equal
...
Also add div-by-zero check to fix calc_filt_alpha
Also get_i and get_shrink_i do not need to set values to zero in Vector2f
constructor because this is already done.
2015-04-28 16:21:46 +09:00
Tom Pittenger
4b97cc1957
AC_PID: fix compile warnings re float constants
2015-04-24 12:22:43 +09:00
Jonathan Challinger
6ea91d012e
AC_PID: calculate filt_alpha every time the filter is run
2015-04-14 16:19:02 +09:00
Randy Mackay
a095a8c3a1
AC_PID: more protection against NaN and Inf
2015-04-09 20:19:55 +09:00
Leonard Hall
ae77c18a19
AC_PID: Protect against NaN and INF
2015-04-09 18:30:12 +09:00
Randy Mackay
f260536373
AC_PID: fix example sketch compile error
2015-04-08 15:05:29 +09:00
Randy Mackay
3f3e622be5
AC_PID: fix example sketch
2015-03-30 16:07:56 -07:00
Randy Mackay
12724e9556
AC_PID: remove include of stdio.h
2015-03-11 20:40:05 +09:00
Randy Mackay
cc0d5b9ced
AC_PI_2D: replace set_filt_hz method with filt_hz
...
Thanks to Jonathan Challinger for spotting this bug
2015-03-11 17:28:36 +09:00
Randy Mackay
c10b0b34ca
AC_PID: replace set_filt_hz method with filt_hz
...
Thanks to Jonathan Challinger for spotting this bug
Also add sanity check to filt_hz
2015-03-11 17:28:20 +09:00
Leonard Hall
34a5bc8b33
AC_PI_2D: 2-axis PI controller
2015-03-06 14:01:56 +09:00
Leonard Hall
046949ea8a
AC_HELI_PID: add input filter and restructure
...
Also removed unused initial_ff from construtor
2015-03-06 14:01:54 +09:00
Leonard Hall
517448e536
AC_PID: add input filtering and restructure
2015-03-06 14:01:52 +09:00
Andrew Tridgell
83dc9bf5b3
AC_PID: fixed example build
2014-08-13 22:11:16 +10:00
Randy Mackay
0a46afa6c4
AC_PID: init members to reduce compiler warnings
2014-07-16 17:46:14 +09:00