Commit Graph

230 Commits

Author SHA1 Message Date
Andrew Tridgell 61d5910d0a AP_TECS: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
Andrew Tridgell a789bb372b AP_TECS: added get_max_sinkrate() API 2021-06-05 13:05:30 +10:00
Samuel Tabor 5865e010b0 AP_TECS: Ensure no throttle output if is_gliding flag is true when flying without airspeed. 2021-05-19 17:53:43 +10:00
TunaLobster 444c413803 AP_TECS: add missing letter in meta data 2021-05-18 11:12:49 +10:00
Samuel Tabor fb8ec292cd AP_TECS: Clarify TECS_THR_DAMP and TECS_LAND_TDAMP descriptions. 2021-03-03 18:05:22 +11:00
Peter Barker d26b2a6f9a AP_TECS: replace '@User: User' with '@User: Standard' 2020-09-22 14:56:04 +10:00
Tom Pittenger 8ae34a1977 AP_TECS: Don't fetch the land slewrate if it's not needed
Co-authored-by: WickedShell <Wicked.Shell.Scripts@gmail.com>
2020-07-31 10:30:17 -07:00
Samuel Tabor bbe01adc7e AP_TECS: Use LAND_THR_SLEW if appropriate. 2020-07-31 10:30:17 -07:00
Samuel Tabor 88d4aa34db AP_TECS: Move the throttle rate limit code to ensure rate limit is respected when exiting takeoff stage. 2020-07-15 09:34:40 -07:00
Samuel Tabor 3228cc3309 AP_TECS: Update descriptions of pitch feed-forward parameters. 2020-04-08 09:11:54 +10:00
Samuel Tabor d04c6cb02e TECS: Don't override the speedweight to 0 if synthetic airspeed is in use. 2020-04-08 09:11:54 +10:00
Samuel Tabor 684ee11fc3 AP_TECS: Add flags to indicate gliding flight, and use these with AP_Soaring. 2020-04-08 09:11:54 +10:00
Samuel Tabor dc8c062fbe AP_TECS: Correct an error in the SEBdot FF term. 2020-04-08 09:11:54 +10:00
Samuel Tabor 247738518e AP_TECS: Add a feed-forward term from adjusted demanded airspeed to nav pitch. 2020-04-08 09:11:54 +10:00
Samuel Tabor a27c99fab9 AP_TECS: Return the adjusted demanded airspeed. The aspd_error mavlink message now shows the rate-limited airspeed. 2020-04-08 09:11:54 +10:00
Rishabh eeb55f8b16 TECS: Logger documentation TimeUS fix 2020-04-07 18:57:01 +10:00
Peter Barker 2b5f15fe78 AP_TECS: add missing field documentation in TECS and TEC2 2020-03-22 18:35:14 +11:00
Henry Wurzburg 8155f5dcbf AP_TECS: fix typos in logger message meta-data 2020-03-22 10:04:53 +11:00
Peter Barker 6c56f24e30 AP_TECS: add documentation for TECS and TEC2 2020-03-20 13:05:46 +11:00
Andrew Tridgell 176d3c0b2f AP_TECS: added reset() method
used at end of VTOL takeoff
2020-02-16 17:04:07 +11:00
Peter Hall 0afa144f80 AP_TECS: move to airspeed_estimate with pointer 2020-01-14 22:34:37 -07:00
Andrew Tridgell a415423975 AP_TECS: removed TECS_LAND_PMIN
thanks to TunaLobster for pointing out that it is redundent
2019-11-19 07:50:40 +11:00
Andrew Tridgell 3e72538f07 AP_TECS: added TECS_LAND_PMIN for min pitch in flare
this is useful to narrow the range of available pitch after flare
2019-10-26 18:05:17 +11:00
Andrew Tridgell 4f243aca02 AP_TECS: prevent rapid changing of pitch limits on landing approach
when on landing approach we estimate time to flare based on two noisy
numbers, the vertical speed and height above ground. With noisy
rangefinders this can change rapidly, which resulted in the pitch
limit changing rapidly, leading to a porpoising movement

