Commit Graph

241 Commits

Author SHA1 Message Date
Michael du Breuil 291531e056 Copter: Support new battery failsafes 2018-03-27 22:12:21 +01:00
night-ghost a1797beb41 Copter: removed 1ms delay on startup
handled by GCS library now, not needed here
2018-03-20 10:08:20 +11:00
Dr.-Ing. Amilcar Do Carmo Lucas ed36ec3c29 Copter: add option to disable THROW mode 2018-03-15 07:38:14 +09:00
Andrew Tridgell cf00bd99ea Copter: enanle RC override by default 2018-03-02 12:52:50 +11: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 5b355214fd Copter: add option to disable CIRCLE flight mode
Saves about 2.4kB of flash
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
Peter Barker b9ad2bc8db Copter: add option to disable AUTO mode
Saves ~12k of flash
2018-02-27 07:43:13 +09:00
Peter Barker 1a68979050 Copter: correct nullptr check for circle nav allocation 2018-02-22 16:14:50 +10:00
murata 6f20c6a97b Copter: Set the loop rate of G_dt as a variable. 2018-02-20 10:51:20 +11:00
Andrew Tridgell 00ec3efb48 Copter: initialise G_Dt to 1.0/400 2018-02-13 17:15:05 +11:00
Randy Mackay eefa629039 Copter: remove setting accel_z PID controller's dt
This is handled from within the pos controller
this commit can be merged with Copter: move pos-control pids to pos-control library
2018-01-23 12:00:43 +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
Peter Barker 7b637334f4 Copter: eliminate mode_has_manual_throttle 2017-12-06 10:09:58 +09:00
Peter Barker 527a536b78 Copter: FlightMode - remove function parameters
Use current control_mode in place of parameters

