Lucas De Marchi
d83609b24c
DataFlash: remove check for max BARO instances
...
For all supported boards we allow more than 1 baro instance.
2015-10-21 10:05:18 +11:00
Lucas De Marchi
4d3229daa2
AP_Baro: remove check for HAL_CPU_CLASS
...
We don't support HAL_CPU_CLASS <= HAL_CPU_CLASS_16 anymore. This makes
BARO_MAX_INSTANCES and BARO_MAX_DRIVERS constant for all supported
boards.
2015-10-21 10:05:18 +11:00
Lucas De Marchi
d1ac6cbd4c
GCS_MAVLink: remove check for vibe check
...
For all supported boards we have vibration check.
2015-10-21 10:05:18 +11:00
Lucas De Marchi
121eeb4b58
DataFlash: remove check for vibe check
...
For all supported boards we have vibration check.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
30a50b362f
AP_InertialSensor: remove check for vibe check
...
For all supported boards we have vibration check.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
db62e55753
AP_InertialSensor: remove check for max INS instances
...
For all supported boards the maximum number of instances is 3.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
ae77c4b692
GCS_MAVLink: remove check for max INS instances
...
For all supported boards the maximum number of instances is 3.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
f99d64e621
DataFlash: remove check for max INS instances
...
For all supported boards the maximum number of instances is 3.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
3114a988f8
AP_Arming: remove check for max INS instances
...
For all supported boards the maximum number of instances is 3.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
a147b97d2b
AP_InertialSensor: remove check for HAL_CPU_CLASS
...
We don't support HAL_CPU_CLASS <= HAL_CPU_CLASS_16 anymore. This makes
INS_MAX_INSTANCES, INS_MAX_BACKENDS and INS_VIBRATION_CHECK constant for
all supported boards.
2015-10-21 10:05:17 +11:00
Lucas De Marchi
4480956c68
AP_InertialSensor: MPU6000: remove dead code for !FAST_SAMPLING
...
The code with ifdef for !FAST_SAMPLING is bit rotting and the example
for AP_InertialSensor is currently broken for this case. Instead of
adding more ifdefs, remove the legacy implementation for !FAST_SAMPLING
since we don't support it anymore.
Reported by Grant:
/home/grant/3dr/ardupilot/libraries/AP_InertialSensor/AP_InertialSensor_MPU6000.cpp:
In member function 'void AP_InertialSensor_MPU6000::_accumulate(uint8_t*,
uint8_t)':
/home/grant/3dr/ardupilot/libraries/AP_InertialSensor/AP_InertialSensor_MPU6000.cpp:776:20:
error: no match for 'operator+=' (operand types are 'Vector3l {aka
Vector3<long int>}' and 'Vector3f {aka Vector3<float>}')
_accel_sum += accel;
/home/grant/3dr/ardupilot/libraries/AP_InertialSensor/AP_InertialSensor_MPU6000.cpp:777:19:
error: no match for 'operator+=' (operand types are 'Vector3l {aka
Vector3<long int>}' and 'Vector3f {aka Vector3<float>}')
_gyro_sum += gyro;
2015-10-21 10:05:17 +11:00
Caio Marcelo de Oliveira Filho
75add595a0
AP_HAL_Empty: remove empty example
...
There are hello world examples elsewhere, and a bit misleading. It
doesn't test the Empty implementation, but the current board
implementation.
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
5781164624
AP_HAL_PX4: remove unnecessary includes from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
22137b51e3
AP_PerfMon: remove unnecessary board include from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
ff13a7bf1f
GCS_Console: remove unnecessary board include from examples
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
5ad8077016
AP_Parachute: remove unnecessary board include from examples
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
417651b1dc
AP_Motors: remove unnecessary board includes from examples
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
1fc801c2c9
AP_ADC: remove unnecessary board includes from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
918a339660
AP_Declination: remove unnecessary board include from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
42a111f5df
AP_Mount: remove unnecessary board include from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
de98ec7c1a
AP_OpticalFlow: fix build of example for PX4
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
ae9bc62e84
AP_OpticalFlow: remove unnecessary includes from example
2015-10-21 09:16:12 +11:00
Caio Marcelo de Oliveira Filho
817248b2f5
AP_Airspeed: remove unnecessary includes from example
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
db1491f079
AP_GPS: remove unnecessary board includes from examples
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
d840fc0680
AP_Notify: remove unnecessary includes from examples
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
d51adf2523
AP_Notify: fix build of ToshibaLED_test in PX4
...
The unused variables were causing error due to shadowing. The
AP_Scheduler library was missing from make.inc.
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
191cff2035
AP_InertialSensor: remove unnecessary includes from examples
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
118de8d01f
AP_Mission: remove unnecessary includes from example
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
5d2279a554
AP_RangeFinder: remove unnecessary includes from example
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
6566deff66
AP_RangeFinder: fix compilation for Linux/SITL
...
Add libraries that those boards depend on. This should be handled in the
future elsewhere (and once for each board), but for now let's make it
compile again.
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
4731f87683
AP_Common: add Makefile and clean up includes
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
a3169d0a34
AP_Compass: remove unnecessary includes from example
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
9b73fcb6f8
AP_AHRS: remove unnecessary includes in the example
2015-10-21 09:16:11 +11:00
Caio Marcelo de Oliveira Filho
24178c3e10
AP_Baro: remove unnecessary includes in example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
b028219c94
DataFlash: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
03b0c76553
StorageManager: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
d32207008d
Filter: remove unnecessary includes from examples
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
8e1e77007e
AP_BattMonitor: remove unnecessary includes in example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
9a2e0c2fd9
AC_PID: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
09579cb6e3
GCS_MAVLink: remove unnecessary includes
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
e8d9c4dc9b
PID: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
12850742f9
AP_Scheduler: remove unnecessary includes from example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
b98bf2a65e
AP_HAL: remove unnecessary includes from examples
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
c95a89411c
AP_HAL_Linux: remove unnecessary includes in example
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
e36728d1db
RC_Channel: make example compile again
...
By adding a missing library dependency. Also remove unnecessary
includes, in particular including each board HAL file is not needed
anymore.
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
5020db4481
AP_Math: remove unnecessary includes
...
Remove unnecessary includes, in particular the includes for specific
boards. The list of libraries for 'polygon' example was updated so that
the example compiles again.
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
b29d6eff5d
AP_HAL: add an AP_HAL_MAIN_CALLBACKS() macro
...
This is going to be used by vehicles that already have an object with
setup/loop functions. The vehicle object will just implement the
HAL::Callbacks interface.
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
19b4ca60c4
AP_HAL: provide AP_HAL_MAIN()
...
Move the macros to a single place and reduce the variations not based on
board, but based on
- The name of the entry-point function, specified by AP_MAIN;
- Whether it contains argc/argv arguments or not.
The goal here is that programs (vehicles and examples) don't need to
include all possible boards to define a main function. Further patches
will change the programs.
2015-10-21 09:16:09 +11:00
Caio Marcelo de Oliveira Filho
e30457a84d
AP_HAL_VRBRAIN: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
cb61bdd8d1
AP_HAL_PX4: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
e18884a328
AP_HAL_AVR: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
1649104382
AP_HAL_FLYMAPLE: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
3c22564307
AP_HAL_Linux: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
e4ef0e43c0
AP_HAL_SITL: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
0c837326b5
AP_HAL_Empty: merge init() and run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
6fc60e2d5e
AP_HAL: remove unused init() from the interface
...
And make run() pure virtual to ensure future implementations provide it.
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
fe1dd1be25
AP_HAL_VRBRAIN: implement HAL::run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
0dab23c4df
AP_HAL_PX4: implement HAL::run()
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
3fe1d86c80
AP_HAL_AVR: implement HAL::run() for APM1 and APM2
2015-10-21 09:16:08 +11:00
Caio Marcelo de Oliveira Filho
51bc25a2ab
AP_HAL_FLYMAPLE: implement HAL::run()
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
32dc822470
AP_HAL_Linux: implement HAL::run()
...
Added a note about the different ordering between setup callback and
scheduler initialized call.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
c6292ff097
AP_HAL_SITL: implement HAL::run()
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
346ab77c27
AP_HAL_Empty: implement HAL::run()
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
72cd5ef185
AP_HAL: add run() method
...
Add run method, that encapsulate any mainloop logic on behalf of the
client code. The setup/loop functions are passed via a HAL::Callbacks
interface. The AP_HAL_MAIN() macro should be kept as trivial as
possible.
This interface should be implemented by the existing vehicle objects. To
make easy for the examples (that don't have the equivalent of vehicle
objects), a FunCallbacks was added to bridge to the functions directly.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
ec52df991c
build: compile only the HAL files needed by the board
...
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
2e464a53c2
AP_HAL: make code not depend on concrete HAL implementations
...
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.
A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.
The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.
Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.
The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
Andrew Tridgell
79d85f7e10
AP_AHRS: wait for up to 10 samples to get a valid accel vector
...
the initial accel vectors can be invalid
2015-10-21 09:09:11 +11:00
Andrew Tridgell
eac91430a2
AP_AHRS: update _dcm_attitude() on reset()
...
this prevents the roll/pitch being overwritten by the AHRS_NavEKF
update code on next update
2015-10-21 08:58:30 +11:00
Jonathan Challinger
c35605fa04
AP_AHRS_DCM: align tilt during initialization
2015-10-21 08:34:02 +11:00
Jonathan Challinger
78af6d61de
AP_Compass: only play compass cal cancel tone if a cal was running
2015-10-21 08:24:49 +11:00
Jonathan Challinger
3b480bd6ec
AP_InertialSensor: fix order of accelerometer corrections
2015-10-21 08:22:36 +11:00
Jonathan Challinger
562db11159
AP_Compass: fix potential AP_Notify concurrency problem
2015-10-20 20:54:02 +09:00
Paul Riseborough
cd8b9c7d26
AP_NavEKF: prevent high rate mag data locking out other data fusion
2015-10-20 20:16:04 +11:00
Paul Riseborough
ab8c28a7cc
AP_NavEKF: Fix bug allowing takeoff in GPS modes without aiding
...
The legacy EKF switches GPs aiding on on arming, whereas the new EKF switches it on based on GPS data quality.
This means the decision to arm and therefore the predicted solution flags must now reflect the actual status of the navigation solution as it will no longer change when motor arming occurs.
2015-10-20 20:16:00 +11:00
Paul Riseborough
e076ed7f66
AP_NavEKF2: Remove compiler warning message
2015-10-20 18:16:16 +11:00
Andrew Tridgell
b0aa7cb990
DataFlash: use new perf API
2015-10-20 18:16:16 +11:00
Andrew Tridgell
cb0f7cb370
NavEKF2: use new perf counter API
2015-10-20 18:16:15 +11:00
Andrew Tridgell
f66966ccae
NavEKF: use new perf counter API
2015-10-20 18:16:15 +11:00
Andrew Tridgell
8dbb51c64e
HAL_PX4: implement AP_HAL::Util perf calls for PX4
2015-10-20 18:09:57 +11:00
Andrew Tridgell
28fa05c965
AP_HAL: added generic perf counter
...
simple wrapper around PX4 API, but ready for use by other HALs
2015-10-20 18:09:57 +11:00
Paul Riseborough
60c2e81d19
AP_NavEKF2: Apply optimisations to declination fusion covariance update
...
These are the same type of optimisations that were successful with the magnetometer fusion
2015-10-20 15:21:41 +11:00
Paul Riseborough
0054291cf4
AP_NavEKF2: Apply optimisations to side-slip fusion covariance update
...
These are the same optimisations that were successful with the magnetometer fusion
2015-10-20 15:21:40 +11:00
Paul Riseborough
5e4bc4e954
AP_NavEKF2: Apply optimisations to airspeed fusion covariance update
...
These are the same optimisations that were successful with the magnetometer fusion
2015-10-20 15:21:40 +11:00
Paul Riseborough
a29147d6d2
AP_NavEKF2: Apply optimisations to optical flow covariance update
...
These are the same optimisations that were successful with the magnetometer fusion
2015-10-20 15:21:40 +11:00
Paul Riseborough
b5e43288d4
AP_NavEKF2: Down to 12 from 14 usec for perf test[8]
2015-10-20 15:21:40 +11:00
Paul Riseborough
0f530bb5a0
AP_NavEKF2: Correct comments
2015-10-20 15:21:40 +11:00
Andrew Tridgell
d1dfd5fd01
AP_NavEKF2: use common header for optimisation level and irq disable
2015-10-20 15:21:40 +11:00
Andrew Tridgell
a017ae7e00
AP_NavEKF2: down to 218us for test[9]
2015-10-20 15:21:40 +11:00
Andrew Tridgell
fc23be8025
AP_NavEKF2: enable fine grained perf tuning for mag fusion
2015-10-20 15:21:40 +11:00
Andrew Tridgell
b6c1352e4c
AP_NavEKF2: added 10 test perf counters
...
used for fine grained performance tuning
2015-10-20 15:21:40 +11:00
Paul Riseborough
824436dfb6
AP_NavEKF2: Explicitly define constants as floats
2015-10-20 15:21:40 +11:00
Paul Riseborough
2fbd050418
AP_NavEKF2: Use blended accelerometer data
...
If high vibration levels cause offsets between the two, it switches to the accelerometer with lower vibration levels. The default behaviour is to use the average of both accelerometers.
2015-10-20 15:21:40 +11:00
Paul Riseborough
240ea92947
AP_NavEKF: Re-center gyro bias limits on arming
...
Allows the gyro bias to vary by up to +-10 deg/second before and after arming.
2015-10-20 15:21:39 +11:00
Paul Riseborough
8515dda727
AP_NavEKF: Fix bug in vertical position derivative calculation
2015-10-20 15:21:39 +11:00
Paul Riseborough
2b13020c19
AP_NavEKF2: Fix bug in vertical position derivative calculation
2015-10-20 15:21:39 +11:00
Paul Riseborough
f6ad79688e
AP_NavEKF2: Update start sequence console messages
2015-10-20 15:21:39 +11:00
Paul Riseborough
6b3e114cd6
AP_NavEKF: Enable EKF1 to be disabled to reduce frame over-runs
2015-10-20 15:21:39 +11:00
Paul Riseborough
1a1236f764
AP_NavEKF2: Update magnetometer fusion documentation
2015-10-20 15:21:39 +11:00
Paul Riseborough
8526a8ba7e
AP_NavEKF2: Level processor loading between frames
...
Don't fuse other measurements on the same frame that magnetometer measurements arrive if running at a high frame rate as there will be insufficient time to complete other operations.
2015-10-20 15:21:39 +11:00
Paul Riseborough
225b81baf4
AP_NavEKF2: Prevent users breaking filter by setting excessive time delays
...
If time deelays greater than the IMU buffer length are used, then it is possible for measurements to be dropped.
2015-10-20 15:21:39 +11:00
Paul Riseborough
a1d6c7ae1e
AP_NavEKF2: Improve timing accuracy
...
This parameter is a compromise between numerical accuracy of the covariance prediction and sensor timing jitter
Further testing has shown that doing covariance prediction and sensor fusion every 10msec has no observable effect on fusion health and reduces timing hitter noise on magnetometer observations during high rate maneovures
2015-10-20 15:21:39 +11:00
Paul Riseborough
e0ed2dab63
AP_NavEKF2: Adjust IMU FIFO buffer for different IMU data rates
...
The values chosen ensure that up to consistent 250 msec of sensor delay compensation is available for different platform types
The revised values also ensure that fusion occurs at different time to when the 10Hz magnetometer measurements are read
2015-10-20 15:21:39 +11:00
Paul Riseborough
baa8692960
AP_NavEKF2: Allow use of magnetometer learning during optical flow nav
...
Adds fusion of the declination when there are no earth relative measurements so that the declination angle and therefore the copters yaw angle have an absolute reference.
This enables the length (but not the declination) of the earth field North/East states to change along with the magnetometer offsets.
2015-10-20 15:21:38 +11:00
Paul Riseborough
1b8a93ef0c
AP_NavEKF2: Update function header comments
2015-10-20 15:21:38 +11:00
Paul Riseborough
6899767d28
AP_NavEKF2: Disable magnetic field learning if we have no absolute position reference
2015-10-20 15:21:38 +11:00
Paul Riseborough
0722ebe8a0
AP_AHRS: Add EKF variance checks
2015-10-20 15:21:38 +11:00
Paul Riseborough
242b9641c8
AP_NavEKF2: Fix in-air logic bug
2015-10-20 15:21:38 +11:00
Paul Riseborough
e7de2d3ea3
AP_NavEKF: Update magnetic field learning options
...
Provide an option to always do learning
Make field learning decision logic clearer
Change defaults so that plane learns when airborne
Change defaults so that Rover does not learn (large external magnetic interference)
2015-10-20 15:21:38 +11:00
Paul Riseborough
495809f211
AP_NavEKF2: Allow magnetic field learning to be faster
2015-10-20 15:21:38 +11:00
Paul Riseborough
84a02efd52
AP_NavEKF2: Improve efficiency of Z magnetometer fusion
2015-10-20 15:21:37 +11:00
Paul Riseborough
35b08849f7
AP_NavEKF2: Reduce effect of rounding errors on covariance prediction
2015-10-20 15:21:37 +11:00
Paul Riseborough
4e928bf294
AP_NavEKF2: Fix bug preventing pre-takeoff reference measurements
2015-10-20 15:21:37 +11:00
Paul Riseborough
71c399674a
AP_NavEKF2: Delay use of magnetic field states until off-ground
...
Magnetic interference whilst on the ground can adversely affect filter states. This patch ensures that the simpler and more robust magnetic heading observation method is used until the vehicle has cleared the ground.
2015-10-20 15:21:37 +11:00
Paul Riseborough
99c2dc41e0
AP_NavEKF2: Miscellaneous tuning changes
2015-10-20 15:21:37 +11:00
Paul Riseborough
2d44441d6b
DataFlash: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
ae830b44c4
AP_AHRS: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
840f307d58
AP_NavEKF: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
1323db10e8
DataFlash: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
e8037f94ad
AP_AHRS: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review
2015-10-20 15:21:37 +11:00
Paul Riseborough
47ae0f35f6
AP_NavEKF2: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
f63c32531c
AP_InertialNav: Address peer review comments
...
The decision to set the origin to zero has been moved out of the AHRS library and into the inertial nav library as this is consumer specific.
2015-10-20 15:21:36 +11:00
Paul Riseborough
58d57994f4
AP_AHRS: Rectify coding errors found during peer review
...
Fixes code that didn't take into account fall-through behaviour of C++ switch statements
Makes get_rigin furnction more generic allowing the consumer to decide what to do with an invalid origin
2015-10-20 15:21:36 +11:00
Paul Riseborough
27393855f1
AP_NavEKF2: Change assumed gyro calibration accuracy
...
If an external gyro calibration has been performed, we should assume that it has been done under static conditions
Otherwise it is pointless and we should allow the EKF to find its own gyro bias offsets.
2015-10-20 15:21:36 +11:00
Paul Riseborough
67a669fcdc
AP_NavEKF2: Correct comments for height measurement
2015-10-20 15:21:36 +11:00
Paul Riseborough
0dc570b5a5
AP_NavEKF2: Improve optical flow takeoff detection logic
...
Ensure takeoff detect status goes to false when on ground
2015-10-20 15:21:36 +11:00
Paul Riseborough
d3a6690e4f
AP_NavEKF2: Fix bugs preventing use of optical flow navigation
2015-10-20 15:21:36 +11:00
Paul Riseborough
24c0309e85
AP_InertialNav: Enable flight using EKF2
...
All EKF functions are accessed via the AHRS library enabling AHRS_EKF_TYPE to determine which EKF is being used by the control loops
2015-10-20 15:21:36 +11:00
Paul Riseborough
e65ae51564
AP_AHRS: Enable AP_InertialNav to access all EKF functions via AP_AHRS
...
This patch adds additional methods to the the AHRS library so that the AP_InertialNav library dow nto have to access the EKF directly. This enables Copter to fly using the EKF nominated by AHRS_EKF_TYPE.
It will also pave the way to elimination of the AP_InertialNav library.
2015-10-20 15:21:36 +11:00
Paul Riseborough
f062ed4180
AP_InertialNav: Add output method for rate of change of vertical position
2015-10-20 15:21:36 +11:00
Paul Riseborough
dab658f6ed
AP_NavEKF: Add methods to output and calculate vertical position derivative
2015-10-20 15:21:36 +11:00
Paul Riseborough
9e3d9d15fc
DataFlash: Log vertical position derivative output
2015-10-20 15:21:35 +11:00
Paul Riseborough
52fd369b2f
AP_NavEKF2: Add methods to output and calculate vertical position derivative
...
This patch calculates a derivative of the vertical position (positive down).
The derivative is exposed via a public function.
2015-10-20 15:21:35 +11:00
Andrew Tridgell
f5b5a3b0f8
AP_NavEKF: added EKF_DISABLE_INTERRUPTS
...
this helps with performance tuning
2015-10-20 14:37:41 +11:00
Andrew Tridgell
10fddf4c7e
AP_NavEKF: enable optimisation level 3 for the EKF
2015-10-20 14:36:56 +11:00
Andrew Tridgell
c9ec8b3f67
AP_Math: added O3 optimisation to core math libraries
...
this costs some flash space but speeds things up considerably
2015-10-20 14:36:53 +11:00
Andrew Tridgell
2ae0811458
AP_NavEK2: fixed perf counter names for EKF2
2015-10-20 14:36:49 +11:00
Randy Mackay
756d564b7c
Mission: sanity check command altitudes
2015-10-19 16:15:08 +09:00
Randy Mackay
acd8252e4b
Common: add location alt max definition
2015-10-19 16:15:05 +09:00
Randy Mackay
b751d2bb18
InertialSensor: remove gyro cal on first arming
2015-10-19 12:00:38 +09:00
Randy Mackay
09aef3a3b8
AP_Arming: remove ahrs check from ins
2015-10-16 13:50:58 +09:00
Randy Mackay
53b39b201b
AP_Arming: make ins check virtual
2015-10-16 13:50:57 +09:00
Randy Mackay
304a23923a
AP_Arming: add Bitmask parameter description
...
Also moved ARMING_CHECK to standard category
2015-10-16 13:50:56 +09:00
Randy Mackay
0cc4b6977e
AP_Arming: add compass consistency check
...
Also moved the offsets and mag field limits into definitions at top of
.cpp file
2015-10-16 13:50:55 +09:00
Randy Mackay
342651cc9b
AP_Arming: add board voltage checks
2015-10-16 13:50:54 +09:00
Randy Mackay
f5f31e4b31
AP_Arming: move ahrs health check after Accel/Gyro checks
...
If the AHRS is unhealthy because of accel or gyro problems we want those underlying problem reported first
2015-10-16 13:50:53 +09:00
Randy Mackay
0a21fe65e9
AP_Arming: do not report prearm_failure_reason when ahrs unhealthy
...
The EKF's prearm failiure message is more related to the position estimate rather than the ahrs's health
2015-10-16 13:50:52 +09:00
Randy Mackay
78c6287f95
AP_Arming: check health of all barometers
2015-10-16 13:50:50 +09:00
Randy Mackay
c716bfce88
AP_Arming: remove most exclamation marks
2015-10-16 13:50:49 +09:00
Randy Mackay
6b91beb3ff
AP_Arming: formatting changes
2015-10-16 13:50:48 +09:00
Andrew Tridgell
6f36267a66
AP_NavEKF: fixed EKF error message during 10 second warmup
2015-10-16 14:58:46 +11:00