this limits the rate of change, and also prevents it coming down once
it has nosed up due to pending flare on approach
2019-08-01 11:28:22 +10:00
Andrew Tridgell 4fd3008b4e AP_TECS: log pitch limits 2019-08-01 11:28:22 +10:00
Andrew Tridgell 3c8ed3d8e1 AP_TECS: fixed flare pitch limits
when limits are out of bounds
2019-08-01 11:28:22 +10:00
Andrew Tridgell d72ded4a9e AP_TECS: prevent numerical error with zero max throttle 2019-08-01 11:28:22 +10:00
Andrew Tridgell 587aa33617 AP_TECS: added TECS_OPTIONS
used for full-time glider
2019-08-01 11:28:22 +10:00
Andrew Tridgell df0cc40bba AP_TECS: allow TECS_PITCH_MAX to be negative 2019-08-01 11:28:22 +10:00
Peter Barker c0f25a96fb AP_TECS: move include of logger to .cpp file 2019-07-09 10:57:20 +10:00
Michael du Breuil ca65b214af AP_TECS: Include needed AP_Baro.h 2019-06-27 14:56:21 +10:00
Andrew Tridgell c3545be8a1 AP_TECS: fixed a bug in changes from rate-limited to non-limited airspeed
The calculation of the non-limited airspeed rate demand used the last
non-limited airspeed, whereas it should have used the last adjusted
value. This led to a single frame spike in airspeed demand, which fed
through to a sudden change in pitch integrator.
2019-04-01 12:14:25 +11:00
Andrew Tridgell 6898ec5776 AP_TECS: prevent airspeed demand spikes causing large pitch changes
a short term spike in the derivative of speed demand could cause the
constraint on the pitch integrator to push the pitch integrator to
very low values, causing a sharp nose down which takes a long time to
recover from
2019-03-31 21:05:09 +11:00
Nathan E 9ae5ada82f Correct AP_TECS.cpp typos per magicrub comments
poper changed to proper
2019-01-23 09:24:18 -07:00
Nathan E 24f3abde99 Update AP_TECS.cpp 2019-01-23 09:24:18 -07: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
Andrew Tridgell 60ec695f55 AP_TECS: set default pitch max to 15 2018-08-17 20:42:29 +10:00
Andrew Tridgell f3336fdb60 AP_TECS: removed dependency on soaring controller 2018-07-30 13:09:15 +10:00
Peter Barker f0daf392a5 AP_TECS: use ins singleton 2018-03-16 00:37:35 -07:00
Peter Barker ffcb9ce945 AP_TECS: use baro singleton 2018-03-08 21:20:05 -08:00
Andrew Tridgell b6ecce8329 AP_TECS: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Peter Barker 22f1b5ed6f TECS: support for units on fields 2017-11-23 10:40:30 +11:00
Andrew Tridgell 5bd92b4b7e AP_TECS: improved support for VTOL transitions 2017-10-21 18:50:01 +11:00
Lucas De Marchi 61a629d766 AP_TECS: add static create method 2017-09-26 03:01:21 +01:00
JU Han eebef857f1 AP_TECS: gain scaler K_STE2Thr multiplies by (THRmax - THRmin)
Makes both feed forward and feed-back consistent
2017-08-15 14:27:43 +01:00
Andrey Kolobov 5fdebe23cc AP_TECS: disable bad descent for soaring 2017-03-14 08:53:11 +11:00
akolobov a3f3097941 AP_TECS: added function to reset integrator 2017-03-14 08:20:48 +11:00
Michael du Breuil 666c63da9f AP_TECS: Update for AHRS NED changes 2017-02-13 09:23:14 +11:00
Tom Pittenger 61bc0a6206 Plane: check stage==LAND instead of landing.in_progress 2017-01-26 13:11:44 -08:00
Tom Pittenger bf835c7aee AP_TECS: abstract out the landing stage checks 2017-01-26 13:11:43 -08:00
Tom Pittenger d1434602a5 AP_TECS: bug fix - use takeoff integrator during land abort 2017-01-26 13:11:43 -08:00
Tom Pittenger 063f517424 Plane, TECS, AP_Landing: rename stage LAND_ABORT to ABORT_LAND
this will reduce confusion when searching for FLIGHT_LAND_* and you get a bunch of takeoff related hits. It will also make more sense when the landing library fully manages the FLIGHT_LAND stage entirely because it will not mange FLIGHT_LAND_ABORT
2016-12-30 23:50:03 -08:00
Tom Pittenger 84e11fd899 Plane, AP_TECS: do not pass auto_land flag to TECS, it already knows it 2016-12-30 23:50:03 -08:00
Tom Pittenger 8019cedf5b AP_Vehicle,AP_SpdHgtControl,AP_TECS: move enum FlightStages to AP_Vehicle::FixedWing 2016-12-30 23:50:02 -08:00
Tom Pittenger b614b41d6d AP_TECS: fixed compiler warning
- AP_Landing _landing was declared out-of-order
2016-12-05 16:46:55 -08:00
Tom Pittenger c7bbb6998a TECS: set landing params as private and use accessors 2016-11-25 19:07:30 -08:00
Tom Pittenger 9035dcbbc5 AP_TECS: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Peter Barker daf9a45efd AP_TECS: correct parameter metadata
Correct incomplete Description of LAND_PDAMP

