Andrew Tridgell
5a1aa8dfe7
AP_L1_Control: implement turn_distance() with turn angle
...
uses a linear approximation for now.
11 years ago
Andrew Tridgell
aba11a0634
AP_L1_Control: wrap the target_bearing
11 years ago
Andrew Tridgell
b9128a932f
AP_L1_Control: no need to project position for lag
...
now handled by AHRS
11 years ago
Andrew Tridgell
cfad814bfb
AP_L1_Control: fixed switchover from loiter capture to circling
...
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
11 years ago
Paul Riseborough
49fe7fea07
L1_Control : Added hysteresis for rear WP capture
11 years ago
Andrew Tridgell
1393ed58d0
AP_L1_Control: fixed waypoint approach logic
...
this could cause the RTL approach to not break off onto the circle
correctly
11 years ago
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>
11 years ago
Andrew Tridgell
341dca4dfe
AP_L1_Control: added set_default_period()
...
used by the rover code
12 years ago
Andrew Tridgell
144516c941
AP_L1_Control: set min groundspeed to 0.1
...
this works better for slow rovers
12 years ago
Andrew Tridgell
31fce44063
AP_L1_Control: use a reference to AHRS
...
makes code a bit simpler
12 years ago
Andrew Tridgell
08ec43ef89
AP_L1_Control: use get_position()
12 years ago
Andrew Tridgell
b74ed795f2
AP_L1_Control: removed _maxf() and _geo2planar() functions
...
not needed any more
12 years ago
Andrew Tridgell
653fa5a191
AP_L1_Control: adjust position for GPS lag
...
this should help for rovers
12 years ago
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
12 years ago
Andrew Tridgell
df8e8c64e8
AP_L1_Control: use projected position for turns
12 years ago
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
12 years ago
Andrew Tridgell
953051b49e
AP_L1_Control: added lateral acceleration interface
...
this will be used by the Rover code for steering
12 years ago
Andrew Tridgell
cf4a74cfb8
AP_L1_Control: fix for new AP_Math API
...
Pair-Programmed-With: Brandon Jones <brnjones@gmail.com>
12 years ago
Paul Riseborough
0c64c800b3
AP_L1_Control : Fixed bug in track capture angle limit
12 years ago
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>
12 years ago
Andrew Tridgell
86db955ac9
AP_L1_Control: fixed indent-tabs-mode
12 years ago
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
12 years ago
Andrew Tridgell
9654546b5a
AP_L1_Control: Cleaned up calculation of damping to reduce computations
...
also removed _cross2D, using math library instead
12 years ago
Andrew Tridgell
ba83950fc4
libraries: replace constrain() with constrain_float()
...
this makes the type much more obvious. Thanks to Tobias for the
suggestion.
12 years ago
Andrew Tridgell
c067fa2660
L1_Control: make NAVL1_DAMPING docs clearer
12 years ago
priseborough
84ed37938d
Plane : AP_L1_Control : Replaced division by constants with multiplies and adjusted default L1 period to 25 seconds
12 years ago
priseborough
9ff0888a17
AP_L1_Control : Fixed potential divide by zero in Nu1 angle calculation
12 years ago
Andrew Tridgell
97bfd16bd1
L1_Control: constrain the roll to handle floating point errors
12 years ago
Andrew Tridgell
571c48b9d5
L1_Control: cleanup some unused code and variables
12 years ago
priseborough
a423d102e0
Plane : AP_L1_Control : Fix wrong way turn behaviour on loiter entry
12 years ago
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
12 years ago
Andrew Tridgell
dca597cda1
L1_Control: added a comment on speed of the L1 control code
12 years ago
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>
12 years ago