Andrew Tridgell
3354cb37d0
AP_GPS: fixed vertical velocity in Replay
...
fixed NavEKF use of velocity velocity
2014-12-09 18:57:17 +11:00
Andrew Tridgell
4a91546ced
HAL_PX4: FRAM does not support fsync
...
the fsync just wastes time reopening /fs/mtd
2014-12-09 14:35:36 +11:00
Randy Mackay
da247bacf8
GCS_MAVLink: add OPTICAL_FLOW to ap_message enum
2014-12-08 14:58:30 +09:00
Randy Mackay
3c23f00e81
OptFlow: remove ADNS3080 image grabber example
2014-12-08 14:58:24 +09:00
Andrew Tridgell
193bda068c
HAL_Linux: run IO processes when we do a stop_clock()
...
this has the effect of allowing logging to progress in Replay where we
are running at much more than realtime speeds
2014-12-08 11:24:39 +11:00
Andrew Tridgell
cb9c518ab8
Revert "AP_NavEKF : Reduce ripple in estimates that can cause copter motor 'pulsing'"
...
This reverts commit 13df6fb1c9
.
This patch was a result of an incorrect merge of the optflow branch
into master. It reintroduced the bug fixed by this commit:
AP_NavEKF : Fix bug in reset of GPS glitch offset
8aa267f75f
2014-12-08 07:53:47 +11:00
Andrew Tridgell
22a7b69260
AP_OpticalFlow: don't build optical flow example
...
broken by library changes
2014-12-06 22:05:42 +11:00
Andrew Tridgell
ed510d4f87
AP_OpticalFlow: run PX4 flow sensor at 10Hz
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-12-06 18:16:51 +11:00
priseborough
a2bd3b4a42
AP_NavEKF: Add public method returning height above ground level
2014-12-06 18:16:51 +11:00
priseborough
d701cfcb75
AP_NavEKF: Output terrain relative PosD when relying on Optical Flow
2014-12-06 18:16:51 +11:00
priseborough
0156d846f1
AP_NavEKF: Increase height at which nav gain reduction starts
...
Compensates for optical flow induced noise increase with height.
2014-12-06 18:16:51 +11:00
priseborough
12ea1d6e85
AC_AttitudeControl: Scale angle demand noise filter
...
Scales filter frequency using EKF nav gain scaler to take advantage of the reduced nav frequency whichcan tolerate a slower angle response.
This is required to reduce the effect of EKF optical flow noise increase with height.
2014-12-06 18:16:51 +11:00
priseborough
a905432ffe
AP_NavEKF: reduce height at which nav gain reduction starts
2014-12-06 18:16:51 +11:00
priseborough
5785272933
AP_NavEKF: Improve robustness to corrupted flow sensor data
2014-12-06 18:16:51 +11:00
priseborough
b1d44d4dde
AP_NavEKF: Add protection for negative height above ground
2014-12-06 18:16:50 +11:00
priseborough
e80b1c67cd
AC_AttitudeControl: Add EKF optical flow noise gain scaler
...
Allows gains to be adjusted to compensate for optical flow noise
2014-12-06 18:16:50 +11:00
priseborough
11fb51ceba
AC_WPNav: Add nav velocity gain scaler to interfaces
...
Allows gains to be adjusted to compensate for optical flow noise
2014-12-06 18:16:50 +11:00
priseborough
5b8265ad6f
AP_AHRS: Expand EKF speed limit public method to handle control limits
2014-12-06 18:16:50 +11:00
priseborough
d994da0886
AP_NavEKF: Expand EKF speed limit public method to handle control limits
2014-12-06 18:16:50 +11:00
priseborough
5fa0c59310
AC_WPNav: Add EKF ground speed limit to loiter speed control
...
This is required to prevent the speed controller saturating the optical flow sensor during low altitude flying.
2014-12-06 18:16:50 +11:00
priseborough
83775554ea
AP_AHRS: Publish EKF ground speed limit
2014-12-06 18:16:50 +11:00
priseborough
bc2255d6b1
AP_NavEKF: Improve comments in setInhibitGPS public method
2014-12-06 18:16:50 +11:00
priseborough
416eaf4633
AP_NavEKF: Apply single definition of using optical flow
2014-12-06 18:16:50 +11:00
priseborough
b56b68ce10
AP_NavEKF: Add public method reporting horizontal speed limit
...
This is required if using optical flow, as depending on height, the speed must be limited to prevent the sensor saturating
2014-12-06 18:16:50 +11:00
priseborough
c8fb376cc4
AP_NavEKF: Fix bug in bias rate of change limiting
...
This doesn't change the behaviour, but means the result is achieved using the correct parameters, and comments are consistent
2014-12-06 18:16:50 +11:00
priseborough
599e53f3f2
AP_NavEKF: Prevent flow scale factor updating on ground
2014-12-06 18:16:49 +11:00
priseborough
083e22966c
AP_NavEKF: Add public method to report available output data
2014-12-06 18:16:49 +11:00
priseborough
5532750a99
AP_AHRS: Add public method to inhibit GPS useage when using EKF
...
This provides the calling vehicle software the abiity to request the EKF to not use GPS.
An integer is returned that indicates the type of operation available:
0 = request rejected (request will only be accepted if the EKF is in static mode, eg pre-armed)
1 = request accepted, attitude, vertical velocity and position estimates available
2 = request accepted, attitude, height rate, height, horizontal velocity and relative position estimates available
2014-12-06 18:16:49 +11:00
priseborough
e53d28854e
AP_NavEKF: Add public method to inhibit GPS use and clean-up GPS use logic
...
This provides the calling vehicle software the abiity to request the EKF to not use GPS.
An integer is returned that indicates the type of operation available:
0 = request rejected (request will only be accepted if the EKF is in static mode, eg pre-armed)
1 = request accepted, attitude, vertical velocity and position estimates available
2 = request accepted, attitude, height rate, height, horizontal velocity and relative position estimates available
2014-12-06 18:16:49 +11:00
priseborough
8fb1d9cf8d
AP_NavEKF: Fix bug preventing opt flow scale factor estimation
...
Also removes un-used variable declarations
2014-12-06 18:16:49 +11:00
priseborough
a78920761c
AP_NavEKF: Update comments in flow data interface
2014-12-06 18:16:49 +11:00
priseborough
063fb41748
AP_OpticalFlow: Add separate scale factors for X and Y axis.
...
The resolution is also increased to take advantage of the planned introduction of automated calibration methods
2014-12-06 18:16:49 +11:00
priseborough
52c7e56a4a
AP_NavEKF: Add parameter for max valid optical flow rate magnitude
2014-12-06 18:16:49 +11:00
priseborough
6f8971d80a
AP_NavEKF: Speed up flow sensor gyro bias correction
2014-12-06 18:16:49 +11:00
priseborough
d7ad45ebda
AP_NavEKF: Don't fuse flow measurements if too big
2014-12-06 18:16:49 +11:00
priseborough
2dff76394d
AC_PosControl: Add spike and noise filter to demanded angles
...
This has been done to provide a smooth psotion hold when using an optical flow aided EKF which can be noisy.
Signed-off-by: priseborough <p_riseborough@live.com.au>
2014-12-06 18:16:49 +11:00
priseborough
84944fdd4e
AP_NAvEKF: Revert back to 10Hz fusion
2014-12-06 18:16:49 +11:00
priseborough
f4f0dfc45c
AP_OpticalFlow: efficiency improvements to data processing
2014-12-06 18:16:49 +11:00
priseborough
1f78a73cdb
AP_NavEKF: Make flow measurement delay vehicle specific
...
This takes into account the inter-sampling delay between the flow driver and the APM software which depends on the rate at which the dirver is being checked. This is 50Hz for plane and rover, and 200Hz for Copter.
2014-12-06 18:16:49 +11:00
priseborough
5f941655a8
AP_NavEKF: changes to support to 20Hz flow fusion rate
2014-12-06 18:16:48 +11:00
priseborough
0bf991eef9
AP_NavEKF: Fix bug in optical flow fusion smoothing
2014-12-06 18:16:48 +11:00
priseborough
7d27a22f77
DataFlash : Fix EKF optical flow logging bug
2014-12-06 18:16:48 +11:00
priseborough
7ec8dfebcf
AP_OpticalFlow : Remove gyro scale factor user adjustable parameter
...
No longer required because bug in flow sensor has been fixed.
2014-12-06 18:16:48 +11:00
priseborough
2baa1e56ed
Dataflash : Fix bug in EKF opt flow logging
2014-12-06 18:16:48 +11:00
priseborough
df59f3311a
AP_OpticalFlow : Add gyro scale factor correction parameter
2014-12-06 18:16:48 +11:00
priseborough
eec49ce1dd
AP_OpticalFlow : Add parameter for flow rate scale factor correction
2014-12-06 18:16:48 +11:00
priseborough
839b814d12
AP_NavEKF : Inhibit flow and range fusion in static mode
2014-12-06 18:16:47 +11:00
priseborough
9b9934ac06
AP_NavEKF : fix velocity timeout bug during optical flow operation
2014-12-06 18:16:47 +11:00
priseborough
cc8e6dbfad
DataFlash : Add EKF additional fault and timeout logging
2014-12-06 18:16:47 +11:00
priseborough
517026980b
AP_NavEKF : Add fault and timeout logging
2014-12-06 18:16:47 +11:00
priseborough
f640ec30ff
AP_NavEKF : Reset held velocity on arming
...
This held velocity is used to constrain the drift in the optical flow solution before the vehicle is high enough for the optical flow sensor to work.
2014-12-06 18:16:47 +11:00
priseborough
4616721b0d
DataFlash : Update EKF debug logging
2014-12-06 18:16:47 +11:00
priseborough
06c19a3a4d
AP_NavEKF : Update optical flow debug logging
2014-12-06 18:16:47 +11:00
priseborough
1791dec622
AP_NavEKF : Fix velocity hold mode
2014-12-06 18:16:47 +11:00
priseborough
84421e0a35
AP_NavEKF : Adjust initial flow scale factor and limits
2014-12-06 18:16:47 +11:00
priseborough
573633daf7
AP_NavEKF : Fix incorrect use of flow sensor time-stamp
...
flow sensor time stamp is now issued by the flow sensor and is on a different time-base
2014-12-06 18:16:47 +11:00
priseborough
92e9336fe1
AP_OpticalFlow : prevent divide by zero
2014-12-06 18:16:47 +11:00
priseborough
9ea97c1a38
AP_NavEKF : Modify optical flow data interface
...
Sign conventions have changed
2014-12-06 18:16:46 +11:00
priseborough
8faeb190de
AP_NavEKF : Rework logic to cope with bad flow data
2014-12-06 18:16:46 +11:00
priseborough
44e1695d5a
AP_AHRS : Enable EKF start without GPS
2014-12-06 18:16:46 +11:00
priseborough
41f0231cfb
AP_NavEKF : improve logic dealing with lack of flow or range data
2014-12-06 18:16:46 +11:00
priseborough
9ba46ad795
AP_NavEKF : Improve handling of flow sensor failure
2014-12-06 18:16:46 +11:00
priseborough
2ee1c549be
AP_NavEKF : improve criteria used to inhibit scale factor estimation
2014-12-06 18:16:46 +11:00
priseborough
e09ff84218
AP_NavEKF : Don't estimate focal length scale factor without reliable velocity
2014-12-06 18:16:46 +11:00
priseborough
4c92a5f23f
AP_NavEKF : Use GPS velocity if PX4Flow sensor fails
2014-12-06 18:16:46 +11:00
priseborough
283811edcb
AP_NavEKF : stop velocity change when flow measurements drop out
2014-12-06 18:16:46 +11:00
priseborough
9132fcfe43
AP_NavEKF : Change mag fusion to use corrected compass values
...
This enables compass units to be switched in-flight
2014-12-06 18:16:46 +11:00
priseborough
c3be486c29
AP_NavEKF : Enable inhibiting of GPS measurements
2014-12-06 18:16:45 +11:00
priseborough
79698f7742
AP_NavEKF : improvements to range finder fusion
2014-12-06 18:16:45 +11:00
priseborough
1222559da0
AP_NavEKF : Fix bug affecting sonar fusion
2014-12-06 18:16:45 +11:00
priseborough
117bd2a998
AP_NavEKF : Add time based noise to terrain offset state
2014-12-06 18:16:45 +11:00
priseborough
b1d3d5d9a3
AP_NavEKF : Don't update focal length scale factor at low speeds
2014-12-06 18:16:45 +11:00
priseborough
8dd1081f54
AP_NavEKF : Add range measurement to EKF debug message
2014-12-06 18:16:45 +11:00
priseborough
f358d5e20f
DataFlash : Add range measurement to EKF debug message
2014-12-06 18:16:45 +11:00
priseborough
744c72d40b
AP_NavEKF : Updates to range finder fusion
2014-12-06 18:16:45 +11:00
priseborough
a07e402ebf
DataFlash : Update names in EKF optical flow logging
2014-12-06 18:16:45 +11:00
priseborough
a20729f60f
AP_NavEKF : Update names in optical flow debug logging
2014-12-06 18:16:45 +11:00
priseborough
235b3bebda
AP_NavEKF : Add range finder health and enable range finder fusion
...
The 2-state auxiliary filter is also renamed.
2014-12-06 18:16:45 +11:00
priseborough
a4984a1e76
AP_AHRS : Add range finder health status to EKF optical flow data
2014-12-06 18:16:44 +11:00
priseborough
988de2a898
AP_NavEKF : Add smoothing to optical flow fusion
2014-12-06 18:16:44 +11:00
priseborough
70c779dbc2
AP_NavEKF : Optical flow numerical optimisations
2014-12-06 18:16:44 +11:00
priseborough
2a1420171a
AP_NavEKF : reduce minimum accepted flow quality
2014-12-06 18:16:44 +11:00
priseborough
3fbedc9f98
AP_NAvEKF : update comments
2014-12-06 18:16:44 +11:00
priseborough
81b09c9361
AP_NavEKF : temporary mods to test use of flow sensor internal gyro data
2014-12-06 18:16:44 +11:00
priseborough
12b012a00e
AP_AHRS : temporary mods to test use of flow sensor internal gyro data
2014-12-06 18:16:44 +11:00
priseborough
cd418c946c
AP_NavEKF : preliminary implementation for optical flow and range finder fusion
...
Range finder measurements are not input to EKF at this time, however the method for fusing them is
implemented.
2014-12-06 18:16:44 +11:00
priseborough
bc74abcd00
DataFlash : EKF optical flow fusion support preliminary changes
2014-12-06 18:16:44 +11:00
priseborough
7b76fc29fb
AP_AHRS : EKF optical flow fusion support preliminary changes
2014-12-06 18:16:44 +11:00
priseborough
13df6fb1c9
AP_NavEKF : Reduce ripple in estimates that can cause copter motor 'pulsing'
...
This patch reduces the level of 5Hz and 10Hz 'pulsing' heard in motors due to GPS and altimeter fusion which cause a small 5Hz and 10Hz ripple on the output under some conditions. Attitude, velocity and position state corrections from GPS, altimeter and magnetometer measurements are applied incrementally in the interval from receiving the measurement to the predicted time of receipt of the next measurement. Averaging of attitude state corrections is not performed during periods of rapid rotation.
Time stamps are now explicitly initialised to the current IMU time to avoid unwanted activation of timeout logic on filter start and the various calls to the hal.scheduler->millis() object have been consolidated.
Unused variables have been removed
2014-12-06 18:16:43 +11:00
priseborough
dcb252cc05
AP_NavEKF : Fix bug in reset of position and velocity states
...
If the inertial solution velocity or position needs to be reset to the GPS, the stored state history for the corresponding states should also be reset.
Otherwise the next GPS measurement will be compared to an invalid previous state and will be rejected.
The position state should be reset to a GPS position corrected for velocity and measurement latency. This will make a noticeable difference for high speed flight vehicles, eg 11m at 50m/s
2014-12-06 18:16:43 +11:00
priseborough
cb4d5986e0
AP_OpticalFlow : Update PX4Flow interface
...
Interface now uses the integral of flow and body rates
2014-12-06 18:16:43 +11:00
priseborough
0d774d301d
AP_OpticalFlow : Remove support for ADNS3080 sensor
...
It is not compatible with the new interface and data fusion requirements
2014-12-06 18:16:43 +11:00
Randy Mackay
4452aa8448
AP_AHRS_DCM: compile error fix for low speed CPUs
...
Also correct initialisatoin order to remove compiler warning
2014-12-05 19:43:05 +09:00
Jonathan Challinger
bfe71fea82
AC_PosControl: Use blended accelerometer measurement in altitude control
2014-12-05 19:40:10 +09:00
Jonathan Challinger
9261dfdefb
AP_AHRS_NavEKF: overload get_accel_ef and get_accel_ef_blended functions
2014-12-05 19:40:08 +09:00
Jonathan Challinger
4975cefd84
AP_AHRS_DCM: update _accel_ef_blended
2014-12-05 19:40:06 +09:00
Jonathan Challinger
033ee3c900
AP_AHRS: Add get_accel_ef_blended function
2014-12-05 19:40:04 +09:00
Jonathan Challinger
7692761f34
AP_NavEKF: Added getAccelNED function
2014-12-05 19:40:01 +09:00
priseborough
874d0780aa
AP_NavEKF: Reduce vulnerability to ground fixed magnetic interference
...
Re-initialisation of the magnetic field states and yaw angle is now only performed a maximum of two times after start-up.
Once when coming out of static modefor the first time (first arm event)
Again (for copter only) when the altitude gain above the arming altitude exceeds 1.5m
this prevents magnetic interference present at arming (eg arming on a metal roof)from corrupting the magnetic field states enough to cause bad heading errors and toilet bowling on copter
2014-12-05 14:33:04 +11:00
Andrew Tridgell
ede920f293
AP_Mission: ensure location options are zero at start of mavlink conversion
2014-12-03 18:29:43 +11:00