Randy Mackay
cde7d31dad
AC_WPNav: fix divide by zero when origin and dest are same location
2014-05-22 21:18:24 +09: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
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
Randy Mackay
badc127c34
AC_WPNav: fix example sketch
2014-05-08 16:25:13 +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
48ec0caf75
AC_WPNav: run navigation at 10hz in SITL
2014-05-08 16:15:44 +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
fd9f8f571f
AC_WPNav: replace inav, ahrs pointers with references
2014-05-08 16:15:26 +09:00
Randy Mackay
7dd366d84e
AC_WPNav: init_loiter sets speed, accel before calcing stopping distance
...
The stopping distance depends upon the speed and acceleration so these
must be updated first
2014-04-30 21:46:18 +09:00
Randy Mackay
0103ae2eb0
AC_WPNav: add WPNAV_ACCEL_Z
...
Allows configurable z-axis acceleration during missions
2014-04-30 21:46:12 +09:00
Randy Mackay
510c9920a6
AC_WPNav: rename get_horizontal_velocity to get_speed_xy
...
This new method name is consistent with the equivalent in the
AC_PosControl class
2014-04-30 21:46:06 +09:00
Randy Mackay
db51d37071
AC_WPNav: add clear_pilot_desired_acceleration
...
This allows quickly clearing out the pilot desired acceleration for
loiter contoller.
2014-04-25 14:45:14 +09:00
Randy Mackay
ad99918fee
AC_WPNav: recalc leash lengths if set_horizontal_velocity is called
...
Resolves bug in which do-set-speed allowed reducing the speed during the
mission but not increasing it.
Slow down distance is also recalculated.
Unnecessary call to calc_wp_leash_length removed from
set_spline_origin_and_destination.
2014-04-24 13:16:08 +09:00
Randy Mackay
46fba47c8e
AC_WPNav: slow target point's speed near destination
2014-04-24 13:16:00 +09:00
Randy Mackay
7c02a02bd8
AC_WPNav: reset_I flag moved to position controller
2014-04-23 15:00:14 +09:00
Randy Mackay
4d5b73b968
AC_WPNav: add reset_I to set_loiter_target
2014-04-23 15:00:07 +09:00
Ju1ien
5d0476e522
AC_WPNav: add reset_I to init_loiter_target
2014-04-23 14:59:47 +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
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
Randy Mackay
d382fa51ee
AC_WPNav: run loiter and wp nav at 50hz on Pixhawk
2014-04-21 13:32:02 +09:00
Randy Mackay
72d2712c4e
AC_WPNav: integrate update_xy_controller name change
2014-04-21 13:31:58 +09:00
Randy Mackay
966340a02a
Circle: integrate update_xy_controller name change
2014-04-21 13:31:57 +09:00
Randy Mackay
94d38ee294
AC_Circle: add get_closest_point_on_circle
...
init_start_angle method added to use current heading or position to
decide on initial start angle
2014-04-16 16:28:04 +09:00
Randy Mackay
60f522a094
AC_WPNav: set_wp_destination to use current target
...
Previously we used the projected stopping point if the vehicle had not
reached the destination but this could lead to large jumps in target
position
2014-04-13 22:42:50 +09:00
Randy Mackay
15da01cf3a
AC_WPNav: replace safe_sqrt with pythagorous2
2014-04-01 20:43:45 +09:00
Randy Mackay
b15d4379d8
AC_WPNav: use atan2f, make methods const
2014-03-30 23:09:51 +09:00
Randy Mackay
d27ca53a9d
AC_WPNav: spline sets origin vel to zero when no prev segment
...
Issue caught by Michael Oborne
2014-03-30 15:19:18 +09:00
Randy Mackay
7dfde39e19
AC_WPNav: advance_spline to use dt
2014-03-30 15:02:07 +09:00
Randy Mackay
c0458b786a
AC_WPNav: check acceleration is non zero
2014-03-30 11:52:44 +09:00
Randy Mackay
f0f3688172
AC_WPNav: rounder corners for short spline segments
2014-03-30 11:52:41 +09:00
Randy Mackay
197683d539
WPNav: clean up spline comments
2014-03-29 17:57:47 +09:00
Randy Mackay
24eb195aa3
WPNav: add yaw control for straight line wp nav
2014-03-28 09:23:13 +09:00
Randy Mackay
b42b12f7be
AC_WPNav: add get_spline_yaw
2014-03-28 09:23:07 +09:00
Randy Mackay
e5e71ce371
WPNav: add spline support
2014-03-28 09:22:53 +09:00
Andrew Tridgell
04587efb2d
AC_WPNav: fixed example build
2014-03-19 12:14:00 +09:00
Randy Mackay
98bdbb7fed
AC_WPNav: set loiter accel to 1/2 of speed
...
Bug fix from Leonard.
Also fixed some formatting.
2014-02-20 21:37:45 +09:00
Randy Mackay
6af705d455
AC_Circle: bug fix for pos target when radius is zero
2014-02-16 13:46:38 +11:00
Randy Mackay
bf3effcd10
AC_WPNav: fix example sketch
2014-02-15 06:09:08 +11:00
Randy Mackay
fbf8106280
AC_Circle: remove AC_PID include
...
This is no longer required with introduction of PosControl lib
2014-02-15 06:09:08 +11:00
Randy Mackay
e86a21a254
AC_WPNav: remove AC_PID include
...
This is no longer required with introduction of PosControl lib
2014-02-15 06:09:08 +11:00
Randy Mackay
9e31f0b985
AC_WPNav: use PosControl accessor
...
Saves 2bytes of RAM
2014-02-15 05:27:50 +11:00
Randy Mackay
598a1b1f43
AC_Circle: use trig values from ahrs
2014-02-15 05:27:48 +11:00
Randy Mackay
64cfcb2308
AC_WPNav: use trig values from ahrs
2014-02-15 05:27:48 +11:00
Randy Mackay
17177adccf
AC_Circle: remove debug comment
2014-02-15 05:27:46 +11:00
Randy Mackay
864f64b61a
AC_Circle: circle control library
2014-02-15 05:27:40 +11:00