Commit Graph

360 Commits

Author SHA1 Message Date
Peter Barker f2163fbc24 AC_WPNav: use singleton for getting AC_Avoid instance 2019-06-06 11:47:22 +10:00
Randy Mackay b668c6f855 AC_Circle: improve target heading 2019-05-07 13:54:31 +09:00
murata d3d6bed584 AP_WPNav: Change the value of the minimum effective radius 2019-04-26 20:10:19 +09:00
Guglielmo 9ebe5d7de9 AC_WPNav: lowering waypoint radius minimum to 5cm 2019-04-26 11:15:48 +09:00
Randy Mackay 6fbbabd333 AC_WPNav: add origin_and_destination_are_terrain_alt accessor 2019-04-19 07:45:52 +09:00
Randy Mackay 5ebaeaf5d2 AC_WPNav: add rangefinder_used accessor
used by zigzag mode to determine if terrain altitudes can be used
2019-04-19 07:45:52 +09:00
Peter Barker 6364e6d4c1 AC_WPNav: stop casting poscontrol's roll/pitch/yaw to int32_t 2019-04-09 09:21:12 +09:00
Peter Barker 2c5373e278 AC_WPNav: add floating point constant designators 2019-04-05 23:04:17 -07:00
Michael du Breuil 7b5fb719dc AC_WPNav: Remove unused internals, and unneeded initilizers 2019-03-25 08:56:31 +11:00
Peter Barker d9ddb8f34d AC_WPNav: use enum class for AltFrame enumeration 2019-03-19 10:31:18 +11:00
Andrew Tridgell 078eef91cb AC_WPNav: prevent I term buildup during landing
this prevents I term buildup in the XY velocity controller during
landing. This to account for the EKF giving a non-zero horizontal
velocity when we have touched down. The I term buildup in the XY
velocity controller can lead to the attitude error going above the
level for disabling the relax function as the throttle mix is
changed. That results in large motor outputs which can tip over the
vehicle after touchdown.

