Commit Graph

26432 Commits

Author SHA1 Message Date
Andrew Tridgell faec3e1a8a AP_NavEKF: sync for 4.1.0beta 2021-07-23 10:19:46 +09:00
Andrew Tridgell f60c592af3 AP_Math: sync for 4.1.0beta releases 2021-07-23 10:19:46 +09:00
Andrew Tridgell 01156ed348 AP_Common: make longitude_scale() a static
this changes the use of longitude_scale() to use the average latitude
instead of the lattitude at one end of the line when calculating
positions and distances. It means we obey the basic geometry rule
that:

 pos1 + offs = pos2
 pos2 - offs == pos1
2021-07-23 10:19:46 +09:00
Andrew Tridgell c9b9a6a616 HAL_ChibiOS: run storage writes at 1kHz not 100Hz
The 100Hz update rate means there is a significant chance of an arming
failure after mission upload if you try to arm shortly after the
update.

Each mission item is 15 bytes, so with a 1200 item mission we need to
write 18000 bytes to storage. At 100Hz, with 8 bytes per storage line,
that takes over 22 seconds.
2021-07-23 10:19:46 +09:00
Peter Barker 304927a41e AP_NavEKF3: pass NavEKF failures back up to callers 2021-07-23 10:19:46 +09:00
Andrew Tridgell c31de1a5ca AP_NavEKF3: process GPS yaw independently of GPS fix
this processes GPS yaw with its own timestamp and as a separated step
from fusing position and velocity. This makes the yaw time handling
more accurate as yaw for moving baseline GPS comes in as a separate
piece of data from the position and velocity
2021-07-23 10:19:46 +09:00
Andrew Tridgell 56ddaa1a99 AP_NavEKF3: fixed indentation in readGpsData() 2021-07-23 10:19:46 +09:00
Andrew Tridgell 579e4566c6 AP_NavEKF3: implement moving origin
this shifts EKF_origin to the current location at 1Hz, while leaving
public_origin alone. All output APIs and logging are relative to
public_origin.

The effect of this change is to remove the distortion caused by a
spherical earth, which allows the EKF to operate without errors at
very long distances from the public_origin.
2021-07-23 10:19:46 +09:00
Andrew Tridgell d43e95a39a AP_NavEKF3: moved checkUpdateEarthField to be called less often 2021-07-23 10:19:46 +09:00
Andrew Tridgell e409202bef AP_NavEKF3: update earth field at 1Hz
this prevents large mag errors on long distance flights
2021-07-23 10:19:46 +09:00
Andrew Tridgell 399cd4ea03 AP_Common: added ftype precision offset call
# Conflicts:
#	libraries/AP_Common/Location.cpp
#	libraries/AP_Common/Location.h
2021-07-23 10:19:46 +09:00
Andrew Tridgell 163a37efa7 AP_NavEKF3: convert code_gen.py to ftype 2021-07-23 10:19:46 +09:00
Andrew Tridgell 5531703548 AP_NavEKF3: convert powF(xx,2) calls to sq(xx) 2021-07-23 10:19:46 +09:00
Andrew Tridgell c988f23389 AP_NavEKF3: convert EKF3 derivation to ftype 2021-07-23 10:19:46 +09:00
Andrew Tridgell e11c94602b HAL_ChibiOS: define HAL_HAVE_HARDWARE_DOUBLE on F765, F777 and H7 2021-07-23 10:19:46 +09:00
Andrew Tridgell 1119ffe6ba AP_NavEKF3: allow for double EKF build 2021-07-23 10:19:46 +09:00
Andrew Tridgell edbaf9f3c1 AP_NavEKF2: allow for double EKF build 2021-07-23 10:19:46 +09:00
Andrew Tridgell d31ca6ca8c AP_NavEKF: allow for double EKF build 2021-07-23 10:19:46 +09:00
Andrew Tridgell 6484a9666c AP_Mount: use ZERO_FARRAY() 2021-07-23 10:19:45 +09:00
Andrew Tridgell 6bcc0737ae AP_Motors: fixup build for ftype conflict 2021-07-23 10:19:45 +09:00
Andrew Tridgell 9629b19ec1 AP_Common: added double methods for SITL 2021-07-23 10:19:45 +09:00
Andrew Tridgell 970ae3dd76 SITL: fixup offset calls 2021-07-23 10:19:45 +09:00
Andrew Tridgell 232ccfe477 AP_Math: allow for double EKF build 2021-07-23 10:19:45 +09:00
Andrew Tridgell 712fbd08dc HAL_ChibiOS: use SRAM1 as first ram segment on H7
this is needed to give the linker more than 128k for static variables
with double precision maths.
2021-07-23 10:19:45 +09:00
Andrew Tridgell 53ecf048d1 AP_HAL: allow for double EKF build 2021-07-23 10:19:45 +09:00
Andrew Tridgell 079577a6e5 APM_Control: adjust fixed wing filter defaults
adjust defaults based on discussions with Paul, and initialise the
FLTT value based on the controller time constant
2021-07-23 10:19:45 +09:00
Andrew Tridgell 36b22cffb6 AP_Notify: disable DShot buzzer by default 2021-07-23 10:19:45 +09:00
Andy Piper c265d70d3d AP_Notify: re-enable display on 1Mb boards 2021-07-23 10:19:45 +09:00
Andrew Tridgell 3a683be219 HAL_ChibiOS: always send zero DShot when disarmed
this prevents a misconfigured system (for example SERVOn_REVERSED=1)
from running a motor while disarmed.