Once conversion is complete these functions will disappear
2017-12-06 08:24:24 +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
Andrew Tridgell 18f04abfe8 Copter: added HELI_QUAD 2017-10-03 10:16:41 +11:00
Lucas De Marchi f5c2ffffb9 global: remove DataFlash from AP_Mount::init() 2017-09-26 03:01:21 +01:00
Lucas De Marchi 4ef5186733 ArduCopter: do not include version.h/ap_version.h
The interface provided by each vehicle should be used to get the
version.
2017-09-23 21:37:45 -07:00
Randy Mackay 44a436642b Copter: complete rename to SmartRTL
Also fix parameter description for CH7_OPT
2017-09-15 08:58:14 +09:00
squilter 4b57a4a231 Copter: rename SafeRTL to SmartRTL 2017-09-09 14:05:41 +09:00
Randy Mackay 6684e3de56 Copter: minor comment change for SafeRTL 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 470e790117 Copter: add constant structure holding firmware version 2017-08-30 15:54:46 +01:00
Peter Barker 89e6e70235 Copter: remove MAIN_LOOP_RATE in favour of parameter value 2017-08-29 08:41:07 +09:00
Peter Barker b0c7766197 Copter: continuously reevaluate rc calibration checks
Stop "latching" calibration checks - if an RC radio's calibration
changes after it passes once, these patches allow the rc calibraiton
checks to then fail.
2017-08-21 09:05:31 +09:00
Peter Barker c6b9c84d1f Copter: remove CLI 2017-08-14 10:23:50 +09:00
Randy Mackay 8dadbaa850 Copter: landing gear init on startup 2017-08-05 11:20:41 +09:00
Peter Barker e45efeb829 Copter: move starting of new logs into DataFlash 2017-07-19 16:37:28 +01:00
Peter Barker f60389d4aa Copter: use send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
Peter Barker d9b45cc202 Copter: create GCS subclass, use inheritted methods 2017-07-07 16:18:37 +01:00
Eugene Shamaev 24c390ade0 ArduCopter: move of CAN parameters into separate group 2017-07-03 11:44:32 +01:00
Peter Barker 37abc1b02f Copter: check dataflash to see if we should log backend gps messages 2017-06-29 15:43:38 +01:00
Peter Barker 776d691c79 Copter: use DataFlash should_log to determine raw logging 2017-06-29 15:26:27 +01:00
Peter Barker cfbde937c6 Copter: move should_log check of log bitmask into DataFlash 2017-06-29 15:26:27 +01:00
Peter Barker 8b57405143 Copter: handle knowledge of in_log_download in DataFlash 2017-06-27 03:10:43 +01:00
Andrew Tridgell ba21c1e67d Copter: set RC_SPEED default to 16kHz for brushed 2017-06-17 17:37:45 +10:00
Peter Barker 4163455d97 Copter: stop using in_mavlink_delay as a proxy for disabling logging 2017-06-16 17:07:48 +01:00
Peter Barker cb41f09d2e Copter: call dataflash should_log method 2017-06-16 17:07:48 +01:00
Peter Barker 3ee56f5475 Copter: StartUnstartedLogging replaces logging_started/start_logging 2017-06-11 20:34:12 +01:00
Peter Barker 43a16b9327 Copter: simplify should_log (NFC) 2017-06-11 20:34:12 +01:00
Randy Mackay ec491d3c6b Copter: init_compass get g.compass_enabled check
No functional change
2017-06-07 10:34:13 +09:00
murata 1a76c28655 Copter: add dodeca-hexa 2017-05-27 14:21:13 +09:00
Randy Mackay 70ed572476 Copter: minor formatting fix
This is mostly just to trigger compilation of the latest beta
2017-05-25 17:53:20 +09:00
Randy Mackay 91d4b4777b Copter: respond to param list request after motor init 2017-05-15 14:13:43 +09:00
karthik.desai d7976078a5 Copter: fix typo in comments 2017-05-08 10:08:31 +09:00
Peter Barker 069e0d1973 Copter: move init of DataFlash references into vehicle init
It is possible to start a log before the existing codepath is crossed.
2017-05-01 15:04:34 +01:00
Andrew Tridgell 10b89db498 Copter: call BoardConfig.init_safety() at end of startup
this fixes a bug where motors can start on soft reboot
2017-04-30 21:47:04 +10:00
Randy Mackay 713c08672f Copter: integrate AP_VisualOdom 2017-04-19 11:04:40 +09:00
Randy Mackay 1bfbf0d43f Copter: enable motors at end of initialisation 2017-04-18 09:29:51 +09:00
Andrew Tridgell 6bb5c16fb8 Copter: allow for HELI_DUAL configurations 2017-03-25 16:22:10 +11:00
Andrew Tridgell 54b852ebfe Copter: fixed var table loading for heli single parms
we were not loading parameters such as the swash angle
2017-03-15 11:31:45 +11:00
Andrew Tridgell f1917dddd0 Copter: changes for AC_WPNav 2017-02-18 17:26:43 +11:00
Andrew Tridgell 92fdef5b97 Copter: changed for AP_AHRS_View on AC_AttitudeControl 2017-02-18 17:26:43 +11:00
Andrew Tridgell aad412eaef Copter: support tailsitter frame class 2017-02-18 17:26:43 +11:00
Andrew Tridgell 3cb88d0a23 Copter: added tailsitter frame support 2017-02-18 17:26:43 +11:00
Andrew Tridgell 6b6d03eb8d Copter: fixed upgrade of parameters
now that we dynamically allocate many key objects in copter we need to
move the parameter upgrade code to after when the objects are allocated
2017-02-15 15:02:06 +10:00
Andrew Tridgell d8972d5344 Copter: setup frame type parameter flags 2017-02-14 19:50:01 +11:00
Peter Barker 029aeeb4fd Copter: support for a GCS singleton 2017-02-13 09:32:01 +11:00
Peter Barker f49f153da0 Copter: rename gcs[] to gcs_chan[]
Wish to use gcs() to return the gcs singleton
2017-02-13 09:32:01 +11:00
murata 8f926bd177 Copter: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Randy Mackay 26919b4ab6 Copter: send flight mode string to Notify 2017-01-23 15:07:20 -08:00
Andrew Tridgell 332820aa88 Copter: fixed load of var_info for attitude_control and motors
we need to pass the var_info for the specific class we are using, not
the parent class.

Fixes issue #5585

