Commit Graph

61 Commits

Author SHA1 Message Date
Paul Riseborough 379506b718 ArduCopter: Don't request EKF yaw reset unless innovations are large
This prevents unwanted resets if GPS fails.
2020-10-30 14:45:40 +09:00
Randy Mackay 248d80eb37 Copter: integrate ahrs::get_variances change
offset is no longer returned
2020-10-21 08:58:45 +09:00
Randy Mackay 77ff169757 Copter: minor comment fix 2020-04-24 18:18:05 +09:00
Randy Mackay 6c48a9c305 Copter: use AHRS::get_primary_core_index instead of EKF2 equivalent 2020-04-24 18:18:05 +09:00
Randy Mackay ddaa5dee86 Copter: use static assert to simplify use of EKF_CHECK_ITERATIONS_MAX 2020-04-24 09:43:23 +10:00
Paul Riseborough 8ce97af40e ArduCopter: Preserve original check criteria 2020-04-24 09:43:23 +10:00
Paul Riseborough 36031c01a9 ArduCopter: rework ekf check to use separate yaw reset request
ArduCopter: Request lane or yaw reset switch sooner

ArduCopter: rework ekf check to use separate yaw reset request

ArduCopter: Rework EKF failsafe

During flight operations it is the deviation in position of the vehicle that matters during most scenarios.
t patch ensures that an EKF fail-safe will be triggered when the position inconsistency exceeds check limits in addition to either a bad mag or velocity innovation.
This will stop velocity noise triggering an early fail-safe when electromagnetic interference is present.
2020-04-24 09:43:23 +10:00
Andrew Tridgell 1222aa2c43 Copter: make EKF mag variance check use max
this makes it consistent with logged value
2020-04-06 17:30:29 +10:00
Randy Mackay b2a298fa5f Copter: update vibration failsafe comments 2020-03-02 15:12:57 +09:00
Peter Barker e3dd0d33e7 Copter: allow NavEKFs to be compiled out 2020-01-21 11:53:18 +11:00
Peter Barker 45dc4cf25c Copter: EKF objects have moved into AP_AHRS_NavEKF 2020-01-21 11:53:18 +11:00
Peter Barker d652bd4455 Copter: correct compilation when optical flow is disabled 2019-11-06 16:36:35 +11:00
Peter Barker e6c6189fe5 Copter: cope with change in namespace of LogEvent enum
Also move Acro Trainer types into an enum class as the global defines
interfere with the Event names.

Also eliminate the Log_Write_Event wrappers.
2019-11-05 08:19:26 +08:00
Michael du Breuil b42b1c08c4 Copter: Support new AP_Vehicle::set_mode 2019-10-25 08:48:22 +08:00
Peter Barker 198c93e479 Copter: correct use of nanf 2019-10-18 13:52:07 +09:00
Randy Mackay 7b0da89708 Copter: add vibration check 2019-10-18 11:15:25 +09:00
chobits 5a0fe4e322 Copter: do not speed up EKF failsafe if optflow works 2019-10-04 11:15:38 +09:00
Peter Barker b4537bebd8 Copter: move control_mode_t into being Mode::Number enum class
Fixes this compiler error:

In file included from ../../ArduCopter/sensors.cpp:1:
In file included from ../../ArduCopter/Copter.h:195:
../../ArduCopter/mode.h:1291:9: fatal error: declaration shadows a variable in the global namespace [-Wshadow]
        AUTO,           // after A and B defined, pilot toggle the switch from one side to the other, vehicle flies autonomously
        ^
../../ArduCopter/defines.h:38:5: note: previous declaration is here
    AUTO =          3,  // fully automatic waypoint control using mission commands
    ^
1 error generated.
2019-09-13 13:12:08 +09:00
Andrew Tridgell 7c44ad04b6 Copter: check for EKF lane switch to avoid EKF failsafe
this fixes an issue with mismatch between the EKF lane switch
threshold and the copter EKF failsafe threshold
2019-06-12 09:52:20 +10:00
Tom Pittenger 7824b64ad6 Copter: rename dataflash to logger 2019-03-28 16:40:57 +11:00
Peter Barker c7e21d95ef Copter: move Log_Write_Error into library 2019-03-27 12:36:40 +11:00
Patrick José Pereira 33764d6c3b Copter: Fix typo
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2019-03-26 15:39:23 +11:00
Randy Mackay 467e8481fb Copter: minor formatting fix to ekf failsafe check 2019-03-15 15:44:01 +09:00
chobits 6bee4216c0 Copter: speed up EKF failsafe by checking if velocity innovations > 2x FS_EKF_THRESH 2019-03-15 15:36:13 +09:00
Peter Barker 70d159cb38 Copter: raise EKF failure even if USB is connected
This will let EKF go bad if your PixHawk is connected to your laptop.
This doesn't seem to be a problem for the other vehicles.

