Commit Graph

31378 Commits

Author SHA1 Message Date
Andy Piper 16ca2e1179 AP_InertialSensor: use 234Hz accel LPF and 532Hz gyro LPF on BMI088 to more closely match Invensense
synchronize fifo reads with backend update on BMI088
2022-12-28 18:18:26 +11:00
Andy Piper d29ccba3f7 AP_Vehicle: constrain FFT notch updates to obey reference frequency 2022-12-28 18:14:56 +11:00
Andy Piper 90cdc1aa52 AP_InertialSensor: allow FFT window to be captured post-filter
selectively apply filters twice to make sure that FFT is not tracking itself
clean-up notch disablement for non-DSP builds
use filter gyro data for FFT when analysing post-filter
always apply LPF after all of the notches
move to a phased application of window information for FFT
tap FFT gyro window at the appropriate place for downsampled FFTs
add accessor for FFT notch
document notch uses cases and flow
2022-12-28 18:14:56 +11:00
Andy Piper 9eb561639b AP_InertialSensor: add support for reading and writing INS data from a file in SITL
allow sketch to be stopped at end of SITL samples
2022-12-28 18:14:56 +11:00
Andy Piper ec7be5c417 SITL: add parameters to control reading and writing IMU data to a file
add exit on stop to reading IMU data from a file
2022-12-28 18:14:56 +11:00
Andy Piper 5ea3415a41 AP_HAL_SITL: allow SITL sketches to run
allow sketchname to be set
2022-12-28 18:14:56 +11:00
Andy Piper 7acdaf2dd0 AP_Vehicle: add vehicle motor noise check 2022-12-28 18:14:56 +11:00
Andy Piper 449d9814ab AP_GyroFFT: add FFT_OPTIONS to allow post-filter sampling of IMUs
provide method to determine noise at a particular frequency
add ability to record per-peak SnR
correct bad array indexing leading to free memory read
track all three axes for health and peaks
remove slewed frequency values, since slewing is now done in the filters
ReplayGyroFFT initial implementation
allow IMU data to be read and written from a file
only build Replay on SITL
correctly calibrate FFT in Replay
better noise simulation in Replay
FTN3 logging
allow FFT peaks to swap indefinitely as long as they both still exist.
Leads to much smoother frequency transitions
increase the energy gap required to switch the tracked peak
use exit on stop for Replay
filter noise tracking more aggressively for post-filter samples
remove message and use appropriate gyro window
when using post-filter do not fallback to throttle-based estimate

