Andrew Tridgell
19c717df2e
AP_OpticalFlow: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
8aa1a89081
AP_Mission: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
cd7fbddcce
AP_InertialNav: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
197c09fcd8
AP_Baro: added num_instances() API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
d2c827aa4b
AP_AHRS: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
25f69f05eb
AC_WPNav: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
5ec8ce933e
AC_Sprayer: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
55ec316718
AC_Fence: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
5c4440a9ac
AC_AttitudeControl: updates for new AP_Baro API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
bb6deb4817
GCS_MAVLink: re-generated headers
2015-01-09 11:50:55 +11:00
Andrew Tridgell
56f682f186
GCS_MAVLink: added SCALED_PRESSURE2 message
2015-01-09 11:50:55 +11:00
Andrew Tridgell
8a3d3bed72
SITL: changes for new AP_Baro API
2015-01-09 11:50:54 +11:00
Andrew Tridgell
f1891cea1f
AP_Baro: BMP085 driver done, but untested
2015-01-09 11:50:54 +11:00
Andrew Tridgell
5bb57a31f7
AP_Baro: split into frontend/backend
...
this allows for support of multiple sensors on a board
2015-01-09 11:50:54 +11:00
Andrew Tridgell
464714f1ab
HAL_PX4: fixed build warning
2015-01-09 11:37:46 +11:00
Andrew Tridgell
d34e5b3f42
AP_GPS: fixed PX4 GPS driver for new upstream format
2015-01-09 11:37:38 +11:00
Andrew Tridgell
ef5cdb0d6c
AP_NavEKF: use more array bounds checked variables
2015-01-09 11:05:07 +11:00
Andrew Tridgell
fefdc37a4d
AP_Math: fixed warnings on bounds checking in quaternion
2015-01-09 11:04:50 +11:00
priseborough
3d46680348
AP_NavEKF: Make NED origin independent of home position
...
This enables the filter to report the last known position after disarm.
The LLH location of the filters NED origin is published and should be logged every time the vehicle is armed to assist with post-flight trajectory reconstruction.
The LLH location of the filters NED origin can be set externally whilst the vehicle is disarmed.
2015-01-09 10:51:24 +11:00
priseborough
f0ea858e4c
AP_NavEKF: Make LLH output report last known position in const pos mode
2015-01-09 10:51:24 +11:00
priseborough
a0957a83f8
AP_NavEKF: Fix bug in reported position and velocity
...
The last known position was being output on the velocities when in constant position mode.
2015-01-09 10:51:24 +11:00
priseborough
7d1cd604a8
AP_NavEKF: Report last known position when GPS is lost
2015-01-09 10:51:24 +11:00
priseborough
1789dc08a3
AP_NavEKF: Correctly report position timeout when GPS is lost
2015-01-09 10:51:24 +11:00
Randy Mackay
3e583e3650
DataFlash: fix EKF4 logging
2015-01-09 10:51:24 +11:00
Randy Mackay
e6e6a781c1
AP_NavEKF: init filter status bits to zero
2015-01-09 10:51:23 +11:00
priseborough
ffd9f7a4ed
AP_NavEKF: Predict filter solution status
2015-01-09 10:51:23 +11:00
Randy Mackay
3896dadc77
DataFlash: EKF logs filter status as uint16
2015-01-09 10:51:23 +11:00
Randy Mackay
657afcfe7a
AP_NavEKF: add pred_horiz_pos flags to filter status
2015-01-09 10:51:23 +11:00
Randy Mackay
54cff29fc2
DataFlash: EKF logging uses nav_filter_status
2015-01-09 10:51:23 +11:00
Randy Mackay
f4d8bc586c
Nav_EKF: getFilterStatus returns nav_filter_status struct
2015-01-09 10:51:23 +11:00
Randy Mackay
8a914af4a8
AP_NavEKF: add nav_filter_status definition
2015-01-09 10:51:23 +11:00
priseborough
d57e0b6bde
AP_NavEKF: Remove compiler warning messages
2015-01-09 10:51:23 +11:00
priseborough
a4ba4d1000
AP_NavEKF: Fix bug in optical flow innovation variances
...
Also improves protection against badly conditioned variances
2015-01-09 10:51:23 +11:00
priseborough
8bc8d1444a
AP_NavEKF: Extend definition of GPS availability to include user inhibit
2015-01-09 10:51:22 +11:00
priseborough
d0d49065e7
AP_NavEKF: Prevent potential repeated use of optical flow data
2015-01-09 10:51:22 +11:00
priseborough
b0c703e4f7
AP_NavEKF: Fix bug in optical flow fusion control logic
2015-01-09 10:51:22 +11:00
priseborough
d656c94bbc
AP_NavEKF: Fix out of bounds index bug
2015-01-09 10:51:22 +11:00
priseborough
300ba65f64
AP_NavEKF: Remove duplicate flow measurement state correction
2015-01-09 10:51:22 +11:00
priseborough
92bb75a635
AP_NavEKF: Prevent load leveling from dropping flow measurements
2015-01-09 10:51:22 +11:00
priseborough
873860e810
DataFlash: Allow negative HAGL values in the EKF optical flow debug log
2015-01-09 10:51:22 +11:00
priseborough
2f5aa210ce
AP_NavEKF: Enable recovery from extended flow measurement rejection
2015-01-09 10:51:21 +11:00
priseborough
d470d55234
DataFlash: Update EKF optical flow debug logging
2015-01-09 10:51:21 +11:00
priseborough
9f4baaa865
AP_NavEKF: Update flow debug logging
2015-01-09 10:51:21 +11:00
priseborough
8d1dae3ac1
AP_NavEKF: Improve optical flow terrain height estimation
...
The two state auxiliary EKF has been replaced with a single state filter that only estimates terrain offset. The new filter fuses a optical flow line of sight rate scalar (length of the optical flow LOS rate vector) which provides a terrain offset estimate that is less affected by yaw errors.
Estimation of focal length scale factor error in flight wasn't accurate enough and will be replaced with a pre-flight intrinsic sensor calibration procedure as the scale factor error does not change over time provided the lens assembly is not adjusted.
AP_NavEKF: Remove unwanted printf
2015-01-09 10:51:21 +11:00
priseborough
d599fa588e
AP_NavEKF: Don't allow EKF to initialise without GPS lock if we are a plane
...
This is needed because planes arm automatically.
AP_NavEKF: Fix bug in GPS patch
2015-01-09 10:51:21 +11:00
Staroselskii Georgii
c16eb5d330
AP_Compass: fixed corrections for AK8963
2015-01-09 06:38:22 +11:00
Staroselskii Georgii
4394f0cf75
AP_Compass: fixed external compass detection for AK8963
2015-01-09 06:38:22 +11:00
Staroselskii Georgii
f0753e965e
AP_Compass: eliminated possible division by zero in AK8963
2015-01-09 06:38:22 +11:00
Staroselskii Georgii
b804430276
AP_Compass: changed default orientation for AK8963 on Navio
2015-01-09 06:38:22 +11:00
Mikhail Avkhimenia
954b0795d4
HAL_Linux: Enable PCA9685 output after its setup
2015-01-09 06:38:21 +11:00
Randy Mackay
2a5a133bbf
AC_AttControl: remove deprecated trigger_xy method
2015-01-07 14:03:49 +09:00
Randy Mackay
ed7e176c61
LandingGear: command_mode becomes enum
2015-01-07 11:58:22 +09:00
Robert Lefebvre
c297aaeeab
AP_LandingGear: Add force_deploy method.
2015-01-07 11:58:19 +09:00
Robert Lefebvre
4177852d89
AP_LandingGear: Remove relay control from library.
2015-01-07 11:58:17 +09:00
Robert Lefebvre
4935a42054
RC_Channel_Aux: Add new landing gear control to Aux_servo_function_t enum.
...
Conflicts:
libraries/RC_Channel/RC_Channel_aux.h
2015-01-07 11:58:17 +09:00
Robert Lefebvre
9b0a33c453
AP_LandingGear: Create LandingGear Library.
2015-01-07 11:58:15 +09:00
Andrew Tridgell
1b3c3c754d
AP_InertialSensor: use correct ifdef for AK8963
2015-01-07 11:58:05 +11:00
Andrew Tridgell
9835544163
AP_Compass: fixed build on non-Linux platforms
2015-01-07 08:41:14 +11:00
Andrew Tridgell
2ddf3e728a
DataFlash: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Andrew Tridgell
9d3a9c20a8
HAL_VRBrain: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Andrew Tridgell
0c73dc2440
HAL_PX4: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Andrew Tridgell
4da0a24887
HAL_Linux: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Andrew Tridgell
6fb00f4fc3
AP_HAL: create a common utility/RingBuffer.h header
2015-01-07 08:41:14 +11:00
Staroselskii Georgii
43c88c37eb
AP_Baro: fixed MS5611 initialisation in order to get rid off conflicts with other I2C devices
2015-01-07 08:41:13 +11:00
Staroselskii Georgii
f7f9cd2173
AP_InertialSensor: prevented MPU9250 from disabling I2C slaves
2015-01-07 08:41:13 +11:00
Staroselskii Georgii
a08a34f863
AP_HAL: changed default compass for Navio
2015-01-07 08:41:13 +11:00
Staroselskii Georgii
0d1cf347c7
AP_Compass: added AK8963 support
2015-01-07 08:41:12 +11:00
Staroselskii Georgii
e4a21f291d
AP_HAL_Linux: added LinuxSPIUARTDriver that can handle SPI-driven Ublox
2015-01-07 08:41:12 +11:00
Staroselskii Georgii
2b589d4604
AP_HAL_Linux: enable output for PCA9685 PWM in NavioRCOuput
2015-01-07 08:41:12 +11:00
Randy Mackay
f41d7ddaee
Rally: reduce distance limit to 300m for copter
...
This reduces the chance that a forgotten rally point will cause the
vehicle to RTL to a distant location because instead it will RTL to
home.
2015-01-06 15:55:47 +09:00
Andrew Tridgell
e9058df31f
SITL: added optional flow delay
2015-01-06 14:19:02 +11:00
Andrew Tridgell
228b04e21e
SITL: added SIM_FLOW_DELAY parameter
2015-01-06 14:19:02 +11:00
Andrew Tridgell
0076413c0a
SITL: produce flow data at the requested rate
2015-01-06 14:19:02 +11:00
Andrew Tridgell
5758f39127
SITL: added SIM_FLOW_RATE parameter
2015-01-06 14:19:02 +11:00
Andrew Tridgell
b499cd1b59
AP_AHRS: fixed examples build
...
using a relative include works as the object is just passed through,
not used, in this header
2015-01-05 07:04:27 +11:00
priseborough
2f0b1b3d9c
AP_NavEKF: Fix bug preventing use of optical flow without GPS
2015-01-03 21:49:22 +11:00
Andrew Tridgell
f13248e5f5
SITL: implement SIM_TERRAIN
...
either use AP_Terrain or flat earth
2015-01-03 21:47:54 +11:00
Andrew Tridgell
9b65376961
SITL: added SIM_TERRAIN parameter
...
to choose either flat earth or AP_Terrain for sonar and optical flow
AGL emulation
2015-01-03 21:47:28 +11:00
Andrew Tridgell
d25bd8955d
GCS_MAVLINK: move send_opticalflow() into common library
2015-01-03 15:53:22 +11:00
Andrew Tridgell
66a03d100e
SITL: make some units clearer in comment
2015-01-03 15:44:19 +11:00
Andrew Tridgell
16affe51be
AP_NavEKF: avoid an extra quaternion copy
2015-01-03 15:44:07 +11:00
Andrew Tridgell
023c42593f
SITL: fixed units of body frame conversion for optical flow
2015-01-03 15:43:30 +11:00
priseborough
bf4ebcfda1
AP_HAL_AVR_SITL: Add maths for calculation of truth optical flow rates
2015-01-03 14:45:13 +11:00
Andrew Tridgell
70c2aeca42
AP_AHRS: make optflow available via AHRS
...
same pattern as compass and airspeed sensor
2015-01-03 14:16:34 +11:00
Andrew Tridgell
51cd64b3b2
SITL: make velocity and rotmat available to the optical flow simulator
2015-01-03 14:16:34 +11:00
Andrew Tridgell
aff01c6d09
AP_OpticalFlow: fixed reversed timestamp
...
thanks to Randy
2015-01-03 14:16:34 +11:00
Andrew Tridgell
d2634a26bd
SITL: added framework for SITL optical flow sensor
2015-01-03 14:16:34 +11:00
Andrew Tridgell
254aa32d4e
SITL: added SIM_FLOW_ENABLE option
2015-01-03 14:16:34 +11:00
Andrew Tridgell
11ff12dfd3
AP_OpticalFlow: split library into frontend/backend
...
this will make it easier to add a SITL backend
2015-01-03 14:16:33 +11:00
priseborough
a9eec29e45
DataFlash: Update EKF optical flow data logging
2015-01-03 14:09:15 +11:00
priseborough
69e86d3ea4
AP_NavEKF: Update EKF optical flow data logging
2015-01-03 14:09:12 +11:00
priseborough
b651eac48d
AP_NavEKF: Apply timeout to terrain offset validity reporting
...
The terrain offset solution status is usable for a short period of time without state updates so a timeout has been added which prevents the rapid changes in solution status due to short duration sensor read errors.
2015-01-03 14:09:09 +11:00
priseborough
e6474d676e
AP_NavEKF: Report correct horiz vel sol'n status during optical flow nav
2015-01-03 14:09:05 +11:00
priseborough
75201c8968
AP_NavEKF: Prevent divide by zero casued by Tnb_flow.c.z = 0
2015-01-03 14:07:13 +11:00
Andrew Tridgell
6bb4a8c361
AP_Math: make location_path_proportion() and location_passed_point() more efficient
...
the dot product is much more efficient than the trigonometry. Thanks
to Paul for the suggestion
2015-01-03 14:06:59 +11:00
Andrew Tridgell
6993be54b7
HAL_Linux: raise storage size to 16k
...
match PX4 size
2015-01-03 14:06:54 +11:00
Andrew Tridgell
745b739ab7
AP_InertialSensor: make calibrated() function fast enough to call in flight
...
this will be used in plane to make AHRS SYS_STATUS unhealthy if a user
tries to fly with EKF enabled without a full 3D accel cal.
Note that it doesn't rely on using AP_Param load() to detect that a
value has been set, as some users are first doing a 3D cal then later
doing a 1D cal. In that case load() was returning true and would give
a false positive
2015-01-03 14:06:42 +11:00
Randy Mackay
5ba1b20d3b
BattMon: add SMBus to MONITOR param description
2015-01-02 17:20:05 +09:00
Randy Mackay
ffbc3862bd
Compass: update compass orient param description
...
Update rotation 38 to Yaw293Pitch68Roll90
2015-01-02 17:19:12 +09:00
Jonathan Challinger
9e5a30d5ba
AP_Math: change ROTATION_YAW_293_PITCH_68_ROLL_180 to ROLL_90
2015-01-02 17:15:18 +09:00
Andrew Tridgell
ef55a3c6a6
AP_GPS: keep reporting GPS status messages when no GPS at 1Hz
...
to ensure the GCS knows that we have lost the GPS we need to keep
reporting GPS_RAW_INT messages when the GPS disappears. Sending at 1Hz
should be sufficient
Fixes issue #1722
2015-01-02 17:10:23 +11:00
priseborough
8d3940ce1b
AP_NavEKF: Improved use of enumerated type for aiding mode
2015-01-02 12:10:41 +09:00
priseborough
76d1378962
AP_NavEKF: Fix compiler warning messages
2015-01-01 23:39:48 +11:00
priseborough
3e3dd9d695
AP_NavEKF: Fix parenthesis error in EKF status reporting and clean up logic
...
This fixes a bug which could have caused the realative position status to be incorrectly reported under some conditions and also caused a compiler warning message. the logic used to report the filter solution status has been broken down into smaller, easier to understand statements.
2015-01-01 23:39:48 +11:00
priseborough
c06f6e105e
AP_NavEKF: Consistent initialisation of tuning parameters and variables
...
Non user adjustable parameters are now declared as 'const' in the header.
The _ prefix has been removed from non user adjustable tuning parameters.
We use a function call rather than a constructor to initialise variables because it enables the filter to be re-started in flight if necessary.
For consistency some signed integer type declarations have been changed to unsigned where appropriate.
2015-01-01 23:39:31 +11:00
priseborough
f1dfa282dc
AP_NavEKF: Consolidate constant velocity mode decision logic
...
The decision to switch to constant velocity mode during optical flow operation and te decision to switch back were previously being made in two different places in code. Both decisions are now made in the one place which makes the code easier to follow and maintain.
2015-01-01 19:53:21 +11:00
priseborough
9caf2ac895
AP_NavEKF: Make reversion to no GPS mode unambiguous
2015-01-01 19:53:21 +11:00
priseborough
58e9dd5dcd
AP_NavEKF: Enumerate Position and Velocity aiding status
2015-01-01 19:53:21 +11:00
Andrew Tridgell
fb5e53e1e4
AP_Param: cope with older gcc versions
...
Travis-CI uses 4.6.3
2015-01-01 18:55:11 +11:00
Andrew Tridgell
9ae0dd05f8
AP_Param: avoid build warning due to %S format
2015-01-01 18:25:05 +11:00
Andrew Tridgell
f38f86ab8c
AP_Math: added location_path_proportion()
...
this can be used for glide slope calculations
2015-01-01 15:17:10 +11:00
Andrew Tridgell
4e5510c99e
AP_TECS: fixed warning
2015-01-01 15:14:48 +11:00
Andrew Tridgell
f8bce994b5
AP_OpticalFlow: don't write an error message if no flow sensor
...
most users have no flow sensor
2015-01-01 11:02:43 +11:00
Andrew Tridgell
06a72839ed
AP_InertialSensor: fixed error detection on secondary IMUs
...
the break; was preventing error detection on lsm303d/l3gd20
2015-01-01 08:55:57 +11:00
Randy Mackay
022c549339
BattMon_SMBus_I2C: use get_PEC to check reads
2014-12-31 15:23:00 +09:00
Randy Mackay
bf0e5a350c
BattMon_SMBus_I2C: add get_PEC method
2014-12-31 15:22:59 +09:00
Randy Mackay
3951e4d99b
BattMon: example sketch reads from SMBus
2014-12-31 15:22:58 +09:00
Randy Mackay
aecc8aac1f
BattMon: correct typo in monitor type enum
2014-12-31 15:22:57 +09:00
Randy Mackay
909d525206
BattMon: fix example sketch compile error
2014-12-31 15:22:51 +09:00
Randy Mackay
cf36fd55bd
GCS_MAVlink: correct sending of 2nd battery's voltage
2014-12-31 15:22:49 +09:00
Randy Mackay
76a28a962c
BattMon: remove #defines for monitor type
2014-12-31 15:22:47 +09:00
Randy Mackay
f077ecd338
BattMon_PX4: class to read from PX4Firmware via orb
2014-12-31 15:22:46 +09:00
Randy Mackay
3f35dc54fe
BattMon_I2C: smart battery class for APM
2014-12-31 15:22:45 +09:00
Randy Mackay
314db1403d
BattMon_SMBus: smart battery monitor driver
2014-12-31 15:22:45 +09:00
Randy Mackay
4d7df9ed26
BattMon_Analog: move analog features to new class
2014-12-31 15:22:44 +09:00
Randy Mackay
39dbf05c8f
BattMon_Backend: create backend class
2014-12-31 15:22:43 +09:00
Randy Mackay
eec66d8451
BattMon: parent class becomes frontend class
2014-12-31 15:22:42 +09:00
Randy Mackay
c36253b9b2
AC_PosControl: add comments
...
No functional change
2014-12-31 14:03:22 +09:00
Jonathan Challinger
6eab698e85
AC_WPNav: remove various timing hacks
2014-12-31 14:03:20 +09:00
Jonathan Challinger
557d339cf1
AC_PosControl: remove various unnecessary timing hacks
2014-12-31 14:03:18 +09:00
Jonathan Challinger
5438d38df5
AC_WPNav: provide reset_I to init_xy_controller
2014-12-31 14:03:16 +09:00
Jonathan Challinger
d6e455417f
AC_PosControl: change keep_xy_I_terms to a parameter of init_xy_controller
2014-12-31 14:03:13 +09:00
priseborough
b016bae445
AP_NavEKF: Clean up reset of constant velocity mode
...
Move velocity store out of optical flow to velocity and position fusion control as it is a velocity fusion function.
Always clear the previous mode status
2014-12-31 13:16:16 +09:00
priseborough
3d207c316a
AP_NavEKF: Change names for position and velocity hold modes
...
Name change done to avoid confusion with flight modes. modes are now referred to as constant position and constant velocity mode.
2014-12-31 13:16:15 +09:00
priseborough
b650ee51a9
AP_NavEKF: Consolidate arming checks
2014-12-31 13:16:15 +09:00
priseborough
48cae0df15
AP_NavEKF: Fall back to attitude and hgt estimation for copter if GPS lost
2014-12-31 13:16:14 +09:00
priseborough
b21f9daa90
AP_NavEKF: Update solution status reporting
...
This patch makes the reporting of an absolute position solution less abbiguaous and ensures that relative position is always true if absolute position is true
2014-12-31 13:16:13 +09:00
priseborough
b99b3c7b9d
DataFlash: Don't log EKF optical flow data if not required
2014-12-31 13:16:09 +09:00
priseborough
b6d300db19
AP_NavEKF: clean up determination of GPS availability
2014-12-31 13:14:22 +09:00
priseborough
40b02fc19a
AP_NavEKF: Ensure filter doesn't try to use GPS after initialisation
2014-12-31 13:14:20 +09:00
priseborough
bab1a69f1c
AP_NavEKF: make position and velocity resets consistent with GPS usage
2014-12-31 13:14:18 +09:00
priseborough
0dc2356175
AP_NavEKF: Ensure initialisation methods read required sensor data
2014-12-31 13:14:16 +09:00
priseborough
5d1de79f08
AP_NavEKF: Modify initial values to make startup behaviour more consistent
2014-12-31 13:14:14 +09:00
priseborough
a63af34d8f
AP_NavEKF: Allow 10 seconds for the filter to settle after initialisation
...
Filter is declared unhealthy and will not arm for first 10 seconds after initialisation
2014-12-31 13:14:12 +09:00
priseborough
0a5de21dc7
AP_NavEKF: Fix bug in reporting of solution status
...
Because synthetic position measurements at 0,0 are fused during position hold mode, a position timeout cannot be used as the only means of detecting position solution status.
2014-12-31 13:14:09 +09:00
priseborough
92c3026072
AP_NavEKF: Link process noise to arm status, not pos hold mode
2014-12-31 13:14:07 +09:00
priseborough
a535b73a6d
AP_NavEKF: Initialise timeout status to true
...
This status will be cleared when data arrives and is fused successfully
2014-12-31 13:14:04 +09:00
priseborough
363c1e393d
AP_NavEKF: Latch use of position hold mode for duration of flight
...
Required to prevent acquisition of GPS mid flight causing unwanted change in position and velocity
A distinction has been mad between the arm and disarm transition and the decision to use position hold mode (formerly static mode)
2014-12-31 13:14:02 +09:00
priseborough
a0a6c0362f
AP_NavEKF: Relax timeout check applied to optical flow data
...
200 msec was too short and could lead to false positives. 5000 msec is the largest time we can go free inertial.
2014-12-31 13:14:00 +09:00
priseborough
5bd4ee9715
AP_NavEKF: Use compensation for baro delay in position hold mode
2014-12-31 13:13:58 +09:00
priseborough
4dc1ee2d66
AP_NavEKF: Rename static mode to avoid confusion with other non-GPS modes
...
This renames static mode as posHoldMode to make it clearer what this and the other non-GPS modes do
2014-12-31 13:13:54 +09:00
priseborough
b160f4c03b
AP_NavEKF: Compensate optical flow fusion for GPS glitch recovery offset
2014-12-31 13:13:52 +09:00
priseborough
e4c969084d
AP_NavEKF: Improve behaviour recovering from a GPS timeout
...
When regaining GPS after a timeout, an offset is applied when fusing GPS velocity so that GPS velocity and position data as fused by the EKF is kinematically consistent.
This velocity offset is also accounted for when fusing air data so that wind estimates are not corrupted when the GPS position offset is being pulle back to zero.
The intended behaviour is that the EKF position will be pulled back to the GPS position at a rate of 5m/s for planes and 1 m/s for copters. This avoids large deviations in trajectory when GPS is regained.
2014-12-31 13:13:50 +09:00
priseborough
6eb533121c
AP_NavEKF: Add static mode to solution status message
2014-12-31 13:13:48 +09:00
priseborough
5c3a56a087
AP_NavEKF: Fix error in comments
2014-12-31 13:13:46 +09:00
priseborough
3891dada78
AP_NavEKF: remove unnecessary function
2014-12-31 13:13:44 +09:00
priseborough
a16253796f
AP_NavEKF: Fix bug preventing the non-GPS mode being selected externally
...
When on the ground it is likely the flow sensor will be returning data that does not meet the minimum quality requirements selected.
The previous check was for the presence of valid data. This has been loosened to look for the presence of data.
When the vehicle becomes airborne, the quality of flow data normally improves as the image comes into focus.
2014-12-31 13:13:42 +09:00
priseborough
a42100e4c5
AP_NavEKF: Improved handling of no GPS
...
This patch enables indoor operation of the EKF by putting it into static mode if optical flow operation is not enabled and no GPS is available
2014-12-31 13:13:40 +09:00
priseborough
73a06cd0c1
AP_NavEKF: Fix bug causing magnetic field state learning to be forgotten
2014-12-31 13:13:37 +09:00
priseborough
bf89c56e54
AP_NavEKF: Fix comments error in description of flow sensor sign conventions
2014-12-31 13:13:35 +09:00
priseborough
685fa383e4
DataFlash: Log EKF solution status message
...
This message is a bitmasked integer that will be used by control software to determine what data is available from the EKF and decide what control modes are available.
Duplicate static mode message removed. Static mode is now contained in the bitmasked solution status message
2014-12-31 13:13:33 +09:00
priseborough
4eb19c2324
AP_NavEKF: Rationalise health status reporting
...
1) Un-used public methods to report height and position drifting have been removed
2) A time-out has been added to the airspeed innovation consistency check so that if we are relying on airspeed to constrain velocity drift, a filter divergence or other fault that causes the airspeed to be continually rejected will trigger a change in health status.
3) A timeout of velocity, position or height measurements does not cause a filter fault to be reported. Timeouts can be due to sensor errors and do not necessarily indicate that the filter has failed.
4) Time-outs of various measurements are used to present a consolidated bitmask which inidicates which parts of the solution can be used, eg attitude, height, velocity, relative position, absolute position, etc.
2014-12-31 13:13:31 +09:00
priseborough
78b30e4ce5
AP_NavEKF: Increase rate at which GPS glitch offsets are reduced for planes
2014-12-31 13:13:29 +09:00
Andrew Tridgell
e0943851d6
DataFlash: log gyro and accel error counts
2014-12-30 12:16:02 +11:00
Andrew Tridgell
b9adc6e466
AP_InertialSensor: prefer sensors that have zero error counts
...
if a sensor has failed in flight then try not to use it if another
error-free sensor is available
2014-12-29 21:19:35 +11:00
Randy Mackay
4a1ba9b186
AC_WPNav: minor const fix
2014-12-27 13:19:32 +09:00
Randy Mackay
c7192c5eef
Notify: remove Led class
...
This class didn't add any functionality beyond what the NotifyDevice class
already provided so in keeping with our desire to keep things simple we
can remove this class
2014-12-26 13:06:41 +09:00
Randy Mackay
352b52d73f
Notify: remove reliance on Led class
2014-12-26 13:06:24 +09:00
Randy Mackay
d67b4a8d49
Notify: add pre_arm_gps_check flag
...
RGB LED will remain flashing blue when vehicle is disarmed and this
check has failed (i.e. false).
2014-12-26 12:32:34 +09:00
Andrew Tridgell
c93ae67541
DataFlash: don't try and open logfile on failure more than once
...
this prevents a corrupted microSD card from causing a continuous
attempt to open a log file while in flight, which can cause large
scheduler delays
Pair-Programmed-With: Grant Morphett <grant@gmorph.com>
2014-12-21 14:50:42 +11:00
Andrew Tridgell
abd1ece6e3
DataFlash: don't write out parameters if log open fails
2014-12-21 14:50:42 +11:00
priseborough
f2c506339a
AP_NavEKF: Reduce time required to recover from GPS timeouts
...
The time required for GPS to be lost or rejected before vehicles with airspeed sensors either reset to GPS or invoke the zero side-slip assumption to constrain drift has been reduced from 15 to 10 seconds
A duplicate zeroing of the GPS position offset has been removed
If the vehicle is a non hovering vehicle (eg a plane) then the speed at which the GPS offset is pulled back to zero after a reset is increased from 1 to 3 m/s
This also improves recovery from bad inertial data for planes
2014-12-18 21:50:40 +11:00
priseborough
f73816dbb5
AP_NavEKF: Improve robustness to long periods without GPS
2014-12-18 21:07:45 +11:00
Randy Mackay
a44b4b5e87
Mission: allow 15 do-jump commands on Pixhawk
2014-12-18 17:02:48 +09:00
priseborough
3afde0061f
AP_NavEKF: Use named states for velocity reset
...
Readibility improvement
2014-12-18 17:29:50 +11:00
priseborough
f6ce25df2a
AP_NavEKF: Do not reset vertical velocity state from GPS
...
Doing this can cause large height and height rate errors if large GPS velocity errors cause the GPS tn be rejected for long enough to cause a timeout and reset of states.
2014-12-18 17:29:47 +11:00
Andrew Tridgell
597273cfff
AP_TECS: remove lag from height demand in landing
...
this predicts ahead the height demand for landing, where we have a
continuous demanded descent. This removes the effect of the lag
introduced by the height demand filters
2014-12-18 09:58:12 +11:00
Andrew Tridgell
b5a5b71512
GCS_MAVLink: reverse sense of check_and_forward()
...
also increase number of routes on larger systems and improved route
learning logic
2014-12-17 10:32:28 +11:00
Andrew Tridgell
a967a682a4
GCS_MAVLink: added routing test sketch
2014-12-17 10:32:28 +11:00
Andrew Tridgell
7f817502c4
GCS_MAVLINK: implement new routing rules
...
see description in coments
2014-12-17 10:32:28 +11:00
Andrew Tridgell
70f5ec60e8
AP_TECS: added get_land_sinkrate()
2014-12-15 21:51:07 +11:00
Andrew Tridgell
8c1cab84c7
AP_SpdHgtControl: added get_land_sinkrate()
2014-12-15 21:51:07 +11:00
Randy Mackay
21beb26484
Notify: minor event reordering
...
No functional change
2014-12-15 14:10:26 +09:00
Randy Mackay
e68a69e139
ToneAlarm_PX4: remove user_mode_init flag
...
Replaced by an initialised check in the main ArduCopter flight code
2014-12-15 14:10:21 +09:00
Randy Mackay
1c8ab375e2
Notify: rename failsafe_action event
2014-12-15 14:10:15 +09:00
Randy Mackay
972c8e47d2
Notify: rename notify_types to notify_flags_type
2014-12-15 14:10:10 +09:00
Randy Mackay
bfc86ac7c0
ToneAlarm_PX4: add comments
2014-12-15 14:10:06 +09:00
Randy Mackay
c75ab8f3e5
Notify: add comments re events
2014-12-15 14:09:15 +09:00
Jonathan Challinger
3dfcdde6be
AP_Notify: Rework ToneAlarm_PX4 to play tones from local array
2014-12-15 14:09:04 +09:00
priseborough
e2d47f836e
AP_TECS: Fix bug causing plane to fly high on landing approach
...
The introduction of the height rate flare logic caused the demanded height rate to be zero except when a flare manouevre was being performed. This caused the plane to lag behind height changes if the D gain was non-zero, which caused it to fly high during landing approach.
2014-12-14 09:43:46 +11:00
Randy Mackay
b54b7b7448
GCS_MAVLink: fix compiler error
2014-12-11 16:26:26 +09:00
Randy Mackay
e581e81da5
AP_NavEKF: reorder declation to fix compiler warning
...
No functional change
2014-12-11 15:37:56 +09:00
Randy Mackay
ddda0d52ce
Baro: reorder declaration to fix compiler warning
...
No functional change
2014-12-11 13:06:24 +09:00
Andrew Tridgell
ade7f9e1a9
GCS_MAVLink: fixed forwarding of non-targetted messages
2014-12-11 12:32:50 +09:00
Andrew Tridgell
fcf17829cc
GCS_MAVLink: fixed addition to routing table
2014-12-11 12:32:48 +09:00
Andrew Tridgell
079158d4b8
GCS_MAVLink: strip out the old GCS_Class class
...
this is not longer needed as we don't support multiple protocol
classes
2014-12-11 12:32:45 +09:00
Andrew Tridgell
f198cdcf20
GCS_MAVLink: added support for a MAVLink snoop function
...
this can be used to watch messages for different targets
2014-12-11 12:32:32 +09:00
Andrew Tridgell
34be7f808e
GCS_MAVLink: only try to fwd packets to active channels
2014-12-11 12:32:30 +09:00
Andrew Tridgell
411766f45a
AP_Mount: removed use of mavlink_check_target()
2014-12-11 12:32:27 +09:00
Andrew Tridgell
4a9331c505
AP_Camera: removed use of mavlink_check_target()
2014-12-11 12:32:24 +09:00
Andrew Tridgell
f1edd1bafb
GCS_MAVLink: removed use of mavlink_check_target()
...
not needed now we do routing properly, as messages will only be
processed if they are for us
2014-12-11 12:31:06 +09:00
Andrew Tridgell
aa88ba4158
GCS_MAVLink: only call message handler for our own messages
2014-12-11 12:30:59 +09:00
Andrew Tridgell
11f88f0f5d
GCS_MAVLink: added routing object to GCS_MAVLink
2014-12-11 12:30:55 +09:00
Andrew Tridgell
b91529622b
GCS_MAVLink: initial implementation of MAVLink routing object
...
will be used to auto-route packets over all available links
2014-12-11 12:30:50 +09:00
Andrew Tridgell
76c710f596
GCS_MAVLink: removed obsolete headers
2014-12-11 12:30:46 +09:00
Andrew Tridgell
3354cb37d0
AP_GPS: fixed vertical velocity in Replay
...
fixed NavEKF use of velocity velocity
2014-12-09 18:57:17 +11:00
Andrew Tridgell
4a91546ced
HAL_PX4: FRAM does not support fsync
...
the fsync just wastes time reopening /fs/mtd
2014-12-09 14:35:36 +11:00
Randy Mackay
da247bacf8
GCS_MAVLink: add OPTICAL_FLOW to ap_message enum
2014-12-08 14:58:30 +09:00
Randy Mackay
3c23f00e81
OptFlow: remove ADNS3080 image grabber example
2014-12-08 14:58:24 +09:00
Andrew Tridgell
193bda068c
HAL_Linux: run IO processes when we do a stop_clock()
...
this has the effect of allowing logging to progress in Replay where we
are running at much more than realtime speeds
2014-12-08 11:24:39 +11:00
Andrew Tridgell
cb9c518ab8
Revert "AP_NavEKF : Reduce ripple in estimates that can cause copter motor 'pulsing'"
...
This reverts commit 13df6fb1c9
.
This patch was a result of an incorrect merge of the optflow branch
into master. It reintroduced the bug fixed by this commit:
AP_NavEKF : Fix bug in reset of GPS glitch offset
8aa267f75f
2014-12-08 07:53:47 +11:00
Andrew Tridgell
22a7b69260
AP_OpticalFlow: don't build optical flow example
...
broken by library changes
2014-12-06 22:05:42 +11:00
Andrew Tridgell
ed510d4f87
AP_OpticalFlow: run PX4 flow sensor at 10Hz
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-12-06 18:16:51 +11:00
priseborough
a2bd3b4a42
AP_NavEKF: Add public method returning height above ground level
2014-12-06 18:16:51 +11:00
priseborough
d701cfcb75
AP_NavEKF: Output terrain relative PosD when relying on Optical Flow
2014-12-06 18:16:51 +11:00
priseborough
0156d846f1
AP_NavEKF: Increase height at which nav gain reduction starts
...
Compensates for optical flow induced noise increase with height.
2014-12-06 18:16:51 +11:00
priseborough
12ea1d6e85
AC_AttitudeControl: Scale angle demand noise filter
...
Scales filter frequency using EKF nav gain scaler to take advantage of the reduced nav frequency whichcan tolerate a slower angle response.
This is required to reduce the effect of EKF optical flow noise increase with height.
2014-12-06 18:16:51 +11:00
priseborough
a905432ffe
AP_NavEKF: reduce height at which nav gain reduction starts
2014-12-06 18:16:51 +11:00
priseborough
5785272933
AP_NavEKF: Improve robustness to corrupted flow sensor data
2014-12-06 18:16:51 +11:00
priseborough
b1d44d4dde
AP_NavEKF: Add protection for negative height above ground
2014-12-06 18:16:50 +11:00
priseborough
e80b1c67cd
AC_AttitudeControl: Add EKF optical flow noise gain scaler
...
Allows gains to be adjusted to compensate for optical flow noise
2014-12-06 18:16:50 +11:00
priseborough
11fb51ceba
AC_WPNav: Add nav velocity gain scaler to interfaces
...
Allows gains to be adjusted to compensate for optical flow noise
2014-12-06 18:16:50 +11:00
priseborough
5b8265ad6f
AP_AHRS: Expand EKF speed limit public method to handle control limits
2014-12-06 18:16:50 +11:00
priseborough
d994da0886
AP_NavEKF: Expand EKF speed limit public method to handle control limits
2014-12-06 18:16:50 +11:00
priseborough
5fa0c59310
AC_WPNav: Add EKF ground speed limit to loiter speed control
...
This is required to prevent the speed controller saturating the optical flow sensor during low altitude flying.
2014-12-06 18:16:50 +11:00
priseborough
83775554ea
AP_AHRS: Publish EKF ground speed limit
2014-12-06 18:16:50 +11:00
priseborough
bc2255d6b1
AP_NavEKF: Improve comments in setInhibitGPS public method
2014-12-06 18:16:50 +11:00
priseborough
416eaf4633
AP_NavEKF: Apply single definition of using optical flow
2014-12-06 18:16:50 +11:00
priseborough
b56b68ce10
AP_NavEKF: Add public method reporting horizontal speed limit
...
This is required if using optical flow, as depending on height, the speed must be limited to prevent the sensor saturating
2014-12-06 18:16:50 +11:00
priseborough
c8fb376cc4
AP_NavEKF: Fix bug in bias rate of change limiting
...
This doesn't change the behaviour, but means the result is achieved using the correct parameters, and comments are consistent
2014-12-06 18:16:50 +11:00
priseborough
599e53f3f2
AP_NavEKF: Prevent flow scale factor updating on ground
2014-12-06 18:16:49 +11:00
priseborough
083e22966c
AP_NavEKF: Add public method to report available output data
2014-12-06 18:16:49 +11:00
priseborough
5532750a99
AP_AHRS: Add public method to inhibit GPS useage when using EKF
...
This provides the calling vehicle software the abiity to request the EKF to not use GPS.
An integer is returned that indicates the type of operation available:
0 = request rejected (request will only be accepted if the EKF is in static mode, eg pre-armed)
1 = request accepted, attitude, vertical velocity and position estimates available
2 = request accepted, attitude, height rate, height, horizontal velocity and relative position estimates available
2014-12-06 18:16:49 +11:00
priseborough
e53d28854e
AP_NavEKF: Add public method to inhibit GPS use and clean-up GPS use logic
...
This provides the calling vehicle software the abiity to request the EKF to not use GPS.
An integer is returned that indicates the type of operation available:
0 = request rejected (request will only be accepted if the EKF is in static mode, eg pre-armed)
1 = request accepted, attitude, vertical velocity and position estimates available
2 = request accepted, attitude, height rate, height, horizontal velocity and relative position estimates available
2014-12-06 18:16:49 +11:00
priseborough
8fb1d9cf8d
AP_NavEKF: Fix bug preventing opt flow scale factor estimation
...
Also removes un-used variable declarations
2014-12-06 18:16:49 +11:00
priseborough
a78920761c
AP_NavEKF: Update comments in flow data interface
2014-12-06 18:16:49 +11:00
priseborough
063fb41748
AP_OpticalFlow: Add separate scale factors for X and Y axis.
...
The resolution is also increased to take advantage of the planned introduction of automated calibration methods
2014-12-06 18:16:49 +11:00
priseborough
52c7e56a4a
AP_NavEKF: Add parameter for max valid optical flow rate magnitude
2014-12-06 18:16:49 +11:00
priseborough
6f8971d80a
AP_NavEKF: Speed up flow sensor gyro bias correction
2014-12-06 18:16:49 +11:00
priseborough
d7ad45ebda
AP_NavEKF: Don't fuse flow measurements if too big
2014-12-06 18:16:49 +11:00
priseborough
2dff76394d
AC_PosControl: Add spike and noise filter to demanded angles
...
This has been done to provide a smooth psotion hold when using an optical flow aided EKF which can be noisy.
Signed-off-by: priseborough <p_riseborough@live.com.au>
2014-12-06 18:16:49 +11:00
priseborough
84944fdd4e
AP_NAvEKF: Revert back to 10Hz fusion
2014-12-06 18:16:49 +11:00
priseborough
f4f0dfc45c
AP_OpticalFlow: efficiency improvements to data processing
2014-12-06 18:16:49 +11:00
priseborough
1f78a73cdb
AP_NavEKF: Make flow measurement delay vehicle specific
...
This takes into account the inter-sampling delay between the flow driver and the APM software which depends on the rate at which the dirver is being checked. This is 50Hz for plane and rover, and 200Hz for Copter.
2014-12-06 18:16:49 +11:00
priseborough
5f941655a8
AP_NavEKF: changes to support to 20Hz flow fusion rate
2014-12-06 18:16:48 +11:00
priseborough
0bf991eef9
AP_NavEKF: Fix bug in optical flow fusion smoothing
2014-12-06 18:16:48 +11:00
priseborough
7d27a22f77
DataFlash : Fix EKF optical flow logging bug
2014-12-06 18:16:48 +11:00
priseborough
7ec8dfebcf
AP_OpticalFlow : Remove gyro scale factor user adjustable parameter
...
No longer required because bug in flow sensor has been fixed.
2014-12-06 18:16:48 +11:00
priseborough
2baa1e56ed
Dataflash : Fix bug in EKF opt flow logging
2014-12-06 18:16:48 +11:00
priseborough
df59f3311a
AP_OpticalFlow : Add gyro scale factor correction parameter
2014-12-06 18:16:48 +11:00