Randy Mackay
0f234583d6
Copter: poshold clears wind est when disarmed or landed
2020-11-10 08:56:36 +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
Randy Mackay
9104b4800f
Copter: correct GuidedOptions enum after peer review
...
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
2020-10-20 23:04:45 +09:00
Randy Mackay
eb3aca7acf
Copter: add GUIDED_OPTIONS to allow arming from transmitter
2020-10-20 23:04:45 +09:00
Randy Mackay
8b3cc0b255
Copter: fixup auto options
2020-10-01 08:48:06 +09:00
Michael du Breuil
50dfe3f197
Copter: Add AUTO_OPTIONS and support arming and throttle bypass
...
This allows you to arm the copter without any extra GCS commands while
in auto, and can be done from both the GCS, or the RC Tx. This is useful
for creating a simpler workflow.
This also allows you to set the auto_armed flag internally, which
bypasses the need to raise the throttle stick for the copter to start a
takeoff.
This exposed a problem where we would start running the controllers
before the EKF was at all initialized, if you switched into auto to
early. This now has a check that prevents us from running the mission
state machine until after the origin has been set. This was a suggestion
from @rmackay9.
When combined these options allow you to have the vehicle on the ground,
disarmed in auto with a takeoff waypoint loaded, then just arm the
aircraft and watch it takeoff. This is a feature we've had on quadplanes
for quite awhile now, and it has proven to be very nice for operators.
2020-10-01 08:46:29 +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
397b95154c
Copter: remove superfluous RETURN_TARGET_ALTTYPE_ from enum class names
...
Just repeats what's in the required prefix for the enum class
2020-09-08 10:01:59 +10:00
Peter Barker
afa153fb6f
Copter: remove wrapper for get_avoidance_adjusted_climbrate
...
Only the modes are interested in this - there's no point having it on
the Copter object.
2020-08-22 08:31:25 +09:00
Randy Mackay
30c8d7bf40
Copter: dev option so set-attitude-target thrust field used as thrust
2020-08-01 08:32:23 +09:00
Andy Piper
12c9578a66
Copter: add in additional acro options
...
Air-mode for multicopters
Rate only for multicopters and trad-heli
if air-mode aux switch is toggled in acro do not reset air-mode on exit
2020-07-14 15:54:24 +09:00
Tatsuya Yamaguchi
cde7ae246e
Copter: add ZIGZ_AUTO_ENABLE parameter
2020-06-03 15:21:21 +09:00
Tatsuya Yamaguchi
78fd5fac04
Copter: allow to resume in ZigZag Auto
2020-06-03 15:21:21 +09:00
Tatsuya Yamaguchi
cee7e94ebc
Copter: add zigzag_line_num parameter
2020-06-03 15:21:21 +09:00
Tatsuya Yamaguchi
7bc528097d
Copter: support zigzag auto feature
2020-06-03 15:21:21 +09:00
Tatsuya Yamaguchi
60fb275501
Copter: rename zigzag_auto_pump to zigzag_sprayer
2020-06-03 15:21:21 +09:00
murata
923237ffd3
Copter: Enumerate A and B points of ZigZag
2020-06-03 15:21:21 +09:00
Andrew Tridgell
4c2cf2139e
Copter: fixed use of timestamps in autorotate
...
fixes wrap handling
2020-04-20 07:10:21 +10:00
Andrew Tridgell
ffd601aca4
Copter: fixed build warnings in autorotate
...
unused code, and incorrect use of abs()
2020-04-20 07:10:21 +10:00
Tatsuya Yamaguchi
735498e160
Copter: move zigzag exit into mode_zigzag.cpp
2020-03-26 14:56:40 +09:00
Randy Mackay
db2229f684
Copter: ModeGuided::do_user_takeoff_start arg rename
...
this makes it more consistent with the method it is overriding
2020-03-19 15:17:11 -07:00
Randy Mackay
90883624bc
Copter: fix use of wp-navmin-alt
2020-03-11 10:39:18 +09:00
Randy Mackay
8d99f204b0
Copter: integrate landing gear option and make edge based
...
also guided mode now retracts landing gear after takeoff
previously landing gear deployment was "level based" meaning the pilot could not override the gear's position
2020-02-26 08:01:00 +09:00
Sachchit Vekaria
f6125b26e8
Copter: Allowing Terrain Following in Guided Mode
...
Uses frame type of MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT message to decide the value of terrain_alt boolean.
2020-02-17 14:42:42 +09:00
Randy Mackay
495c4ad6b6
Copter: remove unused ModeAuto::wp_start
...
this version accepts an offset from the ekf origin which is not required. All callers provide a Location
2020-02-17 14:30:18 +09:00
Randy Mackay
d244162587
Copter: zigzag supports arming, takeoff and landing
2020-02-13 07:37:29 +09:00
Matt Lawrence
809b170015
Copter: Circle mode pilot control of rate & radius
...
RC pitch stick controls circle mode radius. RC roll stick controls circle mode rate (speed) and direction.
2020-01-07 09:30:33 +09:00
Peter Barker
72e6446204
Copter: make requires_terrain a callback on the flightmode
...
This will prompt new modes to consider whether failsafe should be active
for terrain.
2019-12-24 09:46:19 +09:00
Randy Mackay
ea22e888c7
Copter: improve RTL terrain following
...
RTL_ALT_TYPE replaces TERRAIN_FOLLOW param
return path built using rangefinder or terrain database
pre-arm checks for RTL_ALT_TYPE parameter
pre-arm checks of terrain data only run if RTL might use it
2019-12-17 20:02:01 +09:00
Randy Mackay
39a6b104dd
Copter: move RTLState to ModeRTL
2019-12-17 20:02:01 +09:00
Randy Mackay
54582814aa
Copter: use SID_AXIS to hide other SystemID mode params
2019-12-03 14:53:55 +08:00
Peter Barker
2296448027
Copter: make private enum class for LAND mode's state
2019-12-03 07:38:22 +08:00
Gone4Dirt
180d4e713c
Copter: Added autorotation flight mode and support
2019-11-29 08:06:10 +08:00
Peter Barker
e6c6189fe5
Copter: cope with change in namespace of LogEvent enum
...
Also move Acro Trainer types into an enum class as the global defines
interfere with the Event names.
Also eliminate the Log_Write_Event wrappers.
2019-11-05 08:19:26 +08:00
Peter Barker
5ece75a09a
Copter: AC_AutoTune writes events itself now
2019-11-01 14:47:52 +08:00
Michael du Breuil
b42b1c08c4
Copter: Support new AP_Vehicle::set_mode
2019-10-25 08:48:22 +08:00
Randy Mackay
2cb3e446ab
Copter: systemid mode formatting and name changes
2019-10-16 08:17:09 +09:00
Leonard Hall
c11f2247eb
Copter: System ID mode
2019-10-16 08:17:09 +09:00
Leonard Hall
91be844b66
Copter: Let modes stop Attitude Logging
2019-10-16 08:17:09 +09:00
Randy Mackay
ca92f0505e
Copter: follow mode restores offsets to zero on exit
2019-10-07 08:30:45 +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
Tom Pittenger
0983a04d52
Copter: NAV_Delay variable timers to be all unsigned and labeled as _ms
2019-08-19 15:24:06 -07:00
Randy Mackay
709c874d8b
Copter: integrate AP_OAPathPlanner
2019-08-17 09:42:43 +09:00
Leonard Hall
0e34d8b1ff
Copter: PosHold fix for low brake_rate
2019-07-18 11:13:51 +09:00
Randy Mackay
b7a748df88
Copter: auto's wp_start accepts terrain alts
2019-07-18 09:01:09 +09:00
Rishabh
00f6dc9b05
Copter: brake moved in from AC_WPNav
2019-06-13 09:02:46 +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
Bill Geyer
0c64cdc565
Copter: TradHeli - add virtual flybar to heli acro flight mode
2019-06-04 09:57:13 +09:00
Peter Barker
08a18d6a0a
Copter: avoid working with uninitialised home location
2019-05-29 09:04:37 +09:00
Peter Barker
d34c4b01f4
Copter: build return path in run() rather than init()
...
This avoids attempting to build a return path if we don't currently have
a home or origin
2019-05-29 09:04:37 +09:00
Peter Hall
3fe63d5bc0
Copter: only save autotune gains if disarmed in autotue
2019-05-07 09:23:50 +10:00
Peter Barker
37c07e1d89
Copter: use enum class for roll/pitch mode
...
This adds some type-safety and helps distinguish between the many
defines which are used within PosHold mode
Saves about 210 bytes of flash
2019-04-30 08:36:59 +09:00
Peter Barker
462d87e5d0
Copter: remove unused PosHoldModeState enumeration
2019-04-30 08:36:59 +09:00
Peter Barker
e28c6b9dc6
Copter: remove redundant poshold_ prefix on PosHold methods
2019-04-30 08:36:59 +09:00
Peter Barker
f57a9f11cc
Copter: move poshold state variables into mode object
...
This was simply moving the members from the poshold struct into the
class then mechanically removing poshold. from in front of the member
access.
2019-04-30 08:36:59 +09:00
Randy Mackay
8a5141f751
Copter: mode autoyaw lower in mode.h
...
make ordering of some declarations consistent across child classes
2019-04-20 10:04:33 +09:00
Peter Barker
7945c1fdfd
Copter: mode class unfriends everyone, make relevant methods public
2019-04-20 10:04:33 +09:00
Randy Mackay
b7d0e4ec10
Copter: remove surface tracking shim functions
2019-04-19 07:45:52 +09:00
Randy Mackay
01909cf4c8
Copter: zigzag mode gets terrain following support
2019-04-19 07:45:52 +09:00
Randy Mackay
33a57361bd
Copter: reduce args passed to get_surface_tracking_climb_rate
...
The same arguments are always passed in
2019-04-19 07:45:52 +09:00
Pierre Kancir
caf925eda5
Copter: factorize arm or land check
2019-04-16 10:17:47 +09:00
Peter Barker
ef334fe3c7
Copter: remove hanging method declaration
2019-04-09 08:15:39 +10:00
Peter Barker
85be2b0c8b
Copter: clean up flip state enumerations
...
... including a redundant definition of the states...
2019-04-08 14:24:19 +09:00
bnsgeyer
94738c3f86
Copter: change make_safe_shut_down to make_safe_spool_down
2019-04-08 09:42:21 +09:00
Leonard Hall
38cc5a817f
Copter: consolidate mode state decisions
...
bnsgeyer and rmackay9 contributed to these changes
make_safe_shut_down waits for spool down before disarming
remove use of attitude_control::set_throttle_out_unstabilized to consolidate logic between multicopters and tradhelis
2019-04-08 09:42:21 +09:00
Peter Barker
3b33f4ca4d
Copter: add floating-point-constant designators
2019-04-05 23:04:17 -07:00
Peter Barker
d95160b33c
Copter: move check for high-throttle on mode change up
2019-03-26 20:57:15 +11:00
Peter Barker
34d9ce27af
Copter: make get_pilot_desired_throttle a method on Mode
2019-03-26 20:57:15 +11:00
Peter Barker
281dbfcef8
Copter: support send_extended_sys_state
2019-03-12 09:16:13 +09:00
Peter Barker
e744df585c
Copter: avoid int32_t<->float conversions
2019-03-01 12:09:58 +11:00
Randy Mackay
384bca9482
Copter: stop at waypoint depending upon next command
2019-02-27 13:30:40 +09:00
Randy Mackay
a903c91c40
Copter: remove unused auto_spline_start declaration
2019-02-27 13:30:40 +09:00
Peter Barker
2c814e9de2
Copter: get_alt_above_ground to get_alt_above_ground_cm
2019-02-26 19:31:41 +09:00
Arjun Vinod
d02d897928
Copter: make LOITER_TIME send "Reached command" message to GCS
2019-02-26 10:19:37 +09:00
Randy Mackay
ee6fd5ad8d
Copter: Guided_NoGPS does not require GPS
2019-02-06 12:28:08 +09:00
Peter Barker
f4f40f749b
Copter: Flip: fix FIXME by moving state into mode class
2019-02-04 11:07:28 +09:00
Peter Barker
3521d98b52
Copter: move handling Write_Event into AP_Logger
2019-02-04 09:30:07 +09:00
Peter Barker
845f015648
Copter: adjust for Location_Class and Location unification
2019-01-16 11:45:29 +11:00
Randy Mackay
50c5ad7076
Copter: TradHelis force spool up before takeoff
2019-01-15 11:41:44 +09:00
bnsgeyer
12f4d8518e
Copter: Tradheli moves init_targets_on_arming flag to motors
2019-01-15 11:41:44 +09:00
Peter Barker
bba3546279
Copter: do not permit copying of a Mode
2019-01-03 13:35:33 +09:00
Andrew Tridgell
cc4db3e458
Copter: implement get_wp() for follow
...
this allows the GCS to plot the position target
2018-12-31 09:53:20 +09:00
Andrew Tridgell
b897551e0b
Copter: log PIDs at full rate during AUTOTUNE twitch
2018-12-22 15:10:23 +11:00
Andrew Tridgell
89d54767b1
Copter: convert to use AC_AutoTune library
...
this maintains existing behaviour
2018-12-18 10:34:42 +09:00
Randy Mackay
7a6e212da9
Copter: follow return wp_distance and wp_bearing
2018-12-13 09:30:19 +09:00
Peter Barker
73940df48e
Copter: move mission into mode_auto
2018-11-09 13:35:40 +09:00
Peter Barker
b0494c1491
Copter: add override keyword where required
2018-11-08 11:30:12 +11:00
Peter Barker
7e581da1cf
Copter: implement misson LOITER_TO_ALT
2018-10-30 17:50:46 +09:00
Peter Barker
a339d77f08
Copter: let AP_Mission handle common camera commands
2018-10-30 15:37:18 +11:00
Peter Barker
1eec264d6c
Copter: mission library handles gripper
2018-10-30 15:37:18 +11:00
Peter Barker
7af119b497
Copter: factor out loc_from_cmd from three functions
2018-10-16 10:17:12 +11:00
Peter Barker
26ca75efae
Copter: make libraries get EKF control limits themselves
2018-10-09 10:47:38 +11:00
Randy Mackay
d3f7214bcf
Copter: revamp zigzag mode
...
more accurately stops on target
uses current z target when moving to edge
loses unnecessary auto_yaw.set_mode
ensure A and B are different
2018-10-05 10:05:45 +09:00
CAO MUQING
71beab7502
Copter: create and update Zigzag flight mode
2018-10-05 10:05:45 +09:00
Peter Barker
87f8e523de
Copter: clarify takeoff comments
2018-07-27 13:08:27 +10:00
Peter Barker
22f7f29045
Copter: move all of waypoint-takeoff into Mode namespace
2018-07-27 13:08:27 +10:00
Peter Barker
11aeec6dd1
Copter: factor out auto_takeoff_run from auto and guided
...
This code was identical.
2018-07-27 13:08:27 +10:00
Peter Barker
ff17c78c67
Copter: create Copter::Mode::_TakeOff subobject from takeoff_state
2018-06-26 09:11:21 +09:00
Peter Barker
7883582c65
Copter: move takeoff state into Mode class
2018-06-26 09:11:21 +09:00
Peter Barker
597e876953
Copter: clean up do_user_takeoff
2018-06-26 09:11:21 +09:00