Commit Graph

5258 Commits

Author SHA1 Message Date
Randy Mackay
a1f1dd8059 AC_PosControl: add is_active_z method
Consolidated z-axis timeout checks to save 4bytes of RAM
Added POS_CONTROL_ACTIVE_TIMEOUT_MS to make timeout consistent
2014-05-08 16:15:22 +09:00
Andrew Tridgell
74227cd7f0 AP_HAL: prevent some FastDelegate warnings 2014-05-08 11:11:03 +10:00
Andrew Tridgell
a295760e56 AP_Rally: fixed indentation
previous indentation confused emacs24
2014-05-08 11:01:52 +10:00
Andrew Tridgell
4efcae46ab SITL: cope with more rubbish startup values from JSBSim 2014-05-04 17:30:10 +10:00
Andrew Tridgell
320834a5e7 HAL_PX4: read from FRAM in 128 byte chunks (2nd try)
this time without the amazingly silly bug
2014-05-02 22:12:45 +10:00
Andrew Tridgell
db6b96caa0 Revert "HAL_PX4: read from FRAM in 128 byte chunks"
This reverts commit a92366c455.

This commit may be associated with FRAM corruption on Pixhawk. Revert
until we understand why
2014-05-02 21:52:26 +10:00
Andrew Tridgell
a92366c455 HAL_PX4: read from FRAM in 128 byte chunks
this fixes FRAM read on Roberts Pixhawk. We don't know why yet.
2014-05-02 12:24:54 +10:00
Randy Mackay
937e9ea687 AC_PosControl: add set_target_to_stopping_point_xy method
Fixed bug in get_stopping_point_xy in which it would update Z-axis
target if vehicle was moving less than 10cm/s horizontally
2014-04-30 21:46:20 +09:00
Randy Mackay
7dd366d84e AC_WPNav: init_loiter sets speed, accel before calcing stopping distance
The stopping distance depends upon the speed and acceleration so these
must be updated first
2014-04-30 21:46:18 +09:00
Randy Mackay
0103ae2eb0 AC_WPNav: add WPNAV_ACCEL_Z
Allows configurable z-axis acceleration during missions
2014-04-30 21:46:12 +09:00
Randy Mackay
9f63de9b59 AC_PosControl: set_speed_z accepts positive descent speeds 2014-04-30 21:46:09 +09:00
Randy Mackay
510c9920a6 AC_WPNav: rename get_horizontal_velocity to get_speed_xy
This new method name is consistent with the equivalent in the
AC_PosControl class
2014-04-30 21:46:06 +09:00
Andrew Tridgell
eb1fb63e57 APM_Control: added logging of parameter changes in AUTOTUNE
this will make it easier to analyse logs
2014-04-30 22:22:13 +10:00
Andrew Tridgell
871d0c0e44 APM_Control: moved the log structure to ArduPlane core
this allows it to work with old style .log files
2014-04-30 21:22:28 +10:00
Andrew Tridgell
4f250579db DataFlash: added LOG_ATRP_MSG define 2014-04-30 21:22:28 +10:00
priseborough
114bd56e2a AP_NavEKF: Fix display names in parameter list 2014-04-30 06:35:41 +10:00
Randy Mackay
5cc26569fc AP_Motors: fix example sketch 2014-04-29 20:46:34 +09:00
priseborough
5fefce5899 AP_NavEKF: Synthetic sideslip fusion numerical error protections 2014-04-29 17:26:45 +10:00
Jonathan Challinger
0bb7b8e938 AP_GPS: Fix bug that causes permanent lag if we miss a message 2014-04-29 15:35:46 +10:00
Randy Mackay
2be99d7a92 TriCopter: output_test for individual motors
Based on original work by Nils Hogberg
2014-04-29 11:41:16 +09:00
Randy Mackay
07766e55f9 SingleCopter: output_test for individual motors
Based on original work by Nils Hogberg
2014-04-29 11:41:14 +09:00
Randy Mackay
3610cfe24c TradHeli: output_test for individual motors
Based on original work by Nils Hogberg
2014-04-29 11:41:13 +09:00
Randy Mackay
8f74f5b3b0 CoaxCopter: output_test for individual motors
Based on original work by Nils Hogberg
2014-04-29 11:41:12 +09:00
Randy Mackay
d63d82ec17 MotorMatrix: output_test for individual motors
Based on original work by Nils Hogberg
2014-04-29 11:41:10 +09:00
Vizual54
11d02ea5d2 AP_Motors: output_test for individual motors
Modified and integrated by Randy Mackay
2014-04-29 11:36:58 +09:00
Randy Mackay
6517638670 GCS_MAVLink: generate after adding DO_MOTOR_TEST 2014-04-29 11:23:07 +09:00
Randy Mackay
28846c6c99 GCS_MAVLink: add DO_MOTOR_TEST message 2014-04-29 11:23:04 +09:00
Andrew Tridgell
818e500509 AP_Mission: improve the AP_Mission docs
DisplayName isn't a description
2014-04-29 11:46:06 +10:00
Andrew Chapman
782fbe1ec5 AP_Mission: added reset() function 2014-04-29 11:46:06 +10:00
Andrew Chapman
a80e72ff82 AP_Mission: added MIS_AUTORESTART parameter
- added MIS_AUTORESTART parameter, defaults to 0
- added start_or_resume() function to either start or resume a mission
based on that parameter value
2014-04-29 11:46:06 +10:00
Andrew Tridgell
cf9b67d8fc GCS_MAVLink: prevent uninitialised bytes being written to a serial port 2014-04-27 15:34:30 +10:00
Randy Mackay
e855cfec02 AC_Fence: add 10sec manual recovery
This resolves issue #461 by giving the pilot a minimum of 10 seconds to
attempt to manually recover before the autopilot will attempt to retake
control to bring the copter home or land.
2014-04-27 11:11:07 +09:00
Randy Mackay
db51d37071 AC_WPNav: add clear_pilot_desired_acceleration
This allows quickly clearing out the pilot desired acceleration for
loiter contoller.
2014-04-25 14:45:14 +09:00
Randy Mackay
06bef6e3b8 Parachute: clear release time when enabled
This resolves an issue in which the parachute could be suddenly released
when the user enabled the parachute.  The sequence that could have
caused this bad behaviour were (1) the parachute is triggered (2) the
user disables the parachute in the 0.5sec between the trigger and the
actual release, (3) the user re-enables the parachute and the old
release time from (1) is used.
2014-04-24 19:22:11 +09:00
Randy Mackay
ad99918fee AC_WPNav: recalc leash lengths if set_horizontal_velocity is called
Resolves bug in which do-set-speed allowed reducing the speed during the
mission but not increasing it.
Slow down distance is also recalculated.
Unnecessary call to calc_wp_leash_length removed from
set_spline_origin_and_destination.
2014-04-24 13:16:08 +09:00
Randy Mackay
46fba47c8e AC_WPNav: slow target point's speed near destination 2014-04-24 13:16:00 +09:00
priseborough
ecc8e45eda AP_NavEKF: Fix bug in position reset logic 2014-04-23 18:16:02 +10:00
Andrew Tridgell
b0fd94f18e AP_GPS: initialise a variable in uBlox driver 2014-04-23 18:15:53 +10:00
Randy Mackay
7c02a02bd8 AC_WPNav: reset_I flag moved to position controller 2014-04-23 15:00:14 +09:00
Randy Mackay
098f8169b0 AC_PosControl: add keep_xy_I_terms method
Stops horizontal PID's I terms from being reset when the controller is
next updated
2014-04-23 15:00:12 +09:00
Randy Mackay
4d5b73b968 AC_WPNav: add reset_I to set_loiter_target 2014-04-23 15:00:07 +09:00
Ju1ien
6c71569775 AC_PosControl: update_xy_controller allows not resetting I term 2014-04-23 14:59:49 +09:00
Ju1ien
5d0476e522 AC_WPNav: add reset_I to init_loiter_target 2014-04-23 14:59:47 +09:00
Randy Mackay
09a35cf90f AC_PosControl: bugfix for freezing I-term build-up 2014-04-23 11:33:53 +09:00
Randy Mackay
559a258ede AC_WPNav: bug fix to limit target point from moving beyond leash
Also pull Z-axis acceleration from position controller instead of using
#define
2014-04-22 23:05:11 +09:00
Randy Mackay
9c6995d8bb AC_PosControl: add get_accel_z method 2014-04-22 23:05:08 +09:00
Randy Mackay
e565ee6d33 AC_PosControl: stop I term build-up when motors at max 2014-04-22 23:05:06 +09:00
Andrew Tridgell
e10542dcae AP_Mission: added get_current_nav_index() function
this will return 0 when there is no current command, which is what is
expected in MAVLink when there is no mission

