Commit Graph

24152 Commits

Author SHA1 Message Date
Paul Riseborough
69632336e1 AP_NavEKF3: Remove singularity in yaw fusion at +-90deg yaw
Uses sympy derivation
2020-10-26 11:03:50 +11:00
Paul Riseborough
4e41e9f5f1 AP_NavEKF3: Ensure consistent use of 312 or 321 rotation order
Prevents possibility of a differnt sequence being used to calculate the yaw and application of the yaw to the quaternions
2020-10-26 11:03:50 +11:00
Paul Riseborough
fa10d114e4 AP_NavEKF3: Fix yaw drift after yaw reset at +-90 deg pitch
Use existing covariance prediction code to set quaternion state covariances.
Assumes tilt error is 3 deg 1-sigma.
2020-10-26 11:03:50 +11:00
Paul Riseborough
73d5ca5ad3 AP_NavEKF3: Fix yaw drift after yaw reset at +-90 deg pitch
Use existing covariance prediction code to set quaternion state covariances.
Assumes tilt error is 3 deg 1-sigma.
TODO derive and add function that calculates tilt error variance.
2020-10-26 11:03:50 +11:00
Paul Riseborough
a97d030e4b AP_NavEKF3: Reset earth field variances when starting mag field estimation 2020-10-26 11:03:50 +11:00
Paul Riseborough
9168d0cd19 AP_NavEKF3: Initialise mag field variances to non zero values 2020-10-26 11:03:50 +11:00
Paul Riseborough
0b96f046c2 AP_NavEKF3: Unblock initial yaw alignment message 2020-10-26 11:03:50 +11:00
Paul Riseborough
f81abd73d6 AP_NavEKF3: Update covariance prediction to yse SymPy generated equations
Saves flash and variable space.
2020-10-26 11:03:50 +11:00
Michael du Breuil
a61444cec0 AP_GPS: Don't reset the entire buffer when handling RTCM data
This is a micro optimization intended to just make handling GPS
corrections a bit faster.
2020-10-25 14:21:39 +11:00
Andrew Tridgell
acdc939946 AP_WheelEncoder: added SMAX param docs 2020-10-25 10:32:48 +11:00
Andrew Tridgell
9a244eef29 APM_Control: added SMAX param docs 2020-10-25 10:32:48 +11:00
Andrew Tridgell
0a7c628355 AC_AttitudeControl: added SMAX param docs 2020-10-25 10:32:48 +11:00
Andrew Tridgell
739410953b AC_PID: added slew limiter AC_PID
this adds the fixed wing slew limiter as an optional part of
AC_PID. It allows the user to configure a maximum slew limit to
prevent oscillations in PIDs when gains are too high
2020-10-25 10:32:48 +11:00
Andrew Tridgell
709e1f8f93 Filter: added slew rate filter 2020-10-25 10:32:48 +11:00
Andrew Tridgell
d2a4505184 APM_Control: fixed bug in slew filter 2020-10-25 10:32:48 +11:00
Andrew Tridgell
a4716fb9bf AP_NavEKF3: fixed multi-core yaw reset
thanks to Alex Burka for finding this
2020-10-24 19:35:30 +11:00
Andrew Tridgell
dc32f7a12f AP_NavEKF2: fixed multi-core yaw reset
thanks to Alex Burka for finding this
2020-10-24 19:35:30 +11:00
Andrew Tridgell
fcccdcc936 AP_NavEKF3: fixed bug in external yaw for fixed wing
when we are on the ground we should not chang to AID_NONE if we have
an external yaw source

