Commit Graph

205 Commits

Author SHA1 Message Date
Mark Whitehorn 20bbf99b28 AC_AttitudeControl: add body-frame yaw mode for tailsitters 2019-03-06 15:48:51 +11:00
Peter Barker 50d95943e3 AC_AttitudeControl: add pre-arm checks 2019-03-06 10:36:32 +09:00
Pierre Kancir 96e629d83e AC_AttitudeControl: pass vector by const reference 2018-12-22 08:31:32 +09:00
Leonard Hall 8d572e8565 AC_AttitudeControl: Fix Autotune high hover throttle based limits 2018-12-21 22:17:52 +11:00
Michael du Breuil 5846a54c17 AC_AttitudeControl: Fix copy paste param doc error 2018-10-25 09:50:00 +11:00
Leonard Hall 96a8bcf641 AC_AttitudeControl: limit gyro correction to 45 degrees error 2018-10-16 00:44:50 +09:00
Leonard Hall acaefe9316 AC_AttitudeControl: remove output limits 2018-10-16 00:44:50 +09:00
Leonard Hall 34c0656675 AC_AttitudeControl: Add missing variable initalisations 2018-09-15 11:00:29 +10:00
Michael du Breuil eb1f3b205f AC_AttitudeControl: Use reset_rate_controller_I_terms() helper 2018-09-14 12:16:58 +09:00
Leonard Hall 706ff85be7 AC_AttitudeControl: Add minimum angle limit for get_althold_lean_angle_max 2018-09-12 15:51:30 +09:00
Jacob Walser 6ae1bf4cf4 AC_AttitudeControl: Allow zero gains for Sub
Close bluerobotics/ardusub#70
2018-04-25 17:18:26 +09:00
Randy Mackay 33f437a72c AC_AttitudeControl: use multiply instead of divide 2018-03-16 13:50:57 +09:00
Leonard Hall c53ba22daa AC_AttitudeControl: add new rate only attitude control 2018-03-16 13:50:57 +09:00
Randy Mackay b988a6ca08 AC_AttitudeControl: add units to INPUT_TC param desc 2018-03-16 13:50:57 +09:00
Randy Mackay 9aa6415e1c AC_AttitudeControl: use is_positive and is_negative 2018-03-16 13:50:57 +09:00
Randy Mackay b3de52dc59 AC_AttitudeControl: minor comment fix 2018-03-16 13:50:57 +09:00
Leonard Hall 05418d3d29 AC_AttitudeControl: add EKF reset handling 2018-03-16 13:50:57 +09:00
Leonard Hall 8c45345863 AC_AttitudeControl: rename use_ff_and_input_shaping to use_sqrt_controller
Also rate controllers only use _rate_bb_ff_enabled flag to decide whether
to use ff for now
2018-03-16 13:50:57 +09:00
Leonard Hall 1e9e12e866 AC_AttitudeControl: rename heading_quad to yaw_vec_correction_quat
also rename flip_scalart local variable to feedforward_scalar
also add comments
non-functional change
2018-03-16 13:50:57 +09:00
Randy Mackay 59a2445ad3 AC_AttitudeControl: replace smoothing gain with INPUT_TC 2018-03-16 13:50:57 +09:00
Leonard Hall e1e224b68b AC_AttitudeControl: add angular velocity limit 2018-03-16 13:50:57 +09:00
Leonard Hall ee82943f85 AC_AttitudeControl: add input_shaping_rate_predictor 2018-03-16 13:50:57 +09:00
Leonard Hall 6175a896ee AC_AttitudeControl: add set smoothing gain
Smoothing gain value should be set once when entering a mode
2018-03-16 13:50:57 +09:00
Leonard Hall 692e6518cc AC_AttitudeControl: update param desc values for large copters 2018-01-27 11:54:04 +09:00
Leonard Hall 62cc25022c AC_AttitudeControl: protect against overshoot in sqrt controller 2018-01-16 12:13:48 +09:00
Leonard Hall 75de0cb4ef AC_AttitudeControl: sqrt_controller accepts dt 2018-01-16 12:13:48 +09:00
Leonard Hall cddd815a75 AC_AttitudeControl: comment thrust_heading_rotation_angles
non-functional change
2018-01-12 15:20:47 +09:00
Leonard Hall 0544cf1d82 AC_AttControl: add step input for autotune 2017-06-22 15:18:04 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 188dfb6936 AC_AttitudeControl: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Randy Mackay 67097c8d59 AC_AttitudeControl: use gyro_latest
This allows moving the attitude control before the ahrs/ekf update

