Commit Graph

22231 Commits

Author SHA1 Message Date
Andy Piper
7d36bc4422 AP_GyroFFT: new FFT library for motor peak analysis using HAL DSP abstraction
add dynamic gyro windows
control inclusion based on HAL_WITH_DSP and GYROFFT_ENABLED
target appropriate ARM cpus
constrain window sizes to be achievable
improve FFT signal accuracy through configurable window overlap and quinn's estimator
calculate energy weighted center frequency
add support for learning hover frequency and throttle reference
calculate power spectrum rather than amplitude
record noise as a per-bin power spectrum
calculate true SNR per-bin and use that to determine there is a signal
add user config for SNR signal level
constrain frequency scanning to MAXHZ
calculate and learn the peak bandwidth at the configured attenuation
allow enabling/disabling dynamically through rc function
MAXHZ should be below Nyquist
Incorporate full range of MAXHZ to MINHZ
update FFT analysis in a separate thread
allocate memory in a specific region
constrain window size by CPU class
do not allocate any resources when not enabled
Prevent self-check and analysis interfering with each other
put configuration and initialization to AP_Vehicle
add logging
fix significant issues with threading, locking and sample buffer access
use both calculated noise peaks together with the harmonic notch configuration to detemine which peak represents the fundamental harmonic that should be tracked
record harmonic fit
add CMSIS 5 libraries and headers
allow larger FFT lengths on Linux and SITL
2020-02-22 11:15:37 +11:00
Andy Piper
7571b4d95c AP_HAL_SITL: SITL version of DSP implementation 2020-02-22 11:15:37 +11:00
Andy Piper
495a89459f AP_HAL_Empty: empty implementation of HAL FFT 2020-02-22 11:15:37 +11:00
Andy Piper
3d0cf7e12a AP_HAL_ChibiOS: hardware M4-Cortex and M7-Cortex (and H7) implementation of HAL FFT abstraction
implements an FFT engine based on the betaflight feature using ARM hardware accelerated CMSIS library
make the FFT feature optional
add dynamic gyro windows
add quinns and candans estimators and record in DSP state
disable DSP for boards with limited flash
calculate power spectrum rather than amplitude
start/analyse version of analysis to support threading
allocate memory in a specific region
constrain window size by CPU class
control inclusion of DSP based on board size
2020-02-22 11:15:37 +11:00
Andy Piper
f4a99a1589 AP_HAL: hardware abstraction for FFT.
control inclusion of FFT based on HAL_WITH_DSP and HAL_GYROFFT_ENABLED. target appropriate ARM cpus
define hanning window and quinn's estimator
start/analyse version of FFT to support threading
allocate memory in a specific region
calculate frequency and noise bandwidth of two noisiest peaks
control inclusion of DSP based on board size
2020-02-22 11:15:37 +11:00
Andy Piper
3d9776dd6d AP_InertialSensor: expose statically filtered gyro values for FFT analysis and allow sampling to gyro window for FFT analysis.
FFT windows can be dynamically allocated
add harmonic notch dynamic tracking mode
unwind gyro window allocation in the case of failure
allow access to harmonic notch harmonics
2020-02-22 11:15:37 +11:00
bnsgeyer
593ff6818d AC_WPNAV:make speed changes during missions obey WPNAV_ACCEL
Includes commits by rmackay9
AC_WPNav: fixup max speed acceleration
AC_WPNav: simplify the initialisation of poscontrol's max speed
          Changed at Leonard's request to keep things simpler
2020-02-22 08:53:41 +09:00
Randy Mackay
fc2e15651e AC_PosControl: allow smaller changes in max speed and accel
also small changes in max speed for z-axis
2020-02-22 08:53:41 +09:00
ashvath100
1c77df9169 SITL: Rename morse-rover to morse-skid 2020-02-21 08:23:54 +09:00
yaapu
b4bdc76a53 AP_RCProtocol: handle 0x10 and 0x00 frames, check scheduler delay and fix incoming crc
Respond to 0x10 when the rx is controlling bandwidth, else respond only to 0x00
but in this case never exceed a max number of consecutive frames.
Always respond to polling and if necessary send a null frame.
moved delay check after get_telem_data() to account for scheduler time
align incoming to outgoing crc
2020-02-21 09:29:15 +11:00
yaapu
0c5618c9e7 AP_Frsky_Telem: add semaphores to ahrs access and fix potential array out of bounds access
use a semaphore for non atomic ahrs calls and fix a potential array out of bounds
access for faster than sport telemetry links.
2020-02-21 07:54:59 +11:00
Pierre Kancir
95ee01082f AP_HAL_SITL: update search for dumpstack.sh 2020-02-20 20:41:26 +11:00
Andy Piper
387b5e7002 AP_Camera: bug fixes to support 5-key remote RunCams
allow the boot-time recording state to be configured
only process events on state transitions. Simplifies logic and debugging.
support regular Split 2s
allow menu enter/exit in 5-key mode
match betaflight with 5-Key OSD which requires an "enter" key
2020-02-20 19:58:43 +11:00
Andrew Tridgell
20ea1a3dc7 GCS_MAVLink: don't send statustext from other than main thread
This fixes high stack usage in the RCIN thread when it notifies the
GCS of a new RCIN protocol. The problem is severe when signing is
enabled, as signing adds over 500 bytes to stack cost of sending a
mavlink msg