See https://discuss.ardupilot.org/t/plane-4-1-0-beta/72434/34?u=tridge
2021-07-23 10:19:45 +09:00
Andrew Tridgell a757706797 AP_Logger: fixed log creation on forced arm
when we force arm we need to ask the IO thread to create the log, not
create it ourselves
2021-07-23 10:19:45 +09:00
Randy Mackay 3900a4f14a GCS_MAVLink: send water depth and temp 2021-06-30 12:05:09 +09:00
Andrew Tridgell a7f31929ea AP_Common: use longitude scaling from definitions.h 2021-06-29 17:26:34 +09:00
Andrew Tridgell 978ea307b0 AP_Math: fixed the value LATLON_TO_CM
it didn't have enough digits of precision, and was inconsistent with
LOCATION_SCALING_FACTOR
2021-06-29 17:26:34 +09:00
Peter Barker 819c331acd AP_BattMonitor: correct static_assert call 2021-06-28 11:05:00 +09:00
Peter Barker 67ebdc300b AP_HAL_SITL: reduce scope of loop variable 2021-06-27 10:57:07 +10:00
Leonard Hall fcde1e7370 AC_WPNav: use shaping_tc_z_s for terrain following time constant. 2021-06-25 16:54:05 +09:00
Leonard Hall 8f493e3021 AC_AttitudeControl: Add shaping_tc_z_s accessor 2021-06-25 16:54:05 +09:00
Andrew Tridgell f12a7dd04b AP_Mount: fixed longitude subtraction 2021-06-25 15:33:55 +10:00
Peter Barker f69e2a49f6 AP_Common: add test for longitude wrapping 2021-06-25 15:33:55 +10:00
Andrew Tridgell 77d83b9c77 AP_Common: fixed Location class for wrap at 180 degrees longitude
this allows us to fly missions across the date line
2021-06-25 15:33:55 +10:00
Leonard Hall 5475d1153c AC_PosControl: fixup ekf reset 2021-06-25 10:01:49 +09:00
Andrew Tridgell 4895a08ab2 AP_IRLock: convert SITL backends to double precision position 2021-06-24 21:34:30 +10:00
Andrew Tridgell f209504a12 AC_PrecLand: convert SITL backends to double precision position 2021-06-24 21:34:30 +10:00
Andrew Tridgell aa03afafa7 AP_Math: added matrix3 tofloat and todouble 2021-06-24 21:34:30 +10:00
Andrew Tridgell 61faeb2d7f AP_Common: added double methods for SITL 2021-06-24 21:34:30 +10:00
Andrew Tridgell fb275c9874 SITL: convert to double precision for positions 2021-06-24 21:34:30 +10:00
Andrew Tridgell 1d00cab9e6 AC_WPNav: convert circle, loiter and WPNav to double position 2021-06-24 21:34:30 +10:00
Andrew Tridgell 66186e5221 AC_AttitudeControl: convert poscontrol to use double position 2021-06-24 21:34:30 +10:00
Andrew Tridgell c8079a318c AC_PID: convert AC_P_2D to double 2021-06-24 21:34:30 +10:00
Andrew Tridgell 9b91cfe4ee AP_Math: implement double versions of some position control methods 2021-06-24 21:34:30 +10:00