Thanks to Leonard for the suggestion
2019-02-26 10:14:42 +11:00
Peter Barker 5bf511fc6d AC_WPNav: remove keywords.txt 2019-02-17 00:29:38 -08:00
Randy Mackay cde2964f05 AC_WPNav: split set_speed_z into up and down
Also rely on AC_PosControl to store current target up and down speeds so wpnav's defaults are not affected by do-change-speed requests
2019-01-31 19:34:32 +09:00
Randy Mackay b0811c86e7 AC_WPNav: rename get_speed_xy to get_default_speed_xy
This hopefully clarifies that the default speed is returned and not the current speed
2019-01-31 19:34:32 +09:00
Randy Mackay e93dee89b7 AC_WPNav: rely on AC_PosControl to hold current target speed 2019-01-31 19:34:32 +09:00
Pierre Kancir f5431ff661 AC_WPNav: improve wp_speed_cm variable comments 2019-01-31 19:34:32 +09:00
Randy Mackay 8ac09c0483 AC_WPNav: use dt from pos controller 2019-01-30 15:58:34 +09:00
Peter Barker 0215aff8f4 AC_WPNav: adjust for Location_Class and Location unification 2019-01-16 11:45:29 +11:00
Peter Barker f0ca4de313 AC_WPNav: add reached_wp_destination_xy 2018-10-30 17:50:46 +09:00
chobits 7fa7c8f403 AC_WPNav: add set_speed_z 2018-10-13 13:16:26 +09:00
mirkix 0c9fd0ae93 AC_WPNav: fix typo 2018-10-12 00:53:42 +01:00
Peter Barker 3faf7824c0 AC_WPNav: allow position control to get ekf navigation scalars directly 2018-10-09 10:47:38 +11:00
Randy Mackay f0181be9c9 AC_Loiter: init_target only inits pos controller if inactive
this reduces a twitch found during the development of zig-zag mode
2018-10-05 10:05:45 +09:00
Michael du Breuil 65641c3cb7 AC_Circle: Cope with AC_PosControl renaming 2018-09-20 15:15:45 -07:00
Michael du Breuil d3bee76f0b AC_WPNav: Cope with AC_PosControl renaming 2018-09-20 15:15:45 -07:00
Leonard Hall 31d93f5914 AC_Loiter: reduce twitch on init 2018-09-04 13:37:28 +09:00
liang.tang 8664ed006a AC_Circle: use stopping point to get closest point on circle 2018-07-26 12:12:07 +09:00
liang.tang c03e50660c AC_WPNav: check validity of kP 2018-07-10 18:07:50 +09:00
Pierre Kancir bffe3f6c21 AC_WPNav: add getter for crosstrack_error 2018-06-26 08:42:14 +09:00
Peter Barker 4c8c85f75b AC_WPNav: remove pointless initialisations
new clears this memory
2018-06-06 08:33:56 +09:00
Peter Barker fa0b315374 AC_WPNav: use rangefinder for terrain offset even if terrain not available 2018-06-06 08:33:56 +09:00
Peter Barker 2c962afe98 AC_WPNav: add get_wp_destination to get a Location_Class for the wp 2018-05-18 20:26:37 +10:00
murata 494735db2e AC_WPNav: Change the variable name according to the unit. 2018-05-14 16:38:47 +09:00
Randy Mackay f6cf52a748 AC_Loiter: move defines to cpp 2018-04-04 10:45:10 +09:00
Randy Mackay 757a35f3ba AC_Loiter: consolidate sanity checks 2018-04-04 10:45:10 +09:00
Randy Mackay 9de73a994f AC_Circle: add get distance and bearing to target 2018-04-04 10:45:10 +09:00
Randy Mackay 9426ee6df6 AC_WPNav: remove loiter
Loiter is in separate AC_Loiter class
2018-04-04 10:45:10 +09:00
Randy Mackay 0ba22a1feb AC_WPNav: remove brake dependency on loiter 2018-04-04 10:45:10 +09:00
Randy Mackay cc5ad7c004 AC_Loiter: loiter extracted from AC_WPNav 2018-04-04 10:45:10 +09:00
Randy Mackay 032b4373f6 AC_WPNav: removed brake's unused dt calc 2018-03-31 13:42:59 +09:00
Randy Mackay 5215588ba0 AC_WPNav: remove unused set_desired_alt
also remove unused get_desired_alt
2018-03-28 15:08:42 +09:00
Randy Mackay d0e6c4d08d AC_WPNav: correct LOIT_MAXA param description 2018-03-16 13:50:57 +09:00
Randy Mackay 21abe1194e AC_WPNav: run horizontal position control at main loop rate 2018-03-16 13:50:57 +09:00
Randy Mackay e9c23b538e AC_Circle: run horizontal position control at main loop rate 2018-03-16 13:50:57 +09:00
Randy Mackay 5be1020578 AC_WPNav: use multiply instead of divide
non-functional change
2018-03-16 13:50:57 +09:00
Randy Mackay 92b56c2c89 AC_WPNav: init_loiter_target always resets I term
This was only used by poshold and this has been removed as part of "new-loiter"
2018-03-16 13:50:57 +09:00
Leonard Hall a356cfa529 AC_Circle: init resets desired velocity_xy 2018-03-16 13:50:57 +09:00
Leonard Hall d104e3a3c0 AC_Circle: remove xy mode and limit angle to maintain alt 2018-03-16 13:50:57 +09:00
Leonard Hall 1c0678226c AC_WPNav: new loiter including accel ff and braking
Includes:
sanity check loiter accel max vs lean angle max
increase loiter aggressiveness
remove loiter calls to pos_con.freeze_ff_xy
use loiter max velocity correction
remove xy mode from loiter
move predictor to angle
add maximum pilot commanded angle to loiter
loiter use alt hold angle limit
set_pilot_desired_acceleration accept dt

