Commit Graph

20981 Commits

Author SHA1 Message Date
Peter Barker 412bf24b9a AP_HAL: add gtests for snprintf 2019-09-12 07:42:40 +10:00
Andrew Tridgell 54b9524c0b AP_RangeFinder: make LightWare I2C native work with more hw versions
this allows the native i2c lightware driver to work with a wide range
of lidars from LightWare, removing the specific version check, and the
version specific config commands
2019-09-12 07:40:32 +10:00
Andy Piper 8e385d7453 AP_InertialSensor: correct formatting 2019-09-11 18:41:05 +10:00
Leonard Hall 6f3be90147 Filter: Alter Notch filter formula to remove /0 and allow perfect notch.
This formulation of the notch equations lets the user specify the depth of the Notch. The presence of a diveide by A prevents the gain going to zero and therefore achieving a perfect notch. It also provides the risk that a user may attempt to do this and cause a divide by zero error. This change adds the ability to achive a perfect notch and removes the possibility of a divide by zero.

Add Notch Filter parameter checking
2019-09-11 18:41:05 +10:00
Andy Piper 9b9fb0d593 Filter: sanity check the harmonic notch sample rate on initialization. do not allow harmonics to go above the nyquist frequency 2019-09-11 18:41:05 +10:00
Andy Piper 5b7f9f6bea AP_InertialSensor: while sensors are converging update the filters sample rates. if gyro filtering produces invalid output, keep the previous value 2019-09-11 18:41:05 +10:00
Andy Piper bc5916ebc9 Filter: comment on reserved config. cope with notch allocation failure. 2019-09-11 18:41:05 +10:00
Andy Piper a9a7fe3ea5 AP_InertialSensor: ensure harmonic notch gets appropriate defaults 2019-09-11 18:41:05 +10:00
Andy Piper 3261677e01 AP_InertialSensor: remove _ prefix from methods. use changed filter methods. 2019-09-11 18:41:05 +10:00
Andy Piper 334ebadd5a Filter: add comments and address review comments for harmonic notch 2019-09-11 18:41:05 +10:00
Andy Piper 50f7e50634 AP_InertialSensor: add harmonic notch filter to gyro filter chain
Allow dynamic updates to the calculated frequency. Convert bandwidth and frequency to floats.
backend variables do not need to be indexed per-backed
2019-09-11 18:41:05 +10:00
Andy Piper 366bc06089 Filter: New HarmonicNotchFilter
This delegates updates to a bank of NotchFilters located at an rpm frequency and harmonics. Center frequency can be updated dynamically. Notch parameters are configurable, including the number of harmonics to filter on. Updates to the filter parameters are optimized across the notch bank. Convert notch bandwidth and frequency to floats.

allow all filter harmonics to be controlled.

add destructor to harmonic notch.

don't allocate sub-filters for harmonic notch if no harmonics set.
2019-09-11 18:41:05 +10:00
Andrew Tridgell fae2e44eac AP_NavEKF3: reset inhibitMagStates on in-flight yaw reset
this is needed to prevent the next ConstrainVariances() from zeroing
the variances, which leads to very slow learning of mag states
2019-09-11 14:22:18 +10:00
Andrew Tridgell 71ad90819e AP_Compass: don't reset SITL compass offsets if set by user
makes for easier EKF compass bias learning testing
2019-09-11 14:22:18 +10:00
Peter Barker 10675ab5c4 AP_HAL: correct include ordering in srxl.h
The header needs stdint.h which it was only getting because it was
included after stdint.h in the cpp file.

Stop including standard headers before other ArduPilot headers
2019-09-11 14:19:14 +10:00
Andrew Tridgell 4197fdeb2a AP_HAL: fixed bug in vsnprintf()
we need to return the number of bytes that would have been printed if
the buffer was big enough to support use cases such as vasprintf()
which needs to know how many bytes to allocate
2019-09-11 13:41:03 +10:00
Peter Hall 102a231c3f AP_WindVane: rename abs to true wind 2019-09-11 11:22:12 +09:00
Rajat Singhal 5147b607c0 SITL: Correct Airsim params 2019-09-11 08:28:28 +10:00
Randy Mackay 246bfcf4a1 AP_Common: expanding array checks memory before allocating 2019-09-11 06:56:35 +10:00
Peter Barker 15308af230 AP_HAL_SITL: avoid lockstep scheduling issue with semaphores
If there is another thread holding a lock that the main thread wants to
take while pretending to be the IO thread, we will wait forever as we do
not move SITL time forward while pretending to be the IO thread.

