Commit Graph

171 Commits

Author SHA1 Message Date
Leonard Hall 3ca713fdcb AC_AttitudeControl: limit ATC_MOT_MIX_MAX in case of a fly away 2019-10-31 12:23:48 +08:00
Leonard Hall e5f724bc3a AC_PosControl: add high vibration compensation 2019-10-18 11:15:25 +09:00
Leonard Hall 5acfc77a3c AC_AttitudeControl: Support for Standby functions 2019-10-17 14:57:18 +09:00
Leonard Hall 78be1067a8 AC_AttitudeControl: Alt Hold init bug 2019-07-17 09:09:25 +09:00
Leonard Hall 32cc642b2e AC_AttitudeControl: Formatting Changes 2019-04-20 09:31:56 +09:00
Tom Pittenger ce872d83a4 AC_AttitudeControl: rename dataflash to logger 2019-03-28 16:40:57 +11:00
Peter Barker 50d95943e3 AC_AttitudeControl: add pre-arm checks 2019-03-06 10:36:32 +09:00
Randy Mackay b14be4e8ae AC_PosControl: increase accuracy of dt calcs 2019-01-30 15:58:34 +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 04e4484d96 AC_AttitudeControl: correct old and misleading comments 2018-10-23 09:40:21 +11: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 5863b84c35 AC_PosControl: reduce glitch on init 2018-09-04 13:37:28 +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
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 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 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 d5976442f8 AC_PosControl: minor comment change
non-functional change
2018-01-19 15:40:32 +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 ebd864d2d2 AC_PosControl: minor update to comments 2017-11-16 09:46:28 +09: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
Leonard Hall 6e92f74ca0 AC_PosControl: add clear_desired_velocity_ff_z method 2017-04-28 09:10:02 +09:00
Jacob Walser 0e124d0be5 AC_PosControl: Add AC_PosControl_Sub class 2017-02-21 11:26:14 +11: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
Randy Mackay 127404acea AC_PosControl: add get_pos_z_kP accessor 2017-01-18 09:35:47 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 8419045aea Spell in comments 2017-01-06 10:57:39 -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
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 630e5378da AC_PosControl: add get_horizontal_error 2016-07-12 18:40:25 +09:00
Randy Mackay ec7c1ab0b0 AC_PosControl: comment fix to set_alt_max method
No functional change
2016-06-18 11:55:49 +09:00
Leonard Hall dcbb071c07 AC_PosControl: Move hover throttle calculation to AP_Motors 2016-06-18 11:55:49 +09:00
Andrew Tridgell d03a232659 AC_AttitudeControl: added set_limit_accel_xy() API
for preventing integrator buildup
2016-04-10 22:01:18 +10:00
Randy Mackay 87399776a3 AC_PosControl: hover throttle default to 0.5 2016-04-01 11:59:30 +09:00
Lucas De Marchi f42484bcc5 AC_AttitudeControl: replace header guard with pragma once 2016-03-16 18:40:39 +11: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 550ba478c9 AC_PosControl: add shift_pos_xy_target 2015-10-30 12:24:08 +09:00
Randy Mackay 16a0281c92 AC_PosControl: remove unused set_vel_target 2015-10-30 12:24:07 +09:00
Randy Mackay ee0abb1750 AC_PosControl: add set_jerk_xy 2015-10-29 12:10:44 +09:00
Randy Mackay 73f4533995 AC_PosControl: minor comment update 2015-10-28 20:21:53 +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 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
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 6ea60aa662 AC_PosControl: remove default from set_alt_target_from_climb_rate 2015-06-05 15:15:03 +09: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 738b1967ad AC_PosControl: use LowPassFilterVector2f 2015-04-17 10:47:01 +09:00
Jonathan Challinger 8f667b3d1c AC_PosControl: fix up comments 2015-04-17 10:46:59 +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
Randy Mackay a1e6a3ee32 AC_PosControl: minor format fix 2015-04-16 21:00:14 +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 127791127c AC_PosControl: fix double literals 2015-03-24 06:29:04 -07: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 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
Randy Mackay 186337f18e AC_PosControl: rename xy_mode enum values
Also added a few comments and fixed formatting
2015-02-06 17:00:55 +09:00
Jonathan Challinger 3faca88423 AC_PosControl: allow control of xy rate constraint behavior 2015-02-06 17:00:48 +09:00
Robert Lefebvre 14d76d158a AC_AttitudeControl: Correct comment. 2015-02-03 14:55:30 +09:00
Randy Mackay 07a0388f25 AC_PosControl: move alt limit to set_alt_target_from_climb_rate
The alt limit is instead enforced when the target is set using the
set_alt_target_from_climb_rate function
Also updated comments
2015-01-30 14:13:52 +09:00
Randy Mackay 2a5a133bbf AC_AttControl: remove deprecated trigger_xy method 2015-01-07 14:03:49 +09:00
Randy Mackay c36253b9b2 AC_PosControl: add comments
No functional change
2014-12-31 14:03:22 +09:00
Jonathan Challinger 557d339cf1 AC_PosControl: remove various unnecessary timing hacks 2014-12-31 14:03:18 +09:00
Jonathan Challinger d6e455417f AC_PosControl: change keep_xy_I_terms to a parameter of init_xy_controller 2014-12-31 14:03:13 +09:00
priseborough 12ea1d6e85 AC_AttitudeControl: Scale angle demand noise filter
Scales filter frequency using EKF nav gain scaler to take advantage of the reduced nav frequency whichcan tolerate a slower angle response.
This is required to reduce the effect of EKF optical flow noise increase with height.
2014-12-06 18:16:51 +11:00
priseborough e80b1c67cd AC_AttitudeControl: Add EKF optical flow noise gain scaler
Allows gains to be adjusted to compensate for optical flow noise
2014-12-06 18:16:50 +11:00
Randy Mackay d34ea4c124 AC_PosControl: fix to default force_descend param 2014-11-13 18:40:45 -08:00
Jonathan Challinger e81c1dd5a1 AC_PosControl: add force_descend option to set_alt_target_from_climb_rate 2014-11-13 18:40:38 -08:00
Randy Mackay cf3b2be99c AC_PosControl: 4hz filter on z-axis velocity error 2014-09-22 13:40:01 +09:00
Randy Mackay 665f353416 AC_PosControl: 2hz filter on accel error
Replaced hard-coded filter with LowPassFilter class allowing the
filter's to be 2hz on both APM and Pixhawk
2014-09-21 17:53:55 +09:00
Randy Mackay e0fc2dd50e AC_PosControl: remove 20cm on takeoff 2014-08-05 09:11:57 +09:00
Randy Mackay e550c1e9a3 AC_PosControl: add set_alt_target_to_current_alt method 2014-08-04 16:54:04 +09:00
Randy Mackay 82ed70b25e AC_PosControl: add xyz velocity controller
Velocity controller interpretsthe velocity requests as
desired velocities (i.e. feed forward).  These are then used to update
the target position and also added to the target velocity.
Also renamed the set_desired_velocity() function to
set_desired_velocity_xy() to make clear only lat and lon axis are
updated.
2014-07-06 17:01:02 +09:00
Randy Mackay 4d4c7a2118 AC_AttControl: move freeze_ff to flags structure 2014-06-10 20:02:46 +09:00
lthall 8bbce7e658 AC_PosControl: freeze feed forward for alt control in Auto 2014-06-10 20:02:36 +09:00
lthall 0d87298221 AC_PosControl: freeze feed forward and vector fixes 2014-06-10 20:02:33 +09:00
Randy Mackay 2b0f142a17 AC_PosControl: fix typo in D-filter definition 2014-05-29 17:50:48 +09:00
Randy Mackay 29ca7a10df AC_PosControl: set alt hold accel control D term filter 2014-05-29 17:40:23 +09:00
Randy Mackay c13db680b7 AC_PosControl: remove reset_I_xy
lean_angles_to_accel is now used to load the position rate I terms based
on vehicle's initial roll and pitch angle
2014-05-08 16:15:48 +09:00
Randy Mackay cd8b1f278c AC_PosControl: remove unused _cos_yaw variable
Also removed _sin_yaw, _cos_pitch, _step saving a total of 17bytes of
RAM
Also made get_speed_up, get_speed_down, lean_angles_to_accel functions
const
2014-05-08 16:15:46 +09:00
Randy Mackay 0819e05896 AC_PosControl: lean_angles_to_accel added for smooth initialisation
init_xy_controller also added to capture initialisation all in one place
2014-05-08 16:15:41 +09:00
Randy Mackay a1f1dd8059 AC_PosControl: add is_active_z method
Consolidated z-axis timeout checks to save 4bytes of RAM
Added POS_CONTROL_ACTIVE_TIMEOUT_MS to make timeout consistent
2014-05-08 16:15:22 +09:00
Randy Mackay 937e9ea687 AC_PosControl: add set_target_to_stopping_point_xy method
Fixed bug in get_stopping_point_xy in which it would update Z-axis
target if vehicle was moving less than 10cm/s horizontally
2014-04-30 21:46:20 +09:00