Also includes:
remove loiter jerk and setting pos-con jerk
breaking gain is based on VelxyP
Jerk limit Loiter breaking
change breaking parameters use jerk limit
add maximum distance correction in Loiter to 2m
update Loiter parameter defaults
2018-03-16 13:50:57 +09:00
Leonard Hall c7c3dd561a AC_WPNav: brake, wp and spline clear desired velocity_xy 2018-03-16 13:50:57 +09:00
Leonard Hall 6430b75224 AC_WPNav: remove xy mode from brake, wp, spline 2018-03-16 13:50:57 +09:00
Leonard Hall c59dc21c8b AC_WPNav: sanity check wp accel max vs lean angle max 2018-03-16 13:50:57 +09:00
Randy Mackay f189ce5c68 AC_WPNav: minor formatting fix
non-functional change
2018-02-02 20:55:20 +09:00
Randy Mackay efbd8eb386 AC_WPNav: remove unused definition
This has been moved to AC_PosControl library
2018-01-23 12:00:43 +09:00
Randy Mackay 368245017a AC_WPNav: access pos-controller's horizontal p object 2018-01-23 12:00:43 +09:00
Randy Mackay 094620bc8a AC_WPNav: pass dt to avoidance 2018-01-16 12:13:48 +09:00
Randy Mackay 4d0c24f4eb AC_WPNav: RFND_USE param desription update 2018-01-12 16:50:00 +09:00
Peter Barker dff27ec506 AC_WPNav: correct call for getting location vector
Function has been renamed and only takes a Vector2f
2017-12-15 01:24:13 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas 1a512609ac AC_WPNav: Use the get_bearing_cd() overloaded function provided by AP_Math instead 2017-12-05 08:54:49 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 07c8d208bc AC_WPNav: Use DEGX100 define instead of hardcoded value (NFC) 2017-12-05 08:54:49 +09:00
Leonard Hall e49d29f8cd AC_WPNav: protect against divide by zero
This could occur if the spline origin and destination were the same location
In these cases we mark the vehicle as having reached the destination avoid all calculations
2017-11-23 21:24:28 +09:00
squilter da7aa36f2d AC_WPNav: add set_wp_destination_NED to accept target in meters NED 2017-09-09 14:05:41 +09:00
Randy Mackay 222dd0c9be AC_WPNav: correct comments
all position vectors are offsets from the ekf origin (not from the ahrs home)
2017-08-17 16:05:08 +09:00
Randy Mackay bd2ba1565c AC_WPNav: minor format fix 2017-07-10 13:26:37 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 079d2ff3be AC_WPNav: correct min limit 2017-05-18 20:48:50 +09:00
Randy Mackay a1a5c9f239 AC_WPNav: sanity check wpnav-radius
Occasionally users accidentally set the wpnav-radius to 0 and the vehicle gets stuck at waypoints
2017-05-18 12:25:47 +09:00
Randy Mackay bffc5daeb0 AC_WPNav: unset yaw when setting new origin and destination
This ensures that old yaw targets are not used in the short interval before they are initialised in advance_wp_target_along_track or advance_spline_along_track
2017-05-03 09:15:01 +09:00
Randy Mackay b1bd3f0364 AC_WPNav: yaw points along leash 2017-04-29 11:47:51 +09:00
Leonard Hall 62c123bb08 AC_WPNav: correct straight line waypoint leash calculation
The former calculation was not correctly using the 3D leash
2017-04-28 17:58:34 +09:00
Leonard Hall ba011eef78 AC_WPNav: init z-axis feed-foward to correct stopping point calcs 2017-04-28 09:10:02 +09:00
Randy Mackay e2cf836734 AC_WPNav: add get_stopping_point
returns 3D stopping point, simply re-uses pos_controller methods
2017-04-27 14:36:22 +09:00
Randy Mackay e96332d346 AC_WPNav: reduce spline to straight twitch 2017-04-27 11:21:33 +09:00
Randy Mackay d4c4daca16 AC_WPNav: speed-up and down parameter min to 10cm/s 2017-03-15 09:22:23 +09:00
Randy Mackay 8c6c2e46cc AC_WPNav: protect against LOIT_SPEED divide-by-zero 2017-03-15 09:22:23 +09:00
Jacob Walser 96303c3092 AC_WPNav: Add accessor for origin, and make get_bearing_cd() public 2017-02-21 11:26:14 +11:00
Andrew Tridgell 17e1329068 AC_WPNav: converted to use AP_AHRS_View
for use in quadplane tailsitters
2017-02-18 17:26:43 +11:00
Dr.-Ing. Amilcar Do Carmo Lucas 713b08d830 AC_WPNav: Reduced WPNAV_SPEED minimum to 20cm/s 2017-01-07 14:30:07 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 8419045aea Spell in comments 2017-01-06 10:57:39 -08:00
Randy Mackay a32068a973 AC_WPNav: remove ekf position reset handler
This has been migrated to the position control library
2016-11-24 19:58:00 +09:00
Randy Mackay 6406e34016 AC_WPNav: remove unused _loiter_step member 2016-11-24 19:57:50 +09:00
Peter Barker 1eca4e128d AC_WPNav: method to retrieve current desired pilot accels 2016-11-18 09:41:56 +09:00
murata c808ee2f49 Global: To nullptr from NULL.
RC_Channel: To nullptr from NULL.

