Commit Graph

402 Commits

Author SHA1 Message Date
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
Siddharth Purohit 9b9954aa46 Copter: move to using CANManager library 2020-08-19 17:31:09 +10:00
Randy Mackay 925f76c048 Copter: integrate winch changes
includes the following changes
winch_update called at 50hz
removed ability to set winch rate from ch6 tuning
remove wheel encoder
call winch library to log at 10hz
fix winch param prefix
2020-08-07 21:55:07 +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 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
Tatsuya Yamaguchi 63002111eb Copter: add ZIGZAG_WP_DELAY parameter 2020-06-03 15:21:21 +09:00
Randy Mackay c4b5d47e1f Copter: white space fixes 2020-04-23 13:17:11 +09:00
Randy Mackay 04c3f040a8 Copter: visual odometry moved to AP_Vehicle 2020-04-09 19:41:08 +09:00
Tatsuya Yamaguchi 6b192de389 Copter: add ZIGZAG_AUTO_PUMP parameter 2020-02-19 19:56:56 +09:00
Andy Piper 93abfdb905 Copter: create generic vehicle management and move runcam to it 2019-12-30 13:02:04 +11: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
Peter Barker 544eb5f179 Copter: correct duplicate button instance 2019-12-10 09:29:52 +09:00
Gone4Dirt 180d4e713c Copter: Added autorotation flight mode and support 2019-11-29 08:06:10 +08:00
Matt Lawrence f71ef4c7ab Copter: Refactor failsafes, add fs_options bitmask parameter
- Radio failsafe, battery failsafe, GCS failsafe refactoring
- Add new FS_OPTIONS parameter
- Enhance GCS Failsafe abilities
2019-11-03 07:07:34 +08:00
Randy Mackay 7b0da89708 Copter: add vibration check 2019-10-18 11:15:25 +09:00
Leonard Hall c11f2247eb Copter: System ID mode 2019-10-16 08:17:09 +09:00
murata abb91fc33a Copter: Change external button specification to option
Copter: Change the definition name from BUTTON to BUTTON_ENABLED.
2019-10-08 08:09:19 +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 e5b25824eb Copter: remove unused takeoff_trigger_dz parameter 2019-04-09 08:15:39 +10:00
Randy Mackay a5bdd12bfa Copter: replace TUNE_LOW/HIGH params with TUNE_MIN/MAX
change from uint16 to floats to ease setup
also add check that no function assigned to rc6
2019-04-08 15:24:00 +09:00
Peter Barker 2040580ce7 Copter: move enabled parameter into compass library 2019-04-02 10:24:49 +11:00
Patrick José Pereira 33764d6c3b Copter: Fix typo
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2019-03-26 15:39:23 +11:00
Michael du Breuil cac4b91671 Copter: Allow scripting to run 2019-03-05 08:45:54 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Andrew Tridgell 89d54767b1 Copter: convert to use AC_AutoTune library
this maintains existing behaviour
2018-12-18 10:34:42 +09:00
SergeyBokhantsev af6303c82b Copter: User parameters implementation 2018-08-31 08:42:03 +09:00
Peter Barker e7e56dde7a Copter: move handling of RC switches into RC_Channel 2018-08-01 12:11:30 +09:00
Andrew Tridgell 20dea6df45 Copter: moved OSD to top level params
this gives us plenty of param depth for a complex param tree
2018-06-27 14:55:00 +10:00
Alexander Malishev f63b3c044a Copter: added OSD support 2018-06-27 14:55:00 +10:00
Michael du Breuil 749e0acd10 Copter: Remove software type param 2018-06-05 09:14:12 +10:00
Randy Mackay bf6e1993a1 Copter: resolve compiler warning re temp_calibration init order 2018-04-11 11:31:17 +09:00
Randy Mackay 59e4749fd0 Copter: integrate AC_Loiter
includes param conversion
2018-04-04 10:45:10 +09:00
Michael du Breuil 291531e056 Copter: Support new battery failsafes 2018-03-27 22:12:21 +01:00
Dr.-Ing. Amilcar do Carmo Lucas 580143d404 Copter: Add whitespaces to increase readability and consistency (NFC) 2018-03-23 09:34:11 +09:00
Dr.-Ing. Amilcar do Carmo Lucas 4f0cf6d334 Copter: Parameter ACRO_THR_MID is only used in ACRO flight mode 2018-03-23 09:14:23 +09:00
Leonard Hall 9544b1763b Copter: replace smoothing gain with AC_AttitudeControl::set_input_tc 2018-03-16 13:50:57 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 115ed491c0 Copter: Obey RANGEFINDER_ENABLED, AUTOTUNE_ENABLED and AC_TERRAIN build macros 2018-03-15 15:03:22 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas ed36ec3c29 Copter: add option to disable THROW mode 2018-03-15 07:38:14 +09:00
Peter Barker af56826107 Copter: follow mode fixups
add follow to FLTMODEx param descriptions
remove follow's set_velocity method
10hz logging of desired velocity in follow mode
follow mode uses pos error P gain
add send-debug-via-mavlink option
don't enter follow if follow lib is disabled
follow debug slowed to 1hz
disable follow on min-features builds
2018-03-05 15:08:08 +09:00
Randy Mackay 053983eb70 Copter: integrate AP_Follow into chase mode 2018-03-05 15:08:08 +09:00
night-ghost adcc309f15 Copter: allow AP_Stats to be optional 2018-03-02 07:23:35 +11:00
Peter Barker b8e1f03599 Copter: add define for disabling beacon 2018-02-27 07:43:13 +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
murata c31c2a4cf1 Copter: optionalize the winch 2018-02-12 12:16:57 +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
Andrew Tridgell af4f0c29ba Copter: enable TMODE (ToyMode) support
this is for the skyviper button based transmitter control
2018-02-08 17:36:33 +11:00
Andrew Tridgell 15166eff2e Copter: enable temperature calibration library 2018-02-08 17:36:33 +11:00
Andrew Tridgell 89674482a7 Copter: added FLTMODE_CH parameter
this allows for the flight mode to be on any RC channel, or no channel
at all to disable RC flight modes
2018-01-27 12:01:35 +09:00
Pierre Kancir cfc69214e6 Copter: add LAND_ALT_LOW parameter 2018-01-24 21:14:35 +09:00
Randy Mackay 8d6f8e4d9c Copter: move pos-control pids to pos-control library 2018-01-23 12:00:43 +09:00
Randy Mackay 6546ccbb3f Copter: velocity pi moved to position control library 2018-01-23 12:00:43 +09:00
Peter Barker 996115c0d3 Copter: eliminate MAIN_LOOP_SECONDS macro 2018-01-20 15:35:58 +11:00
ChrisBird caaeae3d0a Copter: Separate max ascent and descent speeds
Added equivalent parameters to WPNAV_SPEED_UP and WPNAV_SPEED_DN