We continue to use ahrs.get_gyro for the non-time-critical heli
passthrough functions.  We should avoid using get_gyro_latest() unless we know there is a direct benefit because it could lead to inconsistent gyro values vs what the EKF is using.
2017-03-03 13:14:28 +11:00
Andrew Tridgell 5acbf5d16e AC_AttitudeControl: use FF from AC_PID 2017-02-18 17:26:43 +11:00
Leonard Hall ea0e413b04 AC_AttControl: do not limit rate if ATC_ACCEL_MAX param is zero 2016-11-23 14:43:29 +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
Leonard Hall 29d4790fc7 AC_AttControl: reduce max_rate_step based on hover throttle
This changes reduces AutoTune's twitch size based on the hover throttle
This method is only used by AutoTune
2016-08-12 22:29:53 +09:00
Leonard Hall 011bc0a350 AC_AttControl: add reset_rate_controller_I_terms() 2016-08-05 12:40:37 +09:00
Leonard Hall 80bda572ba AC_AttutudeControl: Yaw shift fix 2016-06-24 18:15:48 +09:00
Leonard Hall 8737f6b62d AC_AttitudeControl: enhanced quaternion attitude controller 2016-06-24 17:17:11 +09:00
Leonard Hall 096bdd67f8 AC_AttitudeControl: add ATC_ANG_LIM_TC parameter
This allow adjusting the reponse to limit lean angles to reduce altitude loss
2016-06-18 11:55:49 +09:00
Randy Mackay dafc45eb26 AC_AttitudeControl: move get_althold_lean_angle_max to parent class 2016-06-18 11:55:49 +09:00
Leonard Hall 3d27ecca92 AC_AttitudeControl: add TC for Alt_Hold angle limit 2016-06-18 11:55:49 +09:00
Randy Mackay 7ff0fcb25d AC_AttitudeControl: multicopter specific rate_controller_run 2016-06-18 11:55:49 +09:00
Randy Mackay b7431b7d0c AC_AttitudeControl: update throttle rpy mix on every iteration 2016-06-18 11:55:49 +09:00
Leonard Hall 35ef761deb AC_AttitudeControl: Move set_throttle_out to _Multi and _Heli 2016-06-18 11:55:49 +09:00
Andrew Tridgell 6330060e49 AC_AttitudeControl: added monitoring of controller error
use RMS P+I+FF output. Thanks to Leonard for the suggestion
2016-05-28 17:33:30 +10:00
Randy Mackay 4a06ca4be2 AC_AttControl: remove unused call to motors.set_stabilizing
Also minor change to order of a call to motors library to make stabilizing
and non-stabilizing calls consistent.

