Commit Graph

9923 Commits

Author SHA1 Message Date
Andrew Tridgell
52f2fce1d5 RC_Channel: prevent float exception with bad RCn_MIN/MAX/TRIM
thanks to Michael for finding this
2015-11-30 21:53:54 +11:00
Andrew Tridgell
335e621932 HAL_PX4: cope with PX4 header changes 2015-11-27 18:54:31 +11:00
Andrew Tridgell
ea38448372 AP_Relay: don't default to using two PWMs as relays on FMUv4 2015-11-27 18:54:31 +11:00
Andrew Tridgell
155e82c1b3 HAL_PX4: fixed PWM output for FMUv4 2015-11-27 18:54:31 +11:00
Andrew Tridgell
c34100f6a2 GCS_MAVLink: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
774e257a88 AP_InertialSensor: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
9835043dd5 HAL_PX4: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
8739c55d27 AP_Common: added ID for FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
6dd45998f4 AP_BattMonitor: support FMUv4 2015-11-27 18:54:30 +11:00
Andrew Tridgell
d8ee9feaac AC_AttitudeControl: fixed external tail gyro with no flybar
this sets up the tail pass-through for acro mode
2015-11-27 15:24:41 +09:00
Andrew Tridgell
47b9f6598a AP_Motors: allow change to heli rotor speed controls while armed
this helps a lot with tuning for gas helis
2015-11-27 15:12:03 +09:00
Randy Mackay
9e74222a3a ADSB: minor update to parameter descriptions
Also minor format fixes
2015-11-27 15:02:22 +09:00
Andrew Tridgell
e80ca592c4 AP_ADSB: update for new message format 2015-11-26 10:25:33 +11:00
Andrew Tridgell
2804434596 SITL: update ADSB for new format 2015-11-26 10:25:18 +11:00
Andrew Tridgell
76209de08e GCS_MAVLink: regenerate headers 2015-11-26 10:25:08 +11:00
Andrew Tridgell
2c7bfc7984 GCS_MAVLink: update ADSB_VEHICLE message 2015-11-26 10:24:56 +11:00
Paul Riseborough
ddb7d92fc8 AP_NavEKF2: Fix timing jitter in airspeed fusion
The airspeed observation buffer was only being checked when new data arrived instead of every frame which introduced some timing jitter. The buffer is now checked every filer update step.
The duplication and inconsistent naming of booleans used to indicate availability f data has been fixed.
2015-11-26 09:22:03 +11:00
Luis Vale Gonçalves
5e290daac5 GCS_MAVLink: libraries_Text_revision
text revision of messages
2015-11-26 08:10:15 +11:00
Luis Vale Gonçalves
f02e13b107 AP_Terrain: libraries_Text_revision
text revision of messages
2015-11-26 08:10:15 +11:00
Luis Vale Gonçalves
40caec8afb AP_NavEKF: libraries_Text_revision
text revision of messages
2015-11-26 08:10:14 +11:00
Luis Vale Gonçalves
e9ba768bae AP_Arming: libraries_Text_revision
text revision of messages
2015-11-26 08:08:58 +11:00
Andrew Tridgell
ce1b68cce8 AP_ADSB: ensure stack allocation Location is initialised 2015-11-23 19:48:57 +11:00
Andrew Tridgell
f9e865ef5e AP_ADSB: don't disable ADSB permanently on init fail
we may be low on memory on only this boot
2015-11-23 19:47:30 +11:00
Tom Pittenger
426e40d30e AP_ADSB: new ADS-B library support
- contains a list of ADS-B vehicles
- does threat analysis and sets a flag when threat is found
- dynamically allocated database, consumes 40*25 =1kB of RAM when param ADSB_ENABLE = 1
2015-11-23 19:45:40 +11:00
Tom Pittenger
bb4f0783ad AP_HAL_SITL: created ADS-B simulator to generate additional ghost aircraft within SITL
- The values are very aggressive, you'll come into contact with another aircraft very soon
- Credit goes to Tridge for this work
- This also allows hardware attached via UART to feed real aircraft into the simulator