New parameters named:
PILOT_SPEED_UP (technically renamed PILOT_VELZ_MAX)
PILOT_SPEED_DN

Removed parameter PILOT_VELZ_MAX (technically renamed to PILOT_SPEED_UP).

Flight Modes impacted:
ALTHOLD
AUTOTUNE
CIRCLE
LOITER
POSHOLD
SPORT
TAKEOFF

Update a section in GUIDED mode but I don't think it is ever used but update just in case.

It will use the PILOT_SPEED_UP for ascending max velocity.  For down it will check if
it is 0, if so then it will PILOT_SPEED_UP instead, if non zero it will use PILOT_SPEED_DN.
This retains current behavior and gives the flexibility to change it if desired.
2017-11-09 09:03:54 +09:00
Randy Mackay 787954fa37 Copter: integrate winch library
fixes after peer review:
rename winch-disable to winch-relaxed
add DO_WINCH to do-verify
winch release-length accepts rate
2017-10-27 09:20:38 +09:00
squilter 4b57a4a231 Copter: rename SafeRTL to SmartRTL 2017-09-09 14:05:41 +09:00
squilter ba0e08552f Copter: add SafeRTL flight mode 2017-09-09 14:05:41 +09:00
Peter Barker c6b9c84d1f Copter: remove CLI 2017-08-14 10:23:50 +09:00
Eugene Shamaev 24c390ade0 ArduCopter: move of CAN parameters into separate group 2017-07-03 11:44:32 +01:00
Randy Mackay 713c08672f Copter: integrate AP_VisualOdom 2017-04-19 11:04:40 +09:00
Peter Barker bd6ffc025e Copter: start conversion to AP_Arming_Copter 2017-01-17 11:45:08 +09:00
Andrew Tridgell 5a87ae3f01 Copter: use new SRV_Channels API 2017-01-12 17:39:37 +11:00
Randy Mackay e32ddaa7fa Copter: reorder beacon and proximity declaration
resolves compiler warning
2017-01-04 19:58:53 +09:00
Randy Mackay 12d024e0c6 Copter: rename FRAME to FRAME_TYPE
This unifies the plane and copter parameter names
2016-12-31 10:55:23 +09:00
Randy Mackay 0ac00dbfd6 Copter: add FRAME_CLASS parameter 2016-12-31 10:55:23 +09:00
Andrew Tridgell c3b9dbf5c8 ArduCopter: Add EKF3 and remove EKF1 2016-12-19 08:07:09 +11:00
Randy Mackay 21c7ea1df7 Copter: integrate AP_Beacon 2016-11-30 17:56:55 +09:00
Peter Barker 236b8ab6b7 Copter: make EPM a subclass of AP_Gripper_Backend 2016-11-05 10:20:39 +09:00
Peter Barker 920868145c Copter: support for AP_Gripper 2016-11-05 10:20:33 +09:00
Peter Barker df07cb525a Copter: use AP_Stats to store statistics about vehicle 2016-10-29 14:53:25 +09: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
Andrew Tridgell 5a9276a5c4 Copter: added SYSID_ENFORCE parameter
allows enforcement of SYSID_MYGCS
2016-10-15 17:14:19 +11:00
Leonard Hall 5c47f3f9e5 Copter: add acro throttle and yaw expo and smoother manual pilot throttle 2016-10-15 11:27:53 +09:00
Randy Mackay 0aab175051 Copter: move proximity to g2 2016-10-14 14:02:29 +09:00
Randy Mackay fcc2a1b378 Copter: integrate AP_Proximity into main vehicle 2016-10-13 20:21:07 +09:00
Andrew Tridgell d0dd10aeea Copter: added DEV_OPTIONS parameter
this is for little used options to allow standard firmware builds to
enable those options for development purposes

