Commit Graph

26 Commits

Author SHA1 Message Date
Tatsuya Yamaguchi e4e281d5a2 Copter: add use_pilot_yaw to ModeSmartRTL class 2021-10-08 13:14:09 +11:00
Andrew Tridgell ae0a69fa85 Copter: update for new double precision position APIs 2021-07-04 08:19:11 +10:00
Andrew Tridgell b43c58f6c3 Copter: use cleaned up APIs 2021-07-04 08:19:11 +10:00
Leonard Hall 4bae8f03a4 Copter: Use PosControl fixes 2021-05-24 20:13:37 +10:00
Pierre Kancir 84d385654a Copter: rename SmartRTLState enum to Submode 2021-05-12 17:50:47 +10:00
Pierre Kancir 0fe10c6c57 Copter: make SmartRTLState an enum class 2021-05-12 17:50:47 +10:00
Leonard Hall 726074be91 Copter: Support Thrust Vector based navigation 2021-04-27 17:13:55 +09:00
Randy Mackay 94d4e5912b Copter: add comments to smartRTL 2021-04-03 12:07:59 +09:00
Randy Mackay 9d91b6c3be Copter: smart-rtl fix for final point altitude 2021-04-03 12:07:59 +09:00
Leonard Hall 328c0655e3 Copter: support for SCurves and position controller changes
wp_start provides next_dest_loc
send next_destination to wp_nav instead of setting fast_waypoint
fixup zigzag for S-curve changes
fixup guided
auto spline fixes
smart rtl rename of next_point to dest_NED
loc_from_cmd accepts default location
auto mode stops before starting land command
auto do_next_wp accepts default location
rename do_next_wp to set_next_wp
also rename get_spline_from_cmd argument
also improve failure to set next waypoint due to missing terrain data
also fixup comment in set_next_wp
also auto stops when moving from straight to spline segments
also auto mode spline fix
also auto mode calls AC_WPNav::set_spline_destination_next

Copter: AutoYaw provides rate from WPNav
2021-04-03 12:07:59 +09:00
Randy Mackay 204c839ae0 Copter: mode_smart_rtl uses peek_point 2021-04-03 12:07:59 +09:00
Tatsuya Yamaguchi 0cce5699b2 Copter: change from control_mode to flightmode 2021-03-23 22:48:20 +11:00
Gone4Dirt 1e1be590e2 Copter: Add ignore pilot yaw option bit 2021-02-09 19:39:17 +09:00
Peter Barker 225de23950 Copter: cope with race conditioning popping points on SmartRTL return
There is a race with the cleanup thread.  While thin, it only has to
happen once.  After this patch the race would have to happen... a lot.

Co-authored-by: jasclarke308 <jasclarke308@gmail.com>
2020-10-24 08:59:26 +09:00
Peter Barker dba3158446 Copter: correct mode change for GCS failsafe in SmartRTL mode
In the case that you:
 - have previously done a successful SmartRTL flight
 - get a mid-air gcs failsafe and enter SmartRTL
 - recover from that gcs failsafe but remain in SmartRTL
 - get another mid-air failsafe

then without this patch you will enter LAND mode.

When determining our failsafe action, we were looking at whether we
should just continue landing.  To do that, we ask the current mode if we
are landing.  Problem is that SmartRTL was handing back the wrong answer
- it was handing back ModeRTL's answer rather than its own, and
ModeRTL's answer was "yes, I'm landing", as that's the last state that
step 1 in the above list leaves that mode in.

This patch simply hands back the correct answer for, "am I landing"
2020-09-08 09:05:03 +09:00
Peter Barker b4537bebd8 Copter: move control_mode_t into being Mode::Number enum class
Fixes this compiler error:

In file included from ../../ArduCopter/sensors.cpp:1:
In file included from ../../ArduCopter/Copter.h:195:
../../ArduCopter/mode.h:1291:9: fatal error: declaration shadows a variable in the global namespace [-Wshadow]
        AUTO,           // after A and B defined, pilot toggle the switch from one side to the other, vehicle flies autonomously
        ^
../../ArduCopter/defines.h:38:5: note: previous declaration is here
    AUTO =          3,  // fully automatic waypoint control using mission commands
    ^
1 error generated.
2019-09-13 13:12:08 +09:00
Randy Mackay 709c874d8b Copter: integrate AP_OAPathPlanner 2019-08-17 09:42:43 +09:00
Peter Barker 676d75c391 Copter: correct namespacing of Copter modes
This makes us look like Rover and Plane in terms of namespacing for the
Mode classes, and removes a wart where we #include mode.h in the middle
of the Mode class.

This was done mechanically for the most part.

I've had to remove the convenience reference for ap as part of this.
2019-06-11 09:18:22 +09:00
Peter Barker 46a6f45e4a Copter: adjust for desired spool state and spool state renames 2019-04-14 12:18:03 +09:00
Peter Barker fab2d59a1c Copter: move check for position up 2019-03-01 13:43:20 +09:00
Sarthak Bhagat 0bd21b0b3f Copter: SmartRTL add pilot yaw control 2018-04-30 13:15:44 +09:00
Peter Barker ba8b3e2415 Copter: create an AutoYaw helper object to hold auto-yaw state 2018-04-18 13:27:43 +09:00
Leonard Hall 9544b1763b Copter: replace smoothing gain with AC_AttitudeControl::set_input_tc 2018-03-16 13:50:57 +09:00
Peter Barker 9b440d6b25 Copter: add option to disable SmartRTL mode
Saves 5.5k of Flash
2018-02-27 07:43:13 +09:00
Andrew Tridgell 0ed75052f8 Copter: enable parameters inside mode objects
this adds FHLD_* parameters for FlowHold mode. It is a large patch as
it needs to disentagle the mode class to enable it to be used in
Parameters.h
2018-02-08 17:36:33 +11:00
Randy Mackay c3fbf2671c Copter: rename control_xx.cpp files to mode_xx.cpp 2017-12-12 10:39:26 +09:00