Lucas De Marchi
4f8d2059f8
AP_Math: use right epsilon for is_equal()
...
We are calling fabsf(), which returns a float. We should use the epsilon
from float type, not from the argument type passed to fabsf().
On the other hand when the double version is instantiated we do want to
use the std::numeric_limits<double>::epsilon() value.
This adds a branch to the function, but it's removed when the function
is intantiated by the compiler since the type is known at compile-time.
Fixes this warning when building for PX4:
../../libraries/AP_Math/AP_Math.cpp: In instantiation of 'typename std::enable_if<std::is_floating_point<typename std::common_type<_Tp, _Up>::type>::value, bool>::type is_equal(Arithmetic1, Arithmetic2) [with Arithmetic1 = double; Arithmetic2 = double; typename std::enable_if<std::is_floating_point<typename std::common_type<_Tp, _Up>::type>::value, bool>::type = bool]':
../../libraries/AP_Math/AP_Math.cpp:23:66: required from here
../../libraries/AP_Math/AP_Math.cpp:17:29: warning: implicit conversion from 'float' to 'double' to match other operand of binary expression [-Wdouble-promotion]
return fabsf(v_1 - v_2) < std::numeric_limits<decltype(v_1 - v_2)>::epsilon();
^
2017-01-27 12:15:19 -08:00
priseborough
784fa6fed8
AP_NavEKF3: fix compiler error
2017-01-27 16:57:42 +09:00
priseborough
6d53ab7b76
AP_GPS: minor comment change
2017-01-27 16:57:42 +09:00
priseborough
2c36da2b21
AP_NavEKF3: relocate perf monitor to count all three mag components
2017-01-27 16:57:42 +09:00
priseborough
a63eac8073
AP_NavEKF2: Add missing perf_end
2017-01-27 16:57:42 +09:00
priseborough
4d958952f6
AP_NavEKF3: use standard unit descriptor for milliseconds
2017-01-27 16:57:42 +09:00
priseborough
7ea37029b6
AP_NavEKF2: use standard unit descriptor for milliseconds
2017-01-27 16:57:42 +09:00
priseborough
4a490d522e
AP_GPS: use standard unit descriptor for milliseconds
2017-01-27 16:57:42 +09:00
priseborough
b5ba1d0346
AP_NavEKF3: protect against large delay values returned by the GPS library
2017-01-27 16:57:42 +09:00
priseborough
be0096e812
AP_GPS: Allow the user to specify the GPS time delay
...
If the user sets a non-zero value of the delay it will be used in preference over the default value for that GPS type.
If the GPS type is unknown and the parameter is set to zero, then a default delay of 1 sample period will be used (eg 200ms for 5Hz).
2017-01-27 16:57:42 +09:00
priseborough
4540faf6af
AP_NavEKF3: Improve waiting for GPS configuration
...
Do not time out and provide an escalating series of messages. We may need to adjust the time thresholds used for escalation.
Do not wait if the EKF is not using the GPS.
2017-01-27 16:57:42 +09:00
priseborough
52e8f687d9
AP_NavEKF3: fix logic bug introduced by magnetometer use changes
2017-01-27 16:57:42 +09:00
priseborough
a133d55b6d
AP_NavEKF3: Allow copters to fly with magnetometers disabled
...
Copter operation without a magnetometer is limited to constant position and relative position modes only (no GPS or range beacon fusion permitted)
Copter optical flow operation without a magnetometer is permitted.
The ability of planes to takeoff/launch without a magnetometer and align the yaw using the GPS velocity is retained.
2017-01-27 16:57:42 +09:00
priseborough
2e5ac40ef6
AP_NavEKF3: remove unnecessary stdio includes
2017-01-27 16:57:42 +09:00
priseborough
8688d1ddac
AP_NavEKF3: Improve range finder selection logic
...
Fixes bug that could leave it locked out of range finder use.
2017-01-27 16:57:42 +09:00
priseborough
7e8f3fca53
AP_NavEKF3: Address review comments
...
Removes a leftover debug printf statement.
Fixes documentation errors.
Replace remaining fmaxf function calls with Ardupilot MAX function
2017-01-27 16:57:42 +09:00
priseborough
b723966b8d
AP_NavEKF2: Add protection against bad GPS time delay values
...
Prevent bad values for GPS time delay pushing the GPS time stamp outside the range of IMU data contained in the buffer. If this occurs it can prevent the GPS measurements from being fused and cause loss of navigation.
2017-01-27 16:57:42 +09:00
priseborough
e2757c17c8
AP_AHRS_NavEKF: fix ekf variable naming and initialisation
2017-01-27 16:57:42 +09:00
priseborough
59ee074560
AP_NavEKF3: Remove EKF2 names
2017-01-27 16:57:42 +09:00
priseborough
b862f0d7ad
AP_NavEKF3: Enable use of GPS delay value from returned by the driver
...
Use the time delay returned by the GPS driver.
Wait long enough for the GPS configuration to be determined, but time out after 30 seconds and warn the user that a default value for time delay will be used.
2017-01-27 16:57:42 +09:00
Andrew Tridgell
bdc0630ccf
AP_GPS: added all_configured() function
...
used for EKF to tell if gps_lag is valid
2017-01-27 16:57:42 +09:00
Andrew Tridgell
5d18f3a453
AP_GPS: added backend specific get_lag() function
...
the ublox7 and 8 seem to produce lower lag, around 120ms. Separately
we should also look at running these at 10Hz and see if that helps.
2017-01-27 16:57:42 +09:00
priseborough
69a47d7522
AP_NavEKF3: Improve reporting of buffer allocation
2017-01-27 16:57:42 +09:00
priseborough
ceb42225fd
AP_NavEKF3: Ensure enough time to fill buffers when starting filter
2017-01-27 16:57:42 +09:00
priseborough
a8fd1d8bcd
AP_NavEKF3: fix potential time-stamping bug
...
Use a consistent time reference
2017-01-27 16:57:42 +09:00
priseborough
8d1733cee6
AP_NavEKF3: Use FIR filtered airspeed
...
Switch to use of an airspeed reading averaged across the raw sensor readings. since the last update.
This avoids use of the IIR which requires a larger time delay compensation and violates the assumption of uncorrelated noise.
The time delay parameter has been reduced to compensate for the removal of the airspeed IIR filtering.
2017-01-27 16:57:42 +09:00
priseborough
9261c34097
AP_NavEKF3: Update default GPS delay
...
This value is a compromise between what works best for a Ublox 6 which is around 200msec delay and the more recent 7 and 8 series receivers that are around 120msec delay.
2017-01-27 16:57:42 +09:00
priseborough
ed5039823f
AP_NavEKF3: Adapt sensor buffer lengths
...
Adapt the lengths of the IMU and observations buffers on startup to the specified time delays and update rates.
This does require the EKF to be re-started if time delays are changed.
2017-01-27 16:57:42 +09:00
priseborough
2cc48f78a7
AP_NavEKF3: Update range beacon fusion
...
Add innovation consistency check to alignment filter and publish alignment filter status data
2017-01-27 16:57:42 +09:00
priseborough
ed0a90ae5f
AP_Beacon: Apply correct conversion from Pozyx beacon earth frame
...
The Pozyx beacon system uses a North, West, Up axis system and the APM software uses a North, East, Down convention.
2017-01-27 16:57:42 +09:00
priseborough
a02a84560f
DataFlash: log 3-state range beacon estimator states for EKF3
2017-01-27 16:57:42 +09:00
priseborough
92b8c33b19
AP_NavEKF3: publish 3-state range beacon estimator states
2017-01-27 16:57:42 +09:00
priseborough
7c53573a0c
AP_NavEKF3: Allow range beacon use with intermittent GPS
2017-01-27 16:57:42 +09:00
priseborough
e5e4883c72
AP_NavEKF3: Fix GPS use inhibit interface documentation
2017-01-27 16:57:42 +09:00
priseborough
c7e1828238
AP_NavEKF3: improve variable name
2017-01-27 16:57:42 +09:00
murata
32b60432b4
AP_Baro: Add format specification.
...
AP_Baro: Add format specification.
2017-01-27 18:20:22 +11:00
murata
37a55c38a1
StorageManager: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
9de6318b77
PID: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
4a60850558
GCS_MAVLink: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
474569c91b
GCS_Console: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
81ef065c53
AP_RPM: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
17c62ffe4c
AP_RangeFinder: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
59454b0c6f
AP_Param: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
60b63bb69e
AP_Parachute: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
77c402556b
AP_OpticalFlow: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
3ce2ca488a
AP_Notify: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
2d32211c81
AP_Mount: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
92eb179acf
AP_Motors: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
9481e0d158
AP_Mission: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
aa3fb830af
AP_Menu: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
0733d760f6
AP_HAL_VRBRAIN: Unify from print or println to printf.
...
AP_InertialSensor: Unify from print or printin to printf.
2017-01-27 18:20:22 +11:00
murata
67fdbf5c2d
AP_HAL_SITL: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
3200f24106
AP_GPS: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
37873717de
AP_Declination: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
50eead63cc
AP_Common: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
f18b8844bf
AP_BattMonitor: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
78a4cab06b
AP_Baro: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
743d6e6db4
AP_Airspeed: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
836c8aa684
RC_Channel: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
9b1dadd93e
AP_HAL_PX4: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
5e11497332
AC_PID: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
1b2ea27a68
DataFlash: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
30bbe7abb6
AP_HAL_Linux: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
ec4cce15a1
AP_Math: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
2643e7e906
AP_InertialSensor: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
03bf57219b
AP_HAL: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
af47a8e91c
AP_Compass: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
Lucas De Marchi
a73c1daa2e
AP_HAL: Device: remove unused function to read registers
...
Callers can use be16toh(), be32toh(), etc. There's no need to have a
special function here for each type.
2017-01-26 23:18:27 -08:00
Lucas De Marchi
f6a4a4dbe8
AP_Airspeed: MS5525: use common macros to deal with endianness
...
Instead of calling a special method in the device, just use be16toh()
which is implemented for all platforms in our special sparse-endian.h
file. It has the advantage of using a special type for different
endianness and makes no assumption we are running on LE.
2017-01-26 23:18:27 -08:00
Lucas De Marchi
14519e90ff
AP_HAL: Device: remove trailing whitespaces
2017-01-26 23:18:27 -08:00
mirkix
2f8452b8a6
AP_Notify: Add BeagleBone Blue
2017-01-26 23:15:52 -08:00
mirkix
6d99bb0937
AP_HAL_Linux: Add BeagleBone Blue to GPIO_BBB
2017-01-26 23:15:52 -08:00
mirkix
954267fc22
AP_HAL_Linux: Add BeagleBone Blue to RCInput_AioPRU
2017-01-26 23:15:52 -08:00
mirkix
d16ab890e8
AP_HAL_Linux: Add BealgeBone Blue
2017-01-26 23:15:52 -08:00
mirkix
093407e8e8
AP_HAL: Add BeagleBone Blue
2017-01-26 23:15:52 -08:00
Andrew Tridgell
848c03650b
AP_RangeFinder: removed old PX4 rangefinder drivers
2017-01-27 18:12:20 +11:00
Andrew Tridgell
3b42289475
AP_RangeFinder: added doc listing for TrOneI2C
2017-01-27 18:11:29 +11:00
Andrew Tridgell
683e549ed7
AP_RangeFinder: added WHOAMI and crc check
...
thanks to Francisco for review comments
2017-01-27 18:11:29 +11:00
Andrew Tridgell
67a2441b12
AP_Math: started a set of crc functions
...
these functions are often common between drivers
2017-01-27 18:11:29 +11:00
Andrew Tridgell
68ff71e4c0
AP_RangeFinder: added trone in-tree driver
2017-01-27 18:11:29 +11:00
mirkix
ad7e21b860
AP_HAL_Linux: fix compiler warning in AnalogIn_IIO
2017-01-26 23:05:46 -08:00
Randy Mackay
0ce8cf3cf4
AP_Notify: remove ToshibaLED_PX4
2017-01-27 15:24:09 +09:00
Randy Mackay
98db17e9a1
AP_Notify: example sketch uses ToshibaLED_I2C driver
2017-01-27 15:24:09 +09:00
Randy Mackay
d8ae56f455
AP_Notify: pixhawk and vrbrain use in-tree ToshibaLED
2017-01-27 15:24:09 +09:00
Randy Mackay
eedfe13f9c
AP_Notify: fix ToshibaLED_I2C and check both I2C buses
...
the rgb value was never being set meaning the led was always off
external bus is checked first
2017-01-27 15:24:09 +09:00
Randy Mackay
0e20c8040c
AP_Notify: rgbled methods protected and add override
...
no functional change
2017-01-27 15:24:09 +09:00
Randy Mackay
855125381d
AP_Compass: relax compass cal fitness and consistency checks
2017-01-27 11:20:02 +09:00
Randy Mackay
b5573f6665
AP_Notify: add PX4_V4 check to PixRacerLED
2017-01-27 11:01:17 +09:00
iseries1
4467a2cd16
AP_Notify: enable PixRacer onboard LED
...
Enable PixRacer onboard LED to show status of flight controller
2017-01-27 11:01:17 +09:00
Randy Mackay
8041a7f183
AP_Notify: add PixRacerLED
2017-01-27 11:01:17 +09:00
iseries1
e6a643f805
AP_HAL: define pixracer LED pins
2017-01-27 11:01:17 +09:00
murata
315f7c6a9a
AP_Notify: Represent the base of ASCII numeric code with letters.
2017-01-26 23:59:11 +01:00
Tom Pittenger
da48b24a5c
AP_Landing: add logging as new "LAND" field
2017-01-26 13:11:45 -08:00
Tom Pittenger
644f75942b
AP_Landing: refactor bool variables into flag stucts
2017-01-26 13:11:45 -08:00
Tom Pittenger
bdafc2c025
AP_Landing: re/move complete flag into backend
...
the complete flag was only ever true during FLIGHT_LAND_FINAL so we just check for that now instead
2017-01-26 13:11:45 -08:00
Michael du Breuil
4cf1c74c62
AP_Landing + Plane: Check for land complete before requesting disarm
2017-01-26 13:11:44 -08:00
Tom Pittenger
2ccd91d88f
AP_Landing: rename stage enum
2017-01-26 13:11:44 -08:00
Tom Pittenger
650e694eb1
Plane: move landing.reset to landing.do_land()
2017-01-26 13:11:44 -08:00
Tom Pittenger
61bc0a6206
Plane: check stage==LAND instead of landing.in_progress
2017-01-26 13:11:44 -08:00
Michael du Breuil
3e66dd10d7
Plane: Move landing stages inside AP_Landing and refactor
2017-01-26 13:11:44 -08:00