ardupilot/ArduCopter
Andy Piper f84c855dd1 Copter: run copter attitude control with separate rate thread
run motors output at rate thread loop rate
allow rate thread to be enabled/disabled at runtime for in-flight impact testing
setup the right PID notch sample rate when using the rate thread the PID notches
 run at a very different sample rate
call update_dynamic_notch_at_specified_rate() in rate thread
log RTDT messages to track rate loop performance
set dt each cycle of the rate loop thread
run rate controller on samples as soon as they are ready
detect overload conditions in both the rate loop and main loop
decimate the rate thread if the CPU appears overloaded
decimate the gyro window inside the IMU
add in gyro drift to attitude rate thread
add fixed-rate thread option
configure rate loop based on AP_INERTIALSENSOR_FAST_SAMPLE_WINDOW_ENABLED
better rate loop thread decimation management
ensure fix rate attitude is enabled on arming
add rate loop timing debug
update backend filters rather than all the backends
provide more options around attitude rates
only log attitude and IMU from main loop
force trigger_groups() and reduce attitude thread priority
migrate fast rate enablement to FSTRATE_ENABLE
remove rate thread logging configuration and choose sensible logging rates
conditionally compile rate thread pieces
allow fast rate decimation to be user throttled
if target rate changes immediately jump to target rate
recover quickly from rate changes
ensure fixed rate always prints the rate on arming and is always up to date
add support for fixed rate attitude that does not change when disarmed
only push to subsystems at main loop rate
add logging and motor timing debug
correctly round gyro decimation rates
set dshot rate when changing attitude rate
fallback to higher dshot rates at lower loop rates
re-factor rate loop rate updates
log rates in systemid mode
reset target modifiers at loop rate
don't compile in support on tradheli
move rate thread into its own compilation unit
add rate loop config abstraction that allows code to be elided on non-copter builds
dynamically enable/disable rate thread correctly
add design comment for the rate thread

Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
2024-12-04 07:45:05 +11:00
..
APM_Config.h Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
AP_Arming.cpp ArduCopter: Update clang pragma to check for the version of clang that introduces the warning 2024-11-12 12:41:49 +11:00
AP_Arming.h ArduCopter: be more consistent withb our defines around optional features 2024-01-09 10:51:55 +11:00
AP_ExternalControl_Copter.cpp ArduCopter: enabled sending waypoints from a companion computer to ardupilot for copter and rover 2024-05-02 09:08:34 +09:00
AP_ExternalControl_Copter.h ArduCopter: enabled sending waypoints from a companion computer to ardupilot for copter and rover 2024-05-02 09:08:34 +09:00
AP_Rally.cpp ArduCopter: correct logging when rally disabled 2023-09-05 22:23:51 +10:00
AP_Rally.h ArduCopter: correct logging when rally disabled 2023-09-05 22:23:51 +10:00
AP_State.cpp ArduCopter: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Attitude.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
Copter.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
Copter.h Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
GCS_Copter.cpp Copter: `sensor_status_flags` switch to use pos control `is_active` methods for XY and Z flags 2024-09-27 07:54:35 +09:00
GCS_Copter.h ArduCopter: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
GCS_Mavlink.cpp Copter: `send_available_mode` report custom scripting modes 2024-11-26 08:44:31 +09:00
GCS_Mavlink.h Copter: add support for `AVAILABLE_MODES` msg 2024-11-13 20:11:50 +11:00
Log.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
Makefile.waf waf: use single entry point for make wrappers 2015-12-10 10:40:34 +09:00
Parameters.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
Parameters.h Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
RC_Channel.cpp ArduCopter: remove AUX_FUNC entries based on feature defines 2024-09-08 00:55:43 +10:00
RC_Channel.h ArduCopter: use AUX_FUNC instead of typedef aux_func_t 2024-02-15 08:41:30 +11:00
ReleaseNotes.txt Copter: 4.6.0-beta1 release notes 2024-11-14 11:44:41 +09:00
UserCode.cpp Copter: fix userhook aux switches 2021-12-01 07:44:25 +09:00
UserParameters.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
UserParameters.h Copter: set paraam default for user parameters 2022-12-30 14:40:55 -08:00
UserVariables.h Global: remove mode line from headers 2016-10-24 09:42:01 -02:00
afs_copter.cpp Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
afs_copter.h Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
autoyaw.cpp Copter: Add set_yaw_angle_offset() function to AutoYaw mode 2024-10-08 08:05:27 +09:00
avoidance.cpp ArduCopter: move AC_Avoidance defines into libraries 2024-03-11 18:07:18 +11:00
avoidance_adsb.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
avoidance_adsb.h all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
baro_ground_effect.cpp Copter: INAV rename for neu & cm/cms 2021-11-30 10:08:07 +11:00
commands.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
compassmot.cpp ArduCopter: make SRV_Channels::cork non-static 2024-11-13 19:47:49 +11:00
config.h Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
crash_check.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
defines.h Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
ekf_check.cpp Copter: cleanup EKF failsafe units and division 2024-02-14 19:23:24 +09:00
esc_calibration.cpp ArduCopter: make SRV_Channels::cork non-static 2024-11-13 19:47:49 +11:00
events.cpp Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
failsafe.cpp Copter: rename ADVANCED_FAILSAFE to AP_COPTER_ADVANCED_FAILSAFE_ENABLED 2024-11-12 12:44:34 +11:00
fence.cpp Copter: address minor review comments 2024-07-24 08:24:06 +10:00
heli.cpp Copter: Heli: simplify autorotation mode change and support RSC autorotation state 2024-10-11 09:54:26 +11:00
inertia.cpp ArduCopter: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
land_detector.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
landing_gear.cpp ArduCopter: make AP_RANGEFINDER_ENABLED remove more code 2024-07-02 09:17:26 +10:00
mode.cpp Copter: add support for adding a custom mode from scripting 2024-11-26 08:44:31 +09:00
mode.h Copter: return `custom_mode_state` for registered modes 2024-11-26 08:44:31 +09:00
mode_acro.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_acro_heli.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_althold.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_auto.cpp Copter: `ModeAuto::do_guided` use `in_guided_mode` method 2024-11-26 08:44:31 +09:00
mode_autorotate.cpp Copter: Heli: simplify autorotation mode change and support RSC autorotation state 2024-10-11 09:54:26 +11:00
mode_autotune.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_avoid_adsb.cpp Copter: change from control_mode to flightmode 2021-03-23 22:48:20 +11:00
mode_brake.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_circle.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_drift.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_flip.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_flowhold.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_follow.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_guided.cpp Copter: add support for adding a custom mode from scripting 2024-11-26 08:44:31 +09:00
mode_guided_custom.cpp Copter: return `custom_mode_state` for registered modes 2024-11-26 08:44:31 +09:00
mode_guided_nogps.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_land.cpp Copter: disable fences for landing by suppressing in the fence check rather than using a state machine 2024-07-24 08:24:06 +10:00
mode_loiter.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_poshold.cpp Copter: Use GRAVITY_MSS 2024-11-11 16:06:51 +09:00
mode_rtl.cpp Copter: RTL path subtracts offsets 2024-10-04 09:25:56 +09:00
mode_smart_rtl.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_sport.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_stabilize.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_stabilize_heli.cpp Copter: don't pass `channel_yaw->norm_input_dz()` into `get_pilot_desired_yaw_rate` 2024-09-22 08:40:12 +09:00
mode_systemid.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
mode_throw.cpp Copter: support set_posvelaccel_offset in auto 2024-10-04 09:25:56 +09:00
mode_turtle.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
mode_zigzag.cpp Copter: zigzag uses desired xy instead of actual 2024-10-04 09:25:56 +09:00
motor_test.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
motors.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
navigation.cpp Copter: remove unused update_navigation and run_autopilot 2021-03-23 10:12:08 +09:00
precision_landing.cpp ArduCopter: correct initialisation of PrecLand buffers 2024-09-24 10:56:57 +09:00
radio.cpp ArduCopter: create and use a singleton for SRV_Channels 2024-11-13 19:47:49 +11:00
rate_thread.cpp Copter: run copter attitude control with separate rate thread 2024-12-04 07:45:05 +11:00
sensors.cpp ArduCopter: make AP_RANGEFINDER_ENABLED remove more code 2024-07-02 09:17:26 +10:00
standby.cpp Copter: Rename set_yaw_target_to_current_heading 2021-05-26 16:03:05 +09:00
surface_tracking.cpp Copter: support set_posvelaccel_offset in auto 2024-10-04 09:25:56 +09:00
system.cpp Copter: stop using global ap variable as bitmask 2024-11-06 16:31:38 +09:00
takeoff.cpp Copter: support set_posvelaccel_offset in auto 2024-10-04 09:25:56 +09:00
takeoff_check.cpp Copter: Support checking max rpm in the takeoff check 2023-05-02 10:23:55 +10:00
terrain.cpp ArduCopter: make AP_RANGEFINDER_ENABLED remove more code 2024-07-02 09:17:26 +10:00
toy_mode.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
toy_mode.h Copter: fix USER_PARAMS_ENABLED includes 2023-11-22 18:16:32 +11:00
tuning.cpp Copter: remove ENABLE/ENABLED/DISABLE/DISABLED defines 2024-09-06 11:53:09 +10:00
version.h Copter: version to 4.7.0-dev 2024-11-06 18:13:45 +11:00
wscript Copter: use new surface distance library 2024-05-28 09:55:36 +10:00