priseborough
8ea0b2d3c5
commander: rework posvel validity checks
...
Move into functions.
Reset probation time and recalculate checks if a mode change is demanded to give the operator ability to regain control as soon as possible after nav performance is regained. (+11 squashed commits)
Squashed commits:
[a4bb800] commander: enable pilot to quickly recover from loss of position accuracy
[19e16a0] commander: rework postal probation time
[f96284e] commander: rework bad pos and vel test probation time
[00d5f0c] commander: Allow EKF preflight checks to pass with moving vehicle
Separates the 'is using GPS' and the GPS quality checks.
Uses a reasonable subset of the GPS quality checks which allows checks to pass if the vehicle is moving.
[4cdfb5c] commander: remove unused variable
[349385a] commander: add EKF GPS quality checks to pre-arm checking
Only perform check if GPs checking is activated by parameter setting.
Display fault messages that makes it clear if EKF quality checks are failing or the EKF is not using GPS for another reason. We do not want to confuse this with GPS lock.
[340ae29] commander: make position invalid fail-safe more sticky
Require check to pass for 7 seconds before exiting failsafe. This is required because if GPs is failing innovation tests for a prolonged period, the EKF will periodically reset to the GPS and report good accuracy at the time of reset.
Adding this delay gives time for an underlying error condition (eg bad IMU or compass) to be re-detected.
[b04ac95] commander: Increase RAM allocation to eliminate low stack warnings
[9dca12f] commander: add missing position invalid fail-safe responses
[69f264d] commander: Update position invalid fail-safe responses
Replace separate logic for each case with a generic function
Add velocity checks.
[8e8cef1] commander: rework position validity checks
Consolidate existing checks for global and local position validity and add checking of velocity accuracy.
Enable checks to be bypassed using the CBRK_VELPOSERR parameter.
2017-05-03 08:37:14 +02:00
Paul Riseborough
40160c4488
integrationtests: add wait time before arming to allow checks to pass
2017-05-03 08:37:14 +02:00
priseborough
519e903347
systemlib: Add circuit breaker parameter for position error checks
2017-05-03 08:37:14 +02:00
priseborough
e61e733d1d
local_position_estimator: publish placeholder values for velocity accuracy
2017-05-03 08:37:14 +02:00
priseborough
3680057e6d
ekf_att_pos_estimator: publish placeholder values for accuracy reporting
2017-05-03 08:37:14 +02:00
priseborough
68c1ffd3e5
position_estimator_inav: publish placeholder values for velocity accuracy
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
priseborough
e9a3eca751
msg: add velocity accuracy reporting to local position topic
2017-05-03 08:37:14 +02:00
priseborough
d0d2c9dcba
msg: add velocity accuracy reporting to global position topic
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
Paul Riseborough
7c068e83d8
msg: correct definitions for local position origin validity flags
2017-05-01 17:23:11 +02:00
Paul Riseborough
1843061376
Tools/ecl_ekf: Improvements to ecl log analysis scripts
...
Fix error in scaling of population high frequency vibration metrics
Add histograms for delta angle and velocity bias data
Fix variable descriptions
2017-04-21 08:34:19 +02:00
Paul Riseborough
2a34bde0e9
Tools/ecl_ekf: Update EKF log analysis
...
Add assessment of IMU bias and mag field estimation
Reduce warning false positives by adjusting thresholds and eliminating use of peak value plots for output observer monitoring
Clear each figure after saving to reduce memory usage
2017-04-21 08:34:19 +02:00
Paul Riseborough
ed9a9b772e
ekf2: minimum change required to use updated ecl library
2017-04-21 08:34:19 +02:00
Paul Riseborough
dad2419b21
ecl: Update EKF version
...
Miscellaneous bug fixes and improvements including:
More conservative reporting of velocity and position accuracy when aiding is lost
Separate reporting of accuracy for local and global position
Detection and recovery from badly conditioned accel bias states and covariance values
Logic to prevent high manoeuvre levels causing bad acceleration bias learning
Reduce sensitivity of covariance prediction to timing jitter
Continue reporting of GPS quality until the later of airborne or checks pass
Add ability to perform wind estimation for multi-rotors using a specific force drag model
2017-04-21 08:34:19 +02:00
Paul Riseborough
bf06066010
Tools: Add scripts for ecl EKF log file analysis
2017-02-20 07:53:07 +01:00
Paul Riseborough
ed5c8913ad
events: update documentation for polyfit algorithm
2017-02-20 07:53:07 +01:00
Paul Riseborough
72633ad4c8
events: update documentation for polyfit algorithm
2017-02-16 22:17:47 +01:00
Paul Riseborough
1f4155c208
events: fix code style issues
2017-02-12 09:21:37 +01:00
Paul Riseborough
9858b0b491
sensors: Add calibration control parameters to QGC list
2017-02-12 09:21:37 +01:00
Paul Riseborough
36f83e46ee
events: abort calibration if starting temperature is too high
2017-02-12 09:21:37 +01:00
Paul Riseborough
22c8c59829
Thermal Calibration - add parameter required to control max starting temperature
2017-02-12 09:21:37 +01:00
Paul Riseborough
93a70c2d0b
systemlib: Fix parameter name error
2017-02-12 09:21:37 +01:00
Paul Riseborough
f3d30564ed
events: don't start baro calibration until specified temperature achieved
2017-02-12 09:21:37 +01:00
Paul Riseborough
e75f2b9cf7
events: don't start accel calibration until specified temperature achieved
2017-02-12 09:21:37 +01:00
Paul Riseborough
cdf80a868a
events: don't start gyro calibration until minimum temperature achieved
2017-02-12 09:21:37 +01:00
Paul Riseborough
c901c4b39e
Thermal Calibration - add parameter required to control minimum starting temperature
2017-02-12 09:21:37 +01:00
Paul Riseborough
693cc4a533
Update SYS_CAL_TEMP parameter name and description
...
We will be adding another parameter to set min starting temp, so this name needs to be made less generic.
Fixes typographical errors in the description
2017-02-12 09:21:37 +01:00
Paul Riseborough
b36e65fd6d
events: Improve consistency of console messages
2017-02-02 23:54:06 +01:00
Paul Riseborough
9e219fba0c
events: make required temp rise for calibration adjustable
2017-02-02 23:54:06 +01:00
Paul Riseborough
4ff5e7c5ab
systemlib
2017-02-02 23:54:06 +01:00
Paul Riseborough
8001db257c
ROMFS: enable auto start of thermal calibration
2017-02-02 23:54:06 +01:00
Paul Riseborough
8aa91512e9
systemlib: Add parameters to control thermal calibration startup behaviour
2017-02-02 23:54:06 +01:00
Paul Riseborough
f86347f1e2
Tools: Enable offline calibrator to handle less than 3 inertial sensors
2017-02-02 23:54:06 +01:00
Paul Riseborough
4d163eebb9
events: Add accelerometer and baro thermal calibration
2017-02-02 23:54:06 +01:00
Paul Riseborough
f0c456dd54
events: give gyro cal unique names in preparation for other sensor types
2017-02-02 23:54:06 +01:00
Paul Riseborough
7d8ce9ab9c
sensors: Fix bug in temperature offset calculation
2017-02-01 08:40:23 +01:00
Paul Riseborough
0a447e9a93
Tools: update instructions for off-board calibrator
2017-02-01 08:40:23 +01:00
Paul Riseborough
e78c5155a2
Tools: update calibration instructions
2017-02-01 08:40:23 +01:00
Paul Riseborough
253683af5f
drivers: Don't require driver level gyro offsets to be non-zero
2017-02-01 08:40:23 +01:00
Paul Riseborough
bdbc4f4d65
commander: fix bug in gyro calibration
...
If the same gyro data was contained in two uORB instances, the thermal offset coefficient was being corrected twice.
TODO should fix what was causing data from the same sensor to appear on two uORB topics.
2017-02-01 08:40:23 +01:00
Paul Riseborough
6e841f6cbd
commander: fix bugs in handling of thermal compensation during access cal
2017-02-01 08:40:23 +01:00
Paul Riseborough
06f280e021
Tools: reinstate original offline calibrator to unblock testing
...
Refactored calibrator is not working.
2017-02-01 08:40:23 +01:00
Paul Riseborough
f9b75e68c9
Tools: Change sign convention used by thermal calibrator
...
The flight code assumes corrections have the same sign as the sensor bias error and are subtracted from the raw reading
2017-02-01 08:40:23 +01:00
Paul Riseborough
c00c638b77
Remove IMU calibration parameter checks
2017-02-01 08:40:23 +01:00
Paul Riseborough
fb774bef67
commander: enable accel cal to adjust thermal compensation parameters
2017-02-01 08:40:23 +01:00
Paul Riseborough
bdd3b094a7
sensors: report mapping from uORB to compensation parameter index
2017-02-01 08:40:23 +01:00
Paul Riseborough
8b1a5461c4
sensors: Update documentation
2017-02-01 08:40:23 +01:00
Paul Riseborough
ba9e8741c0
msg: Add mapping from uORB index to compensation parameter index
...
This mapping is required so other applications can use the correct compensation data, even if the uORB ordering changes.
2017-02-01 08:40:23 +01:00
Paul Riseborough
f2f5034832
sensors: prevent high frequency updating of sensor corrections
...
The use of a float to integer cast was causing high frequency reporting when the float value was close to the rounding boundary.
2017-02-01 08:40:23 +01:00
Paul Riseborough
62694d92d2
commander: rework IMU cal for compatibility with temperature compensation
2017-02-01 08:40:23 +01:00
Paul Riseborough
add298c0b5
mc_att_control: use legacy offset and scale definition (+2 squashed commits)
...
Squashed commits:
[f81a8b0] mc_att_control: remove unnecessary initialisers
[f3d3f48] mc_att_control: accommodate changes to sensor_correction topic
2017-02-01 08:40:23 +01:00
Paul Riseborough
170bc91587
sensors: fix bug in thermal compensation temperature limit (+2 squashed commits)
...
Squashed commits:
[2df1d9e] sensors: change definition of sensor offset and scale factor to match legacy code
[089e103] sensors: publish thermal corrections for all sensors
2017-02-01 08:40:23 +01:00
Paul Riseborough
1dd9a10260
msg: publish thermal corrections for all sensors
2017-02-01 08:40:23 +01:00
Paul Riseborough
7e21aaf0c9
Tools: Add script file to generate sensor thermal compensation parameters
2017-01-21 11:48:03 +01:00
Paul Riseborough
d8c046e47c
ROMFS: add thermal calibration logging mode
2017-01-21 11:48:03 +01:00
Paul Riseborough
3a029e58c7
logger: Add mode for thermal calibration logging
...
Logs the IMU and baro data at 10Hz
2017-01-21 11:48:02 +01:00
Paul Riseborough
1d66d4b051
sensors: Allow for difference in temperature readings across sensors
...
We need to track the temperature change in each sensor instance individually when using it as basis for publication.
2017-01-21 08:31:56 +01:00
Paul Riseborough
eac6dfed3c
mc_att_control: Sync attitude loops to gyro data
...
Sync the attitude controller to the raw gyro data to remove the latency in the rate loops caused by the sensor and estimator modules.
Attitude data latency will increase as it will be from the previous EKF update, however attitude loops are less latency sensitive.
Thermal compensation and bias data will be from the previous frame.
2017-01-19 19:24:52 +01:00
Paul Riseborough
b2113b9abe
cmake: Reduce flash size for px4fmu-v2 build
...
Removes Iridium SBD support
2017-01-19 19:24:52 +01:00
Paul Riseborough
edbe68f833
posix drivers: use orb instance as surrogate sensor ID for simulated IMU
2017-01-19 19:24:52 +01:00
Paul Riseborough
e84a189380
drivers: use driver class instance as surrogate sensor ID for gyro and accelerometer
2017-01-19 19:24:52 +01:00
Paul Riseborough
60c12aaa36
msg: change sensor device ID's to signed integers
...
Required to use driver class instance as surrogate sensor ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
0485c2b94a
sensors: add baro pressure temperature compensation and reporting
2017-01-19 19:24:52 +01:00
Paul Riseborough
c21b4aaf2e
posix drivers: Populate baro device ID
...
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
0ba31b521c
uavcan: Populate baro device ID
...
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
677616ed83
mavlink: Populate baro device ID
...
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
5e53a5425a
drivers: Populate baro device ID
...
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
137bd73ea1
msg: add reporting of baro sensor corrections
...
Also improve documentation
2017-01-19 19:24:52 +01:00
Paul Riseborough
c2fc283fdb
sensors: Update single axis temp comp method to 5th order
...
This allows future use with baro sensors that require a higher fit order
2017-01-19 19:24:52 +01:00
Paul Riseborough
6a78df7fa0
ekf_att_pos_estimator: Publish control state gyro bias
2017-01-19 19:24:52 +01:00
Paul Riseborough
f8cef1e9ab
attitude_estimator_q: populate control state gyro bias data
...
Populate with zeros.
TODO provide estimate.
2017-01-19 19:24:52 +01:00
Paul Riseborough
27e6f07485
ekf2: publish control state gyro bias data
2017-01-19 19:24:52 +01:00
Paul Riseborough
28488cfcd0
msg: add gyro biases to control state message
2017-01-19 19:24:52 +01:00
Paul Riseborough
da87e3eb0a
posix drivers: Populate device ID in sensor topics for simulated IMU
2017-01-19 19:24:52 +01:00
Paul Riseborough
961474f430
posix drivers: Populate device ID in sensor topics for mpu9250
2017-01-19 19:24:52 +01:00
Paul Riseborough
1009550262
posix drivers: Populate device ID in sensor topics for mpu6050
2017-01-19 19:24:52 +01:00
Paul Riseborough
48f81f24e1
posix drivers: Populate device ID in sensor topics for lsm9ds1 sensor
2017-01-19 19:24:52 +01:00
Paul Riseborough
7c9e9f31e1
drivers/mpu9250: Populate device ID in sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
5177866b54
drivers/mpu6500: Populate device ID in sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
ddda5eccd6
drivers/mpu6000: Populate device ID in sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
cfaef7f433
drivers/lsm303d: Populate device ID in sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
14e2ea78b3
drivers/l3gd20: Populate device ID in sensor topic
2017-01-19 19:24:52 +01:00
Paul Riseborough
9014443d77
drivers/bmi160: Populate device ID in sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
f12820755f
msg: Add device ID to sensor_baro topic
2017-01-19 19:24:52 +01:00
Paul Riseborough
6a160ecad3
msg: Update documentation for gyro and accel sensor topics
2017-01-19 19:24:52 +01:00
Paul Riseborough
63f032832f
Add prototype IMU temperature compensation
...
Enabled using TC_A_ENABLE and TC_G_ENABLE parameters
Disabled by default.
IMU offsets and scale factors for selected sensor published to sensor_correction topic
TODO Parameter storage method is cumbersome
2017-01-19 19:24:52 +01:00
Paul Riseborough
9599f58c5d
msg: add uORB topic for IMU sensor corrections
2017-01-19 19:24:52 +01:00
Paul Riseborough
4f1b748786
msg: Fix documentation errors in sensor_combined
2017-01-19 19:24:52 +01:00
Paul Riseborough
94ce6e12c1
sensor: update default flow sensor rotation
...
The SENS_FLOW_ROT parameter is used in the px4flow and mavlink receiver to perform the rotation from sensor frame to body frame.
2016-12-30 10:39:10 +01:00
Paul Riseborough
3787fafdff
px4flow: update default rotation and documentation
...
The driver performs the rotation from sensor frame to body frame.
The recommended installation default is with the Y sensor axis pointing forward.
2016-12-30 10:39:10 +01:00
Paul Riseborough
eca2aeccf9
position_estimator_inav: Make optical flow data conversions consistent with uORB interface
2016-12-30 10:39:10 +01:00
Paul Riseborough
92f5211f55
local_position_estimator: Make optical flow data conversions consistent with uORB interface
2016-12-30 10:39:10 +01:00
Paul Riseborough
ae55c8d87c
msg: Clarify sign conventions for optical flow message
2016-12-30 10:39:10 +01:00
Paul Riseborough
da6d4398e9
px4fmu: publish mixer saturation data to uORB
2016-12-13 16:14:15 +01:00
Paul Riseborough
ca6f67fd3b
tap_esc: publish mixer saturation status to uORB
2016-12-13 16:14:15 +01:00
Paul Riseborough
8b55c8ec55
systemlib mixer: Add public method for multi_rotor saturation status
2016-12-13 16:14:15 +01:00
Paul Riseborough
eb67686b11
mc_att_control: Improve integrator wind-up protection
...
Use reporting from the motor mixer to only restrict integrator growth when it will result in increased saturation of the control axis concerned.
Enable absolute integrator limits to be set by parameter
2016-12-13 16:14:15 +01:00
Paul Riseborough
efb7131186
px4io: improve multi-rotor motor saturation status reporting
2016-12-13 16:14:15 +01:00