This feature is enabled with the following command:
sim_vehicle -A --adsb
2015-11-23 19:45:40 +11:00
Tom Pittenger
f88de986bc SITL: created ADSB simulator to generate additional ghost aircraft within SITL
The values are very aggressive, you'll come into contact with another aircraft very soon
Credit goes to Tridge for this work

This feature is enabled with the following command:
sim_vehicle -A --adsb
2015-11-23 19:45:40 +11:00
Tom Pittenger
4b5af2d726 GCS_MAVLink: files generated from new ADSB_VEHICLE msg 2015-11-23 19:45:40 +11:00
Tom Pittenger
af93c8da4e GCS_MAVLink: new mavlink msg ADSB_VEHICLE 2015-11-23 19:45:40 +11:00
Siddharth Purohit and Paul Riseborough
3014eb4001 AP_NavEKF2: Rework measurement buffer refactor
These changes were pair coded an tested by Siddharth Purohit and Paul Riseborough

Fix indexing errors
Move buffer code into a separate file
Split observer and IMU/output buffers and remove duplicate sample time
Optimise observation buffer search
Reduce maximum allowed fusion age to 100 msec
2015-11-23 19:42:06 +11:00
Siddharth Bharat Purohit
b3c8dcee34 AP_NavEKF2: measurement buffer refactor 2015-11-23 19:34:50 +11:00
Andrew Tridgell
77a67d73e7 SITL: fill in RPM from JSBSim 2015-11-23 14:30:47 +11:00
Andrew Tridgell
45ea2a9b68 AP_RPM: added a SITL RPM backend 2015-11-23 14:30:42 +11:00
Andrew Tridgell
223ce2b6aa SITL: allow FDM models to provide voltage, current and RPM 2015-11-23 13:46:27 +11:00
Andrew Tridgell
7a5c4ec65d HAL_SITL: use battery info from FDM if available 2015-11-23 13:31:29 +11:00
Andrew Tridgell
8b456be8c6 SITL: added battery voltage and rpm to SITL state 2015-11-23 13:31:09 +11:00
Andrew Tridgell
585e6dabb8 SITL: FDM structure is no longer a network protocol structure
remove unused fields and change comments
2015-11-23 13:25:00 +11:00
Andrew Tridgell
a6ef064950 HAL_SITL: removed support for the old FDM protocol
we are now fully converted to the new C++ based SITL system
2015-11-23 13:21:33 +11:00
Andrew Tridgell
9cdd5f3944 AP_InertialSensor: catch NAN errors in accel and gyro filters 2015-11-22 17:30:29 +11:00
Andrew Tridgell
5b7f2a3de3 Filter: added reset method on vector filters 2015-11-22 17:30:29 +11:00
Andrew Tridgell
b3e6129fd4 AP_AHRS: added EKF type 10 for SITL
this bypasses all attitude and position estimators and uses the SITL
state directly. It can be used for when the SITL backend cannot
provide perfect sensor data
2015-11-22 17:30:28 +11:00
Andrew Tridgell
7b38f2185f AP_AHRS: use the right DCM matrix for right EKF
this fixes a bug where the EKF2 DCM matrix would be used for
get_dcm_matrix() when EKF1 was active
2015-11-20 18:34:08 +11:00
Caio Marcelo de Oliveira Filho
01665282f7 AP_HAL_VRBRAIN: Remove unused extern declaration for HALs 2015-11-20 16:32:57 +09:00
Caio Marcelo de Oliveira Filho
bb165d8a4c AP_HAL_SITL: Remove unused extern declaration for HALs 2015-11-20 16:32:45 +09:00
Caio Marcelo de Oliveira Filho
c43474fbf4 AP_HAL_PX4: Remove unused extern declaration for HALs 2015-11-20 16:32:32 +09:00
Caio Marcelo de Oliveira Filho
6773e18bc4 AP_HAL_Linux: Remove unused extern declaration for HALs 2015-11-20 16:32:17 +09:00
Caio Marcelo de Oliveira Filho
d9a3876851 AP_HAL_FLYMAPLE: Remove unused extern declaration for HALs 2015-11-20 16:32:00 +09:00
Caio Marcelo de Oliveira Filho
ee542aac8b AP_HAL_Empty: Remove unused extern declaration for HALs
These are "left-overs" from how things worked before commit
"AP_HAL: make code not depend on concrete HAL
implementations". The real declaration now lives inside get_HAL() function.