this fixes an EKF3 error loop on the ground found by Michael
2020-10-24 13:50:33 +11:00
Randy Mackay
c3fd82b6d7 AP_NavEKF3: minor spelling fix 2020-10-24 12:35:58 +11:00
Randy Mackay
2f1ae29a9c AP_NavEKF3: extnav data gets corrected boolean
CorrectExtNavForSensorOffset and CorrectExtNavVelForSensorOffset use
corrected boolean to avoid correcting twice
2020-10-24 12:35:58 +11:00
Randy Mackay
a16de76f57 AP_NavEKF3: correct extnav position as it is recalled from the buffer
This makes extnav position correction consistent with the velocity correction
2020-10-24 12:35:58 +11:00
Randy Mackay
71487e9c10 AP_NavEKF3: gps_elements gets corrected flag
CorrectGPSForAntennaOffset uses this flag to ensure position and velocity are only corrected once
2020-10-24 08:49:33 +09:00
Randy Mackay
3d4e1cd5c5 AP_NavEKF3: CorrectGPSForAntennaOffset always corrects vel 2020-10-24 08:49:33 +09:00
Randy Mackay
e25579cc00 AP_NavEKF3: correct GPS for position as it is recalled from buffer 2020-10-24 08:49:33 +09:00
Michael du Breuil
c86dcf91d6 AP_InertialSensor: Run vibration monitoring on all instances 2020-10-24 09:54:04 +11:00
Andrew Tridgell
96f7397099 HAL_ChibiOS: make PowerC primary power on CUAV-X7
CUAV considers the CAN power to be the main power for this board
2020-10-24 08:27:21 +11:00
Michael Oborne
b383db15c7 ChibiOS: fix cubeblack+ name and usbid 2020-10-24 08:26:55 +11:00
Peter Barker
0496ecc4f6 AP_NavEKF2: remove unused state variables 2020-10-22 08:47:08 +11:00
Peter Barker
a1e7c91f8e AP_NaveEKF3: reduce code duplication in setup_core
Less code.

Saves 40 bytes on PixRacer
2020-10-22 08:47:08 +11:00
Peter Barker
74f75dcd31 GCS_MAVLink: fill AUTOPILOT_VERSION.uid2 from get_system_id_unformatted 2020-10-21 18:26:12 +11:00
murata
9714d8dde9 AP_MAth: Move the CRC24 to the AP_Math class 2020-10-21 18:24:07 +11:00
murata
4c835a0df9 AP_GPS: Move the CRC24 to the AP_Math class 2020-10-21 18:24:07 +11:00
Peter Barker
7c8df47ac9 GCS_MAVLink: process messages sent to broadcast system
.... even if we've forwarded them to someone else.
2020-10-21 18:22:48 +11:00
Peter Barker
d3ba7a8409 GCS_MAVLink: don't learn a route to the broadcast component
Using a component ID of 0 for your source is invalid according to
common.xml

However, some clients do use it.

This stops us learning a route to that client for the broadcast client
for our own system ID.
2020-10-21 18:22:48 +11:00
bugobliterator
308bc64f35 AP_Filesystem: add support for listing @SYS files 2020-10-21 18:16:50 +11:00
Randy Mackay
e4056086e0 AP_NavEKF3: minor format and spelling fixes 2020-10-21 13:54:22 +09:00
Randy Mackay
231a958e51 AP_NavEKF3: minor comment fix 2020-10-21 11:40:35 +09:00
Randy Mackay
8aba1655a2 AP_Scripting: add ahrs-print-variances example 2020-10-21 08:58:45 +09:00
Randy Mackay
5eae007d49 AP_Scripting: add binding for ahrs get_variances 2020-10-21 08:58:45 +09:00
Randy Mackay
bb25e4f6a3 AP_RCTelemetry: integrate ahrs::get_variances change
offset is no longer returned
2020-10-21 08:58:45 +09:00
Randy Mackay
6a72805f07 AP_AHRS: get_variances does not return offset
the offset is not a variance and is not actually used by any callers of this function
2020-10-21 08:58:45 +09:00
Patrick José Pereira
375fe22dff AP_Mount: Improve instance validation check
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-21 08:55:33 +09:00
Randy Mackay
b0363a01b0 AP_Scripting: add copter-wall-climber example script 2020-10-20 23:04:45 +09:00
Randy Mackay
e4ccd21dd7 AP_NavEKF3: consolidate extNav height source timeouts 2020-10-20 17:11:26 +09:00
Randy Mackay
6989a28bfc AP_NavEKF3: allow alt from other sources when using ExtNav
also allows using ExtNav alt when not using it for XY position
removes redundant and incorrect setting of activeHgtSource from ExtNav
which was always being overwritten by the correct value later in selectHeightForFusion
2020-10-20 17:11:26 +09:00
Randy Mackay
0cebde0632 AP_NavEKF3: minor restructure of how fusePosData and fuseVelData are set
this non-functional change slightly reduces the number of places we set these variables
2020-10-20 17:11:26 +09:00
Peter Barker
ef505df78a AP_NavEKF3: remove unused quat2Tbn method 2020-10-20 11:40:54 +11:00
Peter Barker
53305ba2a4 AP_NavEKF2: remove unused quat2Tbn method 2020-10-20 11:40:54 +11:00
Peter Barker
0eafe4b662 AP_NavEKF3: remove dangling method declarations 2020-10-20 11:40:54 +11:00
Peter Barker
312cf725aa AP_NavEKF2: remove dangling method declarations 2020-10-20 11:40:54 +11:00
Peter Barker
83d784c22d AP_NavEKF3: fix includes 2020-10-20 11:40:54 +11:00
Peter Barker
c90265f94d AP_NavEKF2: fix includes 2020-10-20 11:40:54 +11:00
Peter Barker
d4cb14b262 AP_AHRS: remove magic resetting of EKF type 1 to 2
If EKF2 is not compiled in the current compatability code will not work
so well.

