Commit Graph

11959 Commits

Author SHA1 Message Date
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
ba94fc9796 Copter: Hybrid move reset_I into structure
Saves 1 byte of RAM
2014-04-23 15:00:09 +09:00
Randy Mackay
4d5b73b968 AC_WPNav: add reset_I to set_loiter_target 2014-04-23 15:00:07 +09:00
Ju1ien
ff532a06ec Copter: Hybrid fixes to wind_comp, brake pitch timer, thr peaks
There was an error in the velocity axis used to update
brake_timeout_pitch (vel_right instead of vel_fw)

The wind_comp was not enough filtered for the Pixhawk (400Hz), so I
added a specific time constant (TC_WIND_COMP) to have the expected
filter with 400Hz controllers.

About throttle peaks, after some tests and from logs, they happen when
hybrid switches to loiter.
There is always a difference between Alt and DesiredAlt (DAlt), but,
when loiter engages, it initializes DAlt = Alt and the copter tries
immediatelly to reach that new setpoint. So the solution would be to
init_loiter_target() just as it was in pre-onion code : only x/y and not
z. and to be able to pass parameters like that
wp_nav.init_loiter_target(inertial_nav.get_position(), Vector3f(0,0,0));

Well, from this new code structure, it seems not possible with current
functions so I've used set_loiter_target that init position passed as
parameter and velocity to 0 (as expected).
BTW, I think there was something wrong with set_loiter_target function,
the "Vector3f& position" parameter was not used at all...
I moved the reset flag from init_loiter_target to set_loiter_target.
2014-04-23 15:00:04 +09:00
Ju1ien
14cbb09804 Copter: hybrid add Brake or Loiter to Pilot override transition
Corrected a little mistake in get_wind_comp...()
Mixed transition not only from loiter but as well from brake to manual
override
2014-04-23 15:00:01 +09:00
Ju1ien
43b1dd748b Copter: hybrid init brake roll and pitch at loiter exit 2014-04-23 14:59:59 +09:00
Ju1ien
d745060c80 Copter: fix Hybrid flight mode in Parameter description 2014-04-23 14:59:56 +09:00
Ju1ien
f8e8d4024d Copter: Hybrid's max brake angle to 30deg 2014-04-23 14:59:53 +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
Ju1ien
b3e8112d24 Copter: Hybrid fix wind_comp time constant
Corrected timer init values and wind_comp time constant to get the best
behaviour

Check if wider deadband required (current is 30).
We were using a comparison to a 70-100 cdeg deadband in our initial
code. The deadband was there to avoid unwanted switches in case of
inaccurate fingers/radio

Adjusted timers to 100/400Hz

I_term does not init when in hybrid loiter
2014-04-23 14:59:43 +09:00
Randy Mackay
4778c73de2 Copter: Hybrid 10hz updates to wind comp lean angles 2014-04-23 14:59:40 +09:00
Randy Mackay
f87ab21063 Copter: Hybrid estimates wind when speed under 10cm/s 2014-04-23 14:59:38 +09:00
Randy Mackay
d36f137bf8 Copter: allow arming, disarming in Hybrid mode 2014-04-23 14:59:35 +09:00
Randy Mackay
e2aaafe40b Copter: hybrid works for 100hz and 400hz 2014-04-23 14:59:33 +09:00
Randy Mackay
705ff3f44f Copter: add hybrid_mix_controls
Allow wind comp estimate to run when vehicle travelling up to 30cm/s
(was 10cm/s)
2014-04-23 14:59:30 +09:00
Randy Mackay
e48c93d93c Copter: restructure hybrid into more states 2014-04-23 14:59:28 +09:00
Randy Mackay
f467d7bc20 Copter: add Hybrid parameters 2014-04-23 14:59:25 +09:00
Randy Mackay
754bae5748 Copter: refactor and split out wind compensation 2014-04-23 14:59:23 +09:00
Randy Mackay
d9c685323a Copter: add hybrid state struct, formatting changes 2014-04-23 14:59:20 +09:00
Randy Mackay
b5ed23f592 Copter: integrate skeleton Hybrid mode 2014-04-23 14:59:17 +09:00
Ju1ien
832fc62016 Copter: control_hybrid initial version 2014-04-23 14:59:15 +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
05c59c757c Rover: use get_current_nav_index() 2014-04-22 11:40:18 +10:00
Andrew Tridgell
e15350f756 Plane: use get_current_nav_index() 2014-04-22 11:40:18 +10: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
5fc071f5f9 Copter: restore SITL to run at 100hz 2014-04-21 21:46:22 +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
12012c9530 Plane: fixed a potential numerical error close to waypoints 2014-04-21 18:49:30 +10:00
Andrew Tridgell
e07b70de4e Copter: set AHRS vehicle class 2014-04-21 18:13:13 +10:00
Andrew Tridgell
c413cdc480 Rover: set AHRS vehicle class 2014-04-21 18:13:13 +10:00
Andrew Tridgell
250deaa32f Replay: added vehicle class detection 2014-04-21 18:13:13 +10:00
Andrew Tridgell
b1d82b37ff VARTest: fixed build 2014-04-21 18:13:13 +10:00
Andrew Tridgell
0de41f0ce1 Plane: set AHRS vehicle class 2014-04-21 18:13:12 +10: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
01538c5290 Copter: remove unused lon_error, lat_error 2014-04-21 15:06:32 +09: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