This also allows the EKF to go bad in-flight if you happen to have
connected (against AP's recommendations) your companion computer to your
flight controller via USB.  Since people do this, it is better to have
the checks than not.
2018-06-26 10:07:55 +10:00
Randy Mackay 6f138ddcfa Copter: ekf failsafe first enforces landing with no GPS
thanks to khancyr for spotting this
2018-05-10 08:59:37 +09:00
Leonard Hall 656892cd88 Copter: ekf failsafe disabled for acro and stabilize
Also restructure to combine ekf_over_threshold and ekf_check_position_problem
2018-05-10 08:59:37 +09:00
Leonard Hall a727305a59 Copter: integrate attitude control EKF inertial-frame-reset 2018-03-16 13:50:57 +09:00
murata c13d6580ae Copter: delete \n from the log using gcs().send_text 2018-02-02 09:38:39 +09:00
Randy Mackay 2d23e1f7c7 Copter: rename flightmode_ objects to mode_ 2017-12-12 10:39:26 +09:00
Peter Barker ef1489e87a Copter: eliminate mode_requires_gps 2017-12-06 08:24:24 +09:00
Peter Barker 3b1ca99b95 Copter: FlightMode - convert LAND flight mode 2017-12-06 08:24:24 +09:00
Peter Barker 45d056fcf0 Copter: ekf position checks are done before we call failsafe_ekf_event 2017-09-19 12:44:43 +01:00
Peter Barker d5caff3f1b Copter: do not enter ekf-failsafe based on position if pos not needed 2017-09-19 12:44:43 +01:00
Peter Barker ff82f23cf6 Copter: factor out a ekf_check_position_problem method 2017-09-19 12:44:43 +01:00
Peter Barker 84a873a520 Copter: remove redundant check; we will never failsafe_ekf_event if disarmed
See line 37
2017-09-19 12:44:43 +01:00
Peter Barker f60389d4aa Copter: use send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
Randy Mackay 2e56e10d9c Copter: ekf check adds position variance check
two of three of compass, velocity and position variances being high will trigger the ekf failsafe
2017-07-08 08:39:43 +09:00
Andrew Tridgell 0f6d0c5ba9 Copter: combined tri, single, coax and multicopter into a single build
this allows copter to be just 2 builds, one for heli, and one for
everything else
2017-01-12 17:39:37 +11: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
Randy Mackay 26c3295042 Copter: ignore first ekf core switch
The ekf core is initialised to -1 but after initialisation changes to zero.  Ignore this first change.
2016-10-13 15:20:16 +09:00
murata f3a035694a Copter: fix ekf check to always call mode_requires_gps 2016-10-12 10:16:55 +09:00
Randy Mackay 263f685683 Copter: ekf failsafe can trigger in LAND
Thanks to John Ingersoll for the report and detailed fix
Resolves issue #4827
2016-10-10 17:36:36 +09:00
Randy Mackay d74ae535d1 Copter: log EKF lane switch 2016-10-10 16:40:08 +09:00
Randy Mackay 35864c6226 Copter: move check_ekf_reset to ekf_check.cpp
No functional change
2016-10-10 16:40:08 +09:00
mirkix e3934fac80 ArduCopter: Delete (wrong) filename out of header 2016-07-25 17:13:41 -03:00
Jonathan Challinger 1356deab8b Copter: add control_mode_reason 2016-04-14 12:24:04 +09:00
Caio Marcelo de Oliveira Filho c7acc46d09 Copter: use millis/micros/panic functions 2015-11-20 12:26:31 +09:00
Lucas De Marchi 84da1f5039 Rename gcs_send_text_P to gcs_send_text 2015-10-30 14:35:07 +09:00
Lucas De Marchi 2c38e31c93 Remove use of PSTR
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.

This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.

AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00