thanks to Julien for noticing!
2017-01-20 12:05:09 +11:00
Andrew Tridgell 1297a7dedb Copter: convert the rest of motors class for tricopter 2017-01-12 17:39:37 +11:00
Andrew Tridgell bf889e01e1 Copter: load objects from storage after allocation 2017-01-12 17:39:37 +11:00
Andrew Tridgell 3fe1a69a32 Copter: always allocate a motors backend
this allows autotest to run, and gives a less confusing error to users
when no FRAME_CLASS error is selected
2017-01-12 17:39:37 +11:00
Andrew Tridgell e85df47b06 Copter: fixed parameter handling for pointer objects
fixed loading of default files and use of POINTER flag on object
groups
2017-01-12 17:39:37 +11:00
Andrew Tridgell 0f6d0c5ba9 Copter: combined tri, single, coax and multicopter into a single build
this allows copter to be just 2 builds, one for heli, and one for
everything else
2017-01-12 17:39:37 +11:00
Randy Mackay b1e494a209 Copter: return MAV_TYPE as quadcopter by default
This allows the GCSs to know that the firmware is for a multicopter
2017-01-12 09:27:14 +09:00
murata e65887c393
Copter: Change sprintf method to secure snprintf method. 2017-01-09 16:05:56 +00:00
Randy Mackay 6b4acebd26 Copter: bigger buf when sending frame string to frsky telem 2017-01-05 13:45:53 +09:00
Peter Barker a233024e05 Copter: fix compilation when fence andd proximity are disabled
This adds AC_AVOID_ENABLED; avoidance must be disabled if either
of fence or proximity are disabled.

Parameter definitions have been reordered to avoid compiler warnings;
this make sthe numbering non-linear
2017-01-03 10:44:03 +09:00
Randy Mackay e31d6d051d Copter: get_frame_mav_type switch fix
This returns generic as the mavtype and avoids warnings of unreachable code
Thanks to muramura for suggesting this
2016-12-31 10:55:23 +09:00
Randy Mackay 217757fdc8 Copter: default FRAME_CLASS 2016-12-31 10:55:23 +09:00
Randy Mackay 0ac00dbfd6 Copter: add FRAME_CLASS parameter 2016-12-31 10:55:23 +09:00
priseborough 3847975844 Copter: give the AHRS access to the range beacon sensor 2016-11-30 17:56:56 +09: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
murata 965a6a5719 Copter: To nullptr from NULL. 2016-10-28 10:53:31 -07: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 c01a7718c1 Copter: fixed startup order of setting mavlink system ID 2016-10-17 09:19:08 +11:00
Randy Mackay fcc2a1b378 Copter: integrate AP_Proximity into main vehicle 2016-10-13 20:21:07 +09:00
floaledm 85a3fda879 Copter: removed reliance on home_distance and home_bearing which are only in copter 2016-09-06 11:42:33 +10:00
Randy Mackay 4832ba4bf0 Copter: call attitude control parameter check 2016-09-02 09:27:17 +09:00
Andrew Tridgell ea7e62df17 Copter: use a constant string for frsky_telemetry init 2016-08-25 11:00:31 +10:00
Andrew Tridgell 96de005591 Copter: moved MAV_TYPE define to defines.h 2016-08-25 10:16:20 +10:00
Andrew Tridgell a14ff8ac77 Copter: fixes for Frsky_Telem API changes 2016-08-25 10:16:20 +10:00
floaledm baa3357b21 Copter: changed init for SPort passthrough protocol compatibility 2016-08-25 10:16:18 +10:00
floaledm f73fa1fc80 Copter: removed frsky_telemetry_send scheduled task 2016-08-25 10:16:17 +10:00
Andrew Tridgell ba7d0d6cd8 Copter: changed startup order
this allows BoardConfig to report errors in a way that allows for
BRD_TYPE to be changed by the user
2016-08-10 19:54:01 +10:00
Daniel Ricketts 87be8daf0e Copter: integrate AC_Avoidance library 2016-06-22 11:38:15 +09:00
Andrew Tridgell 8913dc32b0 Copter: simplify UART setup 2016-05-21 15:25:16 +10:00
Randy Mackay 7689315ba2 Copter: rename sonar to rangefinder 2016-05-21 10:36:53 +09:00
Randy Mackay 028946ae9e Copter: rename CONFIG_SONAR to RANGEFINDER_ENABLE 2016-05-21 10:36:53 +09:00
Ricardo de Almeida Gonzaga ce241dd97a ArduCopter: Fix typos 2016-05-13 19:20:07 -03:00
Andrew Tridgell 111eb2ccc1 Copter: use DataFlash::log_while_disarmed() 2016-05-09 12:05:52 +10:00
Lucas De Marchi 352e103f1a ArduCopter: use separate header for version macro
Having the version macro in the config.h and consequently in the main
vehicle header means that whenever the version changes we need to
compiler the whole vehicle again. This would not be so bad if we weren't
also appending the git hash in the version. In this case, whenever we
commit to the repository we would need to recompile everything.