AP_GyroFFT: default SnR to 10 when using post-filter samples
2022-12-28 18:14:56 +11:00
Peter Barker b716793a0e AP_NavEKF3: remove duplicated lines in parameter metadata 2022-12-28 13:21:18 +11:00
Leonard Hall 78942911b7 AC_AttitudeControl: AC_PosControl: Include FF in _pid_vel_xy integrator initialisation 2022-12-28 08:25:31 +09:00
Henry Wurzburg d6a5d31625 AP_Scripting:add rate based aerobatics 2022-12-27 18:20:34 +11:00
Mohammad Hefny feece150c6 AP_HAL_Linux: Raspberry 64OS Address fix 2022-12-27 10:03:41 +11:00
Andrew Tridgell 36d2c267fe AP_HAL: allow for a wider range of simulation backends in SIM-on-hw 2022-12-24 07:27:04 +11:00
Andrew Tridgell 057190caa8 SITL: update SITL on hw docs 2022-12-24 07:27:04 +11:00
Andrew Tridgell 0da81f7269 SITL: remove old sitl-on-hw.sh 2022-12-24 07:27:04 +11:00
Andrew Tridgell 87a220991b SITL: new sitl-on-hw.py script
this makes it easier to build SITL on hardware for a wide range of
frames
2022-12-24 07:27:04 +11:00
Andrew Tridgell fdd0d0ae53 SITL: default SIM_RATE_HZ to 400 in SITL-on-hw 2022-12-24 07:27:04 +11:00
Andrew Tridgell 5f8e655f98 AP_HAL: allow override of frame class and string for SITL on hw 2022-12-24 07:27:04 +11:00
Peter Barker fb18adb035 hwdef: fix build for ARK_RTK_GPS 2022-12-23 21:14:15 +11:00
Henry Wurzburg 6348fd5f86 AP_HAL_ChibiOS: free space on ReaperF745 2022-12-23 11:04:35 +11:00
Henry Wurzburg 182326a76f AP_HAL_ChibiOS: rename to ReaperF745 2022-12-23 11:04:35 +11:00
Henry Wurzburg 2c5b85c9c5 AP_HAL_ChibiOS:modify hwdef for V3 of ReaperF745 2022-12-23 11:04:35 +11:00
Tatsuya Yamaguchi dd539f8ec9 AP_DAL: call start_frame for all backends 2022-12-23 09:56:29 +11:00
Andy Piper 96060ef31e AP_HAL_ChibiOS: add UART baudrate accessor 2022-12-22 18:38:31 +00:00
Andy Piper 445aad17c9 AP_HAL: add UART baudrate accessor 2022-12-22 18:38:31 +00:00
Andy Piper aaa6b284bd RC_Channel: add option to support ELRS at 420kbaud 2022-12-22 18:38:31 +00:00
Andy Piper 78c70c74dc AP_RCTelemetry: report CRSF link rate rather than mode.
Encode actual protocol being used
cleanup is_elrs() and version numbers
2022-12-22 18:38:31 +00:00
Andy Piper 425f2b946e AP_RCProtocol: check for 3 good frames for CRSF
Move get_link_rate() and get_protocol_string() to CRSF protocol
allow ELRS at 420kbaud to be configured
allow CRSF to bootstrap at ELRS desired baudrate
2022-12-22 18:38:31 +00:00
Bill Geyer 93b0519ad2 AP_MotorsHeli: improve collective to yaw compensation 2022-12-22 07:07:34 -05:00
Andrew Tridgell f742845552 AP_Scripting: changed airshow rolling circle
make it more achievable
2022-12-22 21:13:30 +11:00
Tatsuya Yamaguchi 43160efba8 AP_Scripting: modify example script of README.md
- avoid to call set_output_pwm before setting origin
- make get_home() once
2022-12-22 13:25:35 +09:00
Andrew Tridgell 441a2ee00d hwdef: added RM3100 compass to C-RTK2-HP 2022-12-21 19:52:31 +11:00
Andrew Tridgell e966e272ac hwdef: fixed build for f103-Trigger 2022-12-21 19:52:31 +11:00
Andrew Tridgell d768c721ee HAL_ChibiOS: make it fatal to have I2C devices without an I2C_ORDER
otherwise it is very confusing when you end up with AP_HAL_Dummy for
I2C manager
2022-12-21 19:52:31 +11:00
Randy Mackay 1a4f51d782 AP_Mount: servo driver loses unnecessary closest_limits method 2022-12-21 18:45:33 +11:00
Tom Pittenger f8ee112e47 AP_TemperatureSensor: fix param count change when loading drivers 2022-12-20 15:19:14 -03:00
Andrew Tridgell 1f100710d2 hwdef: go to minimal GPS for MatekF405-CAN
fixes flash overflow
2022-12-20 12:14:24 +11:00
Iampete1 34d2a5acaa AP_WindVane: add Arduino script and readme to allow conection to Bluetooth wind-vane 2022-12-20 12:13:46 +11:00
Iampete1 e142747d1f AP_Airspeed: Periph: remove useage of hidden params and remove tuber order 2022-12-20 11:12:25 +11:00
Andrew Tridgell 8e93265928 hwdef: added MatekL431-BattMon firmware 2022-12-20 10:44:52 +11:00
Andrew Tridgell 24d4a4cf5e AP_BattMonitor: added support for INA239 SPI battery monitor 2022-12-20 10:44:52 +11:00
Andrew Tridgell 76d0c0f408 AP_BattMonitor: hide unused parameters in peripherals 2022-12-20 10:44:52 +11:00
Andrew Tridgell eb704510d6 HAL_ChibiOS: default to one battery monitor backend in peripherals 2022-12-20 10:44:52 +11:00
Andrew Tridgell 87b4b031bf AP_AHRS: if DCM has no yaw source then don't fallback when hovering
this copes with quadplanes with no compass. With a compass we are
better off using EKF when not in fly-forward as it will give better
height control.

This makes QHOVER for takeoff in quadplanes with no compass a lot more
flyable
2022-12-20 10:34:22 +11:00
Andrew Tridgell 56c8cffc07 AP_AHRS: auto-enable EKF3 for misconfiguration
this fixes a "climb away" in quadplanes when AHRS_EKF_TYPE=2 and
EK2_ENABLE=0. The user has ARMING_CHECK=5390 to disable key arming
checks, and the plane flew on DCM as the configured EKF wasn't
enabled.

This resulted in AHRS::get_origin() returning false as it couldn't ask
EKF2 for the origin (as EKF2 was not enabled or instantiated)

