Commit Graph
49423 Commits
Author SHA1 Message Date
Paul Riseborough bc34b14779 EKF: Initialise height state variance to a value compatible with the measurement
A large height state variance and small measurement variance can destabilise the filter in the first few seconds after alignment
2016-05-05 21:23:03 +10:00
Paul Riseborough 29a361d3a3 EKF: Use intuitive units for gyro and accel bias process noise
This also makes the tuning less sensitive to changes in the EKF update rate.
2016-05-05 21:23:03 +10:00
Paul Riseborough 799865c934 EKF: update default tuning parameters 2016-05-05 21:23:03 +10:00
Paul Riseborough f01f4ae4b1 EKF: tidy up mag declination fusion 2016-05-05 21:23:03 +10:00
Paul Riseborough 0d31aad33a EKF: Fix bad limit on magnetometer noise parameter 2016-05-05 21:23:03 +10:00
Paul Riseborough 7069fb7a04 EKF: refresh auto code for mag fusion 2016-05-05 21:23:03 +10:00
Paul Riseborough ffea65e1a4 EKF: fix bug in state prediction 2016-05-05 21:23:03 +10:00
Paul Riseborough 63f093a10a EKF: Update upper limits for state variances
This limiting is a  last resort measure and the limiting for normal operation should be achieved by modification in the covariance prediction
2016-05-05 21:23:03 +10:00
Paul Riseborough 26a51c667d EKF: Improve robustness to initial gyro bias errors
Allows for ~6 deg/sec of startup bias
2016-05-05 21:23:03 +10:00
Paul Riseborough 7530e30012 EKF: Improve IMU data collection
Use IMU driver published delta angle integration time to determine when enough data has been accumulated.
Perform basic first order sculling corrections on delta velocity data
Comment steps to make make method clearer
2016-05-05 21:23:03 +10:00
Paul Riseborough f23f0b1035 EKF: fix bugs in stationary process model covariance prediction
Noise variance for stationary states was  being overwritten by the covariance prediction operations for the kinematic states
Unwanted states could end up with non-zero covariance values
The forced symmetry operation was being applied too late to be effective
2016-05-05 21:23:03 +10:00
Paul Riseborough a373ada858 EKF: explicitly define floating point type in hardcoded constants 2016-05-05 21:23:03 +10:00
Paul Riseborough a189c60d33 EKF: update code fragment text files 2016-05-05 21:23:03 +10:00
Paul Riseborough f4e84a2234 EKF: fix axis label error in comments 2016-05-05 21:23:03 +10:00
Paul Riseborough 57d3036ee7 EKF: update derivation files 2016-05-05 21:23:03 +10:00
Paul Riseborough 82da832816 EKF: tidy up Kalman gain calculations
Inhibiting of states is controlled via zeroing rows and columns in the covariance prediction so conditional logic in gain calculations is unnecessary.
2016-05-05 21:23:03 +10:00
Paul Riseborough 311d046a26 EKF: Enable optional activation of XY delta velocity bias estimation 2016-05-05 21:23:03 +10:00
Paul Riseborough 572c2280bd EKF: tidy up covariance prediction 2016-05-05 21:23:03 +10:00
Paul Riseborough 54e713969d EKF: Fix rebase error 2016-05-05 21:23:03 +10:00
Paul Riseborough 67d23948b5 EKF: preliminary re-tune 2016-05-05 21:23:03 +10:00
Paul Riseborough 03c35266ef EKF: remove unused parameter 2016-05-05 21:23:03 +10:00
Paul Riseborough fe9f88a8b4 EKF: test new derivation
Use direct attitude parameterisation
Discard scale factors
Add accel bias
2016-05-05 21:23:03 +10:00
MaEtUgR b2eb4d13d8 Matrix.setCol off by one bug fixed
The Column Vector you are copying from, only has one Column and it is indexed by 0 not 1.
I also completed the unit test stub that would have found this bug.
2016-05-05 13:18:51 +02:00
Lorenz Meier e61f517bc6 Update ECL library to include all bugfixes 2016-05-05 13:18:03 +02:00
Lorenz Meier bdaa2ee20e Update DriverFramework to include recent improvements and fixes 2016-05-05 11:51:36 +02:00
Julian Oes 3e165c51d4 cmake: copy over changes that rebase missed 2016-05-05 09:14:11 +02:00
Julian Oes efd20373ff cmake: re-use the QURT build as well
Instead of calling the eagle cmake script from excelsior, use a shared
sdflight cmake file like in it is done for the POSIX build on
Snapdragon.
2016-05-05 09:12:46 +02:00
Julian Oes 805ef9fff1 cmake: added some comments about eagle/excelsior 2016-05-05 09:11:59 +02:00
Julian Oes 01ad1b642b Makefile: whitespace only 2016-05-05 09:11:29 +02:00
jwilson 5b6fae5380 Adding config changes to allow PX4 to be built for the Excelsior board. 2016-05-05 08:34:31 +02:00
jwilson c87a8bedb6 Adding config changes to allow PX4 to be built for the Excelsior board. 2016-05-05 08:34:31 +02:00
Julian Oes 0c5c111cdd cmake: no param sculling for all eagle configs 2016-05-05 08:09:59 +02:00
David Sidrane 8d510471a1 Turn off paramter culling on eagle 2016-05-05 08:00:26 +02:00
David Sidrane a08cce27d7 Allow paramter culling to be tunred off 2016-05-05 08:00:26 +02:00
Daniel Agar 553818b646 make submodulesclean proper order
-can't sync after deinit
2016-05-04 23:21:17 -04:00
Pavel Kirienko ec84f64f5f Warning fixes (GCC 5.3) 2016-05-05 05:30:49 +03:00
Daniel Agar 22d18d638c enable Wshadow 2016-05-04 19:45:40 -04:00
Felix Hu 18176ea73d change productstr 2016-05-04 23:33:48 +02:00
Felix Hu 9dd42e45d5 mod mindpx v2 prototype and defconfig 2016-05-04 23:33:48 +02:00
Lorenz Meier 45a5f2aaa4 MC vel control: Better defaults, better min and max gains 2016-05-04 22:49:36 +02:00
Julian Oes aafcae7e6f MPU9250: integrate using the FIFO sample interval
Instead of calculating time offsets between samples, it is easier just
to assume a constant sampling time. Then all samples can be integrated,
and published every forth time the FIFO buffer has been emptied.

