Commit Graph
100 Commits
Author SHA1 Message Date
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
Paul Riseborough 57a6faf8a2 px4iofirmware: remove unused defines 2016-12-13 16:14:15 +01:00
Paul Riseborough c4ccfeae0d mixer: improve multirotor motor limits reporting 2016-12-13 16:14:15 +01:00
Paul Riseborough 3835e8cd79 msg: improve multirotor_motor_limits reporting 2016-12-13 16:14:15 +01:00
Paul Riseborough 1fbc688757 Commander: Fix pre-flight EKF check errors 2016-12-09 17:58:23 +01:00
Paul Riseborough 81dc20ea86 logger: add preflight sensor check messages 2016-11-19 15:12:08 +01:00
Paul Riseborough 983cfb8fdd commander: Add preflight checking for EKF health and IMU sensor consistency 2016-11-19 15:12:08 +01:00
Paul Riseborough 55bf6b4974 sensors: Calculate and publish pre-flight IMU sensor consistency metric
If a single sensor is fitted, the calculation is not performed and zero values are published.
If dual IMU's are fitted, the vector length difference between the primary IMU and the second sensor is output for the angular rates and accelerations. The vector difference is low pass filtered before the length is taken.
If three IMU's are fitted, the vector length is calculated for both alternative sensors and and the maximum values output.
Fourth and subsequent IMU's are ignored.
2016-11-19 15:12:08 +01:00
Paul Riseborough c07f7b5659 msg: Add topic for pre-flight sensor checks 2016-11-19 15:12:08 +01:00
Paul Riseborough 06aca33085 ekf2_replay: Add missing log messages 2016-11-19 15:11:45 +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
Paul Riseborough 9221c74e46 tecs: improvements to pitch integration limiting
Constrain the specific energy balance integrator input to prevent increasing saturation of pitch demand.
Decay the specific energy balance integrator state if the pitch demand is saturated to reduce saturation to zero and do so at the same tome constant as the control loop
Relax the clipping threshold on the specific energy balance integrator to allow the input constraint and decay functions to do more of the work
Improve variable naming and commenting
2016-11-14 22:43:33 +11:00
Paul Riseborough bdec646736 ekf2_replay: Display RMS innovation values to assist with tuning
Displaying the RMS innovation values at the end of each replay assets with rapid iteration for time delay parameter tuning without having to plot or post process using another tool.
2016-11-11 08:51:12 +01:00
Paul Riseborough 246dc5421b ekf2: remove unnecessary variables found during review 2016-11-08 11:17:07 +01:00
Paul Riseborough d19a62a8f6 px4fmu-v1: Remove INAV to free required flash space 2016-11-08 11:17:07 +01:00
Paul Riseborough d75600b8a4 px4fmu-v2: Remove INAV to free required flash space 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 08a380ae2d ecl: update library reference
Enables optimum setting of sensor data buffer lengths using specified data delays and min arrival interval.
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