Use the opportunitiy to change the files to use "#pragma once".
2015-11-20 16:30:45 +09:00
Andrew Tridgell
1ee7963edb AP_ADC: fixed example build 2015-11-20 17:33:17 +11:00
Andrew Tridgell
7375f395f9 AP_RPM: added optional PWM logging 2015-11-20 17:02:46 +11:00
Caio Marcelo de Oliveira Filho
cbaa57c7be AP_HAL_VRBRAIN: remove unused functions 2015-11-20 12:36:54 +09:00
Caio Marcelo de Oliveira Filho
783db23a0f AP_HAL_SITL: remove unused functions 2015-11-20 12:36:42 +09:00
Caio Marcelo de Oliveira Filho
1de0e0a5a6 AP_HAL_PX4: remove unused functions 2015-11-20 12:36:34 +09:00
Caio Marcelo de Oliveira Filho
e0a6d83457 AP_HAL_LINUX: remove unused functions 2015-11-20 12:36:25 +09:00
Caio Marcelo de Oliveira Filho
f3cc27e04a AP_HAL_FLYMAPLE: remove unused functions 2015-11-20 12:36:18 +09:00
Caio Marcelo de Oliveira Filho
420dfc7ce2 AP_HAL_Empty: remove unused functions 2015-11-20 12:36:10 +09:00
Caio Marcelo de Oliveira Filho
c5fc0deee9 AP_HAL_Scheduler: remove unused functions
Getting the time elapsed and panic are now functions in AP_HAL, so
remove them from HAL class interface and it's implementations.
2015-11-20 12:36:00 +09:00
Caio Marcelo de Oliveira Filho
d343bfdc6c SITL: use millis/micros/panic functions 2015-11-20 12:35:50 +09:00
Caio Marcelo de Oliveira Filho
e839892524 PID: use millis/micros/panic functions 2015-11-20 12:35:42 +09:00
Caio Marcelo de Oliveira Filho
a096c2b72c GCS_MAVLink: use millis/micros/panic functions 2015-11-20 12:35:34 +09:00
Caio Marcelo de Oliveira Filho
51a6455ac0 Filter: use millis/micros/panic functions 2015-11-20 12:35:25 +09:00
Caio Marcelo de Oliveira Filho
578b31e7f8 AP_DataFlash: example uses millis/micros/panic functions 2015-11-20 12:35:17 +09:00
Caio Marcelo de Oliveira Filho
753956bd77 AP_Dataflash: use millis/micros/panic functions 2015-11-20 12:35:00 +09:00
Caio Marcelo de Oliveira Filho
0aa520a273 AP_Terrain: use millis/micros/panic functions 2015-11-20 12:34:53 +09:00
Caio Marcelo de Oliveira Filho
c70dda526c AP_TECS: use millis/micros/panic functions 2015-11-20 12:34:46 +09:00
Caio Marcelo de Oliveira Filho
7c9a5dc1b9 AP_ServoRelayEvents: use millis/micros/panic functions 2015-11-20 12:34:39 +09:00
Caio Marcelo de Oliveira Filho
81186e5416 AP_Scheduler: use millis/micros/panic functions 2015-11-20 12:34:17 +09:00
Caio Marcelo de Oliveira Filho
82a14b183d AP_RangeFinder: use millis/micros/panic functions 2015-11-20 12:34:10 +09:00
Caio Marcelo de Oliveira Filho
5344d95ef5 AP_Rally: use millis/micros/panic functions 2015-11-20 12:34:04 +09:00
Caio Marcelo de Oliveira Filho
9639add306 AP_RPM: use millis/micros/panic functions 2015-11-20 12:33:57 +09:00
Caio Marcelo de Oliveira Filho
26c06ae3a9 AP_PerfMon: use millis/micros/panic functions 2015-11-20 12:33:33 +09:00
Caio Marcelo de Oliveira Filho
d186704724 AP_Parachute: use millis/micros/panic functions 2015-11-20 12:33:26 +09:00
Caio Marcelo de Oliveira Filho
5b06924779 AP_OpticalFlow: use millis/micros/panic functions 2015-11-20 12:33:19 +09:00
Caio Marcelo de Oliveira Filho
daee8e8e76 AP_Notify: use millis/micros/panic functions 2015-11-20 12:33:13 +09:00
Caio Marcelo de Oliveira Filho
8d882b06dd AP_NavEKF2: use millis/micros/panic functions 2015-11-20 12:32:41 +09:00
Caio Marcelo de Oliveira Filho
e3c317b96b AP_NavEKF: use millis/micros/panic functions 2015-11-20 12:32:31 +09:00
Caio Marcelo de Oliveira Filho
0b2184b818 AP_Mount: use millis/micros/panic functions 2015-11-20 12:32:24 +09:00
Caio Marcelo de Oliveira Filho
513f4fe986 AP_Motors: example uses millis/micros/panic functions 2015-11-20 12:32:16 +09:00
Caio Marcelo de Oliveira Filho
01e4265ce1 AP_Mission: example uses millis/micros/panic functions 2015-11-20 12:32:09 +09:00
Caio Marcelo de Oliveira Filho
f20a4e413c AP_Mission: use millis/micros/panic functions 2015-11-20 12:32:03 +09:00
Caio Marcelo de Oliveira Filho
8257e6ab89 AP_Math: examples use millis/micros/panic functions 2015-11-20 12:31:55 +09:00
Caio Marcelo de Oliveira Filho
5292bc0054 AP_HAL: example uses millis/micros/panic functions 2015-11-20 12:31:48 +09:00
Caio Marcelo de Oliveira Filho
d7601095fa AP_InertialSensor: use millis/micros/panic functions 2015-11-20 12:31:41 +09:00
Caio Marcelo de Oliveira Filho
87b9b4463e AP_IRLock: use millis/micros/panic functions 2015-11-20 12:31:35 +09:00
Caio Marcelo de Oliveira Filho
2314578f6f AP_HAL_VRBRAIN: use millis/micros/panic functions 2015-11-20 12:31:28 +09:00
Caio Marcelo de Oliveira Filho
85d12efbef AP_HAL_SITL: use millis/micros/panic functions 2015-11-20 12:31:20 +09:00
Caio Marcelo de Oliveira Filho
a76c9e0051 AP_HAL_PX4: use millis/micros/panic functions 2015-11-20 12:31:13 +09:00
Caio Marcelo de Oliveira Filho
7675913d5b AP_HAL_Linux: use millis/micros/panic functions 2015-11-20 12:31:04 +09:00
Caio Marcelo de Oliveira Filho
f03eec59d6 AP_HAL_FLYMAPLE: use millis/micros/panic functions 2015-11-20 12:30:55 +09:00
Caio Marcelo de Oliveira Filho
c33b86a783 AP_GPS: use millis/micros/panic functions 2015-11-20 12:30:48 +09:00
Caio Marcelo de Oliveira Filho
2b982d6391 AP_FrSkyTelem: use millis/micros/panic functions 2015-11-20 12:30:41 +09:00
Caio Marcelo de Oliveira Filho
032acaaee4 AP_EPM: use millis/micros/panic functions 2015-11-20 12:30:34 +09:00
Caio Marcelo de Oliveira Filho
0ae2fe6fcd AP_Declination: example uses millis/micros/panic functions 2015-11-20 12:30:27 +09:00
Caio Marcelo de Oliveira Filho
cd7cfdef91 AP_Compass: examples use millis/micros/panic functions 2015-11-20 12:30:20 +09:00
Caio Marcelo de Oliveira Filho
86954cda0e AP_CompassCalibrator: use millis/micros/panic functions 2015-11-20 12:30:14 +09:00
Caio Marcelo de Oliveira Filho
0d3fbbdd37 AP_Compass: use millis/micros/panic functions 2015-11-20 12:30:05 +09:00
Caio Marcelo de Oliveira Filho
89d6acaeaa AP_BoardConfig: use millis/micros/panic functions 2015-11-20 12:29:58 +09:00
Caio Marcelo de Oliveira Filho
3b4e18043b AP_BattMonitor: examples use millis/micros/panic functions 2015-11-20 12:29:52 +09:00
Caio Marcelo de Oliveira Filho
9eb945d24f AP_BattMonitor: use millis/micros/panic functions 2015-11-20 12:29:45 +09:00
Caio Marcelo de Oliveira Filho
8cce3067f4 AP_Baro: examples use millis/micros/panic functions 2015-11-20 12:29:38 +09:00
Caio Marcelo de Oliveira Filho
5a280838f8 AP_Baro: use millis/micros/panic functions 2015-11-20 12:29:31 +09:00
Caio Marcelo de Oliveira Filho
b8f0beab83 AP_Arming: use millis/micros/panic functions 2015-11-20 12:29:24 +09:00
Caio Marcelo de Oliveira Filho
410bbe4c26 AP_Airspeed: examples use millis/micros/panic functions 2015-11-20 12:29:16 +09:00
Caio Marcelo de Oliveira Filho
2b10e0fac0 AP_Airspeed: use millis/micros/panic functions 2015-11-20 12:29:07 +09:00
Caio Marcelo de Oliveira Filho
3a17c858e3 AP_AHRS: use millis/micros/panic functions 2015-11-20 12:29:00 +09:00
Caio Marcelo de Oliveira Filho
4ea45b8df1 AP_AHRS_NavEKF: use millis/micros/panic functions 2015-11-20 12:28:53 +09:00
Caio Marcelo de Oliveira Filho
55e61538b3 AP_AHRS_DCM: use millis/micros/panic functions 2015-11-20 12:28:45 +09:00
Caio Marcelo de Oliveira Filho
b293fb150c AP_ADC: use millis/micros/panic functions 2015-11-20 12:28:36 +09:00
Caio Marcelo de Oliveira Filho
b331ffdd91 APM_OBC: use millis/micros/panic functions 2015-11-20 12:28:28 +09:00
Caio Marcelo de Oliveira Filho
fe718a6ce8 APM_Control: use millis/micros/panic functions 2015-11-20 12:28:20 +09:00
Caio Marcelo de Oliveira Filho
e867a06383 AC_WPNav: use millis/micros/panic functions 2015-11-20 12:28:13 +09:00
Caio Marcelo de Oliveira Filho
70d0ea9151 AC_Sprayer: use millis/micros/panic functions 2015-11-20 12:28:04 +09:00
Caio Marcelo de Oliveira Filho
ccd03bcf60 AC_Fence: use millis/micros/panic functions 2015-11-20 12:27:11 +09:00
Caio Marcelo de Oliveira Filho
ea08b6115d AC_AttControl: use millis/micros/panic functions 2015-11-20 12:27:03 +09:00
Caio Marcelo de Oliveira Filho
7662c2e73f AP_HAL_VRBRAIN: implement new AP_HAL functions
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
2015-11-20 12:25:42 +09:00
Caio Marcelo de Oliveira Filho
79721feb14 AP_HAL_FLYMAPLE: implement new AP_HAL functions
Implement the new AP_HAL functions and use them in the Scheduler when
possible.

