Commit Graph

7702 Commits

Author SHA1 Message Date
Paul Riseborough
be04be9b43 AP_NavEKF: Fix bug preventing home position being set by copter
The interface definition has been modified so that it returns true for a position obtained usin geither the normal inertial navigation calculation, or a raw GPS measurement.
This enables this function to be used to set a home position before flight.
2015-05-02 17:20:21 +09:00
Randy Mackay
75e2498da2 Scheduler: fix example sketch 2015-05-02 11:55:50 +09:00
Randy Mackay
c78068b8b8 StorageManager: fix example sketch 2015-05-01 21:03:13 +09:00
Randy Mackay
5b15c07d47 RC_Channel: fix example sketch 2015-05-01 21:02:57 +09:00
Randy Mackay
240a845206 Notify: fix example sketches 2015-05-01 20:58:34 +09:00
Randy Mackay
b223e90ef6 AP_Motors: fix example sketches 2015-05-01 20:58:20 +09:00
Randy Mackay
ed61d961c3 Mission: fix example sketch 2015-05-01 20:58:06 +09:00
Randy Mackay
fecbf06008 AP_Math: fix example sketches 2015-05-01 20:57:38 +09:00
Jonathan Challinger
2b29060a4e AC_WPNav: remove unused set_loiter_velocity 2015-05-01 16:46:53 +09:00
Randy Mackay
187dd0dccd HAL_PX4: fix example sketch 2015-05-01 16:44:10 +09:00
Randy Mackay
fb7e75594f AP_NavEKF: replace memset with quaternion.initialise 2015-05-01 16:37:35 +09:00
Randy Mackay
eaedeeb7bf AP_Math: add quaternion.initialise 2015-05-01 16:37:34 +09:00
Randy Mackay
c366fbbc96 AP_NavEKF: remove unused haveDeltaAngles 2015-05-01 16:37:33 +09:00
Randy Mackay
6773c0b232 AP_InertialSensor: default primary accel and gyro 2015-05-01 16:37:33 +09:00
Paul Riseborough
b71b8f4bda AP_NavEKF: Always return a NED relative position if possible
If a calculated position is not available, the function will return a value based on raw GPS or last calculation if available, but the status will be set to false to indicate that it cannot be used for control.
2015-05-01 16:37:32 +09:00
Paul Riseborough
20ba1e6b1b AP_NavEKF: Always return a WGS-84 location if possible
If a calculated location is not available, the function will return raw GPS data if available, but the status will be set to false.
2015-05-01 16:37:31 +09:00
Paul Riseborough
dd1e0b2f0b AP_NavEKF: Add missing function to return the NED to XYZ quaternion 2015-05-01 16:37:30 +09:00
Paul Riseborough
2c4572eb50 AP_NavEKF: Make ground effect variable names more descriptive 2015-05-01 16:37:29 +09:00
Paul Riseborough
3986851c51 AP_NavEKF: Prevent Z accel bias changing during ground effect takeoff
The inconsistent baro data during ground effect takeoff combined with the larger variances in the Z accel bias state early in flight can cause unwanted changes in bias estimate and therefore changes in height estimation error.
This patch turns of the process noise and state updates for the Z accel bias state when takeoff in ground effect is expected.
2015-05-01 16:37:28 +09:00
Paul Riseborough
2cba60c731 AP_NavEKF: Decouple takeoff ground effect compensation from arm transtion
Thsi fixes a potential bug where the vehicle could land at a lower location without disarming and re-enter ground effect takeoff mode wiht a baro height floor above the current altitude, causing unpredictable height gain
2015-05-01 16:37:27 +09:00
Paul Riseborough
c4c0f819b5 AP_NavEKF: Ensure Covariance initialisation uses correct IMU time step 2015-05-01 16:37:26 +09:00
Paul Riseborough
5dc29699ab AP_NavEKF: Publish the INS delta quaternion 2015-05-01 16:37:25 +09:00
Paul Riseborough
d273302ce7 AP_NavEKF: Improve rate of accel bias learning before flight 2015-05-01 16:37:24 +09:00
Paul Riseborough
8dc6354a54 AP_NavEKF: Prevent touchdown baro errors tripping height innovation check
Ground effect baro errors can cause a spike in height innovation on disarming if ground effect compensation was used during the landing. This causes a transient AHRS fault message if this innovation is outside the pre-arm check limits.
Resetting the vertical position state to the measured height after disarming prevents this.
2015-05-01 16:37:23 +09:00
Jonathan Challinger
2f38dd1b67 AP_NavEKF: use quaternion functions to apply IMU delta angles 2015-05-01 16:37:22 +09:00
Jonathan Challinger
9c374eb4a8 AP_NavEKF: apply constrained floor to barometer innovation while landing 2015-05-01 16:37:21 +09:00
Jonathan Challinger
3c6446fadd AP_NavEKF: refactor meaHgtAtTakeOff filter 2015-05-01 16:37:20 +09:00
Paul Riseborough
744de74c16 AP_NavEKF: Reduce ground effect baro induced height errors during takeoff 2015-05-01 16:37:19 +09:00
Paul Riseborough
13616d6436 AP_NavEKF: Add takeoff and touchdown expected to reported filter status 2015-05-01 16:37:19 +09:00
Jonathan Challinger
8c92524b8a AP_NavEKF: add takeoffExpected and touchdownExpected 2015-05-01 16:37:18 +09:00
Jonathan Challinger
b6b55bf6f2 AP_NavEKF: integrate gravity over correct time period 2015-05-01 16:37:17 +09:00
Jonathan Challinger
cb0c424da1 AP_NavEKF: rewrite readIMUData 2015-05-01 16:37:16 +09:00
Jonathan Challinger
bb88a4f8fe AP_InertialSensor: healthy() checks bounds 2015-05-01 16:37:15 +09:00
Jonathan Challinger
af80f20a51 AP_InertialSensor: add get_primary_gyro, fix get_primary_accel 2015-05-01 16:37:14 +09:00
Randy Mackay
0acc06d713 AP_Motors: minor comment for interlock 2015-05-01 14:30:45 +09:00
Robert Lefebvre
1a482de5e2 AP_MotorsHeli: Overload output_armed_zero_throttle 2015-05-01 14:30:25 +09:00
Robert Lefebvre
6bdace30d2 AP_Motors: Add throttle interlock functionality
AP_MotorsMatrix's output_armed_zero_throttle uses output_min default from base class
2015-05-01 14:30:24 +09:00
Randy Mackay
31edd6a72b AC_PosControl: add_takeoff_climb_rate method
This function simply increments the current altitude target given a
climb rate and dt
2015-05-01 12:56:30 +09:00
Jonathan Challinger
348001e786 AP_Motors: add get_throttle_warn function 2015-05-01 12:56:11 +09:00
Andrew Tridgell
74581a55bc HAL_SITL: fixed startup of SITL in synthetic clock mode 2015-04-30 17:19:56 +10:00
Andrew Tridgell
df21c6c68d AP_HAL: support micros64() and millis64() on all platforms
this will allow for 64 bit timestamps in DF logs (Peter is working on
that)
2015-04-30 12:17:34 +10:00
Andrew Tridgell
4c4a4f9ea5 AP_RangeFinder: fixed cm to meter comparison
thanks to EShamaev for this fix (see PR #1352)
2015-04-30 11:26:36 +10:00
Randy Mackay
dfadcad69d Mission: allow zoom_step to be negative 2015-04-29 14:36:25 +09:00
Randy Mackay
bae1722946 AP_Motors: get_compensation_gain gets div-by-zero check 2015-04-29 14:36:22 +09:00
Randy Mackay
1b381b5675 Baro: get_air_density_ratio gets div-by-zero check 2015-04-29 14:36:20 +09:00
Jonathan Challinger
41ae7207c7 AP_Motors: scale roll/pitch/yaw gain for air density 2015-04-29 14:36:15 +09:00
Jonathan Challinger
e2ba351149 AP_Motors: refactor apply_thrust_curve_and_volt_scaling 2015-04-29 14:36:12 +09:00
Jonathan Challinger
f381ef93e8 AP_Baro: add get_air_density_ratio 2015-04-29 14:36:10 +09:00
Randy Mackay
b55367ccc7 GCS_MAVLink: fix example sketch 2015-04-29 10:18:57 +09:00
Randy Mackay
67b0c6f5c4 AC_PID: replace is_equal with is_zero 2015-04-28 16:22:08 +09:00
Randy Mackay
3514177314 AC_PI_2D: minor format fix 2015-04-28 16:21:53 +09:00
dgrat
303cfd683a AC_PID: replace floating point '==' with is_equal
Also add div-by-zero check to fix calc_filt_alpha

Also get_i and get_shrink_i do not need to set values to zero in Vector2f
constructor because this is already done.
2015-04-28 16:21:46 +09:00
Randy Mackay
0392292489 AP_Math: inline is_equal, add is_zero 2015-04-28 16:19:01 +09:00
dgrat
726d7df710 AP_Math: add is_equal to compare floats 2015-04-28 16:18:59 +09:00
Grant Morphett
444841537e AP_Camera: Just putting the newline at the end of the file. 2015-04-28 15:23:34 +09:00
Andrew Tridgell
007b01533d AP_InertialSensor: switched to 16g accel range for MPU9250
this matches the Pixhawk, and makes us less prone to vibration. We
have seen clipping at 8g
2015-04-28 15:30:29 +10:00
Randy Mackay
33431acaa4 AC_WPNav: protect against div-by-zero related to gnd_speed_limit 2015-04-28 13:53:19 +09:00
Paul Riseborough
7481217445 AC_WPNav: Improve application of EKF optical flow speed limit 2015-04-28 13:53:17 +09:00
Andrew Tridgell
514c349060 AP_NavEKF: raise DCM error_rp threshold to 0.05
it was failing on many boards with fixed wing
2015-04-28 14:07:39 +10:00
Andrew Tridgell
6bfca648b9 AP_AHRS: raise DCM P gains when disarmed for first 20 seconds 2015-04-28 14:07:39 +10:00
Andrew Tridgell
42d2addbdd HAL_SITL: removed the special code for cygwin
we no longer need special timing code for cygwin
2015-04-28 13:15:40 +10:00
Andrew Tridgell
063a33ebce HAL_SITL: implement barriers using pthread condition variables
this avoid pthread_barrier_*, which is not available on cygwin
2015-04-28 13:14:12 +10:00
Jonathan Challinger
3812773485 AP_Math: make quaternion divide by zero protection more conservative 2015-04-28 11:42:13 +10:00
Jonathan Challinger
fb8da1b2d8 AP_Math: add get_euler_(roll|pitch|yaw) functions to quaternion 2015-04-28 11:42:13 +10:00
Andrew Tridgell
020d9ea78a HAL_PX4: only consider power to have changed when armed
this prevents false positives with multi-battery setups
2015-04-28 11:05:29 +10:00
Randy Mackay
608bb3d611 Notify: minor format fix 2015-04-27 12:10:17 +09:00
Andrew Tridgell
028248d1f5 HAL_SITL: avoid floating point exceptions on i386
fixes issue #2147
2015-04-27 13:09:21 +10:00
Andrew Tridgell
4e86a6cd0e GCS_MAVLink: merged upstream header changes 2015-04-27 09:00:38 +10:00
Randy Mackay
35874292a0 AC_WPNav: move stop below all loiter methods
No functional change
2015-04-26 16:26:53 +09:00
Robert Lefebvre
4a7fe83b0f AC_WPNav: Create Stop Mode functions 2015-04-26 16:11:45 +09:00
Andrew Tridgell
fdac41dbab GCS_MAVLink: re-generate headers 2015-04-25 09:12:16 +10:00
Michael Day
3d3267d472 AP_Mission: Now support mission item MAV_CMD_NAV_LOITER_TO_ALT 2015-04-25 09:12:16 +10:00
Michael Day
98d7f943ef GCS_MAVLink: Added definition for MAV_CMD_NAV_LOITER_TO_ALT 2015-04-25 09:12:16 +10:00
Jonathan Challinger
a07b322d31 AP_Motors: set_throttle takes a float 2015-04-24 16:30:45 +09:00
Jonathan Challinger
ab2532a609 AC_AttitudeControl: constrain _angle_boost to avoid overflow 2015-04-24 16:30:43 +09:00
Randy Mackay
fdf226ebc1 AP_NavEKF: include AP_RangeFinder.h 2015-04-24 15:49:11 +09:00
Tom Pittenger
10c933966b AP_Math: fix compile warning re float constants 2015-04-24 14:25:02 +09:00
Tom Pittenger
dbc01e2f1a BattMon: fix compile warning re to unused variable 2015-04-24 14:18:36 +09:00
Tom Pittenger
3b3752468d HAL_PX4: fix compile warnings re unused variables 2015-04-24 14:18:24 +09:00
Tom Pittenger
84d3069a77 AttControl_Heli: fix compile warning re member init order 2015-04-24 14:15:35 +09:00
Tom Pittenger
52474faa2e AP_ADC: fix compile warning re member init order 2015-04-24 14:15:24 +09:00
Tom Pittenger
4191c44bbd Baro: fix compile warning re member init order 2015-04-24 14:15:11 +09:00
Tom Pittenger
16e71ec1ce Compass: fix compile warning re member init order 2015-04-24 14:15:00 +09:00
Tom Pittenger
179c72bfa9 HAL_PX4: fix compile warning re member init order 2015-04-24 14:14:38 +09:00
Tom Pittenger
ee1a415baa HAL_VRBrain: fix compile warning re member init order 2015-04-24 14:14:27 +09:00
Tom Pittenger
a340d13d01 NavEKF: fix compile warning re member init order 2015-04-24 14:14:12 +09:00
Tom Pittenger
f3d13656ba PID: fix compile warnings re float constants 2015-04-24 14:04:24 +09:00
Tom Pittenger
91476d78ae SITL: fix compile warnings re float constants 2015-04-24 14:04:19 +09:00
Tom Pittenger
1575abff63 GCS_Console: fix compile warnings re float constants 2015-04-24 14:04:17 +09:00
Tom Pittenger
347fc1e59c Filter: fix compile warnings re float constants 2015-04-24 14:04:14 +09:00
Tom Pittenger
f700f76923 DataFlash: fix compile warnings re float constants 2015-04-24 14:04:12 +09:00
Tom Pittenger
5ead138917 RangeFinder: fix compile warnings re float constants 2015-04-24 14:04:10 +09:00
Tom Pittenger
5f49b79d2f Rally: fix compile warnings re float constants 2015-04-24 14:04:08 +09:00
Tom Pittenger
2179705791 PerfMon: fix compile warnings re float constants 2015-04-24 14:04:06 +09:00
Tom Pittenger
66ddfdeae6 AP_Param: fix compile warnings re float constants 2015-04-24 14:04:04 +09:00
Tom Pittenger
d6b34209b5 NavEKF: fix compile warnings re float constants 2015-04-24 14:04:02 +09:00
Tom Pittenger
a5ffadf201 AP_Motors: fix compile warnings re float constants 2015-04-24 14:04:00 +09:00
Tom Pittenger
a8dda9f2ed AP_Math: fix compile warnings re float constants 2015-04-24 14:03:54 +09:00
Tom Pittenger
a4b8575432 InertialSensor: fix compile warnings re float constants 2015-04-24 14:03:49 +09:00
Tom Pittenger
ae6d44bf82 HAL_VRBrain: fix compile warnings re float constants 2015-04-24 14:03:38 +09:00
Tom Pittenger
7e18480cd2 HAL_PX4: fix compile warnings re float constants 2015-04-24 12:49:18 +09:00
Tom Pittenger
11951dbf48 HAL_Flymaple: fix compile warnings re float constants 2015-04-24 12:48:20 +09:00
Tom Pittenger
b7fb4022b4 AVR_SITL: fix compile warnings re float constants 2015-04-24 12:47:11 +09:00
Tom Pittenger
12b604663c FrSky_Telem: fix compile warnings re float constants 2015-04-24 12:39:21 +09:00
Tom Pittenger
dffcdbd751 Curve: fix compile warnings re float constants 2015-04-24 12:39:02 +09:00
Tom Pittenger
bf1d128d70 Compass: fix compile warnings re float constants
Also fix example sketch
2015-04-24 12:29:07 +09:00
Tom Pittenger
c1d4992dac Camera: fix compile warnings re float constants 2015-04-24 12:28:03 +09:00
Tom Pittenger
0926cf17dd BattMon: fix compile warnings re float constants 2015-04-24 12:27:23 +09:00
Tom Pittenger
8f11507594 Arming: fix compile warnings re float constants 2015-04-24 12:27:05 +09:00
Tom Pittenger
e28c555889 AHRS_DCM: fix compile warnings re float constants
Also fix example sketch
2015-04-24 12:26:08 +09:00
Tom Pittenger
f4bfc12316 AP_ADC: fix compile warnings re float constants 2015-04-24 12:24:49 +09:00
Tom Pittenger
7132b39dcf AP_AutoTune: fix compile warnings re float constants 2015-04-24 12:24:19 +09:00
Tom Pittenger
2f9e0c1938 APM_PI: fix compile warnings re float constants 2015-04-24 12:24:02 +09:00
Tom Pittenger
b9865c5f3e AC_Circle: fix compile warnings re float constants 2015-04-24 12:23:38 +09:00
Tom Pittenger
4b97cc1957 AC_PID: fix compile warnings re float constants 2015-04-24 12:22:43 +09:00
Randy Mackay
b05bdd657d AP_NavEKF: getHeightControlLimit modifies height on success 2015-04-24 10:58:05 +09:00
Randy Mackay
ba94a993f5 AP_InertialNav: get_hgt_ctrl_limit only modifies limit on success 2015-04-24 10:58:00 +09:00
Paul Riseborough
51624149e1 AP_InertialNav: Add function to return EKF height control limit 2015-04-24 10:57:58 +09:00
Paul Riseborough
cf04600710 AP_NavEKF: Add public function to limit height control during OF nav 2015-04-24 10:57:56 +09:00
Paul Riseborough
68b225de4d AP_NavEKF: Prevent pre-arm baro drift affecting mag field reset height 2015-04-24 10:57:54 +09:00
Paul Riseborough
c2e6fdb56c AP_NavEKF: Reduce effect of noisy baro data on baro height offset estimate
This estimate is used to offset baro data if we need to switch across from range finder data due to sensor failure. The previous filter coefficients gave a 0.5 seconds time constant on the offset which was too susceptible to baro noise.
2015-04-24 10:57:51 +09:00
Paul Riseborough
fd7fdc1ad9 AP_NavEKF: Remove unnecessary state resets on arm and disarm
Resetting states unnecessarily creates transients due to presence of bias errors
2015-04-24 10:57:49 +09:00
Paul Riseborough
3e67080002 AP_NavEKF: Use GPS vertical velocity observations to estimate Z accel bias 2015-04-24 10:57:47 +09:00
Paul Riseborough
e48171ab11 AP_NavEKF: Improve takeoff with optical flow and range data loss
Range finder and optical flow data can drop-out and be reliable very close to ground. these patches enable the takeoff to be more relaibly detected and constrain optical flow navigation drift in the first part of takeoff.
2015-04-24 10:57:45 +09:00
Paul Riseborough
3e061b174e AP_NavEKF: Report unhealthy for all filter faults 2015-04-24 10:57:43 +09:00
Paul Riseborough
6c4c54c2ba AP_NavEKF: Use default on ground range parameter from range finder object 2015-04-24 10:57:41 +09:00
Jonathan Challinger
10476333d8 AP_NavEKF: don't run when previously disarmed and time has slipped 2015-04-24 10:57:39 +09:00
Jonathan Challinger
085faaac6a AP_NavEKF: fix delay detection so that filter properly resets after a delay 2015-04-24 10:57:36 +09:00
Randy Mackay
a01fb64f12 RangeFinder: fix example sketch 2015-04-24 10:57:25 +09:00
Randy Mackay
715da653c3 RangeFinder_Analog: set status 2015-04-24 10:57:23 +09:00
Randy Mackay
fadfa70e99 RangeFinder_MaxSonar: set status 2015-04-24 10:57:21 +09:00
Randy Mackay
e212ebb0d0 RangeFinder_PulsedLight: set status 2015-04-24 10:57:19 +09:00
Randy Mackay
aa04bef5af RangeFinder_PX4: set status and consume out of range samples 2015-04-24 10:57:16 +09:00
Randy Mackay
71de0ab815 RangeFinder_PX4_PWM: set status and consume out of range samples 2015-04-24 10:57:12 +09:00
Randy Mackay
7663b8eade RangeFinder: replace healthy with status and no_data methods 2015-04-24 10:57:10 +09:00
Randy Mackay
8ed6207ca8 RangeFinder: add pre-arm checks 2015-04-24 10:57:05 +09:00
Randy Mackay
f1cbd1f03b RangeFinder: add ground clearance parameter 2015-04-24 10:57:03 +09:00
Paul Riseborough
1c8e3f9444 AP_NavEKF: Allow EKF to pull data from range finder object 2015-04-24 10:57:01 +09:00
Paul Riseborough
7f1749dc1c AP_AHRS: Allow EKF to pull data from range finder object 2015-04-24 10:56:58 +09:00
Andrew Tridgell
f21aa17980 AP_GPS: fixed sending of GPS_RAW_INT with multiple links
thanks to ziltoid2 for this fix! See PR #2132
2015-04-24 08:21:00 +10:00
Niels Joubert
2a5b25ddbf GCS_MAVLink: Re-enable GPS Injection Packets 2015-04-24 08:01:32 +10:00
Niels Joubert
a5beef00d1 GPS: Official Swift Binary Protocol GPS Driver v3 for Piksi GPS
DRIVER FEATURES:
- All logic for RTK vs Normal now lives inside Piksi
- Supports observation uplink through telem radio
- Supports full SBP packet logging
- Reports high-rate green blinking to indicate RTK lock.
- Switchable to accept only Float or Integer RTK locks.

THIS REQUIRES PIKSI FIRMWARE v0.14 OR HIGHER
- Uses Piksi's new Pseudo-Absolute-Positioning mode
- Onboard Piksi must have Pseudo-Absolute mode enabled
- Ground Station Piksi must have a surveyed location in settings
- Ground Station Piksi must send its location to Onboard Piksi.

NEXT STEPS REQUIRED:
- EKF needs to take higher accuracy GPS into account
- EKF needs to take GPS RTK height into account
- GCS needs to support sending SBP observation packets
--- MAVProxy patch forthcoming
2015-04-24 08:01:32 +10:00
Fergus Noble
0480867de2 SITL: Update SBP simulation functions for pseudo-absolute mode 2015-04-24 08:01:32 +10:00
Paul Riseborough
405862bd8f AP_AHRS: Reduce time delay for EKF initialisation 2015-04-23 20:35:52 +09:00
Paul Riseborough
4a5bf0a266 AP_NavEKF: Reduce EKF start time
Makes EKF start conditional on DCM solution tilt error
2015-04-23 20:35:48 +09:00
Paul Riseborough
5184bca87f AP_AHRS: Prevent DCM reporting good tilt error when inverted 2015-04-23 20:35:39 +09:00
Paul Riseborough
ea8217bd3a AP_AHRS: Reduce time constant on filtering of DCM error reporting
Reduces time constant from 2 to 1 second to make data more useful for pre-flight alignment checks by the EKF
2015-04-23 20:35:35 +09:00
Randy Mackay
7e43eaafab GPS: TYPE param description to PX4-UAVCAN 2015-04-23 20:17:26 +09:00
Randy Mackay
6e30093924 AP_AHRS: correct sanity checks on update_trig 2015-04-23 09:45:43 +09:00
Jonathan Challinger
6a6ccb4f32 AP_AHRS: add sanity checks 2015-04-22 21:50:51 +09:00