fixes issue #13615
2020-02-20 10:39:29 +11:00
Michael du Breuil
d7a59bc449 AP_Scripting: Reduce the sleep time with no scripts
Lowering the sleep time when no scripts are pending, causes starting a
REPL session to respond much faster (this cuts the latency from up to 10
seconds to 1 second before the session is ready to start).

Also lowers the default scripting debug level to hide the statustext
from users, as in the general case this is just a spammy message if it
occurs, and we should be finding better reporting bits to get this to
the user.
2020-02-19 13:24:23 -07:00
Andrew Tridgell
772438f3ed AP_NavEKF3: fixed use of antenna position when switching GPS primary
when GPS primary switches we were using a position which had not been
corrected for antenna offset. This was used for calculating the reset
for sensor change.

This fixes that (trivial fix) and also fixes a similar issue on
position reset
2020-02-19 18:12:54 +11:00
Andrew Tridgell
9030590a88 AP_NavEKF2: fixed use of antenna position when switching GPS primary
when GPS primary switches we were using a position which had not been
corrected for antenna offset. This was used for calculating the reset
for sensor change.

This fixes that (trivial fix) and also fixes a similar issue on
position reset
2020-02-19 18:12:54 +11:00
Andrew Tridgell
b49a76bb20 AP_Filesystem: fixed EOF on file read
should return number of bytes read. This fixes an issue with MAVProxy
ftp client
2020-02-19 18:11:41 +11:00
Andrew Tridgell
1cb711d35d AP_Filesystem: make SITL take paths relative to starting directory
this makes SITL filesystem behave more like a real device
2020-02-19 18:11:41 +11:00
Siddharth Purohit
f00a39af52 AP_Compass: run style script on Compass.cpp 2020-02-19 13:59:53 +09:00
Siddharth Purohit
faacd03e3a AP_Common: add method that can help to put contraint on accessor type 2020-02-19 13:59:53 +09:00
Siddharth Purohit
1d2985e967 AP_Param: add method to find key of top level group variable by pointer 2020-02-19 13:59:53 +09:00
Siddharth Purohit
8a7dcafa0f SITL: add parameter MAG_DEVID in SITL 2020-02-19 13:59:53 +09:00
Siddharth Purohit
8d227d401a AP_Compass: modify compass driver to support consistent ordering and hotplugging 2020-02-19 13:59:53 +09:00
Siddharth Purohit
545331024f AP_NavEKF3: Primary compass is always at serial number 0 2020-02-19 13:59:53 +09:00
Siddharth Purohit
4cca1c307c AP_NavEKF2: Primary compass is always at serial number 0 2020-02-19 13:59:53 +09:00
Siddharth Purohit
7da331535c AP_Arming: add arming message for compass not detected but assigned 2020-02-19 13:59:53 +09:00
Siddharth Purohit
defc1b5fcb ArduCopter: add arming message for compass not detected but assigned 2020-02-19 13:59:53 +09:00
Siddharth Purohit
653fad44d4 AP_Arming: Primary Compass is always at serial# 0 2020-02-19 13:59:53 +09:00
Peter Barker
baf375e7a0 AP_WheelEncoder: add param docs for new PID filter parameters 2020-02-19 15:09:16 +11:00
Peter Barker
e85a4dcd7d AP_Soaring: remove empty Units: parameter doc entries
These break parameter generation
2020-02-19 15:09:16 +11:00
Peter Barker
6d7ee65a5f AP_AdvancedFailsafe: correct WP_GPS_LOSS param documentation block 2020-02-19 15:09:16 +11:00
Peter Barker
370e378bf6 AP_ICEngine: correct IDLE_DB parameter documentation 2020-02-19 15:09:16 +11:00
Rishabh
c65d1ff8d8 HAL_SITL: support new motor orders 2020-02-19 11:28:25 +09:00
Rishabh
08f27f7668 SITL: Added cwx motor setup for hexa, octa and octaquad 2020-02-19 11:28:25 +09:00
Rishabh
aec65ed6ff AP_Motors: Added cwx motor setup for hexa, octa and octaquad 2020-02-19 11:28:25 +09:00
Peter Barker
1190b9ff19 AP_Proximity: TeraRangerTower uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker
107c424a5c AP_Proximity: LightWareSF40C_v09 uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker
97320e8938 AP_Proximity: TeraRangerTowerEvo uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker
0d4e72622e AP_Proximity: RPLidarA2 uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker
788e466c90 AP_Proximity: LightWareSF40C used intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker
fcdb833f46 AP_Proximity: add intermediate AP_Proximity_Backend_Serial class 2020-02-19 11:12:37 +09:00
Michael du Breuil
1f8c030eba GCS_MAVLink: Allow scripting to start/stop the REPL 2020-02-18 17:23:22 -07:00
Michael du Breuil
cf06beb1e6 AP_Scripting: Add support for REPL over MAVLink 2020-02-18 17:23:22 -07:00
Michael du Breuil
296c014d14 GCS_MAVLink: Fix excess trimming of autopilot version 2020-02-19 09:10:02 +11:00
Peter Hall
7bef426531 AP_Logger: EKF4 change flags state from uint16_t to uint32_t 2020-02-19 06:45:07 +11:00
Peter Hall
47e3fda8e9 AP_NavEKF3: add initalized flag and change to uint32_t 2020-02-19 06:45:07 +11:00
Peter Hall
e0eeb4f863 AP_NavEKF2: add initalized flag and change to uint32_t 2020-02-19 06:45:07 +11:00
Peter Hall
9ec5355dfc AP_NavEKF: add initalized flag and change to uint32_t 2020-02-19 06:45:07 +11:00
Peter Barker
d24d1c587a AP_Scripting: add documentation for DEBUG_LVL parameter 2020-02-18 20:25:58 +09:00
Gone4Dirt
44718cd00f AP_Mission: Check if failsafes should interupt landing approach 2020-02-18 21:03:29 +11:00
Andrew Tridgell
32ecd904bd GCS_MAVLink: use MAV_SYS_STATUS_PREARM_CHECK
this allows GCS to continually display prearm check status
2020-02-18 15:16:02 +11:00
Henry Wurzburg
bf1b48b940 AP_Notify: add mah consumed to BAT line in OLED displays 2020-02-18 15:15:52 +11:00
Peter Barker
7f64c6159d AP_Landing_Deepstall: correct missing parameter docs 2020-02-18 13:28:03 +11:00
mhefny
b935aa3355 SITL:adding slow-motion option argv -d for Quad & Tricopter controllers 2020-02-18 11:31:50 +11:00
mhefny
9cb3662db6 SITL:Webots-better time sync 2020-02-18 11:31:50 +11:00
murata
147a940451 SITL: Indicates that the message is SIM only 2020-02-18 11:23:52 +11:00
Andrew Tridgell
b5e091bc84 AP_Airspeed: hide unused parameters for AP_Periph 2020-02-18 11:15:05 +11:00
Matt Lawrence
05b94de9a0 AP_Camera: Make trigger type enum class 2020-02-18 11:13:27 +11:00
Matt Lawrence
27e825b058 RC_Channel: Add GoPro mode toggle Aux switch 2020-02-18 11:13:27 +11:00
Matt Lawrence
c84dcd9bf8 GCS_Mavlink: Add routing for GoPro heartbeat 2020-02-18 11:13:27 +11:00
Matt Lawrence
a2af217adf AP_Camera: Add handling of GoPro mavlink commands 2020-02-18 11:13:27 +11:00
Michael du Breuil
c1a599d0bd AP_Scripting: Reduce memory associated with the sandbox 2020-02-18 10:38:09 +11:00
Peter Barker
87a31c6409 GCS_MAVLink: don't recalculate max parameter count if not streaming params 2020-02-18 10:33:41 +11:00
Peter Hall
4ee17aea3d AP_Scripting: regenerate bindings 2020-02-18 10:18:12 +11:00
Peter Hall
a04a34ff6a AP_Scripting: add param get and set example 2020-02-18 10:18:12 +11:00
Peter Hall
1f139414bc AP_Scripting: add param get, set and save bindings 2020-02-18 10:18:12 +11:00
Peter Hall
5164eacc4a AP_Param: add get and set functions 2020-02-18 10:18:12 +11:00
Peter Hall
623c1aa3cd AP_Param: add singleton 2020-02-18 10:18:12 +11:00
Mirko Denecke
899335e30b SITL: fix DisplayName and description of parameter 2020-02-18 09:29:47 +11:00
Mirko Denecke
2f435d5099 SITL: fix DisplayName and description of parameter 2020-02-18 09:29:15 +11:00
Michael du Breuil
a0bfc823b3 AP_Scripting: Support libraries holding the scheduler lock 2020-02-18 09:16:10 +11:00
Michael du Breuil
c257cea375 AP_Scheduler: Add a lock that is held during all normal operations 2020-02-18 09:16:10 +11:00
Randy Mackay
53fb333f0c AP_Follow: minor format fix to FOLL_ALT_TYPE param desc 2020-02-17 14:30:18 +09:00
pkocmoud
8c764bb568 hwdef: switch to (0) DNA as the default NODEID 2020-02-17 12:48:37 +11:00
pkocmoud
8f6d2aab7a hwdef: add mRo M10025 KITCAN 2020-02-17 12:48:37 +11:00
Andrew Tridgell
2a03144fdb AP_SpdHgtControl: added reset() 2020-02-16 17:04:07 +11:00
Andrew Tridgell
176d3c0b2f AP_TECS: added reset() method
used at end of VTOL takeoff
2020-02-16 17:04:07 +11:00
bnsgeyer
d4e5e1bd3d AP_Motors: tradheli - fix quad heli collective structure 2020-02-14 09:29:50 +09:00
Randy Mackay
e36d4d19e2 AC_AttitudeControl_Heli: fix VFF and ILMI param descriptions 2020-02-14 09:20:17 +09:00
Randy Mackay
5e60ae8a26 AC_PosControl: add missing ACCZ param descriptions 2020-02-14 09:20:11 +09:00
ashvath
66f123e2b4 SITL: Example for skid rover 2020-02-13 09:04:32 +11:00
ashvath
774b79e632 SITL: Parameters for skid rover 2020-02-13 09:04:32 +11:00
ashvath
5e2b693be4 SITL: Parameters for steering/throttle rover 2020-02-13 09:04:32 +11:00
ashvath
677dec5894 SITL: example for steering/throttle rover 2020-02-13 09:04:32 +11:00
ashvath
71f8c7cabb SITL: support for steering/throttle rover 2020-02-13 09:04:32 +11:00
Peter Barker
adcfb60850 AP_RangeFinder: comment out no-loner-used PX4 enum entry 2020-02-12 21:18:47 +11:00
Peter Barker
6febbcdc13 AP_RangeFinder: remove incorrect and misleading comment
Wrong on several counts.  detect calls this method.  The constructor
doesn't initialise the rangefinder.  detect doesn't return boolean.
2020-02-12 21:18:47 +11:00
Andrew Tridgell
bebfef369f HAL_ChibiOS: fixed power flags for CUAV-Nora 2020-02-12 21:17:49 +11:00
CUAVcaijie
561808ba3c HAL_ChibiOS: Added support for CUAV Nora flight controller 2020-02-12 21:17:49 +11:00
Andrew Tridgell
a0fe1a7598 HAL_ChibiOS: produce more accurate clocks for DShot and PWM 2020-02-12 18:12:39 +11:00
Andrew Tridgell
9e0edba31d HAL_ChibiOS: raised timer clocks to 200MHz
this gives more flexibility in setting up timers for DShot
2020-02-12 18:12:39 +11:00
Andrew Tridgell
8b93e0f57d HAL_ChibiOS: prevent double init of USB
this prevented init of USB CubeBlack on Windows. Thanks to Randy for
reporting
2020-02-12 17:44:09 +11:00
Andrew Tridgell
adf17414e0 HAL_ChibiOS: fixed output string for non-DMA capable chan
this fixes a problem where the user requests DShot (which rquired DMA)
on an output channel which cannot allocate a DMA channel. We end up
sending normal PWM, so the string representation of the output modes
should reflect that
2020-02-12 14:08:40 +11:00
Randy Mackay
1d8e4ce5ac AP_ToshibaCAN: move usage_sec in telemetry struct
According to WickedShell this saves 48bytes of RAM
2020-02-12 11:58:34 +09:00
Randy Mackay
8c227a5a18 AP_Scripting: add esc-usage.lua
example script to retrieve esc usage time
2020-02-12 11:58:34 +09:00
Randy Mackay
fb2d7242f4 AP_Scripting: make bindings 2020-02-12 11:58:34 +09:00
Randy Mackay
617b8b45d2 AP_Scripting: add AP_ESC_Telem bindings 2020-02-12 11:58:34 +09:00
Randy Mackay
72612d3cb9 AP_Vehicle: add AP_ESC_Telem 2020-02-12 11:58:34 +09:00
Randy Mackay
35737d484e AP_ESC_Telem: wrapper for ESCs with feedback 2020-02-12 11:58:34 +09:00