Commit Graph

14537 Commits

Author SHA1 Message Date
Peter Barker
731aaed8af GCS_MAVLink: eliminate global static GCS_MAVLINK::send_home_all 2017-07-11 23:48:39 +01:00
Peter Barker
6cc19fee35 GCS_MAVLink: GCS_Dummy and GCS_routing get get_mission 2017-07-11 23:47:52 +01:00
Peter Barker
726007efde GCS_MAVLink: move common mission handling up to GCS_MAVLINK 2017-07-11 23:45:17 +01:00
Michael du Breuil
cb1b9b6674 AP_GPS: Fix SBF race condition on start
Unsure what the underlying problem is, but the length of the first string in
the initilisation_blob increasing resulted in a race condition, waiting
longer before retrying the message resolves it, but we still need to identify
the underlying problem. This patch just results in the GPS working with current
configurations. Tested against AsteRx-M firmware 3.6.3
2017-07-11 09:40:02 +09:00
Jacob Walser
20889ff8a9 APMotors6DOF: Add motor reverse parameters for motors 9-12
Fix overruns found in coverity 145496-99
2017-07-11 09:34:40 +09:00
Andrew Tridgell
dd7c96a6cc AP_Radio: reseve an ID for AP_Radio
as discussed with Randy
2017-07-10 17:07:36 +10:00
Randy Mackay
bd2ba1565c AC_WPNav: minor format fix 2017-07-10 13:26:37 +09:00
Peter Barker
02532af64b GCS_MAVLink: a send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
Peter Barker
ca6e34dfbd GCS_MAVLink: use Notify singleton for sending statustext 2017-07-09 17:17:29 -04:00
Peter Barker
eb1f22fc67 AP_Notify: add singleton 2017-07-09 17:17:29 -04:00
Randy Mackay
d636e85eac AP_Proximity: SF40c driver treats zero distances as invalid 2017-07-08 14:09:17 +09:00
Randy Mackay
6982e58cf2 Baro: health check that values are changing 2017-07-08 08:40:19 +09:00
Randy Mackay
d64b2fcbf0 AP_NavEKF3: final mag reset at 2.5m 2017-07-08 08:39:43 +09:00
Randy Mackay
7e7f78d4b5 AP_NavEKF2: final mag reset at 2.5m 2017-07-08 08:39:43 +09:00
Peter Barker
c1264cf60a DataFlash: Use GCS_Dummy GCS singleton 2017-07-07 16:18:37 +01:00
Peter Barker
3e0ed6deae AP_AHRS: Use GCS_Dummy GCS singleton 2017-07-07 16:18:37 +01:00
Peter Barker
3f43789742 GCS_MAVLINK: provide a GCS singleton for examples and tools to use 2017-07-07 16:18:37 +01:00
Peter Barker
db27346fd7 GCS_MAVLink: move GCS functions up from GCS_Plane 2017-07-07 16:18:37 +01:00
Peter Barker
c163915f6e AP_HAL: correct storage example 2017-07-07 16:18:37 +01:00
Randy Mackay
51fa8fb0bd AP_InertialSensor: resolve member init order compiler warning 2017-07-07 17:27:23 +09:00
Eugene Shamaev
43e9c8370f AP_BoardConfig: increase start delay to 5 seconds 2017-07-03 11:44:32 +01:00
Eugene Shamaev
c6df13c795 AP_UAVCAN: changes to servo bitmasks to support multiple instances, baro, compass, gps changes for several CAN interfaces 2017-07-03 11:44:32 +01:00
Eugene Shamaev
a7921a273b AP_BoardConfig: move of CAN parameters into separate group and support of several interfaces 2017-07-03 11:44:32 +01:00
Eugene Shamaev
36655310b3 AP_HAL_PX4: support for several CAN interfaces and drivers, filtering support 2017-07-03 11:44:32 +01:00
Eugene Shamaev
ec8aa2e23f SRV_Channel: move of CAN bitmasks into AP_UAVCAN 2017-07-03 11:44:32 +01:00
Eugene Shamaev
5341e51f45 AP_GPS: support for multiple instances on different interfaces 2017-07-03 11:44:32 +01:00
Eugene Shamaev
aa1f6a7587 AP_Compass: united enumeration on startup, multiple CAN drivers, correct dev_id based on network and node ID 2017-07-03 11:44:32 +01:00
Eugene Shamaev
6e6efa7e1b AP_Baro: enumeration and multiple interfaces support 2017-07-03 11:44:32 +01:00
Eugene Shamaev
8f2306fd19 AP_HAL: support of several CAN managers (virtual drivers) 2017-07-03 11:44:32 +01:00
Andrew Tridgell
ca8a2a1f34 AP_RSSI: support receiver based RSSI protocols 2017-07-03 11:22:21 +10:00
Andrew Tridgell
a88693c487 HAL_PX4: support RSSI from receiver protocols 2017-07-03 11:22:21 +10:00
Andrew Tridgell
9868ffe13b HAL_Linux: support receiver based RSSI 2017-07-03 11:22:21 +10:00
Andrew Tridgell
94b5a9c6f0 AP_HAL: added RSSI interface for RCInput 2017-07-03 11:22:21 +10:00
Andrew Tridgell
64f722876f RC_Channel: use set_and_save_ifchanged 2017-07-03 11:17:42 +10:00
Andrew Tridgell
1d41dc034d SRV_Channel: deprecate aileron_with_input and elevator_with_input 2017-07-03 11:17:42 +10:00
Andrew Tridgell
b50ab75f4c RC_Channel: added set_and_save_trim() 2017-07-03 11:17:42 +10:00
Andrew Tridgell
cde4afd28e SRV_Channel: added set_trim_to_servo_out_for()
this will be used for new TRIM_AUTO functionality in plane
2017-07-03 11:17:42 +10:00
Andrew Tridgell
9cb672e85e SRV_Channel: added doc values for dspoilers
and fix missing Motor9 to Motor12 values
2017-07-03 11:17:42 +10:00
Andrew Tridgell
7627246ff8 SRV_Channels: added 4 channel dspoiler support 2017-07-03 11:17:42 +10:00
Andrew Tridgell
907534d55f SITL: added dspoiler support 2017-07-03 11:17:42 +10:00
Andrew Tridgell
6b3bb29398 SRV_Channel: rename flaperon1 and flaperon2 to flaperon_left and flaperon_right
this makes it more consistent with elevons and vtails
2017-07-03 11:17:42 +10:00
Randy Mackay
edc9d4db5b AP_InertialSensor: increase accel filter to 20hz 2017-07-03 09:38:15 +09:00
Peter Barker
7b3db490be DataFlash: correct examples 2017-06-29 15:43:39 +01:00
Peter Barker
9c2a2a3d94 AP_Module: correct example 2017-06-29 15:43:39 +01:00
Peter Barker
cbe9627bf5 AP_GPS: correct example 2017-06-29 15:43:38 +01:00
Peter Barker
12b4f2c4b6 AP_AHRS: correct example 2017-06-29 15:43:38 +01:00
Peter Barker
7258cfd20b AP_GPS: check dataflash to see if we should log backend gps messages 2017-06-29 15:43:38 +01:00
Peter Barker
6ae86a0b8c AP_InertialSensor: use DataFlash should_log to determine raw logging 2017-06-29 15:26:27 +01:00
Peter Barker
4dfdffde43 DataFlash: move should_log check of log bitmask into DataFlash 2017-06-29 15:26:27 +01:00
Francisco Ferreira
f35f0d59dd
AP_GPS: fix SBP2 driver build warnings by using memcpy
Build gave the following warnings:

