Paul Riseborough
889fb30029
ekf2: Improve control of magnetometer bias learning
...
Adds parameters so that the motion checks used to switch between magnetic yaw and 3-axis fusion can be adjusted.
Modifies the check used to determine if learned mag biases can be saved. A cumulated calibration time is used rather than continuous calibration time to allow for for switching in and out of 3-axis fusion mode that is required to do calibration.
2017-05-20 10:24:08 +02:00
Paul Riseborough
aa69ae0ee6
ekf2: Add preflight checking of velocity and height innovations
...
Filters the vertical position and 3-axis velocity innovations and sets the local and global position as invalid if they exceed limits during ARMING_STATE_STANDBY.
2017-05-20 10:24:08 +02:00
Paul Riseborough
2d34a3e096
ekf2: monitor estimator time slip
...
Used to check if the ekf2 module is failing to keep up with the IMU data
2017-05-20 10:24:08 +02:00
Paul Riseborough
5bfe6d7fec
ekf2: Fix failure to save mag declination
2017-05-03 08:37:14 +02:00
Paul Riseborough
b64e40b5da
ekf2: format fixes
2017-05-03 08:37:14 +02:00
Paul Riseborough
46ece548cd
ekf2: Changes following code review
2017-05-03 08:37:14 +02:00
Paul Riseborough
6474922224
ekf2: Save learned magnetometer biases
2017-05-03 08:37:14 +02:00
priseborough
1f5908786e
ekf2: don't publish estimator status and innovations unless updated
2017-05-03 08:37:14 +02:00
priseborough
fb6e050b06
ekf2: Improve error reporting
...
Add missing velocity accuracy reporting
Add missing dead reckoning reporting
2017-05-03 08:37:14 +02:00
Paul Riseborough
9983bf2364
ekf2: fix errors in publishing of local position origin validity flags
2017-05-01 17:23:11 +02:00
ChristophTobler
6c15666368
ekf2: accept min/max range
2017-04-27 21:15:47 +02:00
Paul Riseborough
ed9a9b772e
ekf2: minimum change required to use updated ecl library
2017-04-21 08:34:19 +02:00
Beat Küng
eaa9e6a019
ekf2: set att.timestamp to now in replay mode before ekf is initialized
...
logger will always log this topic, and a 0 timestamp will look worse in
FlightPlot. This will show a period of 0 attitude instead before ekf
is initialized.
2017-03-04 22:47:54 +08:00
Beat Küng
aabdc4125b
ekf2: publish ekf2_timestamps topic
2017-03-04 22:47:54 +08:00
Beat Küng
2220c3a60d
ekf2: use sensors timestamp for published topics when in replay mode
...
when doing fast replay, hrt_absolute_time() will not match the replayed time
thus we just use the same timestamp as the input sensors.
2017-03-04 22:47:54 +08:00
Beat Küng
018846fadf
ekf2_replay.msg: use timestamp instead of time_ref, remove unused time_usec_vel
2017-03-04 22:47:54 +08:00
Daniel Agar
ecb2511a7b
add matrix copyTo
2017-02-25 11:04:02 +01:00
Roman
4bffb1478f
ekf2: added parameter for range sensor pitch offset
...
Signed-off-by: Roman <bapstroman@gmail.com >
2017-02-22 22:21:41 +01:00
Kabir Mohammed
7236bafee1
ekf2 : move to new vision topic
2017-02-15 21:48:33 +01:00
Daniel Agar
e927f3e040
clang-tidy modernize-use-nullptr
2017-02-01 22:15:50 -05:00
Paul Riseborough
27e6f07485
ekf2: publish control state gyro bias data
2017-01-19 19:24:52 +01:00
Lorenz Meier
50002a0ff6
Update EEKF2 to match ecl updates
2017-01-15 01:57:38 -08:00
Lorenz Meier
b7f5a33c90
EKF2: Code style and efficiency
...
Its sufficient to use sqrtf() with floating point resolution and its better to use the Matrix library call for local and global position yaw
2016-12-25 18:15:51 +01:00
Matthias Grob
537f72073d
minor: uppercase typo and unused header
2016-12-20 09:46:36 +01:00
Roman
1e1bf7e4bb
ekf2 reset: fix sign of delta altitude for global position topic
...
Signed-off-by: Roman <bapstroman@gmail.com >
2016-11-21 07:29:21 +01:00
Roman
d4c87d62f1
fixed code style
...
Signed-off-by: Roman <bapstroman@gmail.com >
2016-11-21 07:29:21 +01:00
tumbili
0e481a5d00
ekf2: publish state reset information
2016-11-21 07:29:21 +01:00
Paul Riseborough
9ff1feb92f
ekf2: fix formatting
2016-11-15 23:58:05 +01:00
Paul Riseborough
056ac3c9c6
EKF: Update default value for sideslip fusion noise
...
Use value obtained from tuning on replay logs
2016-11-15 23:58:05 +01:00
Paul Riseborough
680a8f0b44
ekf2: fix rebase compile errors
2016-11-15 23:58:05 +01:00
CarlOlsson
72ad6627e1
updated beta noise
...
Conflicts:
src/modules/ekf2/ekf2_params.c
2016-11-15 23:58:05 +01:00
CarlOlsson
e4f5710ec3
added logic for beta fusion
2016-11-15 23:58:05 +01:00
CarlOlsson
f00f6e6eff
added parameter for when to fuse sideslip
2016-11-15 23:58:05 +01:00
CarlOlsson
d550290e63
modified ekf2_main.cpp
2016-11-15 23:58:05 +01:00
Paul Riseborough
246dc5421b
ekf2: remove unnecessary variables found during review
2016-11-08 11:17:07 +01:00
Paul Riseborough
0ee75dbc6b
ekf2: Allow adjustment of min arrival time delta parameter
2016-11-08 11:17:07 +01:00
Paul Riseborough
5ac73f3440
ekf2: code style fixes
2016-11-08 11:17:07 +01:00
Paul Riseborough
699edd2535
ekf2: Prevent loss of baro data due to buffer time arrival checks
...
Baro data arriving too soon after the last measurement due to a high sampling rate or timing jitter is rejected inside the ecl EKF to prevent the data buffer overflowing.
This patch checks the timestamp difference from the last measurement, and if to small, the data is accumulated and the average sent to the EKF when the time delta
is acceptable.
2016-11-08 11:17:07 +01:00
Paul Riseborough
ef7ed97cbd
ekf2: Don't send un-usable mag and baro data to the EKF
...
Fixes:
1) Invalid data with a zero time stamp could be the EKF ends up in the data buffers and result in loss of 'good' data from the buffers
2) Magnetometer data was arriving at a rate faster than the data buffers could handle resulting in loss of data.
2016-11-08 11:17:07 +01:00
Beat Küng
d1a3261e81
ekf2_main: reduce stack (according to the reductions in the commit before)
2016-11-06 14:48:20 +01:00
Beat Küng
5bcfa3c7e6
ekf2_main: add {} to limit variable scope and save stack
...
Reformatting makes it look worse than it is, but it really only adds {}
2016-11-06 14:48:20 +01:00
Beat Küng
cc27d2a1e0
ekf2_main: move subscriptions into main thread & call orb_unsubscribe at the end
2016-11-06 14:48:20 +01:00
Beat Küng
53cf27eb84
ekf2_main: some cleanup of redundant fields
2016-11-06 14:48:20 +01:00
Beat Küng
7c6d99d30f
BlockParam: remove _extern_address and create a new class BlockParamExt for this
...
In most cases, _extern_address was unused, thus wasting cycles & RAM. This
adds a separate class BlockParamExt with the field and uses it in ekf2_main
Frees roughly 0.5KB of RAM on Pixracer
2016-10-23 15:25:20 +02:00
Paul Riseborough
06ad477847
ekf2: publish vibration metrics
2016-10-22 12:03:05 +02:00
Roman
a978d61d9a
attitude message cleanup: more cleanup
...
Signed-off-by: Roman <bapstroman@gmail.com >
2016-10-18 20:46:08 +02:00
Lorenz Meier
526fb8f515
Remove q_valid flag from attitude topic
2016-10-18 20:46:08 +02:00
Roman
b8a219d351
removed comments and fixed some euler bugs
2016-10-18 20:46:08 +02:00
tumbili
5e0e522903
adapted to new vehicle attitude message
2016-10-18 20:46:08 +02:00
Paul Riseborough
865b6404ec
ekf2: reduce default output predictor time constant
2016-10-13 09:06:41 +02:00