Move to a separate header that is include only by its users. Then
instead of compiling everything we will compile just a few files.
2016-05-06 13:11:28 -03:00
Randy Mackay cd97aa97a3 Copter: provide terrain reference to AC_WPNav 2016-04-30 10:33:01 +09:00
Randy Mackay 8e43be1511 Copter: fixes to allow compiling without terrain support 2016-04-30 10:33:01 +09:00
Randy Mackay 84fd8da944 Copter: current_loc to Location class 2016-04-30 10:33:01 +09:00
Randy Mackay 479a789325 Copter: remove call to attitude_control.set_dt
This is now passed into the constructor
2016-04-01 11:59:30 +09:00
Paul Riseborough a7b69366a1 Copter: Add flight mode for throw launch
The is commit adds a new flight mode called 'Throw' to Copter that enables the copter to be thrown into the air to start motors. This mode can only be netered when the copters EKF has a valid position estimate and goes through the following states

Throw_Disarmed - The copter is disarmed and motors are off.
Throw_Detecting - The copter is armed, but motors will not spin unless THROW_MOT_START has been set to 1. The copter is waiting to detect the throw. A throw with an upwards velocity of at least 50cm/s is required to trigger the detector.
Throw_Uprighting - The throw has been detected and the copter is being uprighted with 50% throttle to maximise control authority. This state transitions when the copter is within 30 degrees of level.
Throw_HgtStabilise - The copter is kept level and height is stabilised about the target height which is 3m above the height at which the throw release was detected. This state transitions when the height is no more than 0.5m below the demanded height.
Throw_PosHold - The horizontal motion is arrested and the copter is kept at a constant position and height.
2016-03-03 12:18:13 +09:00
Tom Pittenger 09dd2a1b3d Copter: use set_dataflash() for static logging 2016-02-24 09:18:05 +11:00
Andrew Tridgell 4efb9bd785 ArduCopter: update for changed AP_Camera API 2016-01-29 09:19:43 +11:00
Dario Lindo Andres 90bf13279b ArduCopter: Added precise camera trigger logging
Added update_trigger and check_digital_pin functions
added camera trigger precise time mark
detect camera feedback pin status
added support for simple digital pin
included support for digital pin. Already included in
APMrover2.
added support for TRIGGER MSG
corrected according to defines.h
2016-01-29 09:19:43 +11:00
Jonathan Challinger 22c3397657 Copter: make AP_Mount calls required by AP_Mount_SoloGimbal 2016-01-23 10:35:42 +09:00
squilter 91187899fd Copter: initialize capabilities earlier 2016-01-12 18:13:15 +09:00
Andrew Tridgell 4dd8714880 Copter: changed to Hz based task table 2015-12-27 14:57:21 +09:00
Andrew Tridgell d14056fa1e Copter: fixed build warnings 2015-12-20 17:55:40 +11:00
Randy Mackay 1b29a1af46 Copter: consolidate setting of using-iterlock state 2015-11-17 09:02:31 +09:00
Lucas De Marchi 030fd046c7 ArduCopter: remove check for MAVLINK_COMM_NUM_BUFFERS 2015-11-04 12:14:15 +11:00
Lucas De Marchi 1b07dabeb7 Replace prog_char and prog_char_t with char
prog_char and prog_char_t are now the same as char on supported
platforms. So, just change all places that use them and prefer char
instead.