../../libraries/AP_GPS/AP_GPS_SBP2.cpp: In member function ‘void AP_GPS_SBP2::_sbp_process_message()’:
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:181:78: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_heartbeat = *((struct sbp_heartbeat_t*)parser_state.msg_buff);
                                                                              ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:181:28: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_heartbeat = *((struct sbp_heartbeat_t*)parser_state.msg_buff);
                            ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:186:76: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_gps_time = *((struct sbp_gps_time_t*)parser_state.msg_buff);
                                                                            ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:186:27: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_gps_time = *((struct sbp_gps_time_t*)parser_state.msg_buff);
                           ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:190:74: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_vel_ned = *((struct sbp_vel_ned_t*)parser_state.msg_buff);
                                                                          ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:190:26: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_vel_ned = *((struct sbp_vel_ned_t*)parser_state.msg_buff);
                          ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:194:74: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_pos_llh = *((struct sbp_pos_llh_t*)parser_state.msg_buff);
                                                                          ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:194:26: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_pos_llh = *((struct sbp_pos_llh_t*)parser_state.msg_buff);
                          ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:198:68: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_dops = *((struct sbp_dops_t*)parser_state.msg_buff);
                                                                    ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:198:23: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_dops = *((struct sbp_dops_t*)parser_state.msg_buff);
                       ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:202:74: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_event = *((struct sbp_ext_event_t*)parser_state.msg_buff);
                                                                          ^