Add DisplayName for LAND_PDAMP
2016-10-27 09:15:03 -07:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell 1171b33419 AP_TECS: added TECS_SYNAIRSPEED parameter
this allows for the synthetic airspeed estimate to be used in TECS
2016-10-20 13:22:39 +11:00
Andrew Tridgell 7ee42d3a7e AP_TECS: fixed missing doc comment 2016-10-20 13:22:22 +11:00
Andrew Tridgell 2fab15dcd5 AP_TECS: added use_synthetic_airspeed() API
used by quadplane during transitions
2016-10-05 11:52:34 +11:00
Tom Pittenger e5bd23e34a Revert "AP_TECS: Convert references to AP_Airspeed."
This reverts commit 09d53eaeca.
2016-08-07 17:54:24 -07:00
Tom Pittenger 8dad05d12e Revert "Airspeed: store reference in libraries and populate it"
This reverts commit c090ba2257.
2016-08-07 17:54:24 -07:00
Tom Pittenger c090ba2257 Airspeed: store reference in libraries and populate it
- also had to move the initial definition in plane.h so it happened before the others.
2016-08-04 11:06:44 -07:00
AndersonRayner 09d53eaeca AP_TECS: Convert references to AP_Airspeed. 2016-08-04 10:09:04 -07:00
Murilo Belluzzo d8b58690ad AP_TECS: Remove useless 'if' statement
This should fix CID 91386.

