Randy Mackay
8102629dfb
Copter: refactor/rename precland methods
2021-08-30 14:08:44 +09:00
Rishabh
40adad743e
Copter: Disable Prec Land State Machine when Prec Land disabled
2021-08-30 14:08:44 +09:00
Rishabh
c5b98c3490
Copter: Support Prec Land State Machine
2021-08-23 15:00:56 +09:00
bnsgeyer
ca007ee6f6
Copter: Allow Tradheli to spoolup in guided or auto mode
2021-08-23 12:26:00 +09:00
Andy Piper
1b5ed1caff
Copter: add turtle mode
...
add turtle mode as an RC function
add turtle mode arming checks
re-use motortest arming checks for turtle mode
2021-08-12 19:00:51 +09:00
Iampete1
b63cc809ce
Copter: add AUTO RTL pseudo mode, DO_LAND_START
2021-07-27 09:00:11 +09:00
Leonard Hall
6d6ab89a72
Copter: Guided and Loiter mode returns Crosstrack error
2021-07-21 15:40:41 +09:00
Peter Barker
2e18b2d162
Copter: simplify throttle-is-unlimited check
...
Now not the same pattern as the other checks - but it is much shorter
2021-07-14 16:38:36 +09:00
Peter Barker
8ccb77f708
Copter: wait for motors to spool up before trying to upright vehicle
...
This stops us from progressing through the whole throw mode if the
vehicle just happens to be in the right state - which is can be for a
drop.
2021-07-14 16:38:36 +09:00
Peter Barker
21f8ff4a4e
Copter: constify some ModeThrow methods
2021-07-14 16:38:36 +09:00
Josh Henderson
2ba6ae6196
ArduCopter: mark get_wp() const
2021-07-13 08:05:25 +09:00
Randy Mackay
50d0592962
Copter: add GUID_TIMEOUT for guided mode vel, accel and angle control
2021-07-10 20:25:05 +09:00
Leonard Hall
58497bacbd
Copter: Auto Yaw variable names and comments
2021-07-10 20:25:05 +09:00
Leonard Hall
feae762e64
Copter: additional yaw modes and fixes
2021-07-10 20:25:05 +09:00
Leonard Hall
80e856af20
Copter: Guided: use common initialisation
2021-07-10 20:25:05 +09:00
Leonard Hall
635d13a106
Copter: support for acceleration-based AttitudeControl
2021-07-10 20:25:05 +09:00
Andrew Tridgell
d89388c4cc
Copter: use cleaned up APIs
2021-06-24 20:28:45 +10:00
Leonard Hall
e294991b08
Copter: Fix before squash
2021-05-24 20:13:37 +10:00
Leonard Hall
caeaf7c047
Copter: Fix take off altitude
2021-05-24 20:13:37 +10:00
Leonard Hall
4bae8f03a4
Copter: Use PosControl fixes
2021-05-24 20:13:37 +10:00
Pierre Kancir
4368629fb6
Copter: rename RTLState to SubMode
2021-05-12 17:50:47 +10:00
Pierre Kancir
84d385654a
Copter: rename SmartRTLState enum to Submode
2021-05-12 17:50:47 +10:00
Pierre Kancir
f43e42f0b6
Copter: rename AutoMode enum to SubMode
2021-05-12 17:50:47 +10:00
Pierre Kancir
3fb73d7e93
Copter: move SmartRTLState to SmartRTL class
2021-05-12 17:50:47 +10:00
Pierre Kancir
07632dc7ed
Copter: move AutoMode to Auto class
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
Pierre Kancir
c4cc3659fc
Copter: make RTLState an enum class
2021-05-12 17:50:47 +10:00
Pierre Kancir
4987e54247
Copter: make AutoMode an enum class
2021-05-12 17:50:47 +10:00
Randy Mackay
67e15f8d07
Copter: autotune entry checks moved to init
2021-05-03 20:23:27 -04:00
Tatsuya Yamaguchi
c42681f4f2
Copter: add exit() method to Mode class
2021-04-26 09:56:34 +09:00
Randy Mackay
5fcd2de4fa
Copter: attitude target thrust-as-thrust bit moved from DEV_OPTIONS to GUID_OPTIONS
2021-04-20 09:56:38 +10:00
Peter Barker
5df8dd8c50
Copter: move guided submode enumeration into ModeGuided
2021-04-14 16:12:57 +09:00
Peter Barker
e7a9e0acb4
Copter: move brake state into a structure
2021-04-06 07:53:23 +09:00
Randy Mackay
96267553cf
Copter: auto detects mission changes
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
Peter Barker
1e0f106ed4
Copter: make AutoTune object private state to ModeAutoTune
2021-03-30 11:23:10 +11:00
Peter Barker
d387ad9921
Copter: have allows_arming take a AP_Arming::Method rather than bool from_gcs
...
This API predates us having the arming methods being passed around.
This makes the calls look like Plane
2021-03-30 09:00:26 +09:00
Peter Barker
3af006019b
Copter: mark ModeSystemID as has_manual_throttle, no-arm and no-gps
...
This has implications for many things, like smoothing transition to auto
modes, and for arming
2021-03-26 10:26:34 +09:00
Peter Barker
a274697776
Copter: move LAND state variables to be members rather than static
...
Also rename one of them as we may be using (e.g.) OF to control position rather
than GPS.
2021-03-25 09:39:29 +11:00
Tatsuya Yamaguchi
069b7142b7
Copter: add allows_flip function to Mode class
2021-03-23 22:48:20 +11:00
Tatsuya Yamaguchi
f4eed612d7
Copter: add allows_autotune function to Mode class
2021-03-23 22:48:20 +11:00
Tatsuya Yamaguchi
2b89ac625f
Copter: add allows_save_trim function to Mode class
2021-03-23 22:48:20 +11:00
Tatsuya Yamaguchi
1dccc0ceb3
Copter: add mode_number function to Mode class
2021-03-23 22:48:20 +11:00
Randy Mackay
32fb3cb929
Copter: remove unused update_navigation and run_autopilot
2021-03-23 10:12:08 +09:00
Randy Mackay
1c350514ca
Copter: auto mode starts or updates mission from run method
2021-03-23 10:12:08 +09:00
chobits
b7c937592e
Copter: send mission_item_reached in guided
2021-03-09 10:04:24 +09:00
James O'Shannessy
2a9affe517
ArduCopter: Remove unused fence floor enable function
2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
92122e5133
Copter: automatically enable and disable floor fence on automated takeoff and landing
2021-03-05 14:52:46 +11:00
Dr.-Ing. Amilcar do Carmo Lucas
2302f08f75
Copter: run the "point yaw to ROI" controller at full rate (400Hz) instead of 1/4 of full rate (100Hz)
...
- This should improve pointing at ROI and replaces #11172
- Remove unused member variable as per review suggestion
- declare Mode::AutoYaw::roi_yaw() as const
2021-02-16 09:30:21 +09:00
Patrick José Pereira
ad82e01270
ArduCopter: Add missing const in member functions
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Peter Barker
f4cbc50ba4
Copter: use an enumeration for pre-throw motor state
2020-12-08 12:04:14 +11:00
Peter Barker
bd0dff1b0e
Copter: use enum-class and AP_Enum for ThrowType
2020-12-08 12:04:14 +11:00
Michael du Breuil
f9b4e81702
Copter: Add ignore pilot yaw to guided, auto and RTL options
2020-11-19 07:22:54 +09:00
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