Because the functions are in a namespace, there's no need to do the
define/undef trick and avoid the globals millis() and micros() provided
by libmaple.
2015-11-20 12:25:41 +09:00
Caio Marcelo de Oliveira Filho
8db8b9b355 AP_HAL_PX4: implement new AP_HAL functions
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
2015-11-20 12:25:40 +09:00
Caio Marcelo de Oliveira Filho
ff016c4b5a AP_HAL_Linux: implement new AP_HAL functions
Implement the new AP_HAL functions and use them in the Scheduler when
possible.

The '_sketch_start_time' was renamed and moved as a detail of
implementation of the functions code. It allows the code to return time
starting from zero.

The 'stopped_clock_usec' was renamed to follow convention in the file
and add a getter so that AP_HAL functions can reach it. It's not a
problem this getter is public because in practice, regular code
shouldn't even access the Linux::Scheduler directly -- only code that
should is from Linux implementation.
2015-11-20 12:25:39 +09:00
Caio Marcelo de Oliveira Filho
3ef77617fd AP_HAL_SITL: implement new AP_HAL functions
Implement the new AP_HAL functions and use them in the Scheduler when
possible.

The '_sketch_start_time' was renamed and moved as a detail of
implementation of the functions code. It allows the code to return time
starting from zero.

The 'stopped_clock_usec' was renamed to follow convention in the file
and add a getter so that AP_HAL functions can reach it. It's not a
problem this getter is public because in practice, regular code
shouldn't even access the SITLScheduler directly -- only code that
should is from SITL itself.
2015-11-20 12:25:38 +09:00
Caio Marcelo de Oliveira Filho
efbc7648b1 AP_HAL: create AP_HAL namespace and use for some HAL functionality
For certain basic functionality, there aren't much benefit to be able to
vary the implementation easily at runtime. So instead of using virtual
functions, use regular functions that are "resolved" at link time. The
implementation of such functions is provided per board/platform.