../../libraries/AP_GPS/AP_GPS_SBP2.cpp:202:24: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             last_event = *((struct sbp_ext_event_t*)parser_state.msg_buff);
                        ^
2017-06-29 15:18:09 +01:00
ebethon
005dbf41a7 AP_GPS: Add SBP EXT_EVENT Message to dataflash log 2017-06-29 15:18:05 +01:00
ebethon
526d5a4c44 DataFlash: Add SBP EXT_EVENT Message 2017-06-29 15:18:05 +01:00
ebethon
4779a8f1f1 AP_GPS: Rename SBR1/SBR2 to SBRH/SBRM and change format
Add (sender_id, msg_len) in SBRM message
Add index/pages in SBRH/SBRM messages
Change format to integers to avoid GCS string parsing
Decrease data size in SBRH
2017-06-29 15:14:54 +01:00
ebethon
0b5dad33f2 DataFlash: Rename SBR1/SBR2 to SBRH/SBRM and change format
Add (sender_id, msg_len) in SBRM message
Add index/pages in SBRH/SBRM messages
Change format to integers to avoid GCS string parsing
Decrease data size in SBRH
2017-06-29 15:14:54 +01:00
Miguel Arroyo
7cea21afa2 AP_Math: Moves rand_vec3f from SITL_State. 2017-06-29 09:22:08 +10:00
Miguel Arroyo
86b9942d51 AP_HAL_SITL: move SITL Compass to standard sensor backend model 2017-06-29 09:22:08 +10:00
Miguel Arroyo
ee328c9683 AP_Compass: move SITL Compass to standard sensor backend model 2017-06-29 09:22:08 +10:00
Georgii Staroselskii
0203b4c1b1 AP_Notify: RCOutputRGBLed: remove cork()
cork()/push() will be called in the vehicle code.

The issue that led to this fix was as follows:
- on a Linux board (Navio 2) usage of this class didn't yield any PWM on
  the expected outputs on Rover (Copter and Plane worked as expected)

After dicsussion at #6339 rover code was changed (541538f) to use make
proper use of SRV_Channels API.