Throw the user over to the config error loop and they can fix it there.
2020-10-20 11:32:57 +11:00
Peter Barker
565b29a72c AP_AHRS: remove FLAG_NONE; it's not a flag, it's a bitmask value 2020-10-20 11:24:34 +11:00
Peter Barker
1ef92bb691 AP_AHRS: remove un-needed initialisations 2020-10-20 11:24:34 +11:00
Peter Barker
3dc67f09fd AP_NavEKF3: remove unused innovationIncrement and lastInnovation 2020-10-20 11:24:34 +11:00
Peter Barker
80f9ef7ed1 AP_NavEKF2: remove unused innovationIncrement and lastInnovation 2020-10-20 11:24:34 +11:00
Peter Barker
02c9aa2ae2 AP_InertialSensor: remove unused define 2020-10-20 11:24:34 +11:00
Peter Barker
9d45669a58 AP_AHRS: reuse ins object for multiple calls, simplify delta_t variable 2020-10-20 11:24:34 +11:00
Andrew Tridgell
e529d475d4 AP_GPS: use mktime for NMEA and MTK time conversion
this fixes NMEA time handling, which was off by 3 days
2020-10-20 11:21:00 +11:00
Andrew Tridgell
7562eef4c1 AP_Filesystem: use mktime from AP_RTC 2020-10-20 11:21:00 +11:00
Andrew Tridgell
43af5893fb AP_RTC: added mktime(), used by AP_Filesystem and AP_GPS 2020-10-20 11:21:00 +11:00
Nick Exton
01155cc5d4 AP_Param: Ignore FORMAT_VERSION param when loading SITL defaults
This fixes a bug where having FORMAT_VERSION in the SITL defaults file
can result in an invalid SITL EEPROM file. See issue #15579 for details.
2020-10-20 10:30:17 +11:00
Patrick José Pereira
258083a6f2 AP_Logger: AP_Logger_File: Set custom log directory in init
`_log_directory` was used before `ensure_log_directory_exists`,
to fetch the log path

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-20 09:31:49 +11:00
Samuel Tabor
c9362fbb70 SITL: Calculate current in SIM_Plane. 2020-10-18 11:43:51 +11:00
Peter Barker
99e95666e8 AP_AHRS: remove unused AP_AHRS_TYPE define 2020-10-18 09:41:29 +11:00
Patrick José Pereira
6ee401cb00 AP_Math: Remove isnan check for non-float type
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-16 09:22:05 +11:00
chobits
c5e289efc3 AP_Beacon: Nooploop driver
based on rmackay9's work
2020-10-15 08:07:46 +09:00
Peter Barker
c40b5490f4 AP_HAL_SITL: stop setting of pull-up resistors affecting SIM_PIN_MASK 2020-10-14 08:28:23 +11:00
Harsh Pandey
c2744396cc AP_BoardConfig: Update BRD_TYPE parameter description for recent boards. 2020-10-14 07:53:22 +11:00
Pierre Kancir
52898cfdbd AP_Airspeed: remove size warning on SDP3X crc function.
Clang-Tidy: Loop variable has narrower type 'uint8_t' (aka 'unsigned char') than iteration's upper bound 'unsigned int'
2020-10-14 07:52:02 +11:00
Peter Barker
7e92bbc7bd AP_HAL_Empty: remove un-needed constructor
Not sure the initialisation is needed but retained it.
2020-10-13 19:55:34 +11:00
Peter Barker
3cce6197a1 AP_HAL: delete copy constructors 2020-10-13 19:55:34 +11:00
Peter Barker
b7f0015a69 AP_HAL_SITL: add bus ownership check for simulated i2c transfers
Also stop copying the bus object while iterating
2020-10-13 19:55:34 +11:00
Andrew Tridgell
fb1dcdb059 HAL_ChibiOS: added BL suffix to bootloader USB IDs for two boards
our convention is to have -BL on end of USB product IDs in bootloaders
2020-10-13 17:59:13 +11:00
Andrew Tridgell
418bd33c43 HAL_ChibiOS: fix CUAV-X7 power bits 2020-10-13 17:58:30 +11:00
Andrew Tridgell
25bc128248 HAL_ChibiOS: fixed periph overpower ifdef
fixes overcurrent logging on several boards
2020-10-13 17:58:30 +11:00
murata
6304ade668 GCS_MAVLink: Change to leave the lower 16 bits. 2020-10-13 12:06:18 +11:00
Iampete1
c591e45e59 AP_OSD: get wind speed from wind vane on rover 2020-10-13 11:39:43 +11:00
Hwurzburg
a7a780ec6e RC_Channel: add RC option for landing flare 2020-10-13 11:36:19 +11:00
Iampete1
de664ae6a8 AP_Scripting: bindings: add units and multipliers to logging 2020-10-13 10:34:42 +11:00
Iampete1
5cbbe656ba AP_Scripting: add units and multipliers to logging example 2020-10-13 10:34:42 +11:00
Iampete1
a09e15137e AP_Scripting: add logging to plane-wind-fs example 2020-10-13 10:34:42 +11:00
Pierre Kancir
420c9c9d36 AP_Param: use hal.util->set_cmdline_parameters() on SITL on reload_defaults_file()
This allow to pass cmdline parameter to Param on start for each vehicle in the same way as param file
2020-10-13 10:31:21 +11:00
Pierre Kancir
5b356953ff AP_HAL_SITL: implement and use set_cmdline_parameters() 2020-10-13 10:31:21 +11:00
Pierre Kancir
1c80b04544 AP_HAL: add virtual set_cmdline_parameters() 2020-10-13 10:31:21 +11:00
Pierre Kancir
466a430c4f AP_HAL_SITL: add --sysid option to set SYSID_THISMAV 2020-10-13 10:31:21 +11:00
Patrick José Pereira
175d55a0aa AP_LeakDetector: Add navigator support
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-12 09:53:03 -07:00
Patrick José Pereira
4c7af1d99f AP_LeakDetector: Add subtype check and warning message
Add warning if board does not support leak detector sensors

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-10-12 09:53:03 -07:00
Andrew Tridgell
e346cd3c80 GCS_MAVLink: fixed use of incorrect millis16() values 2020-10-12 13:48:15 +11:00
Peter Barker
45f7322af6 GCS_MAVLink: avoid catching up on sending messages when sending disrupted
The code here was never meant to maintain an "average" streamrate.  It
was designed so that we would maintain a consistent clock in the face of
minor scheduling anomalies (like an EKF fusion step).

