Andrew Tridgell
b9128a932f
AP_L1_Control: no need to project position for lag
...
now handled by AHRS
2014-02-15 05:29:47 +11:00
Andrew Tridgell
cfad814bfb
AP_L1_Control: fixed switchover from loiter capture to circling
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-11-09 15:52:11 +11:00
Paul Riseborough
49fe7fea07
L1_Control : Added hysteresis for rear WP capture
2013-11-09 15:40:14 +11:00
Andrew Tridgell
1393ed58d0
AP_L1_Control: fixed waypoint approach logic
...
this could cause the RTL approach to not break off onto the circle
correctly
2013-11-09 12:54:26 +11:00
Andrew Tridgell
ea9a2eda3f
AP_L1_Control: reduced demanded bank angle by cos(pitch)
...
this prevents attempts to do too tight turns while at a steep pitch
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-11-04 21:21:42 +11:00
Andrew Tridgell
341dca4dfe
AP_L1_Control: added set_default_period()
...
used by the rover code
2013-09-09 19:55:53 +10:00
Andrew Tridgell
144516c941
AP_L1_Control: set min groundspeed to 0.1
...
this works better for slow rovers
2013-08-14 14:57:23 +10:00
Andrew Tridgell
31fce44063
AP_L1_Control: use a reference to AHRS
...
makes code a bit simpler
2013-08-13 13:49:26 +10:00
Andrew Tridgell
08ec43ef89
AP_L1_Control: use get_position()
2013-08-13 12:07:35 +10:00
Andrew Tridgell
b74ed795f2
AP_L1_Control: removed _maxf() and _geo2planar() functions
...
not needed any more
2013-08-13 12:07:35 +10:00
Andrew Tridgell
653fa5a191
AP_L1_Control: adjust position for GPS lag
...
this should help for rovers
2013-08-13 12:07:35 +10:00
Andrew Tridgell
fd4bceaafe
AP_L1_Control: avoid using float global coordinates
...
this increases the navigation precision of rovers using L1 control
down to the centimeter level
2013-08-13 12:07:35 +10:00
Andrew Tridgell
df8e8c64e8
AP_L1_Control: use projected position for turns
2013-08-13 12:07:34 +10:00
Andrew Tridgell
9c88872ad0
AP_L1_Control: use a better ground speed estimate at low speeds
...
this should prevent a rover going in the wrong direction at the start
of a mission
2013-08-13 12:07:34 +10:00
Andrew Tridgell
953051b49e
AP_L1_Control: added lateral acceleration interface
...
this will be used by the Rover code for steering
2013-08-12 13:38:38 +10:00
Andrew Tridgell
cf4a74cfb8
AP_L1_Control: fix for new AP_Math API
...
Pair-Programmed-With: Brandon Jones <brnjones@gmail.com>
2013-08-05 10:24:02 +10:00
Paul Riseborough
0c64c800b3
AP_L1_Control : Fixed bug in track capture angle limit
2013-08-02 21:47:45 +10:00
Andrew Tridgell
097718e833
AP_L1_Control: scale loiter and wp radius with altitude
...
this should keep the aircraft stable in loiter at very high altitudes
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-07-22 12:50:01 +10:00
Andrew Tridgell
86db955ac9
AP_L1_Control: fixed indent-tabs-mode
2013-05-30 09:54:53 +10:00
Paul Riseborough
9f309a2aa6
AP_L1_Control: Remove potential nan errors
...
If WP A and B were the same or ground speed was exactly zero, then the
previous code would produce a nan output. Protection against these
two cases has been added.
If WP A and B are equal, we track directly to the target waypoint
2013-05-13 11:27:51 +10:00
Andrew Tridgell
9654546b5a
AP_L1_Control: Cleaned up calculation of damping to reduce computations
...
also removed _cross2D, using math library instead
2013-05-05 21:51:08 +10:00
Andrew Tridgell
ba83950fc4
libraries: replace constrain() with constrain_float()
...
this makes the type much more obvious. Thanks to Tobias for the
suggestion.
2013-05-02 10:25:40 +10:00
Andrew Tridgell
c067fa2660
L1_Control: make NAVL1_DAMPING docs clearer
2013-04-29 14:24:34 +10:00
priseborough
84ed37938d
Plane : AP_L1_Control : Replaced division by constants with multiplies and adjusted default L1 period to 25 seconds
2013-04-28 14:47:59 +10:00
priseborough
9ff0888a17
AP_L1_Control : Fixed potential divide by zero in Nu1 angle calculation
2013-04-15 21:11:30 +10:00
Andrew Tridgell
97bfd16bd1
L1_Control: constrain the roll to handle floating point errors
2013-04-15 14:29:39 +10:00
Andrew Tridgell
571c48b9d5
L1_Control: cleanup some unused code and variables
2013-04-15 10:52:32 +10:00
priseborough
a423d102e0
Plane : AP_L1_Control : Fix wrong way turn behaviour on loiter entry
2013-04-15 10:52:32 +10:00
Andrew Tridgell
181f7368a3
AP_L1_Control: change turn_distance() to be min of wp_radius and L1 distance
...
this gives less surprising behaviour for users
2013-04-15 10:52:32 +10:00
Andrew Tridgell
dca597cda1
L1_Control: added a comment on speed of the L1 control code
2013-04-12 12:58:20 +10:00
Brandon Jones
a3c2851120
AP_L1_Control: Addition of library for geometry calculations required for L1 Control.
...
1) Explicit control of tracking loop period and damping which removes previous
variation in period with speed and fixed damping ratio
2) Explicit control of track capture angle (now set to 45 degrees by default)
3) Removal of restriction on loiter radius being greater than L1 distance
The circle(loiter) control is a L1 and PD hybrid utilising L1 for waypoint capture and PD control for circle tracking.
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
Pair-Programmed-With: Andrew Tridgell <tridge@samba.org>
2013-04-12 12:48:09 +10:00