Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +11:00
Randy Mackay
ba3303dc61
AC_PosControl: set-alt-target-with-slew sets desired to 0 once at target
...
This resolves and issue with the set-alt-target-with-slew method leaving the z-axis desired velocity at the max speed-up or speed-down
this causes a jump in throttle if the user switches to Loiter after the vehicle has reached its target
2018-11-26 09:30:32 +09:00
Peter Barker
dcd930497a
AC_AttitudeControl: AC_PosControl: avoid calling norm()
...
The result of this won't be used as often as this loop is called
2018-10-30 09:00:23 +09:00
Peter Barker
dabe8a13f7
AC_AttitudeControl: use EKF singleton to get ekfNavVelGainScaler
2018-10-09 10:47:38 +11:00
Michael du Breuil
1d13aff711
AC_AttitudeControl: Rename several set_speed and set_accel functions
2018-09-20 15:15:45 -07:00
Leonard Hall
b15b5516cb
AC_PosControl: Fix divide by zero check in limit_vector_length
2018-09-12 15:51:30 +09:00
Leonard Hall
5863b84c35
AC_PosControl: reduce glitch on init
2018-09-04 13:37:28 +09:00
Michael du Breuil
334ff0fb66
AC_AttitudeControl: Prevent DCM fallback from triggering a flyaway
2018-03-31 13:40:52 +09:00
Randy Mackay
ac82a37728
AC_PosControl: run horiz control at main loop rate
2018-03-16 13:50:57 +09:00
Randy Mackay
13007e2a07
AC_PosControl: dataflash logging of PSC message
2018-03-16 13:50:57 +09:00
Randy Mackay
69cfea4057
AC_PosControl: use float for local consts
2018-03-16 13:50:57 +09:00
Leonard Hall
dadc6a63c4
AC_PosControl: add set_leash_length_xy
2018-03-16 13:50:57 +09:00
Leonard Hall
e5bc2b26fe
AC_PosControl: add lean angle max
2018-03-16 13:50:57 +09:00
Leonard Hall
0f3645b061
AC_PosControl: increase velocity gains
2018-03-16 13:50:57 +09:00
Leonard Hall
7ec043502f
AC_PosControl: add accel limit to xy controller
2018-03-16 13:50:57 +09:00
Leonard Hall
bd13704f6f
AC_PosControl: update init for guided
2018-03-16 13:50:57 +09:00
Leonard Hall
85b7f06554
AC_PosControl: combine z position control into single method
2018-03-16 13:50:57 +09:00
Leonard Hall
993e638752
AC_PosControl: combine xy position control into single method
...
Also always limit lean angle to maintain altitude
2018-03-16 13:50:57 +09:00
Leonard Hall
74bb7616a7
AC_PosControl: add accel feedforward
...
also add limit_vector_length and sqrt_controller helper functions
enforce angle limits
rename accel-feedforward to accel-desired
remove freeze_ff_xy
remove unused VEL_XY_MAX_FROM_POS_ERR
remove xy mode
remove jerk limiting code including setters
limit_vector_length uses is_positive
Also modify formatting
2018-03-16 13:50:57 +09:00
Randy Mackay
3badcdcfba
AC_PosControl: default gains for sub
2018-01-31 08:48:21 +09:00
Randy Mackay
61933c6f1c
AC_PosControl: shorten PSC_ACCELZ param to PSC_ACCZ
2018-01-31 08:48:21 +09:00
Randy Mackay
c70d3e0ab8
AC_PosControl: move pids to be local
2018-01-23 12:00:43 +09:00
Randy Mackay
3a73ff1e2e
AC_PosControl: replace velocity control with local 2-axis PID
2018-01-23 12:00:43 +09:00
Leonard Hall
e249e06714
AC_PosControl: minor enhancement to lean_angles_to_accel
2018-01-20 09:49:58 +09:00
Leonard Hall
b9ed8b292a
AC_PosControl: pass dt to att control sqrt_controller
2018-01-16 12:13:48 +09:00
Leonard Hall
3e0c24adf9
AC_PosControl: remove out-of-date comments
2018-01-11 21:18:34 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
fa4427fbce
AC_AttitudeControl: Add AC_PosControl::get_bearing_to_target() method
2017-12-05 09:17:15 +09:00
Leonard Hall
bd284d9fd7
AC_PosControl: correct lean-angle-to-accel formula
...
Thanks to @luweikxy for finding this issue!
2017-11-24 09:12:00 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
c7c2c4ff2c
AC_AttitudeControl: use floating-point multiplication instead of a more expensive floating-point division
2017-10-23 09:20:17 -07:00
Andrew Tridgell
99aad41955
AC_AttitudeControl: added a update_vel_controller_xy() API
...
this allows for just XY control of velocity for quadplanes
2017-09-09 08:14:09 +10:00
Randy Mackay
3a397584a1
AC_PosControl: z-axis stopping point up to 3m above vehicle
...
Stopping point while descending remains at 2m for safety
2017-04-28 09:10:02 +09:00
Randy Mackay
132979b12f
AC_PosControl: protect against POS_Z_P, ACCEL_Z_P divide-by-zero
2017-03-15 09:22:23 +09:00
Andrew Tridgell
1345bf8737
AC_AttitudeControl: added support for AP_AHRS_View
...
this allows for tailsitters with a different attitude view
2017-02-18 17:26:43 +11:00
Randy Mackay
ff042528fe
AC_PosControl: remove alt_max
...
AC_Avoidance enforces the altitude limit
2017-01-18 09:35:47 +09:00
Pierre Kancir
421524951f
AC_PosControl: remove unnecessary parentheses
2016-12-05 10:59:45 -08:00
Randy Mackay
1012333eef
AC_PosControl: add ekf position reset handling
...
Previously this was in AC_WPNav and used only for loiter but it should work for any flight modes that use horizontal or vertical position control
2016-11-24 19:57:56 +09:00
Leonard Hall
42672de606
AC_PosControl: set Alt_Hold filter for PID not just D
...
We normally don't use the D term here so setting the filter for PID not
just D lets us smooth the throttle response.
2016-10-26 21:00:43 +09: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
Jonathan Challinger
5a8db4f271
AC_PosControl: add interface to override horizontal velocity process variable
2016-10-14 10:46:01 +09:00
Jonathan Challinger
77dbf99cee
AC_PosControl: fix bug related to ekfNavVelGainScaler
2016-10-11 15:25:59 +09:00
Leonard Hall
fdcdcb0033
AC_PosControl: check Z-axis accel imax can always overpower hover throttle
...
This removes the possibility of the vehicle constantly climbing if the hover throttle becomes a very large value
2016-09-05 14:19:43 +09:00
Leonard Hall
34055944cd
AC_PosControl: fix relax_alt_hold_controllers
2016-08-05 12:40:37 +09:00
Jonathan Challinger
630e5378da
AC_PosControl: add get_horizontal_error
2016-07-12 18:40:25 +09:00
Andrew Tridgell
d1b28aaed9
AC_AttitudeControl: fixed factor of 1000 error in init_takeoff
2016-06-22 11:48:43 +10:00
Leonard Hall
dcbb071c07
AC_PosControl: Move hover throttle calculation to AP_Motors
2016-06-18 11:55:49 +09:00
Leonard Hall
1639e22b74
AC_AttitudeControl: set desired_vel for reporting purposes even when not used
2016-06-18 11:55:49 +09:00
dgrat
41661f815f
AP_Math: Replace the pythagorous* functions with a variadic template
...
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
2016-05-10 11:41:26 -03:00
Andrew Tridgell
23a64e1227
AC_AttitudeControl: fixed accel limit trigonometry
...
Leonard had mentioned the limit should be tan(angle) not sin(angle). I
noticed this one was wrong.
2016-04-28 16:15:15 +10:00
Leonard Hall
c64a505906
AC_PosControl: relax_alt_hold_controllers accepts throttle in 0 to 1 range
2016-04-01 11:59:30 +09:00
Leonard Hall
15be80a25d
AC_PosControl: accel_to_throttle outputs 0 to 1
2016-04-01 11:59:30 +09: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
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
Caio Marcelo de Oliveira Filho
ea08b6115d
AC_AttControl: use millis/micros/panic functions
2015-11-20 12:27:03 +09:00
Randy Mackay
c9340dbeb6
AC_PosControl: run velocity controller z-axis at 400hz
2015-11-18 13:31:21 +09:00
Randy Mackay
dbc8ce1d69
AC_PosControl: default z-axis controller to 400hz
...
No functional change as vehicle code always sets it explicitely
2015-11-18 13:31:20 +09:00
Randy Mackay
323a527734
AC_PosControl: velocity controller uses feed-forward althold
2015-11-18 13:31:19 +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
Randy Mackay
550ba478c9
AC_PosControl: add shift_pos_xy_target
2015-10-30 12:24:08 +09:00
Randy Mackay
ee0abb1750
AC_PosControl: add set_jerk_xy
2015-10-29 12:10:44 +09:00
Randy Mackay
895a40893d
AC_PosControl: use_desvel_ff flag added
...
This allows turning on/off desired velocity feedforward without setting desired_vel.z to zero. Setting desired_vel.z to zero has the side effect of disrupting the landing detection which needs to know if we are trying to descend
2015-10-28 20:21:52 +09:00
Leonard Hall
aec66c5db6
AC_PosControl: faster z-axis slowdown when over speed
2015-10-28 20:21:38 +09:00
Leonard Hall
245f7ce268
AC_PosControl: allow desired vel z to be above speed limit
2015-10-28 17:59:36 +09:00
Leonard Hall
f55c31a157
AC_PosControl: add alt hold without feed forward
2015-10-28 17:57:20 +09:00
Leonard Hall
cf5db31053
AC_PosControl: allow limiting lean angle to avoid alt loss
2015-09-07 15:10:10 +09:00
Leonard Hall
b58cc7ea8d
AC_PosControl: move accel constraint to accel_to_lean_angles
2015-09-07 14:51:43 +09:00
Gustavo Jose de Sousa
d49f10d2e5
AC_AttitudeControl: 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
Robert Lefebvre
14882bc6a8
AC_AttitudeControl: Remove unused takeoff jump #define
2015-07-14 20:16:58 +09:00
Randy Mackay
d2f93dd379
AC_PosControl: init flags
...
Resolves warning from Coverity
2015-06-08 14:46:32 +09:00
Randy Mackay
382f5d087f
AC_PosControl: explicitly set set_alt_target_from_climb_rate params
2015-06-05 15:51:02 +09:00
Randy Mackay
11fee21f06
AC_PosControl: init accel_last_z_cms
2015-06-05 15:06:34 +09:00
Andrew Tridgell
521dae1c65
AC_AttitudeControl: use set_desired_rate() on PID controllers
...
this sets them up for logging of PIDs
2015-05-27 14:28:49 +10:00
Robert Lefebvre
e87ca6de6f
AC_PosControl: Change motors.get_throttle_out
...
to get_throttle to follow function renaming in AP_Motors
2015-05-25 22:13:34 +09:00
Randy Mackay
d1808c645d
AC_PosControl: recalc leash length on speed or accel change
...
This resolves an issue in which do-set-speed would not take effect until
one waypoint too late in a mission.
2015-05-19 18:16:39 +09:00
Andrew Tridgell
872583f441
AC_AttitudeControl: removed fast_atan
2015-05-05 13:57:16 +10:00
Andrew Tridgell
84ac721340
AC_AttitudeControl: use M_PI_F instead of (float)M_PI
2015-05-05 13:44:19 +10:00
Andrew Tridgell
326b0b33ea
AC_AttitudeControl: revert AP_Math class change
2015-05-05 13:27:04 +10:00
Tom Pittenger
1bca81eaed
AC_AttitudeControl: compiler warnings: apply is_zero(float) or is_equal(float) and float to doubles
2015-05-05 13:26:55 +10:00
Randy Mackay
31edd6a72b
AC_PosControl: add_takeoff_climb_rate method
...
This function simply increments the current altitude target given a
climb rate and dt
2015-05-01 12:56:30 +09:00
Jonathan Challinger
12957867fd
AC_PosControl: fix thr twitch when changing modes
2015-04-18 12:38:44 +09:00
Jonathan Challinger
738b1967ad
AC_PosControl: use LowPassFilterVector2f
2015-04-17 10:47:01 +09:00
Jonathan Challinger
87500d9d70
AC_AttitudeControl: use new lowpass filter
2015-04-17 10:46:45 +09:00
Leonard Hall
c2a6a0a9e2
AC_PosControl: add accel filter parameter
2015-04-16 21:00:45 +09:00
Leonard Hall
a632a57d79
AC_PosControl: accessors to log z-axis vel and accel
2015-04-16 21:00:32 +09:00
Leonard Hall
0aca3c4be6
AC_PosControl: add relax Alt Hold controllers
2015-04-16 21:00:25 +09:00
Leonard Hall
7cb3c4ba39
AC_PosControl: add feed forward to Alt Hold
2015-04-16 21:00:20 +09:00
Jonathan Challinger
3e0dab7b2d
AC_PosControl: remove accel error filter and set throttle output filter instead
2015-04-16 21:00:07 +09:00
Jonathan Challinger
7abd02baf2
AC_PosControl: change int32/int16 to float in accel_to_throttle
2015-04-16 20:59:55 +09:00
Jonathan Challinger
d14893fcd5
AC_PosControl: don't limit throttle any more
2015-04-16 20:59:51 +09:00
Leonard Hall
48fb487a8c
AC_AttitudeControl: Formatting fix
2015-04-15 22:04:27 +09:00
Leonard Hall
9a3f48cc1f
AC_PosControl: ensure throttle output above zero
2015-03-16 14:49:33 +09:00
Randy Mackay
bb74b8dec8
AC_PosControl: fix twitch when entering RTL
...
Also removed slow_cpu flag
Fixed bug in update to _accel_target_jerk_limited.
2015-03-13 20:47:19 +09:00
Jonathan Challinger
88ec13b10d
AC_PosControl: fix build
2015-03-11 10:00:00 +09:00
Randy Mackay
50d2e98aa4
AC_AttControl: init throttle_hover in constructor
2015-03-10 22:10:36 +09:00
Randy Mackay
965db2c7f7
AC_PosControl: add comments and defines for jerk limits
2015-03-10 22:10:34 +09:00
Jonathan Challinger
4408c1b935
AC_PosControl: 2d jerk constraint in accel_to_lean_angles
2015-03-10 22:10:32 +09:00
Jonathan Challinger
9871b95586
AC_PosControl: fix dt sanity checking
2015-03-10 22:10:30 +09:00
Leonard Hall
7de5bccc93
AC_PosControl: remove THR_HOVER parameter
...
Parameter is set by main code so no need to store to eeprom
2015-03-06 14:02:46 +09:00
Leonard Hall
9866eaded1
AC_PosControl: rename p_alt_pos to p_pos_z
...
Also pid_alt_accel to pid_accel_z
2015-03-06 14:02:44 +09:00
Leonard Hall
349f1aeceb
AC_PosControl: use 2-axis PI controller
2015-03-06 14:02:42 +09:00
Leonard Hall
8d4f0ec80c
AC_PosControl: integrate PID input filter
2015-03-06 14:02:39 +09:00