Commit Graph

443 Commits

Author SHA1 Message Date
Leonard Hall 7852e9d1b0 AC_WPNav: Fix calculation of _scurve_jerk_time using radians. 2021-09-09 08:01:14 +09:00
Peter Barker 8a3a787b76 AC_WPNav: honour changes to wp-speed-up and wp-speed-down in-flight 2021-09-08 21:29:38 +10:00
Andrew Tridgell 9342ded2bb AC_WPNav: cope with negative WPNAV_SPEED_DN
a user set WPNAV_SPEED_DN to a negative value, with odd results. Take
absolute value to cope. Even though the param docs clearly say range
should be positive, it is one where it is easy to think it should be
negative
2021-09-07 18:55:00 +09:00
Peter Barker ec53a41ffd AC_WPNav: monitor WPNAV_SPEED for changes 2021-09-07 10:04:07 +09:00
Josh Henderson a91c0f4b12 AC_WPNav: simplify get_wp_destination_loc 2021-09-07 08:02:18 +09:00
Randy Mackay 8a5ade1f46 AC_WPNav: protect against divide-by-zero 2021-09-06 16:02:25 +09:00
Randy Mackay 28a14b3602 AC_WPNav: move definitions to .cpp file 2021-09-06 16:02:25 +09:00
Randy Mackay af9a91c853 Copter: terrain spelling fix 2021-09-06 16:02:25 +09:00
Randy Mackay ba50f68390 AC_WPNav: terrain spelling fix 2021-09-06 16:02:25 +09:00
Leonard Hall 94002101fd AC_WPNav: Separate landing and terrain following. 2021-09-06 16:00:19 +09:00
Leonard Hall 520883b504 AC_WPNav: Fix Jerk units 2021-08-26 12:22:52 +09:00
Iampete1 58e14b2dc3 AC_Loiter: update ANG_MAX param description 2021-08-24 22:14:08 +01:00
Andrew Tridgell 973466856c AC_WPNav: update variable name for consistency 2021-08-19 14:42:28 +10:00
Leonard Hall a1b47f36ef AC_WPNav: support Control: Refactor to use Jerk 2021-08-11 17:07:29 +09:00
Leonard Hall 32b2510893 AC_WPNav: Fix Angle Vel units on function 2021-08-11 17:07:29 +09:00
Randy Mackay 83e85c7125 AC_WPNav_OA: minor formatting and comment fixes 2021-07-22 08:51:41 +09:00
Randy Mackay cf797dfca9 AC_WPNav_OA: separate handlers for results from Dijkstra's and BendyRuler
also bendy ruler uses pos controller
2021-07-22 08:51:41 +09:00
Peter Barker 8396925ece AC_WPNav: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
Pierre Kancir a7f14efef2 AC_WPNav: remove unused variable following https://github.com/ArduPilot/ardupilot/pull/18076 2021-07-21 19:00:15 +10:00
Randy Mackay c55c160f48 AC_WPNav: use get_terrain_margin instead of constant 2021-07-21 16:03:44 +09:00
Randy Mackay fb5c458132 AC_WPNav: add TER_MARGIN param 2021-07-21 16:03:44 +09:00
Leonard Hall 5dcfee07d9 AC_WPNav: Auto Terain following update 2021-07-21 16:03:44 +09:00
Leonard Hall ce254153c1 WP_Nav: Return Crosstrack error 2021-07-21 15:40:41 +09:00
Peter Barker 2d28c1065e AC_WPNav: use singleton to access AP_Terrain data 2021-07-12 17:34:44 +10:00
Leonard Hall 59909970fa AC_WPNav: Remove unused function 2021-07-10 20:25:05 +09:00
Leonard Hall 7bc6c19306 AC_WPNav: seperate kinimatic shaping from pid limit setting 2021-07-10 20:25:05 +09:00
Randy Mackay 430492469b AC_WPNav: get_terrain_offset and get_vector_NEU made public 2021-07-10 20:25:05 +09:00
Leonard Hall 620d066a2e AC_WPNav: move code to generate terrain following kinematic path 2021-07-10 20:25:05 +09:00
Leonard Hall fcde1e7370 AC_WPNav: use shaping_tc_z_s for terrain following time constant. 2021-06-25 16:54:05 +09:00
Andrew Tridgell 1d00cab9e6 AC_WPNav: convert circle, loiter and WPNav to double position 2021-06-24 21:34:30 +10:00
Andrew Tridgell bf91168cd6 AC_WPNav: cleanup position control APIs
use Vector2 for xy, float for z
2021-06-24 20:28:45 +10:00
Leonard Hall 8610edb664 AC_WPNav: AC_Loiter: Remove extra accel limit 2021-06-21 14:14:23 +09:00
Randy Mackay a79a3d2051 AC_WPNav: move get_yaw lower in AC_WPNav.h
this is a non-functional change
2021-06-18 08:20:02 +09:00
Randy Mackay 430ac65123 AC_Loiter: init brake_accel and fix brake timer type 2021-06-16 17:20:40 +09:00
Josh Henderson 757fc1d679 AC_WPNav: ensure that wp_radius greater than min
Co-authored-by: Murata,Katsutoshi <ma2maru@gmail.com>
2021-06-09 10:55:15 +09:00
Hwurzburg 158c7c499d AC_WPNav: correct param ranges to accomodate TradHeli defaults 2021-05-28 09:44:11 +09:00
Leonard Hall 166f059fc2 AC_WPNav: Fix before squash 2021-05-24 20:13:37 +10:00
Leonard Hall 538d8f82fb AC_WPNav: PosControl fixes 2021-05-24 20:13:37 +10:00
Leonard Hall ccf06f66f7 AC_WPNav: integrate AC_PosControl::get_roll_cd rename 2021-05-12 17:16:00 +10:00
Leonard Hall b17042078a AC_Loiter: integrate AC_PosControl::get_roll_cd rename 2021-05-12 17:16:00 +10:00
Leonard Hall d650df3e28 AC_Circle: integrate AC_PosControl::get_roll_cd rename 2021-05-12 17:16:00 +10:00
Leonard Hall 91e32a8339 AC_Loiter: minor format fix 2021-05-12 17:16:00 +10:00
Iampete1 e995e8873c AC_Circle: add function to check for radius param change 2021-05-04 10:41:39 +10:00
chobits 00b44ff6c8 AC_WPNav: remove unused function 2021-05-03 20:10:39 -04:00
giacomo892 a5708acaef AC_Circle: Restore radius every time 2021-04-28 11:36:58 +01:00
Randy Mackay a3ceb6d95b AC_WPNav: fix spline initialisation of terrain offset 2021-04-28 10:18:04 +09:00
Leonard Hall 361ba989bd AC_WPNav: Use Pos_Control Heading 2021-04-27 17:13:55 +09:00
Leonard Hall 939d8e3ed4 AC_WPNav: Support Thrust Vector Control 2021-04-27 17:13:55 +09:00
Randy Mackay b81930885c AC_WPNav: remove unnecessary assignment and constify local vars 2021-04-21 10:41:28 +10:00
Randy Mackay bebb7e7d8f AC_WPNav: removed unused enums 2021-04-21 10:41:28 +10:00
chobits fd88e53be6 AC_WPNav: remove unassigned _track_desired 2021-04-08 16:13:51 +09:00
Leonard Hall 64ae08a925 AC_Loiter: fix references to position error 2021-04-03 12:07:59 +09:00
Leonard Hall d0ab74e496 AC_Circle: fix references to position error 2021-04-03 12:07:59 +09:00
Randy Mackay 2201450180 AC_WPNav: renames and comment fixes 2021-04-03 12:07:59 +09:00
Randy Mackay 85b24cf641 AC_WPNav: fix get_wp_destination_loc
was incorrectly adding alt-above-terrain as if it was alt-above-ekf-origin
also fixup comments
2021-04-03 12:07:59 +09:00
Leonard Hall 32c27b32aa AC_WPNav: support for SCurve navigation
set_wp_destination clear yaw target
limit velocity and acceleration based on track slope
add is_active() and remove unused reached_spline_destination
init accepts desired speed
set_kinematic_limits uses current speed limits instead of defaults
add time compression to prevent target moving too fast for air
implement alternative spline
remove vel-target-length
set_wp_destination always calculates this leg
set_kinematic_limits moved to scurve
fix origin speed after spline segment
spline terrain following fix
handle s-curves with mismatching alt types
fix set_spline_destination_next
add update_track_with_speed_accel_limits
Change to next waypoint at corner apex
use scurve advance along track
remove unused definitions and out-of-date todo
set_spline_destination_next sets fast_waypoint
scurve origin speed set from spline target velocity
fixup takeoff delay
2021-04-03 12:07:59 +09:00
Josh Henderson fb789a07ce AC_WP_Nav_OA: origin_loc & dest_loc should use _terrain_alt_oabak 2021-04-01 14:44:40 +09:00
Josh Henderson 5551deab4b AC_WPNav: make Location(Vector3f) require ALTFRAME 2021-03-30 08:56:35 +09:00
Rishabh 711b497cc3 AC_Loiter: Make avoidance optional while using loiter controller 2021-03-22 14:04:42 +09:00
Randy Mackay 0d730e11cc AC_WPNav: OA stores and uses original terrain alt 2021-03-17 14:11:12 +09:00
Randy Mackay da580bd1ea AC_WPNav: OA gets minor format fix 2021-03-17 14:11:12 +09:00
Randy Mackay 79c9b4b523 AC_WPNav: increase default speed to 10m/s and accel to 2.5m/s/s 2021-03-03 08:03:39 +09:00
Randy Mackay eafd702773 AC_WPNav: add comment clarifying get_wp_destination alt frame 2021-02-11 13:01:37 +09:00
Rishabh 401d365491 AC_WPNav: Adapt to 3-D Avoidance changes 2021-02-01 14:34:13 +09:00
Leonard Hall e2308e9414 AC_Loiter: use AP_Math control tools common functions 2021-01-20 18:19:40 +11:00
Randy Mackay 530eb6d236 AC_WPNav: remove unused reached_spline_destination 2020-10-07 15:41:18 +09:00
Iampete1 4e064ef812 AC_Circle: add Circle options 2020-09-30 17:58:12 +10:00
Rishabh db57e0831b AC_WPNav: Navigation based on type of BendyRuler 2020-08-24 08:53:20 +09:00
Iampete1 b1c3ea467b AC_Circle: constantly update velocity from params 2020-06-24 08:57:08 +09:00
Randy Mackay 46ad31ad01 AC_Circle: add is_active
allows vehicle code to know if circle's yaw is valid
2020-04-27 09:39:46 +09:00
Randy Mackay 3195a7cccd AC_Circle: z-axis target only updated during terrain following
This allows the circle flight mode to externally control the altitude target
2020-04-21 11:39:38 +09:00
Randy Mackay 03441f2250 AC_Circle: remove _rangefinder_use parameter
We will reuse the WPNAV_RFND_USE parameter indirectly
2020-04-16 17:30:29 +09:00
Randy Mackay f3e2b182a1 AC_WPNav: add rangefinder_used accessor 2020-04-16 17:30:29 +09:00
Randy Mackay 658bb646ca AC_Circle: support terrain altitudes 2020-04-16 17:30:29 +09:00
Leonard Hall 25f1a4a4e1 AC_WPNav: add shift_wp_origin_to_current_pos_xy
also add shift_wp_origin_and_destination_to_stopping_point_xy
2020-03-11 10:39:18 +09:00
bnsgeyer 593ff6818d AC_WPNAV:make speed changes during missions obey WPNAV_ACCEL
Includes commits by rmackay9
AC_WPNav: fixup max speed acceleration
AC_WPNav: simplify the initialisation of poscontrol's max speed
          Changed at Leonard's request to keep things simpler
2020-02-22 08:53:41 +09:00
Matt Lawrence 189fee556f AC_WPNav: Circle mode pilot control of rate & radius 2020-01-07 09:30:33 +09:00
Randy Mackay 3ca28e27c6 AC_WPNav: add get_terrain_source and rename existing method
this allows RTL to determine which source of terrain data will be used which is required when building the return path
2019-12-17 20:02:01 +09:00
Peter Barker 56de1f2eed AC_WPNav: do not calculate NEU vector from invalid location 2019-09-17 09:05:23 +09:00
Randy Mackay aeb98c7555 AC_WPNav: integrate OAPathPlanner
includes these changse:
get_wp_distance_to_destination always uses oa unadjusted destination
get_wp_bearing_to_destination always uses oa unadjusted destination
stop vehicle if object avoidance fails
OA adjusted altitude interpolated from original track
2019-08-17 09:42:43 +09:00
Randy Mackay 6361a9a204 AC_WPNav: constify get_wp_destination 2019-08-17 09:42:43 +09:00
Peter Barker f21fcca9d0 AC_WPNav: take references to inav's position rather than a copy 2019-07-12 21:56:06 +09:00
Rishabh ce48b82500 AC_WPNav: remove brake 2019-06-13 09:02:46 +09:00
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