The result was an incorrect calculation for target height during the
descent stage of QRTL, resulting in a climb away until the user took
over
2022-12-20 10:34:22 +11:00
Andrew Tridgell 8bf8d4889a AP_NavEKF3: added get_enable() 2022-12-20 10:34:22 +11:00
Andrew Tridgell fadb9007d0 AP_NavEKF2: added get_enable() 2022-12-20 10:34:22 +11:00
Andrew Tridgell f53c865c7a AP_GPS: only create GPS logs for active GPS backends 2022-12-20 10:23:58 +11:00
Andrew Tridgell fc5ae600ef AP_GPS: fixed handling of empty HDT/THS sentences
fixes #22432
2022-12-20 10:23:58 +11:00
Andrew Tridgell 01cad1c4aa SITL: added SIM_GPS_LOG_NUM
for replaying GPS logs recorded with --enable-gps-logging
2022-12-20 10:23:58 +11:00
Andrew Tridgell 761e4a05e2 AP_GPS: don't consume Heading message if we have RelPosHeading
this avoids 2 conflicting yaw sources
2022-12-20 10:23:58 +11:00
Andrew Tridgell b0c006deca AP_GPS: suppress string truncation warnings 2022-12-20 10:23:58 +11:00
Andrew Tridgell 898187950e AP_GPS: give yaw information for AP_Periph from Unicore GPS
this allows for CAN GPS yaw with length and height checks with unicore
GPS
2022-12-20 10:23:58 +11:00
Andrew Tridgell 2fd575aca2 AP_GPS: allow for DroneCAN GPS other than u-blox rover with yaw
single module, dual antenna GPS can give yaw information
2022-12-20 10:23:58 +11:00
Andrew Tridgell 907acd6e5f hwdef: added C-RTK2-HP AP_Periph
this is a UM982 Unicore GPS from CUAV with support for dual-antenna
GPS yaw
2022-12-20 10:23:58 +11:00
Andrew Tridgell d7a3c643a6 AP_GPS: improved unicore setup
log version information and improve auto-bauding
2022-12-20 10:23:58 +11:00
Andrew Tridgell 3c1a54c3df AP_GPS: added measured lag for Unicore GPS
measured as 0.14s from flight log
2022-12-20 10:23:58 +11:00
Andrew Tridgell 9cebe3b880 AP_GPS: added a common velocity_to_speed_course()
this saves flash using common code
2022-12-20 10:23:58 +11:00
Andrew Tridgell 78dac16520 SITL: make serial buffer size configurable
we need a larger buffer size for NMEA GPS modules
2022-12-20 10:23:58 +11:00
Andrew Tridgell 29f1c31854 AP_GPS: added GPYW logging for GPS yaw
this makes it much easier to debug GPS yaw issues, by logging the raw
data even if the yaw is rejected
2022-12-20 10:23:58 +11:00
Andrew Tridgell c453ff1ce2 AP_GPS: fixed vertical velocity with AGRICA support
and add health check for unicore GPS
2022-12-20 10:23:58 +11:00
Andrew Tridgell 55683c51f5 AP_GPS: review changes 2022-12-20 10:23:58 +11:00
Andrew Tridgell d2d6dc8ce4 AP_GPS: only give time if we have a 3D fix
and ensure we configure rate for GGA and RMC for Unicore
2022-12-20 10:23:58 +11:00
Andrew Tridgell 6c9cbe1a58 AP_GPS: fixed NMEA time reporting
basic NMEA does not have an itow, so we need to use time_week_ms