First option is for MAVLink based ADSB avoidance
2016-09-12 16:24:34 +10:00
Andrew Tridgell f18e0dadc9 Copter: added optional AdvancedFailsafe for copter and heli 2016-08-25 14:14:18 +10:00
Andrew Tridgell 89c10a2db9 Copter: rename WP_TKOFF_NAV_ALT to WP_NAVALT_MIN
this is in preparation for using the same parameter for landing as
well
2016-08-16 11:26:56 +10:00
Randy Mackay 9842840346 Copter: GND_EFFECT_COMP parameter to enable ground effect compensation 2016-08-09 13:31:36 +09:00
chambana 25940c8e0f Copter: add THROW_TYPE and allow dropping vehicle to trigger motors 2016-08-02 20:25:52 +09:00
Randy Mackay f0f87a2f0c Copter: add throw_nextmode
vehicle switches to mode specified in THROW_NEXTMODE parameter after the
throw is completed.
2016-08-02 20:25:52 +09:00
Randy Mackay d50987f976 Copter: avoidance_adsb implements copter avoidance using ADSB 2016-07-25 20:24:37 +09:00
Andrew Tridgell cb5ca713a9 Copter: added AP_Button support 2016-07-22 15:01:20 +10:00
Andrew Tridgell 3a8ed06267 Copter: added TKOFF_NAV_ALT parameter
this adds TKOFF_NAV_ALT which controls the altitude above takeoff that
navigation can begin. It is meant for unstable vehicles such as helis
to prevent blade strike during initial takeoff.

This also adds a new parameter class ParametersG2 which can hold 64
parameters. This is to avoid running out of parameters in the first
256 block
2016-07-07 14:21:47 +09:00
Daniel Ricketts 87be8daf0e Copter: integrate AC_Avoidance library 2016-06-22 11:38:15 +09:00
Leonard Hall 48eb4cf674 Copter: remove THR_MID 2016-06-18 11:55:49 +09:00
Leonard Hall dec9323127 Copter: remove THR_MIN
Equivalent is AP_Motors SPIN_MIN
2016-06-18 11:55:49 +09:00
Andrew Tridgell 045e3c179a Copter: moved EKF2 to a new parameter index
the meanings of many of the parameters have changed. Best to use a new
index to prevent old parameters from causing crashes
2016-05-25 19:35:17 +10:00
Randy Mackay 7689315ba2 Copter: rename sonar to rangefinder 2016-05-21 10:36:53 +09:00
Randy Mackay 74e02d2c82 Copter: rename TERRAIN_USE to TERRAIN_FOLLOW
This matches plane's parameter name
2016-04-30 10:33:01 +09:00
Randy Mackay 91f6c7b503 Copter: add TERRAIN_USE parameter
Also add terrain.cpp to hold terrain_update and terrain_logging functions
2016-04-30 10:33:01 +09:00
Randy Mackay bde498375c Copter: remove attitude PIDs
These are now part of AC_AttitudeControl
2016-04-01 11:59:30 +09:00
Randy Mackay 1f37f5a0e7 Copter: remove tradheli swash, yaw and rsc servos
These are all created within the AP_MotorsSingle class now except for servo_rsc which was unused
2016-04-01 11:59:30 +09:00
Leonard Hall 6c40d6f774 Copter: remove single frame's servo objects 2016-04-01 11:59:30 +09:00
Leonard Hall 44180e44df Copter: remove coax servo objects
servos moved to AP_MotorsCoax class
2016-04-01 11:59:30 +09:00
Leonard Hall a00a9601a4 Copter: AP_MotorsCoax now uses 4 servos 2016-04-01 11:59:30 +09:00