The way this is written, however, makes us spit out a message for each
of the intervals we missed - clearly not intended behaviour.

This was tested by inserting the following code:

 void GCS_MAVLINK::update_send()
 {
+    const uint32_t xnow = AP_HAL::millis();
+    if (xnow > 10000 &&
+        xnow < 20000) {
+        return;
+    }
+
2020-10-12 13:48:15 +11:00
Andrew Tridgell
989f8c5d41 HAL_ChibiOS: fixed a race condition in UART DMA transmit
this fixes an issue seen on one board which caused a watchdog on high
uart DMA load. We have reproduced the issue on another board by
forcing a very high DMA transfer rate on the same DMA channel while
also requesting very high transfer rates on the UART. The likely race
is in the DMA transmit timeout code, and the simplest fix is to lock
out interrupts during the DMA setup to ensure the tx timeout cannot
trigger during the setup
2020-10-12 13:25:48 +11:00
Peter Barker
9bde294112 AP_HAL: add chargen UARTDriver example 2020-10-09 19:14:59 +11:00
murata
967aa44fbe AP_Baro: Change message from AP_Baro to Baro for unification accross the file 2020-10-08 10:51:33 +11:00
bugobliterator
5880628b01 hwdef: add support for CubeBlack-periph 2020-10-08 09:31:35 +11:00
bugobliterator
e16cab0437 AP_HAL_ChibiOS: ensure we timeout while checking FDCAN register sets 2020-10-08 09:31:35 +11:00
bugobliterator
5f0c553982 AP_HAL_SITL: configure filter only if in FilteredMode 2020-10-08 09:31:35 +11:00
bugobliterator
ba576247f0 AP_HAL_Linux: configure filter only if in filtered mode 2020-10-08 09:31:35 +11:00
bugobliterator
49915ed06f AP_UAVCAN: save some stack space 2020-10-08 09:31:35 +11:00
bugobliterator
ca957519dc AP_HAL_ChibiOS: redo filter configuration to make it work with STM32H7 2020-10-08 09:31:35 +11:00