Commit Graph

339 Commits

Author SHA1 Message Date
Andy Piper ab24f97275 APM_Control: implement single-cycle feed-forward scaler for roll and pitch 2023-09-13 18:02:44 +10:00
Andy Piper ee883b6ad0 APM_Control: allow autotune FLTD and FLTT updates to be disabled 2023-08-23 18:06:22 +10:00
Randy Mackay 57b54a4263 AR_PosControl: add singleton and get_srate 2023-08-01 09:16:17 +10:00
Randy Mackay 68e1769cc1 AR_AttitudeControl: add singleton and get_srate 2023-08-01 09:16:17 +10:00
Randy Mackay 9c15dcb206 AR_PosControl: limit and zero velocity I-term
zero in forward-back direction
limit in lateral direction
2023-07-05 20:27:54 +09:00
Randy Mackay 6f52eaf9a7 AR_AttitudeContol: add steering_limited checks 2023-07-05 20:27:54 +09:00
Randy Mackay 385e828fdd AR_PosControl: add input_pos_vel_accel target 2023-05-30 10:17:13 +10:00
Iampete1 c99c17f1ce AMP_Control: Roll and Pitch Controller: don't reset pid_info.I in reset_I calls 2023-01-17 11:19:39 +11:00
Leonard Hall 2f2143ca6f AP_Control: Support changing update period 2022-12-13 17:10:06 +11:00
Henry Wurzburg 2d4d915b45 APM_Control: generalize pid descriptions 2022-11-22 10:55:45 +11:00
Randy Mackay 71ae3f0a13 AR_AttitudeControl: balancebot gets pitch limit protection 2022-11-15 09:00:57 +09:00
Randy Mackay 3d89bd9f14 AR_AttitudeControl: balancebot pitch feedforward uses current pitch angle 2022-11-15 09:00:57 +09:00
Randy Mackay 30b2e03a85 AR_AttitudeControl: improve balancebot pitch control param description 2022-11-15 09:00:57 +09:00
Peter Barker 7f202b8a0e APM_Control: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Peter Barker 326789f0ed APM_Control: remove unused methods 2022-11-01 10:58:27 +11:00
Andrew Tridgell 01d006ebd1 APM_Control: added access to time constant 2022-10-18 07:38:39 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
MatthewHampsey 822c26f811 APM_Control: fixed yaw PID reset 2022-09-22 05:55:15 +10:00
Iampete1 ad32d277ff APM_Control: YawController: add enabled method 2022-09-20 11:21:54 +10:00
Iampete1 c6e0ba7360 APM_Control: SteerController: add active method 2022-09-20 11:21:54 +10:00
Shiv Tyagi 7d3f013695 AR_PosControl: add accessor for reversed 2022-09-06 11:23:51 +09:00
Andrew Tridgell 9a453bfc82 APM_Control: removed use of "blended" earth frame accel 2022-08-21 18:51:59 +10:00
Iampete1 6875ef17a0 APM_Control: params always use set method 2022-08-03 13:43:48 +01:00
Henry Wurzburg dcde718f20 AP_Control: change I determination for Roll axis 2022-07-26 09:40:02 +10:00
esaldiran 545cf0504a APM_Control: AP_YawController: update pid_info with integrator reset for logging purposes 2022-07-19 11:40:03 +01:00
Andrew Tridgell aafec1fbe7 APM_Control: fixed use of configured() vs configured_in_storage() 2022-06-06 13:11:50 +10:00
Peter Barker 73c6eabde2 APM_Control: tidy includes 2022-05-03 09:14:58 +10:00
Peter Barker dd589934cc APM_Control: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Randy Mackay c233f114bd AR_PosControl: fixup logging to record desired and target velocity and acceleration 2022-03-30 15:34:14 +09:00
Randy Mackay 74df1c0b22 AR_PosControl: reduce default I term to zero 2022-03-30 15:34:14 +09:00
Randy Mackay abc7bd446a AR_PosControl: rover position controller 2022-03-30 15:34:14 +09:00
murata bb72f91dda APM_Control: Change from division to multiplication 2022-03-16 18:41:52 +11:00
xianglunkai 2e5c201222 AR_AttitudeControl: use _desired_speed instead of desired_speed for throttle-speed controller 2022-03-04 17:51:19 +11:00
Randy Mackay 619f4976a2 AR_AttitudeControl: get_turn_rate_from_heading applies acceleration limit
Limits rate output so that vehicle will not overshoot the target heading
2022-02-10 07:45:12 +09:00
Hwurzburg d1f02916cf APM_Control: correct metadata description for roll/pitch rate limits 2022-01-25 08:37:39 +11:00
Randy Mackay 91d40b768c AR_AttitudeControl: get_throttle_speed_pid_info.FF includes base throttle 2022-01-07 09:36:44 +09:00
Randy Mackay 53135b2df0 AR_AttitudeControl: improve get_turn_lat_accel accessor comments 2022-01-03 09:07:21 +09:00
Andrew Tridgell 639447142a APM_Control: use EKF yaw bias to correct fixed wing yaw damper 2021-12-07 17:05:54 +11:00
Andrew Tridgell c83da810da APM_Control: tweaks from review feedback 2021-11-30 16:19:26 +11:00
Andrew Tridgell 81d20ae49d APM_Control: support yaw rate controller autotune 2021-11-30 16:19:26 +11:00
Andrew Tridgell 6685ce0527 APM_Control: added yaw rate controller for fixed wing
enabled with YAW_RATE_ENABLE parameter
2021-11-30 16:19:26 +11:00
Andrew Tridgell 5a996f308b APM_Control: fixed code style of plane rate controllers 2021-11-30 16:19:26 +11:00
Andrew Tridgell 724301ea53 APM_Control: make 2nd reduction of P smaller
this prevents severe P reductions when we get a small oscillation
glitch after we've already got the primary P gain
2021-11-30 10:31:34 +11:00
Randy Mackay e85a95f21c AR_AttitudeControl: reduce some param defaults
These reductions are based on experirence helping users setup new vehicle.  In the vast majority of cases the existing values are too high