Before removing the 'if', I checked the log to confirm that both branch
didn't end-up being equal by mistake in some commit. But it looks like
the file was added in the project this way.
2016-07-25 18:51:56 -03:00
Tom Pittenger 7be15be185 AP_TECS: slew the hgt_lag_filter when starting a land 2016-07-19 17:19:10 -07:00
Andrew Tridgell 2527859b59 AP_TECS: update comment on underspeed clearing 2016-07-20 08:21:08 +10:00
Andrew Tridgell d3d2ce3e0d AP_TECS: use full throttle in initial takeoff
during the first part of a takeoff when we have not yet reached the
target airspeed this forces the throttle to maximum. This fixes a case
where the throttle may drop too low during the first part of takeoff
and lead to a stall.
2016-07-16 08:14:29 +10:00
Tom Pittenger 773372d2f3 Revert "AP_TECS: coverity scan - variables not initialized in constructor"
This reverts commit 753c0d47f0.
2016-07-11 22:01:26 -07:00
Tom Pittenger c38c3ae7fe Revert "AP_TECS: coverity scan: init variable struct"
This reverts commit 19713200e5.
2016-07-11 22:01:02 -07:00
Tom Pittenger 19713200e5 AP_TECS: coverity scan: init variable struct 2016-07-05 14:09:40 -07:00
Tom Pittenger 6d0cf22358 AP_TECS: spelling 2016-07-05 14:09:39 -07:00
Tom Pittenger 753c0d47f0 AP_TECS: coverity scan - variables not initialized in constructor 2016-07-05 13:53:26 -07:00
Tom Pittenger 3c6323dd82 AP_TECS: Log TEC2.LF as Aerodynamic Load Factor 2016-05-17 20:17:27 -07:00
Tom Pittenger f9335e9d8c AP_TECS: fixed float->double print warning 2016-05-17 15:58:03 -07:00
Andrew Tridgell 98a86bd205 AP_TECS: create TEC2 log message for detailed energy internals 2016-05-14 08:26:10 +10:00
Andrew Tridgell ff97f52555 AP_TECS: removed log_tuning structure 2016-05-14 08:26:10 +10:00
Andrew Tridgell bc911d15d1 AP_TECS: convert to using Log_Write
preparation for a TEC2 message
2016-05-14 08:26:10 +10:00
Andrew Tridgell 9a6ac77c64 AP_TECS: prevent large glitches in the specific energy integrator
this tries to prevent problems like in issue#4066, or at least
reducing the impact when it happens
2016-05-14 08:26:10 +10:00
Andrew Tridgell c52451b01b AP_TECS: rename some variables to make them clearer 2016-05-14 08:26:09 +10:00
Andrew Tridgell e698d1f47e AP_TECS: use 64 bit micros
prevent possible wrap if TECS is not run for a long time
2016-05-14 08:26:09 +10:00
Tom Pittenger 431b3c7160 AP-TECS: constrain proportion to 0-1 for spdweight scale so it doesn't grow backup after land point 2016-04-21 21:31:02 -07:00
Tom Pittenger 595badce3e AP_TECS: rely on single flag for all land stage differences
recent fixes in Plane have made the stage more accurate so exceptions/hacks are no longer needed to differentiate between knowing if executing NAV_LAND vs being in stage_approach.
2016-04-21 21:30:52 -07:00
Tom Pittenger 0af878703f AP_TECS: move target land_airspeed logic to top layer 2016-04-21 21:30:49 -07:00
Tom Pittenger 525c7b24e3 AP_TECS: created accessor for TECS_LAND_ARSPD param 2016-04-21 21:30:48 -07:00
Michael du Breuil fd51c3cc16 AP_TECS: Remove hgt_afe from update_50hz() 2016-04-21 17:03:00 +10:00
Andrew Tridgell 602ff03c41 AP_TECS: limit both negative and positive pitch on quadplane transition
this makes for smoother auto takeoff
2016-04-02 19:53:16 +11:00
Andrew Tridgell b4c6a0e30e AP_TECS: added logging of speed_weight and state flags 2016-03-26 08:41:09 +11:00
Andrew Tridgell 8ff932b61c AP_TECS: allow underspeed to end faster
we now can exit an underspeed condition if we stay above min speed for
3 seconds and also reach 15% above min speed. This prevents a problem
with the thrust line causing downpitch leading to a crash due to too
much throttle
2016-03-26 07:44:22 +11:00
Lucas De Marchi 9271e97c0b AP_TECS: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Tom Pittenger a85d4f2f4b AP_TECS: reverse-thrust cleanup
- throttle slew rate was using % full range including the negative range (-100 to +100 instead of 0 to 100) which meant it was faster
- throttle integrator windup limit was higher than normal because it's a porportional to throttle max - min but that makes no sense when min is negative causing larger limits
2016-03-10 15:34:52 +11:00
Tom Pittenger 67e2db7975 AP_TECS: add TECS_LAND_PDAMP
// @Description: This is the damping gain for the pitch demand loop. Increase to add damping  to correct for oscillations in speed and height. If set to 0 then TECS_PTCH_DAMP will be used instead.
2016-03-02 10:54:21 -08:00
Tom Pittenger fcb802cccc AP_TECS: add TECS_LAND_I_GAIN and TECS_TKOFF_I_GAIN
// more integral gain options for land
2016-03-02 10:54:20 -08:00
Tom Pittenger a139789693 AP_TECS: add TECS_LAND_TDAMP for land damp
+     // @Description: This is the damping gain for the throttle demand loop during and auto-landing. Same as TECS_THR_DAMP but only in effect during an auto-land. Increase to add damping to correct for oscillations in speed and height. When set to 0 landing throttle damp is controlled by TECS_THR_DAMP.
2016-03-02 10:54:19 -08:00
Tom Pittenger da01ceee53 AP_TECS: change order of update_speed() so it's not using the previous EAS_dem
bug reported by @NUAAFLY https://github.com/diydrones/ardupilot/issues/1547
2016-02-12 13:23:02 -08:00
Tom Pittenger afe9f544e5 AP_TECS: remove incorrect comment about TECS running at 5Hz, it runs at 10Hz. 2016-02-12 13:04:11 -08:00
Tom Pittenger 67ce22660e AP_TECS: 1/3 new param TECS_LAND_SRC for Land Sink Rate Change
// @Description: When zero, the flare sink rate (TECS_LAND_SINK) is a fixed sink demand. With this enabled the flare sinkrate will increase/decrease the flare sink demand as you get further beyond the LAND waypoint. Has no effect before the waypoint. This value is added to TECS_LAND_SINK proportional to distance traveled after wp. With an increasing sink rate you can still land in a given distance if you're traveling too fast and cruise passed the land point. A positive value will force the plane to land sooner proportional to distance passed land point. A negative number will tell the plane to slowly climb allowing for a pitched-up stall landing. Recommend 0.2 as initial value.
2016-02-12 11:38:40 -08:00