lthall
8bbce7e658
AC_PosControl: freeze feed forward for alt control in Auto
2014-06-10 20:02:36 +09:00
lthall
922026c15c
AC_AttControl: rate compensation for yaw
2014-06-10 20:02:34 +09:00
lthall
0d87298221
AC_PosControl: freeze feed forward and vector fixes
2014-06-10 20:02:33 +09:00
Randy Mackay
5209598459
AC_AttControl: rename init_targets to relax_bf_rate_controller
2014-06-10 20:02:27 +09:00
lthall
1bdde31f6b
Copter: Fix zero throttle flip issue Stabilize
...
The problem is that the init_targets is intended to ensure the
controller doesn't build up the I term when the throttle is low. Because
it is poorly named (or used) it have been written to do something else.
Here I change it to do what the code is trying to use it to do.
2014-06-10 20:02:01 +09:00
Randy Mackay
915dad2da4
AC_Circle: use fast_atan2 to calc bearing from center
...
This does not save much time because it's only called at initialisation
2014-06-06 18:51:09 +09:00
Randy Mackay
f23e94707c
AC_WPNav: use fast_atan2 for bearing calcs
2014-06-06 18:51:08 +09:00
David Dewey
17374ff5e8
AP_Math: fast_atan2
...
This is 126us per call vs 199us on the AVR. it is accurate to about
0.28 degrees
Committed by rmackay9 but contribution is from David Dewey
2014-06-06 18:50:41 +09:00
Ju1ien
28ce66f314
INav: clear historic z-axis position estimate when set_altitude called
2014-06-06 18:42:42 +09:00
Randy Mackay
efd6d6dc70
AC_WPNav: spline div by zero fix
...
Also add check for straight line navigation to ensure speed is not
reduced below zero when it hits the leash limit
Also minor formatting changes
2014-06-05 22:23:38 +09:00
lthall
0912bec8f5
Spline div zero and leash limit fix
2014-06-05 22:23:35 +09:00
Andrew Tridgell
f0df912a11
AP_Mission: added support for MAV_CMD_DO_INVERTED_FLIGHT
2014-06-05 15:44:18 +10:00
Andrew Tridgell
ef4a79cc9a
GCS_MAVLink: rebuild MAVLink headers
2014-06-05 15:44:03 +10:00
Andrew Tridgell
67937b5b79
GCS_MAVLink: added MAV_CMD_DO_INVERTED_FLIGHT
...
used to invert from a mission
2014-06-05 15:43:46 +10:00
Andrew Tridgell
5a1aa8dfe7
AP_L1_Control: implement turn_distance() with turn angle
...
uses a linear approximation for now.
2014-06-05 09:34:23 +10:00
Andrew Tridgell
7a6186f7e6
AP_Navigation: added a turn_distance() method with turn_angle
2014-06-05 09:33:42 +10:00
Andrew Tridgell
49f93b91b2
APM_OBC: fixed formatting to match APM coding standard
2014-06-02 10:47:02 +10:00
Andrew Tridgell
e9e1799700
AP_Compass: fixed VRBrain build
2014-06-02 10:42:37 +10:00
Andrew Tridgell
d554616e86
AP_EPM: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
3705c90b8e
AP_Baro: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
d70bee9249
AP_AHRS: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
0d83d4f4f5
APM_OBC: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
1e2214f8d1
DataFlash: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
732cd0e130
AP_Relay: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
50c08ced4c
AP_Notify: fixes for HAL_GPIO_*
2014-06-02 10:42:35 +10:00
Andrew Tridgell
4c43cd9775
AP_InertialSensor: fixes for HAL_GPIO_*
2014-06-02 10:42:35 +10:00
Andrew Tridgell
805d79debe
HAL_FLYMAPLE: fix for HAL_GPIO_*
2014-06-02 10:42:35 +10:00
Andrew Tridgell
3015356671
HAL_AVR: fixes for HAL_GPIO_ define change
2014-06-02 10:42:35 +10:00
Andrew Tridgell
18a64d17d3
AP_HAL: added HAL_ prefix to GPIO_ defines
...
this fixes a bug caused by GPIO_INPUT and GPIO_OUTPUT already being
defined in NuttX, which caused pinMode() not to setup pins for output
when requested
2014-06-02 09:24:52 +10:00
Andrew Tridgell
fa4eb5475a
HAL_PX4: implement analog input stop pins
...
this allows multiple sonars to cooperate without interference
2014-06-02 08:35:41 +10:00
Randy Mackay
2b0f142a17
AC_PosControl: fix typo in D-filter definition
2014-05-29 17:50:48 +09:00
Randy Mackay
7e3213edbf
AC_AttControl: increase default accel max
2014-05-29 17:40:26 +09:00
Randy Mackay
29ca7a10df
AC_PosControl: set alt hold accel control D term filter
2014-05-29 17:40:23 +09:00
Randy Mackay
0969e464fb
AC_AttControl: set roll, pitch, yaw rate control D term filters
2014-05-29 17:40:17 +09:00
Randy Mackay
faf3415e5e
AC_PID: example sketch prints individual P, I and D values
2014-05-29 17:39:19 +09:00
Robert Lefebvre
b35ec4339e
AC_PID: Add method to set the D-term Filter Rate from main code.
2014-05-29 17:39:10 +09:00
Robert Lefebvre
f1c3f2a3d1
AC_PID: Remove get_leaky_i function which is now found in AC_HELI_PID.
2014-05-29 17:39:08 +09:00
Robert Lefebvre
7c9249de93
AC_AttitudeControl_Heli: Change to use AC_HELI_PID class instead of AC_PID. Remove FF parameters from class.
2014-05-29 17:39:06 +09:00
Robert Lefebvre
6333b4bba6
AC_PID: update example sketch to test AC_HELI_PID
2014-05-29 17:39:01 +09:00
Robert Lefebvre
ef7dc815cd
AC_PID: Change Private members to Protected so that AC_HELI_PID can access them.
2014-05-29 17:38:59 +09:00
Robert Lefebvre
94e9bed9cf
AC_PID: Add new AC_HELI_PID as a child of AC_PID
2014-05-29 17:38:57 +09:00
Andrew Tridgell
0b6407256c
GCS_MAVLink: moved 3 more send_*() functions to GCS_Common.cpp
2014-05-28 09:35:30 +10:00
Andrew Tridgell
37c50d9587
HAL_PX4: fixed use of FMU servo pins as digital inputs
...
these pins can be PWM output or digital input or digital output
2014-05-25 22:03:44 +10:00
Andrew Tridgell
2d9e9d9bc3
AP_Compass: added COMPASS_PRIMARY parameter
...
this allows selection of which compass is the primary. Useful if the
first compass starts giving spurious data (as happened in our plane)
2014-05-25 22:03:44 +10:00
priseborough
edc79ca2a4
AP_NavEKF: Increase divergence test margin based on analysis of more user flight logs
...
Analysis of copter logs has shown cases with a healthy EKF where spikes in EKF4.DS of up to 25% of the threshold have occurred.
A value of closer to 10% for normal operation is preferred.
2014-05-24 22:20:24 +10:00
Andrew Tridgell
aba11a0634
AP_L1_Control: wrap the target_bearing
2014-05-23 07:30:58 +10:00
Randy Mackay
cde7d31dad
AC_WPNav: fix divide by zero when origin and dest are same location
2014-05-22 21:18:24 +09:00
Andrew Tridgell
63da53c842
GCS_MAVLink: moved main update() routine into GCS_Common.cpp
...
this fixes a common timeout error with loading large missions, and
means less per-vehicle code
2014-05-21 12:45:25 +10:00
Andrew Tridgell
42c1501563
AP_Common: moved map_baudrate() into AP_Common
...
this version supports a much wider range of baudrates
2014-05-21 12:45:25 +10:00
Andrew Tridgell
7d712f90bf
APM_OBC: adjusted docs for FS_HB_PIN
...
thanks to Warren for the question
2014-05-21 12:45:25 +10:00
Randy Mackay
69ad632e2a
GPS: correct NAVFILTER parameter description
...
These corrected values match the GPS_Engine_Setting enum in GPS.h
Thanks to Adolfo R for noticing the issue and providing the fix
2014-05-20 22:08:40 +09:00
Andrew Tridgell
a7d6a26bec
HAL_PX4: fixed auto-flow control
...
the 6 bytes written to break the radio out of bootloader broke
auto flowcontrol detection
2014-05-19 22:02:39 +10:00
Randy Mackay
597d5227f5
AC_WPNav: rename set_loiter_target to init_loiter_target
2014-05-19 12:27:25 +09:00
Randy Mackay
e7b3c00767
AC_WPNav: set_loiter_target uses set_xy_target
...
Loiter is only a horizontal position controller so it should not set the
z-axis position.
Moved pos_control.set_speed and accel functions so order matches
init_loiter_targets function order
2014-05-19 12:27:20 +09:00
Ju1ien
aed5787c1b
AC_WPNav: bug fix for loiter init in Hybrid
...
AC_PosControl::init_xy_controller() has been added to PosControl and is
called by init_loiter_target.
Hybrid is currently using set_loiter_target function to init the loiter
controller. So we have to call init_xy_controller() by set_loiter_target
function.
What happens otherwise?
In AC_PosControl::update_xy_controller, we update "now" with
now = hal.scheduler->millis();
and, as _last_update_xy_ms has not been updated previously by
init_xy_controller(), we just call init_xy_controller().
So, _dt_xy will be negative and used anyways in all the functions and
PID called by update_xy_controller.
That will avoid at least _accel_target.x/y to be set to 0 but I'm not
sure for the high values, probably an I_term that is not reset and
reached very high value.
Or maybe a cast error somewhere... no clue at all
2014-05-19 12:27:16 +09:00
priseborough
5fe0d2c1b2
AP_NavEKF: Add protection for accel bias estimation errors
...
Don't do bias estimation if tilted by more than 60 degrees to prevent scale
factor errors affecting result unnecessarily.
Prevent Kalman gain from having the wrong sign due to numerical errors
associated with small process noise values.
Allow smaller Z accel bias process noise values to be set
2014-05-18 08:09:00 +10:00
priseborough
3222e8f7cb
AP_NavEKF: Default parameter adjustments
...
Bring Plane glitch protection thresholds into alignment with copter and
rover
Slight increase in accelerometer bias process noise to prevent bias
estimate divergence into limits (Rover and Plane only as Copter does not
seem respond as well to this change)
effective increase in threshold on divergence test to allow increased
margin for bad GPS velocities
2014-05-18 08:08:49 +10:00
Andrew Tridgell
65fd25fb5a
AP_InertialSensor: fixed example build
2014-05-18 08:08:19 +10:00
Andrew Tridgell
b99ae63cbb
HAL_Linux: more generic fix for scheduler issues in example sketches
...
this ensures drivers can run
2014-05-16 22:40:38 +10:00
Andrew Tridgell
30f5e2c37f
AP_GPS: work around scheduling issue in example code
2014-05-16 22:35:32 +10:00
priseborough
e40e50e2e1
AP_NavEKF: Prevent start-up transients re-tripping divergence test
2014-05-16 22:05:22 +10:00
Andrew Tridgell
73976e2ca4
AP_GPS: fixed example build
2014-05-16 22:05:04 +10:00
Andrew Tridgell
8533aecf18
AP_InertialSensor: fixed example build
2014-05-16 21:24:25 +10:00
priseborough
a19015ed61
AP_NavEKF: Scale divergence check with covariance
...
This provides consistent behaviour for a range of gyro bias process
noise settings and automatically adjusts sensitivity as filter learns bias
2014-05-16 21:24:25 +10:00
priseborough
0337d44b2e
AP_NavEKF: Fix bug causing immediate clearing of diverged status on reset
2014-05-16 21:24:04 +10:00
priseborough
d150904dc6
AP_NavEKF: Increase gyro bias process noise
...
This is required to stop the bias estimate from becoming too static
towards the end of longer flights.
2014-05-16 21:24:04 +10:00
Andrew Tridgell
49e7ee9ba7
GCS_MAVLink: added setup_uart() method
...
this provides a common way of dealing with UART setup for a GCS
instance. It includes code to cope with SiK radios stuck in bootloader
mode.
2014-05-16 11:44:33 +10:00
Andrew Tridgell
b3c1e515dc
AP_AHRS: when no accel info available in buffer use current value
...
this prevents an initialisation error, and is reasonable in flight too
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-15 22:19:54 +10:00
Andrew Tridgell
315290029a
AP_AHRS: fixed check of accel sensor health
...
we need to check health of each accelerometer separately
2014-05-15 22:18:56 +10:00
Andrew Tridgell
5edf4ba596
AP_NavEKF: fixed up handling of bitfields in faultStatus
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-15 21:42:39 +10:00
Andrew Tridgell
79edc4b467
GCS_MAVLink: re-generate with addition of MAV_SYS_STATUS_AHRS
2014-05-15 21:14:21 +10:00
Andrew Tridgell
ccebeba5a5
GCS_MAVLink: added MAV_SYS_STATUS_AHRS
...
will be used to indicate AHRS health
2014-05-15 21:14:21 +10:00
priseborough
f01cc78d37
DataFlash: Add EKF fault status logging
2014-05-15 21:14:21 +10:00
priseborough
ce8e1daa16
AP_NavEKF: Improved divergence detection and reset
...
Divergence is now detected by looking for very large changes in the gyro
bias. This will cause the filter to be reset and declared unhealthy for
10 seconds.
Don't reset filterDiverged status immediately during reset
Set filterDiverged true if covariance blows up
Add fault status reporting
2014-05-15 21:14:21 +10:00
Andrew Tridgell
5d2d6e0063
GCS_MAVLink: regenerated MAVLink headers
2014-05-15 21:14:21 +10:00
Andrew Tridgell
983ac9cbf4
GCS_MAVLink: merge in latest upstream XML changes
2014-05-15 21:14:21 +10:00
Andrew Tridgell
1a05c27bbb
AP_AHRS: added healthy() function
...
this will be used to report when the AHRS subsystem becomes unhealthy
2014-05-15 21:14:21 +10:00
Andrew Tridgell
086142580a
AP_InertialSensor: added VibTest sketch
...
logs all accel data at high rate to SD card
2014-05-15 21:14:21 +10:00
Jonathan Challinger
e883b889b6
SITL: Add compassmot interference
2014-05-15 21:14:20 +10:00
Randy Mackay
4ebde25a26
AP_Relay: add -1:Disabled to list of param values
2014-05-15 17:13:37 +09:00
Randy Mackay
5d20594fa4
AC_WPNav: bug fix for loiter and waypoint update rate
...
Thanks to EmileC for spotting this
2014-05-12 20:13:46 +09:00
Andrew Tridgell
85ebe81ed3
AP_NavEKF: fixed logic for divergence test
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2014-05-11 18:00:38 +10:00
priseborough
40dc0e56fe
AP_NavEKF: Add protection for badly conditioned innovation variances
2014-05-11 18:00:38 +10:00
priseborough
925c5751bd
AP_NavEKF: Add ability to inhibit in-flight mag cal and clean up moding
...
This will enable in-flight magnetometer calibration to be inhibited unconditionally,
This is required for long balloon carriage flights where ground speed can be high
enough to put it into in-air state, but with very poor observability of magnetic field
states causing bad state estimates and heading offsets to develop over time.
The covariance matrix no longer has rows and columns artificially zeroed when in static
mode. Instead booleans indicating whether wind or magentic field state estimation is
active are used to:
a) Set the process noise on these states to zero to stop their variances from increasing
unchecked when not being updated, and
b) Turn off updates for these states when measurement fusion is being performed.
This reduces the likelihood of a badly conditioned covariance matrix forming
during static mode operation.
A filter divergence check has also been added that will declare the filter unhealthy if
position, velocity and magnetic field observations are all failing their innovation
consistency checks. This unhealthy status will persist for 10 seconds after the
condition clears.
AP_NavEKF: Remove unnecessary zeroing of wind covariances
2014-05-11 18:00:38 +10:00
priseborough
3026ccee13
AP_NavEKF: Use baro data during launch transients whilst in static mode
...
Baro data can be used as it will still be valid during the launch and
is not a synthesised measurement.
2014-05-11 18:00:38 +10:00
Randy Mackay
05f5164dfa
Mission: rename AUTORESET to RESTART
2014-05-09 11:31:37 +09:00
Hug0
6b0d5f9770
AP_InertialNav: fix pos error degradation rate
...
degrate position_error to 10% over 2 seconds (assumes 5hz update rate)
must be *0.7943 instead of 0.7934
2014-05-08 23:09:39 +09:00
Randy Mackay
badc127c34
AC_WPNav: fix example sketch
2014-05-08 16:25:13 +09:00
Randy Mackay
9b6a4e0fc7
AC_Sprayer: fix example sketch
2014-05-08 16:25:11 +09:00
lthall
9ab9eaec25
AC_WPNav: Loiter jerk default to 10m/s/s/s
...
Pair programmed with Randy
2014-05-08 16:16:05 +09:00
Randy Mackay
1cb297580f
Copter: reduce Circle init twitch by using stopping point
2014-05-08 16:15:57 +09:00
Randy Mackay
091ff91a70
WPNav: add wp_and_spline_init to set speeds an init pos controller
2014-05-08 16:15:50 +09:00
Randy Mackay
c13db680b7
AC_PosControl: remove reset_I_xy
...
lean_angles_to_accel is now used to load the position rate I terms based
on vehicle's initial roll and pitch angle
2014-05-08 16:15:48 +09:00
Randy Mackay
cd8b1f278c
AC_PosControl: remove unused _cos_yaw variable
...
Also removed _sin_yaw, _cos_pitch, _step saving a total of 17bytes of
RAM
Also made get_speed_up, get_speed_down, lean_angles_to_accel functions
const
2014-05-08 16:15:46 +09:00
Randy Mackay
48ec0caf75
AC_WPNav: run navigation at 10hz in SITL
2014-05-08 16:15:44 +09:00
Randy Mackay
0819e05896
AC_PosControl: lean_angles_to_accel added for smooth initialisation
...
init_xy_controller also added to capture initialisation all in one place
2014-05-08 16:15:41 +09:00
lthall
b38c484874
AC_WPNav: add LOIT_JERK parameter
...
Limit accel output from loiter controller.
Call new pos_control.init_xy_controller when loiter starts
Remove sudden stop when pilot requested acceleration is zero
Pair programmed with Randy
2014-05-08 16:15:38 +09:00
Randy Mackay
71fae1e6f2
AC_AttControl: lean_angle_max accessor fn const
2014-05-08 16:15:36 +09:00
Randy Mackay
fd9f8f571f
AC_WPNav: replace inav, ahrs pointers with references
2014-05-08 16:15:26 +09:00
lthall
21c93e48ab
AC_PosControl: include vel error when get_stopping_point_z
...
Pair programmed with Randy
2014-05-08 16:15:24 +09:00