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
Robert Lefebvre
fa9d625e39
AC_HELI_PID: Add feedforward accessor functions.
2014-07-08 20:18:05 +09:00
Randy Mackay
faf3415e5e
AC_PID: example sketch prints individual P, I and D values
2014-05-29 17:39:19 +09:00
Robert Lefebvre
b35ec4339e
AC_PID: Add method to set the D-term Filter Rate from main code.
2014-05-29 17:39:10 +09:00
Robert Lefebvre
f1c3f2a3d1
AC_PID: Remove get_leaky_i function which is now found in AC_HELI_PID.
2014-05-29 17:39:08 +09:00
Robert Lefebvre
6333b4bba6
AC_PID: update example sketch to test AC_HELI_PID
2014-05-29 17:39:01 +09:00
Robert Lefebvre
ef7dc815cd
AC_PID: Change Private members to Protected so that AC_HELI_PID can access them.
2014-05-29 17:38:59 +09:00
Robert Lefebvre
94e9bed9cf
AC_PID: Add new AC_HELI_PID as a child of AC_PID
2014-05-29 17:38:57 +09:00
Kevin Hester
b7410494e3
AC_PID: fixup line endings
2014-04-15 15:55:59 +09:00
Randy Mackay
8fae75ee87
AC_PID: add AC_P controller
...
Used for stabilize angle controllers, alt hold and loiter
2014-02-15 06:09:08 +11:00
Randy Mackay
fbc5af2705
AC_PID: results returned as float
2014-02-15 06:09:08 +11:00
Andrew Tridgell
8c25a504c3
AC_PID: fixed indent-tabs-mode
2013-05-30 09:54:53 +10:00
James Bielman
4fa7bb1486
Add AVR compatibility header for missing math.h definitions.
...
- Define float versions of math functions to the double versions
on AVR (eg. #define sinf sin).
- These macros appear to be missing in older versions of avr-libs.
- Include AP_Math.h rather than math.h to get these definitions.
2013-01-16 13:52:17 +11:00
Andrew Tridgell
2294acc652
AC_PID: fixed build on ARM
2013-01-02 22:09:02 +11:00
Andrew Tridgell
374af1cd14
build: change from Arduino.mk to apm.mk
2013-01-02 17:29:37 +11:00
Andrew Tridgell
a1187519a8
AP_HAL: use AP_HAL_BOARD_DRIVER in remaining test sketches
2012-12-20 14:52:37 +11:00
Pat Hickey
eb530b86e8
move Arduino.mk to /mk/Arduino.mk
2012-12-20 14:52:35 +11:00
Andrew Tridgell
7d27e420ae
AP_HAL: remove unnecessary Arduino.h includes
2012-12-20 14:52:30 +11:00
Andrew Tridgell
9349259487
AC_PID: updates for new AP_Param API
2012-12-20 14:51:38 +11:00
Pat Hickey
475da4eca4
CONFIG_HAL_BOARD - test sketches fixed up, build all passes
2012-12-20 14:51:37 +11:00
Pat Hickey
a4f1f6a5db
AP_Progmem: fix dependencies for all sketches touched by AP_HAL_AVR
2012-12-20 14:51:28 +11:00
Pat Hickey
c56c4ae240
Various example sketches: hal.uart0->begin(115200) is redundant. use console.
...
just assume uart0 is initialized by the HAL, because it is. DRY.
also, don't ever use uart0 explicitly in example sketches, use console
and let the hal figure it out.
2012-12-20 14:51:25 +11:00
Pat Hickey
050a878935
AC_PID: Ported to AP_HAL.
2012-12-20 14:51:25 +11:00
Pat Hickey
3f1d9d7f69
AP_Param: #include <AP_Param.h> fixups for libraries & sketches
...
* I mostly went through with grep and added an #include <AP_Param.h> below
every #include <AP_Common.h>. Not all of these example sketches might
strictly need AP_Param.
2012-12-20 14:51:19 +11:00
rmackay9
24317e721b
AC_PID, AP_AHRS: added descriptions to some parameters
2012-12-10 22:28:39 +09:00
Andrew Tridgell
5e7ca5b0f8
AC_PID: suppress the derivative immediately after reset
...
use _last_derivative == NAN to flag that the derivative is invalid
2012-11-27 18:45:49 +11:00
Andrew Tridgell
eac1ad49d6
AC_PID: save 8 bytes per AC_PID object
...
we don't need the _derivative or _output variables
2012-11-27 18:06:22 +11:00
Robert Lefebvre
1d12b781a0
AC_PID: Create Leaky Integrator Function.
2012-11-26 21:01:20 -05:00
Andrew Tridgell
eb5ac90e12
AC_PID: fixed example build
2012-11-24 21:07:34 +11:00
rmackay9
41489f34f9
AC_PID: fixed example sketch's compile errors
2012-11-07 23:34:10 +09:00
uncrustify
6c5757e775
uncrustify libraries/AC_PID/AC_PID.h
2012-08-21 18:59:13 -07:00
uncrustify
fc9f1a8216
uncrustify libraries/AC_PID/AC_PID.cpp
2012-08-21 18:59:13 -07:00
uncrustify
7c4f980638
uncrustify libraries/AC_PID/examples/AC_PID_test/AC_PID_test.pde
2012-08-21 18:59:13 -07:00
Andrew Tridgell
5e8fe8d93e
AP_Param: update PID libraries for new constructor syntax
2012-08-08 12:11:57 +10:00
rmackay9
24a471ff8f
AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods
2012-03-20 11:51:15 +09:00
Jason Short
b094f6ce52
added set integrator
2012-02-23 09:38:08 -08:00
Jason Short
24ce02c6a4
made I term return in same pattern as D term
2012-02-16 22:09:22 -08:00
Andrew Tridgell
9c5a5473ab
added indexes to group info structures
2012-02-13 16:22:52 +11:00
Andrew Tridgell
452749149f
convert AC_PID library to AP_Param
2012-02-13 16:22:52 +11:00
Andrew Tridgell
f9eed9bd9e
fixed missing return in D value
2012-02-13 16:22:52 +11:00
Randy Mackay
6877b8b3d6
AC_PID Library - added example sketch
2012-02-05 17:35:15 +09:00
Jason Short
af79eb273f
Added D term to APM_PI - need to refactor this as a parent class and two child classes to save code space, remove dupes
2012-01-28 21:21:43 -08:00