Examples of functions that fit this include: getting the current
time (since boot), panic'ing, getting system information, rebooting.

These functions are less likely to benefit from the indirection provided
by virtual interfaces. For more complex hardware access APIs the
indirection makes more sense and ease the testing (when we have it!).

The idea is that instead of calling

    hal.scheduler->panic("on the streets of london");

now use

    AP_HAL::panic("on the streets of london");

A less important side-effect is that call-site code gets
smaller. Currently the compiler needs to get the hal, get the scheduler
pointer, get the right function pointer in the vtable for that
scheduler. And the call must include an extra parameter ("this"). Now it
will be just a function call, with the address resolved at link time.

This patch introduces the first functions that will be in the namespace,
further patches will implementations for each board and then switch the
call-sites. The extra init() function allow any initial setup needed for
the functions to work.
2015-11-20 12:25:24 +09:00
Jonathan Challinger
f9c7f15052 AC_WPNav: WPNAV_LOIT_SPEED WPNAV_LOIT_MAXA take effect immediately 2015-11-18 22:12:39 +09:00
Paul Riseborough
ff2782b790 AP_NavEKF2: Parameter changes to reduce noise on gyro bias estimates 2015-11-18 20:17:03 +09:00
Paul Riseborough
2193103586 AP_NavEKF: Reduce time to switch after an IMU fault
This revised threshold value is still double the maximum that has been observed in flight logs so far with healthy sensors
The previous value was too slow to switch for sudden IMU gyro faults
We can afford an ocasional false trigger becasue the front end will only select another instance if it is healthy and has lower errors
2015-11-18 20:17:00 +09:00
Paul Riseborough
20798316e1 AP_NavEKF2: fix bug in performance timer 2015-11-18 20:16:58 +09:00
Randy Mackay
c9340dbeb6 AC_PosControl: run velocity controller z-axis at 400hz 2015-11-18 13:31:21 +09:00
Randy Mackay
dbc8ce1d69 AC_PosControl: default z-axis controller to 400hz
No functional change as vehicle code always sets it explicitely
2015-11-18 13:31:20 +09:00
Randy Mackay
323a527734 AC_PosControl: velocity controller uses feed-forward althold 2015-11-18 13:31:19 +09:00
Randy Mackay
4b41710261 AC_AttControl: minor comment fix 2015-11-18 13:31:18 +09:00
Caio Marcelo de Oliveira Filho
a348424551 AP_HAL: remove unused function
This was used by APM1/2 that were removed.
2015-11-18 11:50:56 +09:00
Andrew Tridgell
5561efde2b AP_NavEKF: we can assume get_sample_rate() returns a non-zero number
this fixes a build error with the previous patch
2015-11-18 11:48:50 +11:00
Paul Riseborough
e32e6cfa67 AP_NavEKF: Protect against bad delta time from the INS library
Prevent arithmetic divide by zero exceptions and handle invalid delta time in a consistent way by setting invalid times to the average.
2015-11-18 11:43:40 +11:00
Paul Riseborough
2fb5a4489b AP_NavEKF2: Prevent airspeed faults from causing excessive loss of accuracy 2015-11-18 11:39:54 +11:00
Paul Riseborough
fc6978e4d9 AP_NavEKF2: Fix error in parameter documentations 2015-11-18 11:39:54 +11:00
Paul Riseborough
f9cadaf15c AP_NavEKF2: Increase resolution of innovation consistency gate parameters
Also adds protection against setting the gate to a number that would casue numerical errors.
2015-11-18 11:39:53 +11:00
Andrew Tridgell
08ef00b431 AP_NavEKF2: fixed build with IMU_BUFFER_LENGTH change 2015-11-18 11:33:51 +11:00
Paul Riseborough
af3507ef3c AP_NavEKF2: Stop bad INS velocity spoiling height reset
We should reset the velocity as well as the height if a reasonable reset value is available.
2015-11-18 11:18:50 +11:00
Paul Riseborough
97799ef0b3 AP_NavEKF2: Ensure that GPS origin is set before using data for height 2015-11-18 11:18:50 +11:00
Paul Riseborough
b8427e5d95 AP_NavEKF2: Only allow rangefinder height option during optical flow nav 2015-11-18 11:18:50 +11:00
Paul Riseborough
c9eea98142 AP_NavEKF2: Improve terrain height estimation
The ad-hoc scaling of error growth has been replaced with a consistent method that uses the main nav filters published vertical velocity uncertainty and the terrain gradient assumption.
2015-11-18 11:18:46 +11:00
Paul Riseborough
d820a538d5 AP_NavEKF2: Make magnetometer data available status global
This assists with debugging and makes it consistent with other measurements that are buffered
2015-11-18 11:18:46 +11:00
Paul Riseborough
04228e0b3b AP_NavEKF2: Rework selection of height measurements for fusion
GPS height has been added as a measurement option along with range finder and baro
Selection of the height measurement source has been moved into a separate function
Each height source is assigned its own measurement noise
If GPS or baro alt is not able to be used, it reverts to baro
When baro is not being used, an offset is continually calculated which enables a switch to baro without a height step.
2015-11-18 11:18:42 +11:00
Paul Riseborough
80bc64ee7a AP_NavEKF2: Update parameter documentation with GPS height source option 2015-11-18 11:18:18 +11:00
Paul Riseborough
4c72a14e22 AP_NavEKF2: Add function to LPF and spike filter baro data 2015-11-18 11:18:17 +11:00
Paul Riseborough
34311bedfa AP_NavEKF2: Add data buffers for range finder data 2015-11-18 11:18:17 +11:00
Andrew Tridgell
99da195e37 AP_NavEKF2: make IMU buffer length depend on main loop rate
this fixes a problem with Replay and baro data
2015-11-18 10:20:39 +11:00
Andrew Tridgell
f36b2e415a AP_InertialSensor: fixed flymaple build 2015-11-17 08:52:49 +11:00
Andrew Tridgell
32ed0d58f3 AP_InertialSensor: fixed filter setup on 2nd accel/gyro 2015-11-16 17:57:36 +11:00
Andrew Tridgell
e1cb9beeef SITL: expose update rate to HAL_SITL
and fixed dataflash reference loop
2015-11-16 17:57:36 +11:00
Andrew Tridgell
95ca0b39a8 HAL_SITL: moved virtual INS sensor to AP_InertialSensor_SITL 2015-11-16 17:57:35 +11:00
Andrew Tridgell
4a768d47f3 AP_InertialSensor: created a SITL specific backend 2015-11-16 17:57:35 +11:00
Andrew Tridgell
2675edcb96 HAL_SITL: removed unused variables 2015-11-16 17:57:35 +11:00