(it prevents the text to speech announcing "65 thousand 6 hundred and
thirty five", which is quite annoying!)
2014-04-22 11:40:18 +10:00
Michael Day
96173bfb8a AP_Rally: Added one getter method and made a utility method public. 2014-04-22 11:40:18 +10:00
Randy Mackay
0e065e4894 AP_InertialNav: get_velocity_xy const 2014-04-21 21:59:38 +09:00
Randy Mackay
6f6c9e2585 AC_PosControl: bug fix to vertical speed limit
Vehicle was not reaching target climb or descent rate because of
incorrectly defaulted acceleration
2014-04-21 21:36:02 +09:00
Andrew Tridgell
25667a11a0 AP_NavEKF: use AHRS vehicle class for sideslip calculation
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 18:13:12 +10:00
Andrew Tridgell
5acd17b843 AP_NavEKF: cleanup some build warnings
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 18:13:12 +10:00
Andrew Tridgell
c8c6e05a4a AP_AHRS: added vehicle class to AHRS
used by EKF to control use of get_fly_forward()
2014-04-21 18:13:12 +10:00
priseborough
bd28cdbdcf AP_NavEKF: Improved magnetometer consistency checks
A magnetometer axis that fails the innovation consistency check will cause
all axes not to be used. If this condition continues for 10 seconds, a
magnetometer timeout condition will be declared. When the timeout has
occurred, if it is not a fly forward vehicle, then individual channels
will be used again, but with a reduced weighting.
2014-04-21 16:31:31 +10:00
Randy Mackay
648787a6c8 AC_WPNav: rename some definitions 2014-04-21 15:06:29 +09:00
Randy Mackay
2167dd7d3e AC_WPNav: update target speed immediately 2014-04-21 14:51:26 +09:00
Andrew Tridgell
05bffb5915 HAL_SITL: enable use of SIM_FLOAT_EXCEPT parameter 2014-04-21 15:37:08 +10:00
Andrew Tridgell
e0db7b117f SITL: added SIM_FLOAT_EXCEPT parameter
this enables checking for floating point exceptions
2014-04-21 15:37:08 +10:00
Andrew Tridgell
610a930612 AP_NavEKF: catch covarience errors and reset filter
this catches covariance values beyond a reasonable limit and resets
the filter is they happen
2014-04-21 15:37:08 +10:00
Andrew Tridgell
7e5a491f14 AP_Math: prevent a floating point exception 2014-04-21 15:37:08 +10:00
Andrew Tridgell
4d24a86088 AP_AHRS: prevent a infinity value 2014-04-21 15:37:07 +10:00
Randy Mackay
d382fa51ee AC_WPNav: run loiter and wp nav at 50hz on Pixhawk 2014-04-21 13:32:02 +09:00
Randy Mackay
72d2712c4e AC_WPNav: integrate update_xy_controller name change 2014-04-21 13:31:58 +09:00
Randy Mackay
966340a02a Circle: integrate update_xy_controller name change 2014-04-21 13:31:57 +09:00
Randy Mackay
7e376bc517 PosControl: update_pos_controller renamed to update_xy_controller 2014-04-21 13:31:55 +09:00
Andrew Tridgell
4756dbee84 AP_NavEKF: fixed millisecond subtraction for rollover
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-21 13:16:20 +10:00
Andrew Tridgell
be9d0c1c4d APM_OBC: setup termination values in PX4IO
this sets up the PX4IO board with failsafe values in case the FMU is
not running
2014-04-21 11:52:53 +10:00
Andrew Tridgell
0d4985079e RC_Channel: added support for LimitValue settings
this allows you to set a channel failsafe or radio_out to a limit
value
2014-04-21 11:52:41 +10:00
Andrew Tridgell
7f4178d967 RC_Channel: added setup_failsafe_trim_all() function
sets all channels to output trim values on FMU failure
2014-04-21 08:37:24 +10:00
Andrew Tridgell
5cd145a307 AP_HAL: added set_failsafe_pwm() API
this allows the PWM values for FMU firmware failure to be setup
2014-04-21 08:36:52 +10:00
Andrew Tridgell
7f9a9107c7 APM_Control: logging_started needs to be static
prevents writing log headers twice
2014-04-21 07:13:06 +10:00
Andrew Tridgell
68f1ae3036 AP_NavEKF: fixed some matlab ! -> ~ typos
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-20 21:44:37 +10:00
Andrew Tridgell
5a7afbf2cd AP_GPS: prevent writing GPS log headings multiple times 2014-04-20 21:44:14 +10:00
Randy Mackay
e3ffd5c0dd Common: remove RallyLocation defintion 2014-04-19 15:00:28 +09:00
Randy Mackay
7011ab40c2 Rally: define RALLY_WP_SIZE and RallyLocation 2014-04-19 15:00:25 +09:00
Michael Day
a2aab2ab5e AP_Rally: Minor fixes to AP_Rally after initial testing
- If a Rally point is being used, always respect the altitude set by the
user (don't take the max of that and the home point altitude).

- No need for constructor to pass in size of RallyLocation struct
2014-04-19 09:16:02 +10:00
Andrew Chapman
5825bac410 AP_Rally library 2014-04-19 09:15:59 +10:00
Randy Mackay
5322093475 Mission: fix example sketch after GPS lib changes 2014-04-17 16:41:38 +09:00
Andrew Tridgell
b4c5f31b17 APM_Control: reduce the number of parameter saves in autotune
don't save a parameter unless it has changed by 0.1%
2014-04-17 17:20:40 +10:00
Paul Riseborough
ccc7d36493 APM_Control: Modify D and I gain scaling 2014-04-17 17:11:48 +10:00
Randy Mackay
94d38ee294 AC_Circle: add get_closest_point_on_circle
init_start_angle method added to use current heading or position to
decide on initial start angle
2014-04-16 16:28:04 +09:00
Kevin Hester
c2184cb8e4 PID: fixup line endings 2014-04-15 15:57:56 +09:00
Kevin Hester
72e97cbf5c AP_Param: fixup line endings 2014-04-15 15:57:47 +09:00
Kevin Hester
a7820e6c71 OptFlow: fixup line endings 2014-04-15 15:57:33 +09:00
Kevin Hester
fce1277b0e Notify: fixup line endings 2014-04-15 15:57:11 +09:00
Kevin Hester
b7bed437c2 Compass: fixup line endings 2014-04-15 15:56:57 +09:00
Kevin Hester
80cb13e222 BattMon: fixup line endings 2014-04-15 15:56:43 +09:00
Kevin Hester
d09e871319 AP_Airspeed: fixup line endings 2014-04-15 15:56:26 +09:00
Kevin Hester
c34c4d79f6 AP_ADC: fixup line endings 2014-04-15 15:56:13 +09:00
Kevin Hester
b7410494e3 AC_PID: fixup line endings 2014-04-15 15:55:59 +09:00
L. Preston Sego III
3ecdc4b741 Copter: Add support for V-Tail Quads 2014-04-14 14:54:02 +09:00
Randy Mackay
02775e8dc5 AC_PosControl: get_accel_target returns const ref 2014-04-14 11:34:14 +09:00
Randy Mackay
60f522a094 AC_WPNav: set_wp_destination to use current target
Previously we used the projected stopping point if the vehicle had not
reached the destination but this could lead to large jumps in target
position
2014-04-13 22:42:50 +09:00
Andrew Tridgell
ae7293ef68 APM_Control: added support for AUTOTUNE_LEVEL
10 levels of tune, for what type of tune the user wants
2014-04-13 22:11:57 +10:00
Andrew Tridgell
86f167fc7f AP_Vehicle: added autotune_level to fixed wing parms 2014-04-13 22:11:28 +10:00
Andrew Tridgell
b7350118a6 AP_AHRS: enable EKF wind estimate with no airspeed sensor
EKF can now estimate with IMU and GPS only

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-13 19:42:49 +10:00
Andrew Tridgell
4abc2999a6 AP_NavEKF: start with a wind estimate of 3m/s, when no direct measurement
this will cope better with users with low roll/pitch gains, to ensure
they get enough control on takeoff

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-04-13 19:42:23 +10:00
priseborough
d745dc2b6f AP_NavEKF : Increased position gate default to reduce impact of accel errors
Flight testing with windup turns has shown that the position gate threshold
can be tripped with good GPS data causing position jerks. This increases the
initial GPS glitch rejection threshold to effectively 5m when using the
default POSNE_NOISE value of 0.5m.
2014-04-13 19:37:22 +10:00
priseborough
188bea6bab AP_NavEKF : Enable calc of wind velocity when not using airspeed sensing
This patch also cleans up the logic associated with use of the synthetic
sideslip measurement so that it can never be used for a non fly-forward
vehicle type

This patch adds functionality that initialises the wind-speed vector to the
reciprocal of the ground speed vector, and scaled to 6 m/s. On average this gives
a better initial wind velocity estimate on launch by assuming:

a) launch will be into wind
b) wind speed is equal to global average

It also helps prevent a headwind causing initial underestimation of airspeed
causing high autopilot gains and limit cycles on climb-out, until first
turn when the EKF is able to estimate the wind.
2014-04-13 19:37:19 +10:00