Commit Graph
46848 Commits
Author SHA1 Message Date
Julian Oes 585b03898f vtol_att_control: ack transition commands
Previously transition commands were not acked at all which meant that a
mavlink consumer such as a ground station would not get feedback if the
command arrived.

This solution is not optimal because it does not take into account if
the transition actually happened but at least it is feedback that the
command has arrived at the destination.
2017-11-13 09:56:11 -05:00
Lorenz Meier 4028692bfe Navigator: Limit string copy to length of target array 2017-11-13 09:59:54 +01:00
korigod c3fe7e989e integrationtests: upgrade numpy before px4tools install (#8274)
During px4tools installation, the latest version of pandas is
installed, which requires numpy>=1.9.0. Pandas installs the required
version, however, due to the presence of the old numpy in the docker
image, the present version 1.8.2 is used, which leads to an error
when importing pandas.

This commit fixes the problem by explicitly upgrading numpy before
px4tools installation.

Signed-off-by: Andrey Korigodsky <akorigod@gmail.com>
2017-11-12 23:33:36 -05:00
Paul Riseborough cc651ac472 Merge pull request #354 from PX4/ekfMagYawReset-wip
Prevent loss of navigation accuracy after in-flight mag yaw alignment
2017-11-13 07:32:23 +11:00
Paul Riseborough 72a7ab2c25 EKF: Improve resistance to bad initial mag offset
When magnetic field states have been reset in-flight using a single sample, the magnetic field states are not used to constrain heading drift for a period after the reset. This period has been shortened from 10 to 5 seconds which is enough time to average out the effects of measurement noise (the original concern). The shorter time has enabled the previous practice for RW vehicles of using magnetic heading in that time period to constrain yaw drift to be discontinued. This is necessary becasue while magnetic heading is being used, it fights the yaw corrections obtained from GPs observations and lengthens the time required to recover from a bad mag calibration.
2017-11-13 07:05:56 +11:00
Paul Riseborough df9f48d2d3 EKF: Fix build error 2017-11-13 07:05:56 +11:00
Paul Riseborough 44c50ab2df EKF: Correct magnetic yaw measurement using learned mag biases
Don't apply bias corrections when biases are being learned to avoid possible circular data dependency.
2017-11-13 07:05:56 +11:00
Paul Riseborough c70363c501 EKF: Don't fuse heading if FW and waiting for mag states to stabilise
Doing so is a bad idea because bad mag data can drag the yaw angle away from the reset value and lead to rejection of GPS.
2017-11-13 07:05:56 +11:00
Paul Riseborough 279fc836f7 EKF: Always reset covariance matrix terms when doing vel pos state reset
If state errors were large before the reset, then failure to reset the covariance matrix terms can result in incorrect fusion of position and velocity measurements after the reset due to inconsistencies in the covariance matrix.
2017-11-13 07:05:56 +11:00
Paul Riseborough 141264fe63 EKF: Add method to set diagonals in covariance matrix 2017-11-13 07:05:56 +11:00
Paul Riseborough 32de90b9ef EKF: Add method to zero covariance terms 2017-11-13 07:05:56 +11:00
Paul Riseborough f3e34eddc9 EKF: do not attempt to align FW yaw using GPS method if on ground 2017-11-13 07:05:56 +11:00
Paul Riseborough 8f27d3fc54 EKF: don't reset quaternion states unnecessarily
When performing the initial in-flight mag yaw reset for RW vehicle, do not reset the quaternion states and corresponding variances unless there has been a change in yaw angle large enough to cause problems with navigation.
This is because the state estimates after a reset are more vulnerable to transient sensor errors, so a reset should be avoided if possible.
2017-11-13 07:05:56 +11:00
Paul Riseborough 9e47b6e1b6 EKF: don't reset quaternions unnecessarily
When performing the initial in-flight magnetic field reset for fixed wing vehicles, resetting the quaternion states and their corresponding covariances should be avoided unless yaw errors are large, because state estimates are vulnerable to transient sensor errors immediately following a reset.
2017-11-13 06:55:02 +11:00
Paul Riseborough 29d383edbf EKF: Allow mag field estimates to stabilise before use 2017-11-13 06:55:02 +11:00
Paul Riseborough 363edf5eb9 EKF: Fix yaw reset for fixed wing
Ensures that a complete reset of velocity and position states will always be performed if yaw has had to be reset using GPS velocity.
Ensures that the yaw_align status cannot be set to false once the filter has aligned.
2017-11-13 06:55:02 +11:00
garfieldG cddea6f4b3 Fixed version firmware type (#8250)
* Fixed the version tag to number and version tag to vendor version number to return dev version in case of any local modifications or in case there's a dash before firmware type in tags that support vendor  version.
v1.7.0-rc0
2017-11-11 20:04:16 -05:00
Paul Riseborough 7852c0ed03 Merge pull request #312 from PX4/pr-ekfExtVisQuat
EKF: Enable operation with arbitrary External Vision reference frame
2017-11-12 08:35:39 +11:00
Paul Riseborough 5fd006ca48 EKF: remove redundant code 2017-11-11 07:06:01 +11:00
Julien Lecoeur 4e7bd576cb generate_listener.py: generate one function per topic to fit function sizelimit 2017-11-09 10:54:35 +01:00
Julien Lecoeur 8f2759ba79 topic_listener: allow multi-topic messages 2017-11-09 10:54:35 +01:00
ChristophTobler 368248fe6d Merge pull request #353 from PX4/pr-expo_int_cast
EKF: use uint64_t cast for XeY to avoid float casting of variables
2017-11-08 11:54:39 +01:00
ChristophTobler e388e59f32 EKF: use uint64_t cast for XeY to avoid float casting of variables
The default type for XeY is float
2017-11-08 11:40:26 +01:00
Beat Küng cf7140526a jMAVSim: update submodule to include fix for VMware driver 2017-11-08 10:47:57 +01:00
Daniel Agar 0a58bd309c EKF2 always publish status message (#8234)
* EKF2 always publish status message

* EKF2 fix comment typo

* EKF2 time slip use signed int and consolidate

* EKF2 minor readability improvements
2017-11-08 07:55:50 +11:00
Matthias Grob 3bd94fcd6f Test vector: structured & commented, added normalize and unit_or_zero tests, removed duplicate data preparation 2017-11-06 17:58:52 +01:00
Matthias Grob 9e59691e43 Vector: Additional normalization with check for zero norm because it occurs so many times in applications 2017-11-06 17:58:52 +01:00
Daniel Agar aa699cf4b7 Jenkins track test results (#8236) 2017-11-05 15:04:14 -05:00
TSC21 5a17f6b2d5 lpe: update _sensorTimeout init on constructor 2017-11-03 23:45:43 +01:00
TSC21 483f0d55e0 lpe: style fix 2017-11-03 23:45:43 +01:00
TSC21 051822eee1 lpe: remove unneeded subscriber to manual_control_setpoint 2017-11-03 23:45:43 +01:00
TSC21 691c35f47e lpe: small fixes 2017-11-03 23:45:43 +01:00
TSC21 e6efb5ec0a lpe: update _sensorTimeout and _sensorFault to handle support of more sensors 2017-11-03 23:45:43 +01:00
TSC21 392999c2df lpe: fix innovation covariance publishing 2017-11-03 23:45:43 +01:00
avinash-palleti 76fcd99241 Fix protocol_splitter compilation issues (#8230)
Fixing compilation warnings which are treated as errors.
2017-11-03 15:35:46 +05:30
Paul Riseborough bba3f70a0e EKF: reduce prediction time step from 12 to 8 sec
Reduces susceptibility to incorrect estimation of acceleration bias during sustained yaw rate.
Requires an increase in RAM allocation of 837 Bytes to allow for the longer IMU and output predictor buffers that can be created.
2017-11-02 09:27:33 +01:00
Paul Riseborough 01d68ef67c EKF: Enable use of rotated external nav estimates 2017-11-01 08:33:57 +11:00
Beat Küng 459a71a6f1 mavlink_receiver: directly pass the result to acknowledge()
And use denied in case ulog streaming fails.
2017-10-31 22:16:06 +01:00
Beat Küng a2db639289 mavlink_receiver: disable ulog streaming via Telemetry links
Telemetry links don't have enough bandwidth for that feature. The vehicle
will return a NACK when trying to enable log streaming on such a link.
2017-10-31 22:16:06 +01:00
Beat Küng 8f7a5d0e0c mavlink_receiver: merge handle_message_command_{long,int} into a common method 2017-10-31 22:16:06 +01:00
Beat Küng 29af2343e1 fix NAV_TRAFF_AVOID param definition: needs a ;
Without that the parameter was not in parameters.xml, producing the error:
ERROR [lib__controllib] error finding param: NAV_TRAFF_AVOID
2017-10-31 11:18:49 +01:00
Lorenz Meier a1a002f9b6 Navigator: Add the ability to do a low-altitude RTL to avoid traffic
This is a first baseline implementation for collision avoidance with aircraft equipped with transponders. Since the drone-to-drone and drone-to-airplane system will be regulated by a standard, we do carefully avoid to do anything too fancy. This implementation allows to reduce altitude to get close to ground and land immediately or RTL. This is similar to what a human pilot would do and allows to get out of manned airspace which is at higher altitudes.
2017-10-31 09:10:32 +01:00
Daniel Agar 330eed2bd6 circleci parallel compile 2017-10-31 08:13:38 +01:00
Daniel Agar 56bbe541ae travis-ci remove tests under UBSAN 2017-10-31 08:13:38 +01:00
Daniel Agar 9ff7f05d94 travis-ci remove tests under ASAN 2017-10-31 08:13:38 +01:00
Daniel Agar 43c0622819 travis-ci remove scan-build 2017-10-31 08:13:38 +01:00
Daniel Agar c4fd467c19 travis-ci remove cppcheck 2017-10-31 08:13:38 +01:00
Daniel Agar a567b94802 travis-ci remove check_stack 2017-10-31 08:13:38 +01:00
Daniel Agar 02339055e7 travis-ci remove check_format 2017-10-31 08:13:38 +01:00
Daniel Agar 14fefca85e vmount delete InputTest on error
- fixes CID 139488
2017-10-31 08:12:12 +01:00