STEER_ANG_P is the default for the angle-to-rate controller and is used during pivot turns.  This value may still be slightly too high.
STEER_RATE_MAX is the maximum turn rate so the new value allows a 360 turn in 3 seconds
STEER_ACCEL_MAX is the acceleration for the turn rate meaning a vehicle can get to 120 deg/sec in 1 sec
THR_ACCEL_MAX is the maximum acceleration.  This new value means a vehicle can accelerate to 1m/s in 1 second.
2021-11-17 19:18:23 +11:00
Randy Mackay 9c54b3d252 AR_AttitudeControl: move param defines from .h to .cpp 2021-11-17 19:18:23 +11:00
Andrew Tridgell 8a73bdcbe6 APM_Control: suppress roll/pitch D term in ground_mode
prevent oscillations which are quite common
2021-10-30 18:45:53 +11:00
Iampete1 a590a675d6 AP_RollController: return floats 2021-10-20 18:29:58 +11:00
Iampete1 da4fd7a914 AP_PitchController: return floats 2021-10-20 18:29:58 +11:00
Andrew Tridgell 08fcfa04ae APM_Control: only save autotune gains when P finished
this prevents saving values which are temporarily high due to tuning
process

See this bug report
https://discuss.ardupilot.org/t/plane-4-1-0-stable/76507/45
2021-10-10 19:00:57 +11:00
Ben Wolsieffer 68ee2c21dd AP_Control: apply pitch rate limit to turn coordination
At high bank angles, for example when rolling to/from inverted, a large turn
coordination pitch rate offset is requested. Before this patch, this offset was
not subject to the configured pitch rate limit, which could result in pitch
controller integrator windup.
2021-09-29 17:03:32 +01:00