Andrew Tridgell
1d46e77942
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-22 16:01:00 +10:00
Andrew Tridgell
f0bc4bca84
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-22 16:01:00 +10:00
Peter Barker
156a220d5b
AP_NavEKF3: pass NavEKF failures back up to callers
2021-07-22 16:01:00 +10:00
Andrew Tridgell
9f03f5a9a9
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-22 16:01:00 +10:00
Andrew Tridgell
4408eecb18
AP_NavEKF3: fixed indentation in readGpsData()
2021-07-22 16:01:00 +10:00
Andrew Tridgell
cc03255245
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-22 16:01:00 +10:00
Andrew Tridgell
8c9663e47c
AP_NavEKF3: moved checkUpdateEarthField to be called less often
2021-07-22 16:01:00 +10:00
Andrew Tridgell
c05e93e51e
AP_NavEKF3: update earth field at 1Hz
...
this prevents large mag errors on long distance flights
2021-07-22 16:01:00 +10:00
Andrew Tridgell
f2668f8e8e
AP_Common: added ftype precision offset call
...
# Conflicts:
# libraries/AP_Common/Location.cpp
# libraries/AP_Common/Location.h
2021-07-22 16:01:00 +10:00
Andrew Tridgell
edb11d4d71
AP_NavEKF3: convert code_gen.py to ftype
2021-07-22 16:01:00 +10:00
Andrew Tridgell
823ed4c309
AP_NavEKF3: convert powF(xx,2) calls to sq(xx)
2021-07-22 16:01:00 +10:00
Andrew Tridgell
b6fb7383e7
AP_NavEKF3: convert EKF3 derivation to ftype
2021-07-22 16:01:00 +10:00
Andrew Tridgell
fa3f3dd218
HAL_ChibiOS: define HAL_HAVE_HARDWARE_DOUBLE on F765, F777 and H7
2021-07-22 16:01:00 +10:00
Andrew Tridgell
a6c5b65f4a
AP_NavEKF3: allow for double EKF build
2021-07-22 16:01:00 +10:00
Andrew Tridgell
380b9b39ed
AP_NavEKF2: allow for double EKF build
2021-07-22 16:01:00 +10:00
Andrew Tridgell
10facfc519
AP_NavEKF: allow for double EKF build
2021-07-22 16:01:00 +10:00
Andrew Tridgell
4dfa6258d9
AP_Mount: use ZERO_FARRAY()
2021-07-22 16:01:00 +10:00
Andrew Tridgell
26820c3a8c
AP_Motors: fixup build for ftype conflict
2021-07-22 16:01:00 +10:00
Andrew Tridgell
425c8aafb1
AP_Common: added double methods for SITL
2021-07-22 16:01:00 +10:00
Andrew Tridgell
d698987070
SITL: fixup offset calls
2021-07-22 16:01:00 +10:00
Andrew Tridgell
e7afa628d1
AP_Math: allow for double EKF build
2021-07-22 16:01:00 +10:00
Andrew Tridgell
c6c197d4fb
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-22 16:01:00 +10:00
Andrew Tridgell
309500c84f
AP_HAL: allow for double EKF build
2021-07-22 16:01:00 +10:00
Andrew Tridgell
ae013dd5e6
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-05 16:09:34 +10:00
Andrew Tridgell
2ac01f207a
AP_Notify: disable DShot buzzer by default
2021-07-04 18:28:20 +10:00
Andy Piper
b5bb401b97
AP_Notify: re-enable display on 1Mb boards
2021-07-04 08:24:40 +10:00
Andrew Tridgell
2d4e77e9b1
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-04 08:24:17 +10:00
Andrew Tridgell
bf867fb792
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-04 08:23:29 +10:00
Randy Mackay
8722bb7ff9
GCS_MAVLink: send water depth and temp
2021-07-04 08:19:11 +10:00
Andrew Tridgell
937f316d14
AP_Common: use longitude scaling from definitions.h
2021-07-04 08:19:11 +10:00
Andrew Tridgell
0e37a44942
AP_Math: fixed the value LATLON_TO_CM
...
it didn't have enough digits of precision, and was inconsistent with
LOCATION_SCALING_FACTOR
2021-07-04 08:19:11 +10:00
Peter Barker
3134e15c77
AP_BattMonitor: correct static_assert call
2021-07-04 08:19:11 +10:00
Peter Barker
6de7d1d1df
AP_HAL_SITL: reduce scope of loop variable
2021-07-04 08:19:11 +10:00
Leonard Hall
e21b8a5b29
AC_WPNav: use shaping_tc_z_s for terrain following time constant.
2021-07-04 08:19:11 +10:00
Leonard Hall
68b882d404
AC_AttitudeControl: Add shaping_tc_z_s accessor
2021-07-04 08:19:11 +10:00
Andrew Tridgell
86e8731fc5
AP_Mount: fixed longitude subtraction
2021-07-04 08:19:11 +10:00
Peter Barker
b7b7c7d86b
AP_Common: add test for longitude wrapping
2021-07-04 08:19:11 +10:00
Andrew Tridgell
17193d3175
AP_Common: fixed Location class for wrap at 180 degrees longitude
...
this allows us to fly missions across the date line
2021-07-04 08:19:11 +10:00
Leonard Hall
83b4616a7b
AC_PosControl: fixup ekf reset
2021-07-04 08:19:11 +10:00
Andrew Tridgell
92e407a0bc
AP_IRLock: convert SITL backends to double precision position
2021-07-04 08:19:11 +10:00
Andrew Tridgell
a82890c0db
AC_PrecLand: convert SITL backends to double precision position
2021-07-04 08:19:11 +10:00
Andrew Tridgell
f45ef772f3
AP_Math: added matrix3 tofloat and todouble
2021-07-04 08:19:11 +10:00
Andrew Tridgell
214d9ad0f8
AP_Common: added double methods for SITL
2021-07-04 08:19:11 +10:00
Andrew Tridgell
b0f2545a9f
SITL: convert to double precision for positions
2021-07-04 08:19:11 +10:00
Andrew Tridgell
d2e94a49b7
AC_WPNav: convert circle, loiter and WPNav to double position
2021-07-04 08:19:11 +10:00
Andrew Tridgell
0af57de50c
AC_AttitudeControl: convert poscontrol to use double position
2021-07-04 08:19:11 +10:00
Andrew Tridgell
e6a1cee08f
AC_PID: convert AC_P_2D to double
2021-07-04 08:19:11 +10:00
Andrew Tridgell
c2211db91d
AP_Math: implement double versions of some position control methods
2021-07-04 08:19:11 +10:00
Andrew Tridgell
d40475cf7b
AP_Math: define postype_t and vectors
2021-07-04 08:19:11 +10:00
Andrew Tridgell
683f7949fd
HAL_SITL: implement initial GPS position offsets
2021-07-04 08:19:11 +10:00