Commit Graph

242 Commits

Author SHA1 Message Date
Dr.-Ing. Amilcar do Carmo Lucas
d633ba8c46 Copter: Add option to disable RPM module 2018-03-30 09:36:48 +09:00
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