This fix is also the consequence of the discussion. TL;DR: the output is
only done when commanded by the vehicle.
2017-06-27 11:46:41 -07:00
Peter Barker
ad17709390 DataFlash: handle knowledge of in_log_download in DataFlash 2017-06-27 03:10:43 +01:00
Peter Barker
4c1aff03a3 GCS_MAVLink: move send-logs-via-mavlink code into DataFlash 2017-06-27 03:10:43 +01:00
Peter Barker
305531952f DataFlash: move send-logs-via-mavlink code into DataFlash 2017-06-27 03:10:43 +01:00
Peter Barker
cbbee995b6 GCS_MAVLink: move GCS_Logs into DataFlash directory 2017-06-27 03:10:43 +01:00
Rob Ratcliff
60c6f8ad60 AP_GPS: fix bug when injecting messages bigger than 255 bytes
Commit 5261654 changed the used injection method so change this method signature to use uint16 for message length like previous injection method did
2017-06-27 03:06:26 +01:00
priseborough
9d0fa09d39 AP_NavEKF3: Fix calculation of predicted LOS rate in terrain estimator 2017-06-26 14:58:06 +01:00
priseborough
c69c5440a0 AP_NavEKF2: Fix calculation of predicted LOS rate in terrain estimator 2017-06-26 14:58:06 +01:00
Francisco Ferreira
a83457ab07
AP_BattMonitor: complement commit d3314d7684 by adding to second battery monitor too 2017-06-26 13:41:12 +01:00
Miguel Arroyo
4394c5145b AP_HAL_SITL: Fixes bug with uartF.
uartF _timer_tick() was not being called in the scheduler.
2017-06-26 13:05:16 +01:00
fsherratt
d3314d7684 AP_BattMonitor: param desc explicitly list Pixhawk 2 PM1 pins
There is confusion over which pins to use with the pixhawk 2, updated documentation to explicitly state the PM1 pins as being the same as the original pixhawk
2017-06-24 11:01:03 +09:00
priseborough
a4d18696a7 AP_NavEKF3: Improve variable names and documentation
Also remove unnecessary calculation of innov * gain
2017-06-23 00:43:58 +01:00
priseborough
368983ed5a AP_NavEKF3: Clean up aiding mode logic using switch statements 2017-06-23 00:43:58 +01:00
priseborough
2a9eceaf10 AP_NavEKF3: Fix bugs causing height drift when using range beacons 2017-06-23 00:43:58 +01:00
Miguel Arroyo
6cf9b870b5 AP_Baro: AP_Baro_SITL more accurately simulates real sensor backend. 2017-06-23 09:36:28 +10:00
Pierre Kancir
ccbf281137 AP_RangeFinder: allow to set rangefinder type for mavlink 2017-06-22 16:17:58 +01:00
Leonard Hall
ed0063d10d AC_AttControl: save accel max using shorter set_and_save
no functional change
2017-06-22 15:20:16 +09:00
Leonard Hall
0544cf1d82 AC_AttControl: add step input for autotune 2017-06-22 15:18:04 +09:00
Michael du Breuil
249849dfa4 AP_GPS: Add an enum for _auto_config 2017-06-21 11:44:45 +01:00
Michael du Breuil
5f8633e322 AP_GPS: Allow backends to report their lag confidences 2017-06-21 11:44:45 +01:00
priseborough
7659e9c31f AP_NavEKF3: Improve checking of time delay validity when setting buffers
This change means that provided the GPS_DELAY_MS parameters are set for each GPS receiver attached, the EKF will not have to wait for the configuration of each receiver to be determined before it can start.
This significantly reduces start-up times when the delay parameters are set.
2017-06-21 11:44:45 +01:00
priseborough
7d63286088 AP_NavEKF3: update to match AP_GPS interface change 2017-06-21 11:44:45 +01:00
priseborough
fa5534502a AP_AHRS: Update to match AP_GPS interface change 2017-06-21 11:44:45 +01:00
priseborough
5dcfc94371 AP_GPS: Add validity boolean to GPS lag reporting 2017-06-21 11:44:45 +01:00
priseborough
bd0229b7bc AP_GPS: Fix bug in calculation of blended GPS delay 2017-06-21 11:44:45 +01:00
Francisco Ferreira
da5060964b AP_Math: uniformize template type parameter keyword
Use typename everywhere instead of class
2017-06-21 18:19:31 +09:00
Francisco Ferreira
1ffe12008c AP_Math: adapt test for new norm method API 2017-06-21 18:19:31 +09:00
Francisco Ferreira
7b98f41947 AP_Math: correct norm to need two arguments
Correctly use sqrtf instead of the double version
Stop casting to float since sq already returns one
2017-06-21 18:19:31 +09:00
Andrew Tridgell
f3d995a716 AP_Compass: improved robustness of BMM150 detection code
cope with bus errors on startup
2017-06-21 16:25:37 +10:00
Andrew Tridgell
68460144df AP_Compass: added retries on init in BMM150 2017-06-21 16:25:37 +10:00
Andrew Tridgell
9b093c4a33 AP_Compass: fixed a numerical issue in BMM150 driver
we were getting the following:

  ret=-32768 z=5 rhall=6267 z1=23743 z2=712 z3=-1035 z4=0 xyz1=6264 dividend=163840 dividend2=-1073577207 divisor=5253