AVR-specific places were not changed.
2015-10-30 14:35:30 +09:00
Lucas De Marchi 20c6ffc5e3 Replace use of UARTDriver::printf_P() with UARTDriver::printf()
This also starts to show warnings on places that were already using
wrong printf format strings.
2015-10-30 14:35:25 +09:00
Lucas De Marchi 6f4904189b Replace use of println_P() with println() 2015-10-30 14:35:22 +09:00
Lucas De Marchi a964ac38ec Replace use of print_P() with print() 2015-10-30 14:35:21 +09:00
Lucas De Marchi 831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Lucas De Marchi 84da1f5039 Rename gcs_send_text_P to gcs_send_text 2015-10-30 14:35:07 +09:00
Lucas De Marchi 2c38e31c93 Remove use of PSTR
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.

This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.

AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00
Randy Mackay 9b80ab18ae Copter: position_ok when optical flow ok
Previously the GPS based absolute position was required
This allows using optical flow in all flight modes
2015-10-14 12:01:41 +09:00
Randy Mackay 01c0b20930 Copter: calibrate gyros depending on INS GYR_CAL parameter 2015-09-21 17:06:34 +09:00
Peter Barker 51a761656e Copter: DFMessageWriter; ability to trickle messages out to DF 2015-09-03 15:20:19 +10:00
Andrew Tridgell 64a8e66dd7 Copter: automatically set H_RSC_MIN/MAX from RC8_MIN/MAX on upgrade
this prevents a problem where the disarm throttle will change after
upgrading to 3.4
2015-09-02 10:25:48 +10:00
Randy Mackay 26ded641db Copter: integrate Precision Landing lib 2015-08-31 18:00:28 +09:00
Stewart Loving-Gibbard 7cb494d8e2 Copter: Moving to RSSI library for reading various kinds of RSSI, with the possibility of adding more.
* Retains ability to read from Analog Pin
* Adds ability to read RSSI from PWM channel value as is done in OpenLRSng, EazyUHF, and various other LRS.
* Handles any type of RSSI that provides RSSI values inverted - i.e. when the low value is the best signal and the high value is the worst signal.
* Has different key names from all existing RSSI parameters to provide for a clean break and easier distinguishing.
* Existing parameters are marked as obsolete
2015-08-29 08:05:59 +10:00
Randy Mackay be603da579 Copter: fix optflow position_ok check
We should accept predicted relative horizontal position only when disarmed
2015-08-27 20:57:41 +09:00
squilter 767b4da5b6 Copter: update send text severities 2015-08-25 14:05:25 +09:00
Andrew Tridgell 1fdf7ec83f Copter: added RPM sensor support
send result via MAVLink
2015-08-12 15:03:50 +10:00
Randy Mackay 6765aedb5b Copter: init vehicle capabilities 2015-07-31 14:50:29 +09:00
Randy Mackay 4e3d0ae0c1 Copter: fix startup logging
Removed potentially endless loop caused by start_logging calling
Log_Write_Startup which called should_log which could then call
start_logging.
Moved disarm event logging above motors disarm so it is logged
2015-07-14 14:03:00 +09:00
Robert Lefebvre ef80634435 Copter: auto_armed goes false for Heli when landed and motor shut off. 2015-06-19 15:10:46 +09:00
Randy Mackay f603c1ef69 Copter: fix ekf-check reliance on position_ok 2015-06-15 22:29:20 +09:00
Randy Mackay b2ca7ee3fa Copter: Log_Write_Startup writes parameters 2015-06-01 20:22:48 +09:00
Grant Morphett 518308efae Copter: Moving parameter logging to be after all systems have started 2015-06-01 20:22:38 +09:00
Andrew Tridgell b87cc80486 Copter: fixed some warnings 2015-05-30 22:01:59 +10:00
Andrew Tridgell 278883c521 Copter: finished conversion to .cpp files
Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2015-05-30 15:21:19 +09:00
Andrew Tridgell 356ece3402 Copter: rename .pde files to .cpp files 2015-05-30 15:21:15 +09:00