AC_Fence: To nullptr from NULL.

AC_Avoidance: To nullptr from NULL.

AC_PrecLand: To nullptr from NULL.

DataFlash: To nullptr from NULL.

SITL: To nullptr from NULL.

GCS_MAVLink: To nullptr from NULL.

DataFlash: To nullptr from NULL.

AP_Compass: To nullptr from NULL.

Global: To nullptr from NULL.

Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Peter Barker c664eec93b AC_WPNav: remove unused variable _last_update 2016-10-24 08:57:56 -02:00
Andrew Tridgell c87fa13e77 AC_WPNav: added WP_RFND_USE parameter
allows disable of rangefinder use for terrain following
2016-08-23 09:27:39 +10:00
Randy Mackay 2dc111ff39 Copter: reduce WPNAV_LOIT_MINA parameter description range 2016-08-01 17:09:20 +09:00
Jonathan Challinger b5e80148c6 AC_WPNav: remove shift_loiter_target 2016-07-04 16:57:06 +09:00
Andrew Tridgell 86ceee4a53 AC_WPNav: fixed typo 2016-07-01 15:34:56 +10:00
Daniel Ricketts 8a6aa24525 AC_WPNav: use AC_Avoidance to stop at fence during Loiter 2016-06-22 11:38:15 +09:00
Randy Mackay 2bafc36ded AC_WPNav: support rangefinder for terrain following 2016-05-21 10:36:53 +09:00
Tom Pittenger 684ac12dd6 AC_WPNav: fix compile when using AP_TERRAIN_AVAILABLE 0 2016-05-20 12:29:19 -07:00
Ricardo de Almeida Gonzaga 3033c53834 AC_WPNav: Fix typos 2016-05-13 19:20:05 -03:00
dgrat 6d3b491c02 AP_Math: Replace is_equal with a type safe template function
It makes sense to consider also other floating point types.
2016-05-10 11:41:26 -03:00
dgrat 41661f815f AP_Math: Replace the pythagorous* functions with a variadic template
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
2016-05-10 11:41:26 -03:00
Randy Mackay 1c4b2be16a AC_WPNav: simplify use of terrain to just current location 2016-04-30 10:33:01 +09:00
Randy Mackay c5a3781507 AC_WPNav: accept terrain library reference 2016-04-30 10:33:01 +09:00
Randy Mackay e23c869c5d AC_WPNav: fix reporting of set_wp_destination failure 2016-04-30 10:33:01 +09:00
Randy Mackay 9fbfea951a AC_WPNav: spline handles terrain altitudes 2016-04-30 10:33:01 +09:00
Randy Mackay 8b2c479d62 AC_WPNav: straight line waypoints accept terrain 2016-04-30 10:33:01 +09:00
Andrew Tridgell 4908350ccb AC_WPNav: limit WPNAV_ACCEL to that implied by ANGLE_MAX
this prevents an overshoot and backtracking in the navigation code
when WPNAV_ACCEL is unachievable due to an angle limit
2016-04-28 17:47:50 +10:00