Commit Graph

413 Commits

Author SHA1 Message Date
Leonard Hall 49a4bde5d9 AC_AttControl: lower minimum accelerations for large copters 2016-02-18 20:49:13 +09:00
Randy Mackay 8c7f36563c AC_AttControl: bug fix to angle_boost reporting
Thanks to OXINARF for finding this
2016-01-08 10:48:59 +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
Andrew Tridgell fbacb4c01f AC_AttitudeControl: fixed M_PI -> M_PI_F 2015-12-20 17:55:39 +11:00
Jonathan Challinger ee8090e25f AC_AttitudeControl: reflect renamed function in AP_AHRS 2015-12-18 18:08:37 +11:00
Randy Mackay c8661f804f AC_AttControl: reduce compiler warnings by fixing member init order
Also increased _dt's default to 400hz (no functional change)
2015-12-09 20:04:42 +09:00
Randy Mackay 02eda4dcab AC_AttControl: remove comment, fix formatting 2015-12-09 20:04:32 +09:00
Jonathan Challinger e8345fbaab AC_AttitudeControl: rename getters for attitude target and attitude error 2015-12-09 19:58:48 +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 a48f201a04 AC_AttitudeControl: comment changes in response to Paul's review 2015-12-09 19:58:41 +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 9208003aab AC_AttitudeControl: remove unused variable 2015-12-09 19:58:34 +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
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 d8ee9feaac AC_AttitudeControl: fixed external tail gyro with no flybar
this sets up the tail pass-through for acro mode
2015-11-27 15:24:41 +09: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
Randy Mackay 4b41710261 AC_AttControl: minor comment fix 2015-11-18 13:31:18 +09:00
Robert Lefebvre 1bc13fb9c0 AC_AttitudeControl_Heli: Add Hover Roll Trim Scalar 2015-11-12 19:37:35 +09:00
Robert Lefebvre 0b33ef3862 AC_AttitudeControl: Add Hover Roll Trim functionality for helicopters. 2015-11-12 19:37:26 +09:00
Robert Lefebvre 62864c9e2b AC_AttitudeControl_Heli: Remove commented out Cyclic Cross-Coupling code. Will resurrect in future. 2015-11-12 19:37:19 +09:00
Robert Lefebvre b8ce23970d AC_AttitudeControl_Heli: Implement Pirouette Compensation 2015-11-12 19:37:18 +09:00
Robert Lefebvre f39ac7c900 AC_AttitudeControl_Heli: Add initialization of _flags_heli members 2015-11-12 19:37:17 +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
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 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
Andrew Tridgell e3f7b002c2 AC_AttitudeControl: use non-flybar leaky I handling
The standard leaky-I handling works fine on a flybar, so better not to
have a special case that isn't needed
2015-09-25 12:05:43 +10:00
Leonard Hall c8872e082d AC_AttControl: rename set_throttle_out parameter
No functional change
2015-09-07 15:10:15 +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 29ff5035b4 AC_AttControl: limit lean angle from throttle 2015-09-07 15:10:09 +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
Randy Mackay 0bf1d04172 AC_AttControl: relax earth frame rate targets along with bf 2015-07-28 15:16:22 +09:00
Randy Mackay 157c97447d AC_AttControlHeli: init passthrough_yaw 2015-07-21 16:26:27 +09:00
Randy Mackay 8b4805bfcb AC_AttControl_heli: add MotorsHeli include 2015-07-21 16:25:56 +09:00
Randy Mackay bf2bf2e3fa AC_AttControl_Multi: new multirotor specific attitude control class 2015-07-21 16:25:53 +09:00
Randy Mackay 93dd7dd970 AC_AttControl: get_boosted_throttle purely virtual 2015-07-21 16:25:50 +09:00
Robert Lefebvre 14882bc6a8 AC_AttitudeControl: Remove unused takeoff jump #define 2015-07-14 20:16:58 +09:00
Andrew Tridgell eeb97800ae AC_AttitudeControl: allow for tail pass-thru in ACRO mode
this allows for all channels to be passed through
2015-06-26 12:45:38 +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
Leonard Hall cfc388934b AC_AttControl: add set_accel_roll_max
Also equivalents for pitch and yaw
2015-06-18 23:06:33 +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 6ea60aa662 AC_PosControl: remove default from set_alt_target_from_climb_rate 2015-06-05 15:15:03 +09:00
Randy Mackay 11fee21f06 AC_PosControl: init accel_last_z_cms 2015-06-05 15:06:34 +09:00
Robert Lefebvre 4da54783fd AC_AttitudeControl_Heli: Semantic Change. Motor Runup to Rotor Runup. 2015-05-29 17:46:23 +09:00
Robert Lefebvre 18bac524a3 Copter: TradHeli, change Rate FF LPF to 10Hz 2015-05-29 17:46:05 +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 353879cd2b AC_AttitudeControl_Heli: Add Rate Accel FF to Yaw control 2015-05-27 14:28:47 +10:00
Robert Lefebvre 810b12a1ac AC_AttitudeControlHeli: Change Rate Yaw FF LPF from 5Hz to 10Hz. 2015-05-27 14:28:46 +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
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
Tom Pittenger 4f1dd2c8a4 AC_AttitudeControl: compiler warning stuff
float to double promotion via cos & sin instead of cosf & sinf
(this code is commented out but in case it ever gets included it would be nice to be correct
2015-05-16 08:21:36 +10:00
Tom Pittenger 70bef20a29 AC_AttitudeControl: replace fabs() with fabsf() 2015-05-09 09:57:26 +10:00
Randy Mackay 3781f133d7 AC_AttControlHeli: remove unused definitions 2015-05-08 14:50:38 +09:00
Randy Mackay bef5633ed5 AC_AttControlHeli: use params from parent class 2015-05-08 14:50:36 +09:00
Randy Mackay 7951346d72 AC_AttControl: bf_feedfoward_save made more concise 2015-05-08 14:29:49 +09:00
Leonard Hall cf45a1cf3a AC_AttitudeControl: add get accel and save ff 2015-05-08 14:14:30 +09:00
Leonard Hall 1900cc7582 AC_AttitudeControl: Enable FF by default 2015-05-08 14:14:21 +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 ab2532a609 AC_AttitudeControl: constrain _angle_boost to avoid overflow 2015-04-24 16:30:43 +09:00
Tom Pittenger 84d3069a77 AttControl_Heli: fix compile warning re member init order 2015-04-24 14:15:35 +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 8f667b3d1c AC_PosControl: fix up comments 2015-04-17 10:46:59 +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 24b8d32b0e AC_AttitudeControl: add comment 2015-04-16 21:00:22 +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 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 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
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 4d9da2720b AC_AttitudeControl: add get for angle bf errors 2015-04-16 13:29:52 +09:00
Leonard Hall 48fb487a8c AC_AttitudeControl: Formatting fix 2015-04-15 22:04:27 +09:00
Randy Mackay bdfe8bbc54 AC_AttControl_Heli: remove RATE_RP_MAX, RATE_Y_MAX 2015-04-09 20:19:54 +09:00
Leonard Hall afcd1c6ec3 AC_AttitudeControl: sqrt controller on Stab 2015-04-09 20:19:43 +09:00
Jonathan Challinger 127791127c AC_PosControl: fix double literals 2015-03-24 06:29:04 -07:00
Leonard Hall 09aa2f8114 AC_AttitudeControl: Fix function discription 2015-03-23 07:40:04 -07:00
Leonard Hall 6b104c0529 AC_AttitudeControl: No Overshoot limit for Stab
This maybe done in a more obvious way using a switch rather than just
making the overshoot larger than 180 degrees.
2015-03-23 07:40:02 -07: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
Randy Mackay 90702e2d79 AC_AttControl: remove example sketch
This sketch only tested compiling anyway
2015-03-13 16:40:50 +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
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 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 e4d48fdc92 AC_AttControlHeli: separate accel max for roll, pitch
renamed _accel_y_max to _accel_yaw_max
2015-03-06 14:02:36 +09:00
Leonard Hall 51455af51a AC_AttConHeli: integrate PID input filter 2015-03-06 14:02:35 +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
Leonard Hall f00025e5c9 AC_AttControl: accessor for rate feedforward 2015-03-06 14:02:27 +09:00
Leonard Hall 691fb8947e AC_AttControl: accessor for rate_bf_targets 2015-03-06 14:02:25 +09:00
Leonard Hall 784a4ce51a AC_AttControl: increase max angle overshoot to 30deg 2015-03-06 14:02:23 +09:00
Leonard Hall eb084f7c58 AC_AttControl: bf yaw control uses input filtered PID 2015-03-06 14:02:21 +09:00
Jonathan Challinger e9bbe062f3 AC_PosControl: modify accel_to_lean_angles to apply filters before yaw rotation 2015-02-24 16:41:03 +09:00
Andrew Tridgell 78dadcb5c6 AC_AttitudeControl: fixed example build 2015-02-09 13:08:34 +11: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
Robert Lefebvre 02f3f96310 AC_PosControl: Enable altitude limit checking. 2015-01-30 14:13:45 +09:00
Randy Mackay d7f7af8c13 AC_AttControl: fix example sketch 2015-01-28 17:15:32 +09:00
Robert Lefebvre 743c5e4fde AC_AttitudeControl: Remove un-needed #include 2015-01-21 14:36:54 +09:00
Randy Mackay aeecc46f7b AC_PosControl: remove unnecessary set of desired_accel
The desired_accel is set again 11 lines lower so this line did nothing.
2015-01-14 16:23:26 +09:00