the signed/unsigned casts for rhall and xyz1 did not produce the
desired result
2017-06-21 16:25:37 +10:00
Andrew Tridgell
0623db98d6 AP_Compass: cope with bus errors in BMM150
if we have bus errors the BMM150 can get confused, giving rubbish
output. This uses the checked register code to reset, and a full soft
reset after 250ms of no samples.
2017-06-21 16:25:37 +10:00
Andrew Tridgell
fa3d40af8a AP_Compass: fixed shift typo
this doesn't affect LE MCUs like STM32
2017-06-21 16:25:37 +10:00
Andrew Tridgell
b8f628da83 HAL_PX4: fixed bug in last_sent
thanks to Francisco
2017-06-21 11:40:12 +10:00
Andrew Tridgell
17893958bf HAL_PX4: cope with brushed motors in read_last_sent()
we need the value before scaling is applied, so slew rates can work
2017-06-21 10:55:24 +10:00
Andrew Tridgell
bc8c13d053 SRV_Channel: cope with large time jumps in slew rate limiter 2017-06-20 20:53:44 +09:00
Randy Mackay
a303c40f1f AP_Beacon: initialise counter in get_next_boundary_point
This is not a bug but at least one compiler has complained about this
2017-06-20 16:34:41 +09:00
priseborough
06d40a7901 AP_NavEKF3: Fix terrain estimator innovation consistency check 2017-06-20 02:08:56 +01:00
priseborough
ce8e935896 AP_NavEKF2: Fix terrain estimator innovation consistency check 2017-06-20 02:08:56 +01:00
priseborough
284fc0f3c5 AP_NavEKF3: Fix bug in flow fusion for terrain estimation
Also remove unused class variables
2017-06-20 02:08:56 +01:00
priseborough
b7e6e6f95f AP_NavEKF2: Fix bug in flow fusion for terrain estimation
Also remove unused class variables
2017-06-20 02:08:56 +01:00
Michael du Breuil
0b26908359 Landing: Disarm on land for deepstall 2017-06-19 17:02:23 -07:00
Andrew Tridgell
a1508b58c1 AP_NavEKF3: use AHRS likely flying state
this sets inFlight when AHRS has indicated flying for 5s
2017-06-20 09:44:44 +10:00
Andrew Tridgell
cbffc29f0b AP_NavEKF2: use AHRS likely flying state
this sets inFlight when AHRS has indicated flying for 5s
2017-06-20 09:44:44 +10:00
Andrew Tridgell
770f697cfc AP_AHRS: added set/get for flying state
this allows the vehicle code to set the likely flying state, which can
be used by EKF to trigger changes which should only happen when flying
(such as mag alignment)
2017-06-20 09:44:44 +10:00
priseborough
647db728ce AP_NavEKF2: Improve is flying check for non fly forward vehicles
Will enable use of EK3_MAG_TYPE = 0 for coptersAP_NavEKF2:
2017-06-19 06:09:07 +10:00
priseborough
edee8396ba AP_NavEKF3: Improve in-flight check for non fly forward vehicles
This will enable the EK3_MAG_TYPE 0 option to be used for multirotors
2017-06-19 06:09:07 +10:00
Andrew Tridgell
a0e4ec0f3a AP_Compass: fixed bitmask typo 2017-06-18 18:15:47 +10:00
Touch
5da2e0b3fb Update code format 2017-06-18 17:25:20 +10:00
ljwang
8fff1ec4d4 add QMC5883L driver for GPS compass module 2017-06-18 17:25:20 +10:00
ljwang
e648f2e61e add QMC5883L driver for GPS compass module 2017-06-18 17:25:20 +10:00
Peter Barker
5c19f09cd7 DataFlash: handle mavlink messages, not just remote-log-block-statuses 2017-06-17 15:07:48 +01:00
Peter Barker
cf918d233f GCS_MAVLink: move MAVLINK_MSG_ID_REMOTE_LOG_BLOCK_STATUS handling up 2017-06-17 15:07:48 +01:00
Andrew Tridgell
abd0831239 AP_Motors: changed BRUSHED16kHz to BRUSHED 2017-06-17 17:37:45 +10:00
Andrew Tridgell
11396919c8 HAL_PX4: changed BRUSHED16kHz to BRUSHED 2017-06-17 17:37:45 +10:00
Andrew Tridgell
1c741e78e6 AP_HAL: changed BRUSHED16kHz to BRUSHED 2017-06-17 17:37:45 +10:00
Andrew Tridgell
96627bc4e5 HAL_PX4: allow any pulse freq in brushed mode 2017-06-17 17:37:45 +10:00
Andrew Tridgell
97e88501c6 AP_OpticalFlow: support pixart 3901 2017-06-16 17:14:10 +01:00
Peter Barker
6a03af8f3e DataFlash: make EnableWrites a frontend thing 2017-06-16 17:07:48 +01:00
Peter Barker
07e37281ef DataFlash: add a should_log method 2017-06-16 17:07:48 +01:00
Peter Barker
001d3a7118 DataFlash: correct consts on CardInserted 2017-06-16 17:07:48 +01:00
Peter Barker
244365767d DataFlash: remove DataFlash_Block and DataFlash_SITL 2017-06-16 13:52:45 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas
6a01c65197 AP_NavEKF3: Fix long description of EK3_OGN_HGT_MASK parameter (NFC) 2017-06-16 12:05:20 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas
7426bdb9b7 AP_NavEKF2: Fix long description of EK2_OGN_HGT_MASK parameter 2017-06-16 12:05:20 +01:00
Randy Mackay
a199604348 AP_Beacon: fix get_boundary_points num_points
Thanks @OXINARF for finding this!
2017-06-15 09:36:27 +09:00
priseborough
b42fb31d7d AP_NavEKF2: Change default value of EK2_OGN_HGT_MASK
Turn off by default.
Update parameter description
2017-06-14 12:44:41 +01:00
priseborough
49ec2b4032 AP_NavEKF3: Change default value of EK3_OGN_HGT_MASK
Turn off by default.
Update parameter description.
2017-06-14 12:44:41 +01:00
priseborough
fd25450632 AP_NavEKF2: Ensure reported local height = global height - origin height 2017-06-14 12:44:41 +01:00
priseborough
6d14cf0ab8 AP_NavEKF3: Ensure reported local height = global height - origin height 2017-06-14 12:44:41 +01:00
priseborough
798d5f85a2 DataFlash: Log EKF origin height 2017-06-14 12:44:41 +01:00
priseborough
a3483d0d34 AP_AHRS: Update for compatibility with EKF interface change 2017-06-14 12:44:41 +01:00
priseborough
3ae7998f51 AP_NavEKF3: Allow reporting of origin height for specified instance 2017-06-14 12:44:41 +01:00
priseborough
77d21f72d4 AP_NavEKF2: Allow reporting of origin height for specified instance 2017-06-14 12:44:41 +01:00
priseborough
e58ba8044d AP_NavEKF3: Improve protection for badly conditioned dVel bias covariances
If variance falls below desired minimum, set state noise to a larger value.
If variance drops below safe value, set to desired minimum and reset off-diagonals to zero.
2017-06-14 12:44:41 +01:00
priseborough
bf963f8b65 AP_NavEKF3: Raise lower limit on del vel bias state variances
This is required to prevent co-variance matrix errors due to long periods without movement causing height divergence.
2017-06-14 12:44:41 +01:00
priseborough
628d140319 AP_NavEKF3: Make target covariance time step larger
The target covariance time step has been increased from 10 to 12 msec to improve conditioning of the covariance prediction calculation.
2017-06-14 12:44:41 +01:00
priseborough
4c08622a7c DataFlash: Add logging for EKF3 state variances 2017-06-14 12:44:41 +01:00
priseborough
2b97d0f5c9 AP_NavEKF3: Add public accessor for state variances 2017-06-14 12:44:41 +01:00
priseborough
9f97cbfc3b AP_NavEKF3: Revert auto-code to original form and remove micro optimisations
To eliminate the possibility of editing errors, revert the covariance prediction auto-code to the original auto-code without the replacement fo the /2 and /4 operations. The compiler optimisations are able to correctly handle the /2 and /4 operations.