The sampling in the sensor happens at 8kHz, the driver empties the
buffer at 1kHz, and publishes (and resets the integration) at 250 Hz.
2016-05-04 22:28:19 +02:00
Julian Oes f528c63030 integrator: add a put method for known intervals
This adds a second put method to the integrator class. This allows to
integrate with known intervals between samples, rather than based on
timestamps. This makes integrating the samples coming out of the MPU9250
FIFO buffer easier.
2016-05-04 22:28:19 +02:00
Beat Küng e24bef1f70 fix AttPosEKF::FuseOptFlow: move fuse block into 'if (fuseOptFlowData)' block
if fuseOptFlowData == false, then K_LOS was not initialized, but it was
accessed in the next fuse block to update states variable.
2016-05-03 17:34:42 +02:00
Beat Küng 27d821ac9f fix position_estimator_inav_main: put terrain_estimator on the stack
This fixes a memory leak
2016-05-03 17:34:42 +02:00
Beat Küng 44a0981c14 fix px4_task_spawn_cmd: unlock mutex if pthread_create fails 2016-05-03 17:34:42 +02:00
Beat Küng 99a682e7a7 fix px4_task_spawn_cmd: memory leak, if one of the pthread_* calls fails 2016-05-03 17:34:42 +02:00
Beat Küng c942266aa6 fix airspeedsim: add missing return 2016-05-03 17:34:41 +02:00
tumbili 57f73e59b7 warn immediately if ekf2 instance allocation has failed 2016-05-03 16:09:26 +02:00
tumbili 9f5e9594f5 implement ekf instance and block parameter instance as class members
in order to avoid memory management
2016-05-03 16:09:26 +02:00
Julian Oes a6e1df06d9 Merge pull request #4422 from PX4/fix_snappy_muorbinit
muorb: call `initialize()` before `get_instance()`
2016-05-03 15:51:21 +02:00