this caused us to always display the time as the start of the GPS week
on NMEA
2022-12-20 10:23:58 +11:00
Andrew Tridgell a7c5c6b728 AP_GPS: allow for disabling of NMEA Unicore support 2022-12-20 10:23:58 +11:00
Andrew Tridgell 2837471ddf AP_GPS: fixed build without GPS_MOVING_BASELINE 2022-12-20 10:23:58 +11:00
Andrew Tridgell 02d6931c4d AP_GPS: fixed re-probing of NMEA GPS
when we lost fix on a NMEA GPS we should retain the driver as long as
it is still sending us NMEA messages that pass the CRC check. This
fixes a bug where we would re-probe the GPS (searching baudrates) when
we lost position
2022-12-20 10:23:58 +11:00
Andrew Tridgell ad9dfe2d51 AP_GPS: added support for Unicore NMEA GPS
this includes dual-antenna moving baseline support, 3D velocity and accuracies
2022-12-20 10:23:58 +11:00
Andrew Tridgell b9642b549b AP_GPS: make GPS_MB parameters clearer
offsets are from the 2nd antenna to the base (primary) antenna
2022-12-20 10:23:58 +11:00
Tatsuya Yamaguchi 366a325fc0 AP_NavEKF3: do not check the second range finder if RANGEFINDER_MAX_INSTANCES is 1 2022-12-20 10:05:24 +11:00
Tatsuya Yamaguchi a51c3206b2 AP_NavEKF2: do not check the second range finder if RANGEFINDER_MAX_INSTANCES is 1 2022-12-20 10:05:24 +11:00
Andrew Tridgell 0f04611970 AP_Baro: auto-set field elevation from origin 2022-12-20 10:04:38 +11:00
Tatsuya Yamaguchi ccc5ba3cbd SITL: change HDOP from 2.0 to 1.2 2022-12-19 08:28:45 +09:00
Peter Barker 59a70c6713 AP_TemperatureSensor: correct compilation when TSYS01 compiled out 2022-12-18 09:19:12 +11:00
Kirill Shilov 8a51c73e4a AIRLink: added LTE module enable pin to hwdef 2022-12-18 07:19:42 +11:00
Andrew Tridgell 6dcb137b29 AP_Scripting: fixed error on bad cmd in mission 2022-12-17 15:35:35 +11:00
alexklimaj 6ddf2e039f hwdef: Add ARK RTK GPS AP Periph 2022-12-17 12:46:22 +11:00
Ari Krupnik 205329575a AP_Scripting: Lua applet starts/stops video recording on arm/disarm 2022-12-17 11:55:50 +11:00
MAD-CRAZY-MAN eb91ab87fa hwdef: added ThePeach K1/R1 2022-12-16 14:16:16 +11:00
Randy Mackay 5fa6914137 AP_Mount: siyi recording send-text demoted to INFO 2022-12-16 08:15:53 +09:00
Randy Mackay 6efa35e889 AP_Mount: Siyi fix for record ON OFF reporting 2022-12-16 08:15:53 +09:00
Randy Mackay 6bd4afeb48 AP_Mount: siyi a8 fix for gimbal-config-info message
Siyi A8 uses a different format from Z10 for this message
2022-12-16 08:15:53 +09:00
Andrew Tridgell 57d60f86b5 AP_Scripting: new version of knife-edge compensation in aerobatics
this is a simpler approach based on sin(roll)*cos(pitch)
2022-12-16 10:09:17 +11:00
Peter Barker 70a5d8be76 GCS_MAVLink: remove unnecessary include of OpticalFlow header in GCS.h
introduces unnecessary dependencies
2022-12-15 21:07:31 +11:00
Peter Barker 54418a319e AP_HAL_ChibiOS: add missing bouncebuffer include 2022-12-15 21:06:30 +11:00
Peter Barker a874938636 AP_GPS: fix GPS_AUTO example 2022-12-15 21:05:35 +11:00
Randy Mackay 624e731ca5 AP_Arming: correct prefix is ahrs is waiting for home 2022-12-15 10:55:47 +09:00
Randy Mackay 76ef43ddf0 AP_Arming: only compare AHRS vs GPS if GPS is enabled 2022-12-15 10:55:47 +09:00
Randy Mackay 6bc3fcd294 AP_Arming: minor format fix 2022-12-15 10:55:47 +09:00
Paul Riseborough fd7c4bc841 AP_Logger: Add option to disable disarmed logging on USB connection
AP_Logger: Update LOG_DISARMED parameter description
2022-12-15 10:38:15 +11:00
Peter Barker 4e61de7083 GCS_MAVLink: code-generate chan-fetching methods
A recent PR had to change every single one of these methods, which was kind of unfortunate.

So generate the methods using a #define so the duplication happens at preprocessor-time.
2022-12-15 08:31:54 +11:00
rishabsingh3003 650f0ff659 AP_UAVCAN: Add proximity support 2022-12-15 07:20:05 +11:00
rishabsingh3003 d8cf7c8bb5 hwdef: Add Proximity hwdef for L431 2022-12-15 07:20:05 +11:00
rishabsingh3003 ea1fb96e7b AP_Proximity: Add DroneCAN backend 2022-12-15 07:20:05 +11:00
Andrew Tridgell 84db577f09 AP_Scripting: fixed aerobatics bug
thanks Andy!
2022-12-15 07:17:06 +11:00
Andrew Tridgell ca3be1d0c7 AP_Scripting: fixed roll correction at end of partial climbing circle 2022-12-15 07:17:06 +11:00
Andrew Tridgell afc1a38b73 AP_Scripting: use luaM_malloc instead of allocf
handles GC if needed automatically
2022-12-15 07:17:06 +11:00
Andrew Tridgell ff6d9a12a4 AP_Scripting: try a gc on alloc fail in logging 2022-12-15 07:17:06 +11:00
Andrew Tridgell aa8ff87ad2 AP_Scripting: make most object functions local 2022-12-15 07:17:06 +11:00
Andrew Tridgell aa865e1f9b AP_Scripting: save some class variables 2022-12-15 07:17:06 +11:00