Also use local variables for intermediate covariance calculations. The use of class variables for these small arrays was unnecessary.
2017-06-14 12:44:41 +01:00
priseborough
f38fccd57c AP_NavEKF3: Prevent possible race condition re-zeroing state variances 2017-06-14 12:44:41 +01:00
priseborough
7adaea6019 AP_NavEKF3: Improve partitioning and efficiency of the covariance prediction
This patch ensures that covariance matrix entries for inactive states are always set to zero.
It also halves the number of copy operations from the updated to stored matrix.
2017-06-14 12:44:41 +01:00
priseborough
a1c117360c AP_NavEKF3: Ensure Kalman gain calculatons respect deactivated states
All Kalman gain calculations now explicity set gains for deactivated states to zero.
Previous use of loops to set gains to zero have been replaced with more efficient memset operations.
2017-06-14 12:44:41 +01:00
priseborough
5058405f8c AP_NavEKF3: add gyro bias state inhibit and rework index limit calculation
Inhibiting gyro bias estimation during the initial tilt alignment speeds alignment.
The calculation of the maxmum state index required has been modified so that it can handle all combinations of inhibited states.
Limiting the maximum state index accessed by all EKF operations result in significant processing reductions when higher index states are not being used.
2017-06-14 12:44:41 +01:00
priseborough
0cba133a1e AP_NavEKF3: Fix initialisation of state inhibit flags 2017-06-14 12:44:41 +01:00
priseborough
36e7dfb5f6 AP_NavEKF2: Improve GPS reference height estimator
Fix rounding error bug preventing state from updating after initial convergence.
Decouple GPS reference height from published EKf origin height.
Add bitmask parameter to control update and publishing of GPS reference height.
2017-06-14 12:44:41 +01:00
priseborough
9da3caca47 AP_NavEKF3: Improve GPS reference height estimator
Fix rounding error bug preventing state from updating after initial convergence.
Decouple GPS reference height from published EKf origin height.
Add bitmask parameter to control update and publishing of GPS reference height.
2017-06-14 12:44:41 +01:00
Pierre Kancir
e7a5dd6a69 AP_Marvelmind: fix warning in example 2017-06-14 12:40:47 +01:00
Pierre Kancir
914bc53100 Dataflash: fix shadowing of logstructure in SITL 2017-06-14 12:40:47 +01:00
Peter Barker
af6eb4e41d DataFlash: remove unused NeedPrep function 2017-06-14 12:20:29 +01:00
Peter Barker
9fb4ac2143 DataFlash: update examples for init simplification 2017-06-14 12:20:29 +01:00
Peter Barker
91b62abfe5 DataFlash: simplify dataflash initialisation 2017-06-14 12:20:29 +01:00
Randy Mackay
3bcc410048 AP_Beacon: fix pozyx west-east processing 2017-06-14 16:07:32 +09:00
Randy Mackay
af7f4fef0a DataFlash: protect against large testRatio from EKF
This should be resolved in the EKF but for now this stops the floating point exception
2017-06-14 16:07:32 +09:00