Commit Graph

735 Commits

Author SHA1 Message Date
Andrew Tridgell 285798446a AC_AttitudeControl: apply EKF Z gain scaler
for flying with DCM
2021-08-19 14:42:28 +10:00
Andrew Tridgell c99f9312db AC_AttitudeControl: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
Andrew Tridgell 25ee57080f AC_AttitudeControl: this fixes an issue with Z accel initialisation
tailsitter quadplanes were climbing a lot on transition from fixed
wing to Q modes. Leonard tracked it down to a bug in the Z accel init
2021-08-16 08:33:34 +10:00
Leonard Hall 71ccffd7c9 AC_AttitudeControl: AC_PosControl: support Control: Refactor to use Jerk 2021-08-11 17:07:29 +09:00
Leonard Hall f57175a84f AC_AttitudeControl: Fix Angle Vel units on function 2021-08-11 17:07:29 +09:00
Leonard Hall 870888efeb AC_AttitudeControl: AC_PosControl: fix PID filter names FILT -> FLTE, D_FILT -> FLTD 2021-08-10 08:33:56 +09:00
Leonard Hall 0ad2bf15bc AC_AttitudeControl: Support thrust to weight of 10:1 2021-08-03 17:04:43 +09:00
Peter Barker 5046083863 AC_AttitudeControl: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
Leonard Hall ff1843a79c AC_AttitudeControl: AC_PosControl: Auto Terain following update 2021-07-21 16:03:44 +09:00
Leonard Hall 9d845759f8 AC_PosControl: Add MAX(bla,0) because safe_sqrt isn't safe 2021-07-21 15:40:41 +09:00
Leonard Hall f130503cc7 AC_AttitudeControl: AC_PosControl: calculate cross track 2021-07-21 15:40:41 +09:00
Leonard Hall a32b5b3bb0 AC_AttitudeControl: Allow yaw rate reset to be de-selected 2021-07-13 09:51:36 +10:00
Leonard Hall ac0b320922 AC_AttitudeControl: Add accessor for yaw slew limit 2021-07-10 20:25:05 +09:00
Leonard Hall e2b5d3d585 AC_AttitudeControl: AC_PosControl: support accel only input in the vertical 2021-07-10 20:25:05 +09:00
Leonard Hall e0e283f13e AC_AttitudeControl: AC_PosControl: support terrain following 2021-07-10 20:25:05 +09:00
Leonard Hall 8a2f75d742 AC_AttitudeControl: AC_PosControl: seperate kinimatic shaping from pid limit setting 2021-07-10 20:25:05 +09:00
Leonard Hall 6e82bff55b AC_AttitudeControl: Add terain following to guided 2021-07-10 20:25:05 +09:00
Leonard Hall b3acdd49d6 AC_AttitudeControl: AC_PosControl: Support Accel only input 2021-07-10 20:25:05 +09:00
Leonard Hall 8e084a0879 AC_AttitudeControl: AC_PosControl: Change input_pos_xyz name 2021-07-10 20:25:05 +09:00
Leonard Hall 8f493e3021 AC_AttitudeControl: Add shaping_tc_z_s accessor 2021-06-25 16:54:05 +09:00
Leonard Hall 5475d1153c AC_PosControl: fixup ekf reset 2021-06-25 10:01:49 +09:00
Andrew Tridgell 66186e5221 AC_AttitudeControl: convert poscontrol to use double position 2021-06-24 21:34:30 +10:00
Andrew Tridgell 7819cc6400 AC_AttitudeControl: cleanup poscontrol comments with input from Leonard 2021-06-24 20:28:45 +10:00
Andrew Tridgell 5f053bd53a AC_AttitudeControl: fixed comment 2021-06-24 20:28:45 +10:00
Andrew Tridgell fd68233fed AC_AttitudeControl: cleanup position control APIs
use Vector2 for xy, float for z
2021-06-24 20:28:45 +10:00
Leonard Hall 47b0ac663a AC_AttitudeControl: AC_PosControl: Init and stopping point fixes 2021-06-24 09:01:07 +10:00
Leonard Hall ffc64c3042 AC_AttitudeControl: AC_PosControl: change force_descend to ignore_descent_limit 2021-06-23 10:58:50 +09:00
Leonard Hall d599052da3 AC_AttitudeControl:AC_PosControl: vibration failsafe fix 2021-06-23 10:29:23 +09:00
Leonard Hall d9529e1be3 AC_AttitudeControl: AC_PosControl: Remove extra accel limit 2021-06-21 14:14:23 +09:00
Peter Hall 716ceb93c5 AC_AttitudeControl: add thrust vector methods to 6DoF multi 2021-06-21 09:58:05 +09:00
Hwurzburg 27620322ec AC_AttitudeControl: remove % as units on params that are unitless 2021-05-30 22:38:27 -07:00
Hwurzburg 3f4d4e45fc AC_AttitudeControl: correct param ranges to accomodate TradHeli defaults 2021-05-28 09:44:11 +09:00
Randy Mackay d9c68031fa AC_PosControl: write_log checks xy and z controllers are active
This allows write_log to be write PSCZ messages for modes with onlyi vertical control (e.g. althold) without also logging out-of-date PSC messages
2021-05-26 18:58:31 +10:00
Leonard Hall 359cf8ed0e AC_AttitudeControl: Rename set_attitude_target_to_current_attitude 2021-05-26 16:03:05 +09:00
Leonard Hall fb83f98b77 AC_AttitudeControl: Set rates to zero during arming procedure for acro 2021-05-26 16:03:05 +09:00
Leonard Hall 34e342f658 AC_AttitudeControl: Rename set_yaw_target_to_current_heading 2021-05-26 16:03:05 +09:00
Leonard Hall b489dd5fe1 AC_AttitudeControl: Set yaw rate to zero during arming procedure 2021-05-26 16:03:05 +09:00
Hwurzburg ff931c7490 AC_AttitudeControl: make centideg metadata incr and range consistent 2021-05-25 10:10:18 +10:00
Leonard Hall 491350c1d6 AC_AttitudeControl: Fix before squash 2021-05-24 20:13:37 +10:00
Andrew Tridgell 8213fc5277 AC_AttitudeControl: prevent panic on SITL when no lock-step scheduling
this disables the internal error for bad timing on SITL types without
lock-step scheduling, such as RealFlight
2021-05-24 20:13:37 +10:00
Leonard Hall 92e05e8c4f AC_AttitudeControl: PosControl fixes 2021-05-24 20:13:37 +10:00
Leonard Hall 7f1f29c1ae AC_PosControl: rename get_roll_cd get_pitch_cd 2021-05-12 17:16:00 +10:00
Leonard Hall f24a0988f4 AC_PosControl: minor formatting fixes 2021-05-12 17:16:00 +10:00
Leonard Hall 772cec5101 AC_AttitudeControl: minor format fix 2021-05-12 17:16:00 +10:00
Leonard Hall 4158c37cfa AC_PosControl: Calculate heading 2021-04-27 17:13:55 +09:00
Leonard Hall e253c94f63 AC_AttitudeControl: Remove Unused Function 2021-04-27 17:13:55 +09:00
Leonard Hall bb46f7a947 AC_PosControl: Thrust Vector output 2021-04-27 17:13:55 +09:00
Leonard Hall 1fb2a95486 AC_AttitudeController: Thrust Vector attitude control 2021-04-27 17:13:55 +09:00
Peter Barker a3c329b182 AC_AttitudeControl: make parameter renames consistent 2021-04-21 12:17:42 +10:00
Leonard Hall b43c7f4ed1 AC_AttitudeControl: Parameter rename (non-functional) 2021-04-21 12:17:42 +10:00
hs293go de0c57de77 AC_AttitudeControl: Use Quaternion::operator* for vector rotation
Replace all instances of the q*v*q.formula() or conversion to rotation
matrix + matrix multiply by calling Quaternion::operator* on a
vector
2021-04-21 12:17:42 +10:00
Leonard Hall 86a157ce59 AC_AttitudeControl: Seperate thrust vector correction into a separate function 2021-04-21 12:17:42 +10:00
Leonard Hall c28d103afe AC_AttitudeControl: Fix Angular velocity rotation to body frame
Thanks to BreederBai for higlighting this in issue #17059
Thanks to esaldiran and Hs293Go for helping check the math.
2021-04-19 14:48:59 +10:00
Leonard Hall 6a8ba6f329 AC_PosControl_Sub: update for new position controller changes 2021-04-03 12:07:59 +09:00
Randy Mackay cb0d37586e AC_PosControl: use Vector limit_length and formatting fixes 2021-04-03 12:07:59 +09:00
Leonard Hall ba00c2edd6 AC_PosControl: alt hold controller update
pass accel limit top_pos_xy
prearm check updated
fix PSC_VELZ_FLTE/D param descriptions
fix VelZ FF param desc
limit maximum desired z component
integrate AC_PID_Basic
2021-04-03 12:07:59 +09:00
Leonard Hall b73ad1a1bc AC_PosControl: remove unused sqrt_controller_3D 2021-04-03 12:07:59 +09:00
Leonard Hall 49da872218 AC PosControl: fix position error get functions 2021-04-03 12:07:59 +09:00
Randy Mackay ae66803148 AC_AttitudeControl: minor optimisation and comment fixes 2021-04-03 12:07:59 +09:00
Leonard Hall d6e3495eca AC_AttitudeControl: support for feedforward rate in angle request for yaw 2021-04-03 12:07:59 +09:00
Peter Hall aa75fc2c3d AC_PosControl: use target lean angles rather than true for init 2021-03-17 08:13:11 +09:00
Peter Hall a43db51440 AC_AttitudeControl: add get_att_target_euler_rad function 2021-03-17 08:13:11 +09:00
Leonard Hall e788d63686 AC_AttitudeControl: clear up comment for inertial_frame_reset 2021-02-17 21:19:18 +09:00
Leonard Hall f53242b323 AC_AttitudeControl: rename thrust_heading_rotation_angles args 2021-02-10 18:35:58 +11:00
Leonard Hall ad6e2eeed8 AC_AttitudeControl: remove feed-forward from run_quat 2021-02-10 18:35:58 +11:00
Leonard Hall 8ace1bfad1 AC_PosControl: const local vars and remove todo 2021-02-10 13:26:23 +09:00
Randy Mackay 0703a1cf93 AC_PosControl: add PSCZ logging 2021-02-09 19:33:52 +09:00
Randy Mackay 9f914d9e7d AC_PosControl: add get_z_accel_cmss helper function 2021-02-09 19:33:52 +09:00
Iampete1 7d5e5f8dd7 AC_AttitudeControl: add SITL panic to remind us to implent the quarternion 2021-02-09 12:43:54 +09:00
Iampete1 791e68b4ef AC_AttitudeControl: add 6DoF support 2021-02-09 12:43:54 +09:00
Patrick José Pereira e3d018c401 AC_AttitudeControl: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Leonard Hall 25fff17e48 AC_AttitudeControl: constify some local variables 2021-01-22 14:22:18 +09:00
Randy Mackay 031be010ac AC_AttitudeControl: tailsitter sets target rates more efficiently 2021-01-20 18:21:12 +11:00
Randy Mackay 6320338771 AC_PosControl: use AP_Math control functions 2021-01-20 18:19:40 +11:00
Leonard Hall 1129a3fd59 AC_AttitudeControl: use AP_Math control functions 2021-01-20 18:19:40 +11:00
murata d7533843d5 AC_AttitudeControl: Set the gravitational acceleration value to the defined value 2021-01-05 09:11:14 +09:00
bnsgeyer 04e2cceaff AC_AttitudeControl: Tradheli support for integrator management and hover collective learning 2020-12-21 23:33:48 -05:00
Mark Whitehorn 7446a9c33c AC_AttitudeControl: make relax_attitude_controllers() non-virtual 2020-12-21 12:56:24 +11:00
Mark Whitehorn cc2c631d23 AC_AttitudeControl: add AC_AttitudeControl_TS
move tailsitter body-frame roll input method to new subclass
override relax_attitude_controllers in AttitudeControl_TS
2020-12-21 12:56:24 +11:00
Randy Mackay d6869b9234 AC_PosControl: fix typo in posxy_p param desc 2020-11-05 14:59:00 +09:00
Andrew Tridgell 0a7c628355 AC_AttitudeControl: added SMAX param docs 2020-10-25 10:32:48 +11:00
Randy Mackay 4ed486bb92 AC_AttitudeControl: revert Add PosControl PID logging 2020-09-12 08:10:33 +09:00
Iampete1 c109df3dd5 AC_AttitudeControl: Add PosControl PID logging 2020-09-11 10:12:08 +10:00
Iampete1 e955b431ef AC_PosControl: move to structure logging for PSC 2020-09-11 10:12:08 +10:00
Iampete1 c27bdafea4 AC_PosControl: correct VELXY_D_FILT Description 2020-06-23 11:40:12 +09:00
Leonard Hall edadbae240 AC_AttitudeControl: Handle zero accel value correctly in angle correction. 2020-06-23 08:21:47 +09:00
Randy Mackay 1498e4c037 AC_AttitudeControl: remove unused macro 2020-04-27 09:39:46 +09:00
Rishabh 6a98ab569e AC_PosControl: Replace update_vel_controller_xy() with update_xy_controller() 2020-04-21 09:22:45 +10:00
Peter Barker afc0fbc516 AC_AttitudeControl: add CTRL log message documentation 2020-04-12 08:36:48 +10:00
Peter Barker e477f6c840 AC_PosControl: add documentation for PSC log message 2020-04-06 10:46:45 +10:00
Randy Mackay 06b62107c7 AC_PosControl: move freeze_ff_z to be with other z-axis methods
Also minor comment fix to get_stopping_point_xy
2020-03-11 10:39:18 +09:00
Leonard Hall 29332ac112 AC_PosControl: add relax_velocity_controller_xy 2020-03-11 10:39:18 +09:00
Bill Geyer bf345b0dd4 AC_AttitudeControlHeli: update filter parameter desc mins 2020-02-26 08:02:27 +09:00
Randy Mackay aff854f485 AC_AttitudeControl: update param ranges 2020-02-26 08:02:27 +09:00
Randy Mackay fc2e15651e AC_PosControl: allow smaller changes in max speed and accel
also small changes in max speed for z-axis
2020-02-22 08:53:41 +09:00
Randy Mackay e36d4d19e2 AC_AttitudeControl_Heli: fix VFF and ILMI param descriptions 2020-02-14 09:20:17 +09:00
Randy Mackay 5e60ae8a26 AC_PosControl: add missing ACCZ param descriptions 2020-02-14 09:20:11 +09:00
Randy Mackay 84e6c59fdd AC_AttitudeControlHeli: fix update_althold_lean_angle_max use of throttle_in 2020-01-29 10:59:28 +09:00
Randy Mackay 3c8aa955d5 AC_AttitudeControlSub: fix update_althold_lean_angle_max use of throttle_in 2020-01-29 10:59:27 +09:00
Leonardo Felipe L. S. dos Santos 07f45e1ef9 AC_AttitudeControlMulti: fix update_althold_lean_angle_max use of
throttle_in
2020-01-29 10:58:56 +09:00
Randy Mackay b9ff846162 AC_AttitudeControl: remove old RAT_FILT param desc 2020-01-21 13:06:56 +09:00
Bill Geyer 7ee4054515 AC_AttitudeControl: tradheli-Remove Param descriptions
This remove the old filter param description from AC 3.6 and adds the new filter param descriptions.
2020-01-21 11:02:38 +09:00
Peter Barker d6dbdd58d3 AC_AttitudeControl: adjust for some methods on AP_AHRS become non-const 2020-01-21 11:53:18 +11:00
Mark Whitehorn 7e8aecac50 AC_AttitudeControl: simplify body-frame roll axis swapping 2019-12-18 08:33:29 +11:00
Mark Whitehorn bb9b116574 AC_AttitudeControl: fix argument order in tailsitter bodyframe roll input methods
increase allowed yaw error in tailsitter bodyframe roll modes
add combined bodyframe roll method
delete old versions of body-frame roll input methods
invert mc_controls
2019-12-18 08:33:29 +11:00
Willian Galvani 678fd8de1d AC_PosControl_Sub: do not reset accel_z integrator when relaxing
Doing so caused the ROV to dive and slowly go back to the altitude
setpoint
2019-12-02 13:26:27 -05:00
Luke.Qin c8ef863e6d AC_PosControl: fix minor bug for set_max_speed_z() 2019-11-26 19:28:38 +09:00
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 368a8028ae Heli: Prevent loss of yaw control during large angle recovery 2019-10-31 11:53:27 +08:00
Leonard Hall 5afb5b4956 AC_AttitudeControl: Prevent loss of yaw control during large angle recovery. 2019-10-31 11:53:27 +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
bnsgeyer d1a0635ec2 AC_AttitudeControl: incorporate SysID into tradheli 2019-10-16 08:17:09 +09:00
Leonard Hall 0834726b48 AC_AttitudeControl: Support System ID tests 2019-10-16 08:17:09 +09:00
Peter Barker 8bb51f4b7d AC_AttitudeControl: adjust for new vehicle base class 2019-10-08 11:26:04 +11:00
Leonard Hall 7f5d6662b3 AC_AttitudeControl: Support seperate roll and pitch limits 2019-08-03 12:06:32 +09:00
Leonard Hall 979b54b33e AC_PosControl: support update to PID object 2019-07-25 17:38:15 +09:00
Leonard Hall 30746267ec AC_AttitudeControl_Heli: support for updates to AC_PID library
includes rename get_leaky_i to update_leaky_i
2019-07-25 17:38:15 +09:00
Leonard Hall bbe33e38f3 AC_AttitudeControl: support for upgrade to PID object 2019-07-25 17:38:15 +09:00
Leonard Hall 78be1067a8 AC_AttitudeControl: Alt Hold init bug 2019-07-17 09:09:25 +09:00
Mark Whitehorn ce1a082956 Plane: limit yaw error in bodyframe roll control 2019-04-30 08:51:24 +10:00
Mark Whitehorn 732ed17f2f AC_AttitudeControl: bodyframe roll log target attitude bugfix 2019-04-23 09:15:55 +10:00
Mark Whitehorn d72f2feeb5 AC_AttitudeControl: constrain input euler roll and pitch in bodyframe roll controls
and limit integrated error in bf_roll_pitch_yaw_3
2019-04-23 09:15:55 +10:00
Leonard Hall 32cc642b2e AC_AttitudeControl: Formatting Changes 2019-04-20 09:31:56 +09:00
Randy Mackay 4e494d5a63 AC_PosControl: minor comment fix to pre-arm checks 2019-04-16 11:23:46 +09:00
Randy Mackay 0624f6b8c3 AC_PosControl: minor comment fix 2019-04-16 11:23:46 +09:00
Leonard Hall c00ee6aac5 AC_AttitudeControl: increase rate I gain to match P gain 2019-04-12 09:28:24 +09:00
Leonard Hall e170beaf8c AC_AttitudeControl: reduce throttle mix for manual modes 2019-04-12 09:28:22 +09:00
Peter Barker 9c9ebb908c AC_AttitudeControl: store integrators temps in correct type 2019-04-10 09:37:19 +09:00
Peter Barker 70aed0f29c AC_AttitudeControl: store acro passthrough values as float
The function which sets these has floats, and the function we send them
to uses floats... so store them as floats...
2019-04-10 09:37:19 +09:00
Leonard Hall 6e76dff930 AC_AttitudeControl: remove unused set_throttle_out_unstabilized 2019-04-08 09:42:21 +09:00
Mark Whitehorn b7957e820f AC_AttitudeControl: bodyframe roll log target attitude bugfix 2019-03-30 10:32:24 +11:00
Tom Pittenger ce872d83a4 AC_AttitudeControl: rename dataflash to logger 2019-03-28 16:40:57 +11:00
Patrick José Pereira 6152f31c1e AC_PosControl_Sub: Add new relax_alt_hold_controllers
When changing from manual to alt hold controller it's necessary to hold the I term
since this will help to fix the altitude with vehicles that are not neutral buoyancy

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2019-03-26 13:37:18 -04:00
Mark Whitehorn 55047324ac AC_AttitudeControl: add new tailsitter bodyframe roll option 2019-03-26 14:50:37 +11:00
Mark Whitehorn 4e9b6d1919 AC_AttitudeControl: improve tailsitter bodyframe roll control 2019-03-26 14:50:37 +11:00
Peter Barker eb1fc3107c AC_PosControl: log PSC data in metres in place of centimetres 2019-03-26 10:18:05 +11:00
Mark Whitehorn 1c52458d72 AC_AttitudeControl: use new method get_quat_body_to_ned() 2019-03-19 10:46:25 +11:00
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
Randy Mackay 8710526894 AC_PosControl: constify dt calcs 2019-01-30 15:58:34 +09:00
Randy Mackay b14be4e8ae AC_PosControl: increase accuracy of dt calcs 2019-01-30 15:58:34 +09:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11: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
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 7e3ca19308 AC_AttitudeControl: add override keyword in many places 2018-11-08 11:30:12 +11:00
murata 6db54bd65e AC_AttitudeControl: Change from sqrt to safe_sqrt 2018-11-03 15:23:15 +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