Commit Graph

340 Commits

Author SHA1 Message Date
Leonard Hall 029950ef05 APM_Control: Support PD Max 2023-09-26 10:41:05 +10:00
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