Commit Graph

71 Commits

Author SHA1 Message Date
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