This patch simply allows time to move forward if we've failed to take a
semaphore immediately and need to wait.
2019-09-10 21:01:37 +10:00
Andy Piper dde6dec145 AP_InertialSensor: correct reboot documentation for batch logger and filters 2019-09-10 20:29:56 +10:00
Randy Mackay 0e1a2efb7c EKF3: RNG_USE_HGT param only used when ALT_SOURCE = rangefinder 2019-09-10 18:44:52 +10:00
Randy Mackay 94a52b3525 EKF2: RNG_USE_HGT param only used when ALT_SOURCE = rangefinder 2019-09-10 18:44:52 +10:00
Andrew Tridgell b33afde884 HAL_ChibiOS: allow safety button on CUAV_GPS to be used for "stay in bootloader"
allows for recovery of bad CAN firmware
2019-09-10 16:22:33 +10:00
Andrew Tridgell c6a9f067e2 HAL_ChibiOS: enable LEDs on CUAV_GPS 2019-09-10 16:22:33 +10:00
Andrew Tridgell 3dfe15443d HAL_ChibiOS: fixed orientation of CUAV_GPS compass 2019-09-10 16:22:33 +10:00
Andrew Tridgell 21cce1385a AP_UAVCAN: support safety buttons on UAVCAN
the button works in parallel with any button attached by IOMCU or by a
pin, and obeys all the same BRD_SAFETY* options
2019-09-10 16:22:33 +10:00
Andrew Tridgell 03c1a8bfd9 HAL_ChibiOS: use safety button logic from AP_BoardConfig 2019-09-10 16:22:33 +10:00
Andrew Tridgell 5a96e374ba AP_BoardConfig: moved logic for safety button press to AP_BoardConfig
this allows for common code between CAN and pin safety switches, as
well as making the code neater as most of the logic is related to
AP_BoardConfig options
2019-09-10 16:22:33 +10:00
Andrew Tridgell 82a98ef95d AP_Notify: added NTZ_BUZZ_VOLUME parameter
it is fairly non-linear, but does work
2019-09-10 16:22:33 +10:00
Andrew Tridgell 39f4f7c208 AP_UAVCAN: added safety LED and button messages 2019-09-10 16:22:33 +10:00
Andrew Tridgell 0ea67943b9 HAL_ChibiOS: enable safety button on CUAV_GPS 2019-09-10 16:22:33 +10:00
Andrew Tridgell c6c1c4bc31 AP_UAVCAN: support safety LEDs on UAVCAN 2019-09-10 16:22:33 +10:00
Andrew Tridgell 186eedf838 HAL_ChibiOS: enable safety LED 2019-09-10 16:22:33 +10:00
Andrew Tridgell 75696997cc HAL_ChibiOS: added buzzer support to CUAV_GPS 2019-09-10 16:22:33 +10:00
Andrew Tridgell 7c57546eb1 AP_Notify: support UAVCAN buzzers 2019-09-10 16:22:33 +10:00
Andrew Tridgell d55f76c88e AP_UAVCAN: added buzzer support 2019-09-10 16:22:33 +10:00
Peter Barker 8fc55b9678 GCS_MAVLink: remove comm_get_available
available returns an unsigned integer, so this was just weird
2019-09-10 15:45:27 +10:00
Andrew Tridgell cbe0af2463 HAL_ChibiOS: setup for LEDs on KakuteF4
this makes Kopis1 display LEDs properly
2019-09-10 13:03:28 +10:00
Andrew Tridgell a4924e1c0b AP_Notify: allow setting of LED count in hwdef.dat 2019-09-10 13:03:28 +10:00
Andrew Tridgell 28b5f2b021 AP_Notify: simplify NeoPixel driver
use new API to avoid complexities
2019-09-10 13:03:28 +10:00
Andrew Tridgell f441223b55 HAL_ChibiOS: implement updated NeoPixel API
allow for N leds per chain, and setting separate colours per led in
each chain
2019-09-10 13:03:28 +10:00
Andrew Tridgell 1cb608a9f4 AP_HAL: allow neopixel LEDs to be set more flexibly
allow for N leds per chain, with RGB control of each
2019-09-10 13:03:28 +10:00
Tom Pittenger aa602b5e1b AP_Notify: add NeoPixel driver 2019-09-10 13:03:28 +10:00
Tom Pittenger e3416b66dc AP_HAL_ChibiOS: add Neopixel output type, similar to dshot 2019-09-10 13:03:28 +10:00
Tom Pittenger 52be3903c0 SRV_Channel: add neopixel as an output type 2019-09-10 13:03:28 +10:00
Randy Mackay aba4a1fdc8 AC_Avoidance: remove OADatabase check that can never be true 2019-09-10 09:15:56 +10:00
Randy Mackay 0dd8525c99 AP_HAL_SITL: resolve compiler warning in sitl_airspeed by using fabsf 2019-09-10 09:15:56 +10:00
Randy Mackay 2d128e0079 AP_Proximity: remove unused var from AriSimSITL 2019-09-10 09:15:56 +10:00
Randy Mackay d4b047fc1f SITL: Gripper_EPM compiler warning resolved by using float and fabsf 2019-09-10 09:15:56 +10:00
Randy Mackay 1fd7618238 SITL: remove unused time_diff member 2019-09-10 09:15:56 +10:00
Michael du Breuil 9a7d64e8fc AP_NavEKF3: Allow the GPS to be responsible for logging 2019-09-10 09:09:17 +10:00
Michael du Breuil a4d10b2e86 AP_NavEKF2: Allow the GPS to be responsible for logging 2019-09-10 09:09:17 +10:00
Michael du Breuil f857eb4640 AP_GPS: Take responsibility for logging the GPS if the EKF wants logging 2019-09-10 09:09:17 +10:00
Willian Galvani b92473111c AP_LeakDetector: Mark Leak pins RebootRequired 2019-09-09 09:53:28 -07:00
Andy Piper 6f3334b460 AP_Filesystem: build fixes for SITL on macOS 2019-09-09 20:18:00 +10:00
Andrew Tridgell 91e8752c17 HAL_ChibiOS: wrap more libc functions
this saves a few k of flash as it avoids linking libc versions of some
functions
2019-09-09 13:31:30 +10:00
Andrew Tridgell 3166f84954 HAL_ChibiOS: added vsnprintf wrapper
this allows us to use a common snprintf implementation
2019-09-09 13:31:30 +10:00
Michael du Breuil ba3cfbfb54 AP_RTC: Don't allow RTC times before 2019 2019-09-09 04:43:29 +10:00
Andrew Tridgell aa20be4270 AP_RCProtocol: fixed SUMD with 16 channels
with 16 channels it is more than 3ms per frame
2019-09-07 10:02:26 +10:00
Andrew Tridgell df387dc396 AP_Compass: allow rotation of BMM150 compass 2019-09-07 09:53:21 +10:00
Andrew Tridgell 1cb775e2c2 AP_Compass: probe more addresses for IST8310
IST8310 can be on 4 possible i2c addresses
2019-09-07 07:35:54 +10:00
Andrew Tridgell 5e5c30efe8 HAL_SITL: allow SITL to use SERIALn_PROTOCOL=23
this allows for testing of RC input protocol parsing in SITL
2019-09-06 08:51:45 +10:00
Andrew Tridgell c8de2ec9c7 AP_RCProtocol: added update() method for use by SITL 2019-09-06 08:51:45 +10:00
Andrew Tridgell 4b48e80c26 AP_SerialManager: fixed AP_Periph build 2019-09-06 08:51:45 +10:00
Andrew Tridgell 83872c23e5 HAL_ChibiOS: fixed AP_Periph build 2019-09-06 08:51:45 +10:00
Andrew Tridgell fd80220d3e HAL_ChibiOS: setup PH4-mini RCIN port by default 2019-09-06 08:51:45 +10:00
Andrew Tridgell 54649a0e4f HAL_ChibiOS: fixed KakuteF4 define for SERIAL2 2019-09-06 08:51:45 +10:00
Andrew Tridgell 06b272705e HAL_ChibiOS: run RCIN thread at 1kHz
this gives fast enough response for SBUS parsing on a UART
2019-09-06 08:51:45 +10:00
Andrew Tridgell 6983186210 AP_HAL: added get_options() method on UARTs 2019-09-06 08:51:45 +10:00
Andrew Tridgell c841b39ea2 HAL_ChibiOS: switch to AP::RC() for AP_RCProtocol 2019-09-06 08:51:45 +10:00
Andrew Tridgell bf2cf7834d HAL_ChibiOS: fixed a bug in parity/stop-bit setting on STM32F7 and H7
and add get_options() method
2019-09-06 08:51:45 +10:00
Andrew Tridgell 312018898f HAL_Linux: use AP::RC() 2019-09-06 08:51:45 +10:00
Andrew Tridgell 672d09c965 AP_IOMCU: use AP::RC() for AP_RCProtocol 2019-09-06 08:51:45 +10:00
Andrew Tridgell cbdb23afb5 AP_SerialManager: support SERIALn_PROTOCOL=23 for RC input
sets up an extra RC input port
2019-09-06 08:51:45 +10:00
Andrew Tridgell 2b856abdd1 AP_RCProtocol: support an additional uart on RC input
this will allow for any UART to be configured as an additional RC
input source
2019-09-06 08:51:45 +10:00
Andrew Tridgell ad2890dc5a HAL_ChibiOS: added connector pinouts for PH4-mini 2019-09-06 08:51:45 +10:00
Andrew Tridgell b72dcf6478 AP_Filesystem: use a recursive semaphore
this is needed to cope with the mkdir("/APM") in sdcard_retry()
2019-09-06 08:51:04 +10:00
Andrew Tridgell 7afd51d03e AP_Frsky_Telem: move FrSky handling to it's own thread
we are getting timing issues sharing with the other users of the IO
thread. The FrSky protocols are quite timing sensitive, so this should
help
2019-09-05 10:50:17 +10:00
Randy Mackay fb38db6640 AP_AHRS: resolve compile warning in AP_AHRS_DCM::use_compass 2019-09-05 08:39:10 +10:00
Andrew Tridgell b344946300 HAL_ChibiOS: prevent duplicate sensors in hwdef.dat
throw an error on configure if there is a duplicate
2019-09-05 06:37:35 +10:00
Andrew Tridgell 2c5c8106a5 HAL_ChibiOS: removed duplicate barometer from fmuv5 2019-09-04 21:24:01 +10:00
Peter Barker df5921a87c GCS_MAVLink: gate AP_DEVO_Telem behind !HAL_MINIMIZE_FEATURES 2019-09-04 17:47:33 +10:00
Andrew Tridgell 708ee47c03 HAL_ChibiOS: fixed f103 rm3100 2019-09-04 16:27:47 +10:00
Andrew Tridgell c2c8702329 HAL_ChibiOS: convert remaining boards to use COMPASS specifier 2019-09-04 16:27:47 +10:00
Andrew Tridgell 3aa01448ff HAL_ChibiOS: use COMPASS specifier for f103-periph 2019-09-04 16:27:47 +10:00
Andrew Tridgell f18a18c0ee AP_Baro: use GET_I2C_DEVICE() for i2c probes
for consistency with compass and INS
2019-09-04 16:27:47 +10:00
Andrew Tridgell 2bc7db4cca AP_HAL: removed old HAL_COMPASS_ defines (no longer used) 2019-09-04 16:27:47 +10:00
Andrew Tridgell bd0760f9d4 AP_Compass: removed unusued compass probes
now only use probe lists
2019-09-04 16:27:47 +10:00
Andrew Tridgell 43e011c7a8 AP_HAL: convert Linux compass specification to new probe list
this avoids the special handling in AP_Compass library
2019-09-04 16:27:47 +10:00
Andrew Tridgell 3bc8522b54 AP_Compass: added ROTATION_NONE to probes
we no longer use defaults in the headers
2019-09-04 16:27:47 +10:00
Andrew Tridgell f877def909 AP_Compass: removed default rotations for compass probe
this prevents bugs where the force_external and rotation are mixed up
in hwdef.dat causing incorrect rotations
2019-09-04 16:27:47 +10:00
Andrew Tridgell 2a48241ebb AP_Compass: fixed naming of QMC5883L driver
needed for probe using COMPASS macro in hwdef.dat
2019-09-04 16:27:47 +10:00
Andrew Tridgell 316e7cf7e6 HAL_ChibiOS: fixed mini-pix compass and baro probing
removed dup baro and fixed compass probe
2019-09-04 16:27:47 +10:00
Andrew Tridgell 2509b50852 AP_Baro: define GET_I2C_DEVICE() 2019-09-04 16:27:47 +10:00
Andrew Tridgell 15e15e0b9d AP_InertialSensor: define GET_I2C_DEVICE() 2019-09-04 16:27:47 +10:00
Andrew Tridgell beca17c638 HAL_ChibiOS: use GET_I2C_DEVICE() for i2c probing
this allows for the driver probing to use a macro to prevent loading
of duplicate i2c devices (AP_Compass does this)
2019-09-04 16:27:47 +10:00
Michael du Breuil e19f0ef238 AP_HAL_ChibiOS: Remove set_stop_pin from AnalogSource 2019-09-04 09:54:50 +10:00
Michael du Breuil 75b241622f AP_HAL_Empty: Remove set_stop_pin from AnalogSource 2019-09-04 09:54:50 +10:00
Michael du Breuil 979a431e4a AP_HAL_Linux: Remove set_stop_pin from AnalogSource 2019-09-04 09:54:50 +10:00