Non functional change
2016-05-07 10:08:38 +09:00
Leonard Hall b30606bb22 AC_AttControl: remove scaling for centi-degrees and legacy motor input 2016-04-01 11:59:30 +09:00
Randy Mackay 17c9db08f3 AC_AttControl: add angle and rate PIDs 2016-04-01 11:59:30 +09:00
Leonard Hall 979534279a AC_AttControl: roll, pitch, yaw output to motors in -1 to +1 range 2016-04-01 11:59:30 +09:00
Leonard Hall 2822b93cd4 AC_AttControl: add get_throttle_in accessor
Used for logging only
2016-04-01 11:59:30 +09:00
Leonard Hall c0f209fa42 AC_AttControl: angle_boost to float 2016-04-01 11:59:30 +09:00
Jonathan Challinger e946e047e6 AC_AttitudeControl: add attitude_controller_run functions, call from input functions 2016-03-02 20:16:18 +09:00
Randy Mackay 5ddd332277 AC_AttControl: add ANGLE_BOOST param
This allows disabling angle boost
2016-01-07 12:31:52 +09:00
Randy Mackay 86bb03aa79 AC_AttControl: use ahrs get_rotation_body_to_ned
ahrs.get_dcm_matrix renamed to ahrs.get_rotation_body_to_ned
2015-12-23 11:38:21 +09:00
Jonathan Challinger 46e6ff3ca9 AC_AttitudeControl: modify comment on kinematic correction feedforward 2015-12-23 11:38:19 +09:00
Jonathan Challinger 829d6037fc AC_AttitudeControl: convert euler rates to angular velocity using the correct attitude 2015-12-23 11:38:16 +09:00
Jonathan Challinger ae3357baee AC_AttitudeControl: rotate angular velocity feedforward into vehicle frame 2015-12-23 11:38:14 +09:00
Jonathan Challinger 3d4bd92b48 AC_AttitudeControl: add helper functions to retrieve rotation matrices 2015-12-23 11:38:12 +09:00
Jonathan Challinger ee8090e25f AC_AttitudeControl: reflect renamed function in AP_AHRS 2015-12-18 18:08:37 +11:00
Randy Mackay 02eda4dcab AC_AttControl: remove comment, fix formatting 2015-12-09 20:04:32 +09:00
Jonathan Challinger 3a06edcee3 AC_AttitudeControl: rename local variable to match naming convention 2015-12-09 19:58:46 +09:00
Jonathan Challinger 846ee7d2af AC_AttitudeControl: fix regression in angular velocity controller 2015-12-09 19:58:45 +09:00
Jonathan Challinger b8223771d3 AC_AttitudeControl: properly protect sqrt_controller from nonpositive acceleration limits 2015-12-09 19:58:44 +09:00
Jonathan Challinger 162d2a9112 AC_AttitudeControl: naming changes in response to Leonard's review 2015-12-09 19:58:42 +09:00
Jonathan Challinger 0baf86c485 AC_AttitudeControl: fixup more names 2015-12-09 19:58:39 +09:00
Jonathan Challinger 41e580e53a AC_AttitudeControl: add input_att_quat_bf_ang_vel and use for ACRO 2015-12-09 19:58:38 +09:00
Jonathan Challinger 5919e95635 AC_AttitudeControl: add input_ prefix to input shaper functions 2015-12-09 19:58:36 +09:00
Jonathan Challinger bba360ea2b AC_AttitudeControl: correct bugs found in review 2015-12-09 19:58:35 +09:00
Jonathan Challinger f8c709478a AC_AttitudeControl: quaternion acro controller 2015-12-09 19:58:33 +09:00
Jonathan Challinger 8b886bc479 AC_AttitudeControl: minor comment changes and reorganization 2015-12-09 19:58:32 +09:00
Jonathan Challinger edda7e4e1e AC_AttitudeControl: keep _att_target_euler_deriv_rads updated in euler_angle_roll_pitch_yaw 2015-12-09 19:58:31 +09:00
Jonathan Challinger 1afab89991 AC_AttitudeControl: extensive renaming and recommenting 2015-12-09 19:58:29 +09:00
Jonathan Challinger 06c8457efd AC_AttitudeControl: rename and modify frame_conversion functions to follow conventions 2015-12-09 19:58:27 +09:00
Jonathan Challinger 7330de86e5 AC_AttitudeControl: change internals to use radians instead of centidegrees 2015-12-09 19:58:26 +09:00
Andrew Tridgell 58f0abaf4c AC_AttitudeControl: fixed one usage of zero accel limits
in other places zero accel limit means no limit
2015-12-07 13:43:14 +09:00
Randy Mackay 4b41710261 AC_AttControl: minor comment fix 2015-11-18 13:31:18 +09:00
Robert Lefebvre 0b33ef3862 AC_AttitudeControl: Add Hover Roll Trim functionality for helicopters. 2015-11-12 19:37:26 +09:00
Jonathan Challinger 6784fd8625 AC_AttitudeControl: reserve parameter IDs 2015-11-10 12:56:52 +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
Leonard Hall c8872e082d AC_AttControl: rename set_throttle_out parameter
No functional change
2015-09-07 15:10:15 +09:00
Leonard Hall 29ff5035b4 AC_AttControl: limit lean angle from throttle 2015-09-07 15:10:09 +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
Randy Mackay 0bf1d04172 AC_AttControl: relax earth frame rate targets along with bf 2015-07-28 15:16:22 +09:00
Randy Mackay 93dd7dd970 AC_AttControl: get_boosted_throttle purely virtual 2015-07-21 16:25:50 +09:00
Randy Mackay 1e3e65e443 AC_AttControl: add shift_ef_yaw_target
This allows shifting the target heading in case the EKF shifts it's
heading estimate
2015-06-24 11:49:32 +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 23adf2773c AC_AttitudeControl: Remove To-Do comments for Attitude Rate logging. 2015-05-27 14:28:44 +10:00
Robert Lefebvre 915236f1f5 AC_AttitudeControl: Non-functional comment change
Don't encourage future misuse of g.rc3
2015-05-25 22:13:37 +09: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
Jonathan Challinger ab2532a609 AC_AttitudeControl: constrain _angle_boost to avoid overflow 2015-04-24 16:30:43 +09:00
Leonard Hall 24b8d32b0e AC_AttitudeControl: add comment 2015-04-16 21:00:22 +09:00
Jonathan Challinger b7f7624aac AC_AttitudeControl: add throttle filter cutoff parameter to set_throttle_out functions 2015-04-16 21:00:04 +09:00
Jonathan Challinger 518e798f53 AC_AttitudeControl: rework angle_boost 2015-04-16 20:59:58 +09:00
Jonathan Challinger f3555d0d43 AC_AttitudeControl: modify throttle interface to specify stabilization 2015-04-16 20:59:45 +09:00
Jonathan Challinger 5c2341009a AC_AttitudeControl: throttle is a float 2015-04-16 20:59:42 +09:00
Leonard Hall afcd1c6ec3 AC_AttitudeControl: sqrt controller on Stab 2015-04-09 20:19:43 +09:00
Jonathan Challinger e2383581cc AC_AttitudeControl: relax_bf_rate_controller resets rate integrators 2015-03-06 14:02:57 +09:00
Leonard Hall 20de383084 AC_AttControl: accel limiting for angular control only if feed forward enabled 2015-03-06 14:02:52 +09:00
Leonard Hall 792b2a2eb3 AC_AttControl: separate accel max for roll, pitch, yaw
Also add:
Rate filters
rename rate filter defines
d-term only filter for roll, pitch rate control
accessors to save max accel for roll, pitch, yaw
fix for duplicate ACCEL_Y_MAX param
2015-03-06 14:02:33 +09:00
Leonard Hall 9833c91b2b AC_AttControl: get_max_rate_step_bf_roll, pitch and yaw 2015-03-06 14:02:30 +09:00