Commit Graph

246 Commits

Author SHA1 Message Date
Randy Mackay
38d5148b99 Copter: remove reset_I_all
Each controller should reset the I terms as needed
2014-02-15 05:27:47 +11:00
Randy Mackay
aec67cd3df Copter: integrate control_autotune 2014-02-15 05:27:44 +11:00
Randy Mackay
bca309eb1e Copter: replace takeoff_complete with landed_complete 2014-02-15 05:27:43 +11:00
Randy Mackay
7b9a48107e Copter: move angle_max parameter to AP_Vehicle 2014-02-15 05:27:32 +11:00
Andrew Tridgell
0a3476bbf1 Copter: change to new board_voltage() API 2014-02-14 21:50:59 +11:00
Dneault
4b3699f985 Copter: coax allows ch5 and higher for do_set_servo cmd 2014-02-07 12:36:22 +09:00
Dneault
f48e106271 Copter: add coax heli support
Motors should be attached to RCOutputs 1 and 2, Flaps should be connected
to RC outputs 3 and 4
2014-02-07 12:36:04 +09:00
Randy Mackay
0f957bdc5a Copter: lean angle arming check 2014-01-17 17:31:28 +09:00
Randy Mackay
a7f03619f2 Copter: add inav vs baro arming check
In-flight Barometer sanity checking will be a more complete solution but
until then this should catch some bad pre-flight barometer behaviour
2014-01-17 17:21:42 +09:00
Randy Mackay
8a29d63d89 Copter: faster baro calibration when arming
using update_calibration() instead of the full calibrate() cuts
1.5seconds of the arming time
2014-01-15 23:28:24 +09:00
Randy Mackay
6d55895d30 Copter: simplify do-set-servo mission command
This potentially changes the servo number that must be supplied if using
an APM1 but it now shares the same logic as arduplane and also adds
protection that the servo is not attached to the motor.
removed debug message from previous commit.
2014-01-15 14:36:50 +09:00
Randy Mackay
67c2bc7d0b Copter: add support for MAV_CMD_DO_SET_SERVO 2014-01-15 14:03:04 +09:00
Randy Mackay
84881470b1 Copter: suspend logging while disarmed 2014-01-07 22:43:47 +09:00
Kevin Hester
2044300057 Copter: Split out prearm failures of low HDOP separately from !gps lock
(on the iris list there was some confusion on why the copter was blinking
yellow but yet they had gps lock)
2013-12-26 10:10:06 +09:00
Andrew Tridgell
d265e54043 Copter: changes for compass healthy API 2013-12-09 17:47:22 +11:00
Andrew Tridgell
ffdcb715c3 Copter: updates for compass API change 2013-12-09 17:34:06 +11:00
Randy Mackay
59cea4b88c Copter: remove CopterLED from main code 2013-11-30 18:20:55 +09:00
Andrew Tridgell
a49710f20e Copter: added uartD support
this also brings GCS_Mavlink.pde closer to the plane implementation
2013-11-26 13:05:32 +11:00
Randy Mackay
ed9f369492 Copter: shorten g.arming_check_enabled variable
g.arming_check_enabled shortened to g.arming_check
2013-11-25 17:23:39 +09:00
Randy Mackay
8eb46ced53 Copter: revert pre-arm check for slow GPS 2013-11-22 09:53:21 +09:00
Randy Mackay
0bc505514a Copter: pre-arm check that INAV has no errors 2013-11-21 17:02:07 +09:00
Randy Mackay
7a2f49f7da Copter: arming check for gps if GPS FS set to LAND_EVEN_STABILIZE
Setting the GPS Failsafe to LAND_EVEN_STABILIZE means the copter will
LAND if it loses GPS even if it's in a manual flight mode like
Stabilize.  With this setting it makes sense to check the GPS quality
before arming even if we're in stabilize mode.
2013-11-18 23:59:26 +09:00
Randy Mackay
d003334b75 Copter: pre-arm check for ACRO_BAL_ROLL and PITCH 2013-11-18 16:38:05 +09:00
Randy Mackay
9ee308efd5 Copter: auto disarm in Loiter, AltHold after 15sec 2013-11-18 16:13:15 +09:00
Randy Mackay
46118b59d7 TradHeli: integrate motor lib changes 2013-11-15 22:57:43 +09:00
Randy Mackay
f0f6e85b39 Copter: ARMING_CHECK made into bitmask
Allows arming checks to be individually enabled or disabled for baro,
compass, GPS, INS, parameters, RC and board voltage
2013-11-15 17:13:56 +09:00
Randy Mackay
fe822ba0b6 Copter: pre-arm check of INS health 2013-11-15 17:13:53 +09:00
Jason Short
371dc8c616 Copter: Drift Mode
Changes Toy mode declarations to Drift mode.
Requires GPS, Mode 2 transmitter
Drift mode mixes Roll, Pitch and Yaw into a single stick on mode two transmitters.
2013-11-14 14:43:15 +09:00
Randy Mackay
0778454434 Copter: disarm routine shortcut
Extra check so we only run the disarm check when we are actually armed.
The ground stations sometimes send many disarm messages which can be
ignored
2013-11-14 13:14:51 +09:00
Jason Short
520a535c21 Copter: TOY mode updates 2013-11-02 21:34:48 +09:00
Andrew Tridgell
f6f6caafc8 Copter: int gyros on arm, not on first boot
this makes first boot much faster
2013-11-02 21:41:11 +11:00
Randy Mackay
977983904f Copter: arming check that throttle is above failsafe 2013-11-02 14:06:19 +09:00
Randy Mackay
94f301181e Copter: recalc distance to home during arming
fixes an rare edge case in which the fence could trigger immediately
after arming
2013-11-01 23:54:32 +09:00
Randy Mackay
6b9b5c5617 Copter: pre-arm check speed is less than 50cm/s 2013-10-20 21:56:00 +09:00
Randy Mackay
0cbedded0d Copter: autotune to use 2pos switch only
method of recording state also changed
other code clean-up
pair programmed withe Leonard
2013-10-18 13:57:50 +09:00
Randy Mackay
bf74a64fec Copter: add GPS glitch to arming checks 2013-10-13 14:04:54 +09:00
Randy Mackay
f56617710f Copter: pre-arm RC checks ch3's min and max 2013-10-07 11:17:16 +09:00
Randy Mackay
efc02161c4 Copter: add safe switch arming check 2013-10-05 22:23:53 +09:00
Randy Mackay
ba92c4891a Copter: make AutoTune a compile-time option 2013-10-04 15:50:50 +09:00
Randy Mackay
31cea0140d Copter: Leonard's AutoTuning for Roll and Pitch 2013-10-04 15:50:47 +09:00
Randy Mackay
a53d28e018 Copter: remove support for dmp ahrs 2013-09-27 10:42:49 +09:00
Andrew Tridgell
d9fe0552f0 Copter: allow Vcc checks on Pixhawk 2013-09-12 13:43:06 +10:00
Randy Mackay
a68966e077 Copter: integrate sprayer pump test 2013-09-11 17:05:25 +09:00
Randy Mackay
1d55fa6818 Copter: add arm check of GPS hdop when in Loiter 2013-09-09 14:03:40 +09:00
Randy Mackay
52ef77393c Copter: integrate Toshiba_LED_PX4 2013-08-30 13:01:35 +10:00
Randy Mackay
e985253f1a Copter: integrate notify 2013-08-30 13:01:35 +10:00
Randy Mackay
fe56ac3839 Copter: only allow auto_trim in STABILIZE 2013-08-15 21:11:23 +09:00
Randy Mackay
34e874282e Copter: only check hdop when circular fence enabled 2013-08-15 16:03:57 +09:00
Randy Mackay
d000967a76 Copter: pre-arm check for gps hdop < 2 2013-08-15 13:06:36 +09:00
Randy Mackay
6969ab573d Copter: configurable max lean angle
ANGLE_MAX parameter allows limiting the roll and pitch angles during
manual and auto flight modes to anywhere from 10 to 80 degrees
2013-08-11 12:53:22 +09:00
Randy Mackay
39ab4f62ef Copter: add SPORT mode 2013-08-05 21:04:41 +09:00
Olivier-ADLER
87d062905e Copter: 3 positions switch support for CH7 and CH8 - new 3 positions SIMPLE / SUPERSIMPLE mode
3 positions modes must use mode number >= 100
pre-arm check correction for CH7 - CH8 check
2013-07-29 15:12:10 +09:00
Randy Mackay
c173f0c7d9 Copter: change CH7/CH8 pre-arm check string 2013-07-29 14:32:27 +09:00
Randy Mackay
dbc18ee900 Copter: allow arming in AltHold and Loiter if landed 2013-07-28 18:18:47 +09:00
Olivier-ADLER
bf6120d8b7 Copter: Move CH7 - CH8 check from read_aux_switches() to pre_arm_checks.
Moving this to pre-arm checks save some processing time and is safer.
2013-07-26 09:30:24 +09:00
Randy Mackay
e6412b6996 Copter: do not spin motors during arming process 2013-07-16 12:47:57 +09:00
Jonathan Challinger
9f51a4a4f7 Copter: Cancel arming if throttle input above cruise_throttle. 2013-07-16 12:47:55 +09:00
Jonathan Challinger
2725f219cb Copter: Warn user with motors while copter is arming 2013-07-16 12:47:51 +09:00
Randy Mackay
2b5f6e2668 Copter: pre-arm checks for rc ch 1~4 min and max 2013-07-13 21:38:22 +09:00
Randy Mackay
213472102c Copter: pre-arm check of throttle failsafe value
Check throttle min is above throttle failsafe trigger and that trigger
is above ppm encoder's loss-of-signal value of 900
2013-07-13 20:25:34 +09:00
Randy Mackay
ed3bf2c1e7 Copter: relax pre-arm checks for mag field
previously it was 50% ~ 150% of expected mag field but now expanded to
35% ~ 165%.
2013-07-07 18:00:36 -10:00
Randy Mackay
79d2fe6271 Copter: double flash arming light when pre-arm checks fail
Hardly my finest work but it's temporary because we're going to replace
all the led, buzzer etc with a library called AP_Notify in the near
future.
2013-07-04 16:26:22 -10:00
Dr Gareth Owen
4c6d6ea96e changed yaw reset to when armed to not use initial_simple_bearing 2013-06-02 11:29:30 +09:00
Randy Mackay
e3cd494709 Copter: remove debug message 2013-06-01 18:21:30 +09:00
Randy Mackay
7b50ecc73c Copter: pre-arm check for mag field length 2013-05-31 12:23:19 +09:00
Randy Mackay
a1821c89e7 Copter: pre-arm check for board voltage < 5.8V 2013-05-31 11:31:27 +09:00
Randy Mackay
c6e383be0f Copter: disable board voltage pre-arm check for PX4 2013-05-31 11:27:54 +09:00
Randy Mackay
c3d21a457f Copter: add pre-arm board voltage check
Copter will not arm unless board voltage is over 4.5V
2013-05-28 21:50:31 +09:00
Randy Mackay
6ecd2d74a3 Copter: beep twice during arming 2013-05-27 13:55:34 +09:00
Randy Mackay
ec7ee47099 Copter: scaling stability patch 2013-05-27 11:21:31 +09:00
Randy Mackay
4fa101292a Copter: add baro health to pre-arm checks 2013-05-25 12:24:47 +09:00
Randy Mackay
bd44c2f73d Copter: all pre-arm checks to be disabled
set ARMING_CHECK parameter to zero to disable
2013-05-20 14:48:04 +09:00
Randy Mackay
43c377ca67 Copter: add compass calibration to pre-arm check 2013-05-20 14:19:47 +09:00
Randy Mackay
6efdabb104 Copter: move auto disarm into a separate function 2013-05-20 14:05:50 +09:00
Randy Mackay
1dbe98b566 Copter: display reason for pre-arm-check failures in GCS 2013-05-20 13:03:18 +09:00
Randy Mackay
f4846b417a Copter: compiler fix for disabled logs 2013-05-19 22:55:40 +09:00
Randy Mackay
9d0f40b432 Copter: add pre_arm_rc_check
Motors are not be enabled unless we have passed rc checks which include
checking the radio in calibration has been performed.
2013-05-16 16:32:00 +09:00
Randy Mackay
bd6edecdec Copter: restore logging of arm/disarm event 2013-05-13 18:07:28 +09:00
Randy Mackay
324200b52c Copter: disable centrifugal correction when disarmed 2013-05-06 15:32:08 +09:00
Randy Mackay
372ebb602c Copter: disable centrifugal force correction when disarmed 2013-05-05 16:55:06 +09:00
Randy Mackay
cca05ee8ae Copter: start dataflash logging when arming
Stop nearly empty logs from being produced.
Removed redundant armed bit from ap state.
2013-05-03 14:49:55 +09:00
Randy Mackay
90af3262c5 Copter: pre-arm check for compass 2013-04-27 23:50:40 +09:00
Randy Mackay
58d1da2d80 Copter: integrate AC_Fence in place of limits
Lesser functionality than limits but saves more than 150 bytes and it
works
2013-04-27 11:14:07 +09:00
Randy Mackay
63a48f76e2 Copter: add pre-arm check of radio and accel
Only checks throttle channel and accelerometer scaling
2013-04-23 00:01:20 +09:00
Randy Mackay
d2bd818b2d Copter: bug fix for auto_armed logic
Zero throttle when switching into an auto flight mode would cause the
motors to stop.
2013-04-17 21:28:42 +09:00
Randy Mackay
7cf2255822 Copter LEDs: replace bitRead with bitmask
Consolidate all checks of led_mode to leds.pde
Add #defines for bitmasks comparisons
Some formatting changes
2013-04-01 13:10:12 +09:00
Randy Mackay
38e81adae0 InertialNav: remove unnecessary "virtual" from function definitions
This saves about 30bytes of RAM
2013-03-19 17:51:16 +09:00
Randy Mackay
67c69a19ee Copter: remove baro-only alt hold
Saves 8 bytes of memory and more importantly simplifies the alt hold
calculations
2013-02-24 14:41:29 +09:00
rmackay9
bd0e018ca0 ArduCopter: restore auto-trim method but now use AHRS.add_trim 2013-01-02 09:20:08 +11:00
rmackay9
52802cb29e ArduCopter: limit output throttle to 800 only for TRI which does not have the new stability patch 2013-01-02 09:19:17 +11:00
rmackay9
881dae1e27 ArduCopter: remove throttle limit of 800 for quads, hexas and octacopters
Note: Y6 and OctaQuads still have the 800 limit because they do not have the latest stability patch
2013-01-02 09:13:42 +11:00
rmackay9
6da68c53a5 ArduCopter: bug fix so AP_Limits does not use up memory if it is disabled 2013-01-02 09:13:42 +11:00
Andrew Tridgell
9e986801c9 Copter: fixed SITL for ArduCopter 2012-12-20 14:52:34 +11:00
Pat Hickey
7af03127f6 ArduCopter: more work 2012-12-20 14:52:28 +11:00
rmackay9
072ffec493 ArduCopter: allow INERTIAL_NAV to be enabled separately for horizontal and vertical position 2012-12-06 10:31:41 +09:00
Robert Lefebvre
b32d7c8b63 ACM: TradHeli
Prevent helis from arming while RSC control is switched on.
2012-11-26 19:03:28 -05:00
Robert Lefebvre
637c9a1a72 ACM: TradHeli
Removing this "throttle" output restriction for TradHelis.
2012-11-26 18:44:03 -05:00
Andrew Tridgell
bcae83c4f6 ACM: make it possible to run CLI on radio port in ArduCopter 2012-11-21 21:41:34 +11:00
rmackay9
bcb9519fd7 ArduCopter: renamed system bitmap to ap_system to resolve desktop compile issues 2012-11-11 22:42:10 +09:00
Jason Short
883bb7cfc0 ACM formatting 2012-11-09 22:15:16 -08:00
Jason Short
d2a5928c06 Ap state updates 2012-11-09 22:15:15 -08:00
rmackay9
1f801714e8 ArduCopter: incorporate new version of inertial navigation
Moved several navigation functions from ArduCopter.pde to navigation.pde
2012-11-07 19:21:31 +09:00
rmackay9
a1b4ec6d0e ArduCopter: move to use new INS library instead of IMU library 2012-11-07 19:21:09 +09:00
rmackay9
c0ad98be31 ArduCopter: failsafe added to shutdown motors if mainloop fails 2012-10-09 12:30:17 +09:00
rmackay9
95763e610b ArduCopter: allow DMP to run in parallel with DCM
Parallel DMP can be enabled by #define SECONDARY_DMP_ENABLED in APM_Config.h
New DMP dataflash log type added to allow easy comparison with DCM
2012-09-30 00:25:40 +09:00
uncrustify
7f89e6c677 uncrustify ArduCopter/motors.pde 2012-08-21 19:19:50 -07:00
Andrew Tridgell
1b0f5ac84f ACM: use ahrs.set_fast_gains() on arm/disarm 2012-08-21 15:38:31 +10:00
Jason Short
c81064279a ACM : removed 2-level DCM gain change - .1 will still be the default. 2012-08-18 15:43:34 -07:00
Jason Short
575a9c4fd1 ACM : Fix for reloading the user DCM gains upon arming 2012-08-18 13:17:43 -07:00
Jason Short
522fa58ea5 ACM : temp fix for throttle output limit
I had a bad crash when I lost authority. The logs showed the throttle pegged at 1000 which killed my control. We went round and round on this and somehow settled on no limit. That wasn't a good idea. This should really be hard coded into the Motors Library, but for now I'm just sticking it here.
2012-08-18 09:04:22 -07:00
rmackay9
07c7c3945d ArduCopter: fixed small bug re arming_counter for TOY mode 2012-08-18 13:21:41 +09:00
rmackay9
36f947acb9 ArduCopter: changed all "int" to "int16_t" and a few "long"s to "int32_t".
Also moved "simple_counter" variable from global scope to the "update_simple_mode" function which is the only place that it's actually used.
2012-08-16 20:04:46 +09:00
Jason Short
b27c1ce396 ACM : Added check for second Toy mode 2012-08-11 22:37:26 -07:00
Andrew Tridgell
c2dc920d02 ACM: allow users to set the AHRS_YAW_P and AHRS_RP_P
the forced set left users with parameters they couldn't use
2012-08-11 08:35:10 +10:00
Jason Short
6037fabb5c ACM Motors.pde
Added Toy mode options,
Added DCM kp set to .1(armed) and .8 (disarmed)
2012-08-09 16:59:44 -07:00
Jason Short
8188058404 ACM: Failsafe Fix for Mission planner initiated AUTO mode
Keeps the failsafe from exiting Auto mode when returning from failsafe. Added arming ability for Toy mode.
2012-07-23 19:34:25 -07:00
Jason Short
fbe898a6db Arducopter: motors.pde formatting 2012-07-19 22:35:21 -07:00
Jason Short
98725be0ec Arducopter: INS
removed calibrate accels for now
2012-07-18 22:57:10 -07:00
Andreas M. Antonopoulos
c73f7ef3ab AP_Limits library, provides modular "limits" such as altitude and geo-fencing. 2012-07-14 19:26:17 -07:00
Jason Short
c42f9ece43 Inertial Control
I added inertial navigation based on the simulator data. This is an option only available if you compile with Arduino and set
#define INERTIAL_NAV ENABLED
in the APM_Config.h file.

This has been tested for one real flight and did not crash my quad, but consider it very alpha. The quad may be unpredictable at first until the error correction fixes poorly calibrated accels. Be Careful.

Most of the real work is in the inertia file, but the error correction, new variable defines and calibration calls are sprinkled throughout.

The Log should record RAW messages with special debugging values.
2012-06-13 22:34:45 -07:00
Robert Lefebvre
4e4ff84cf1 Updates to CopterLEDS
Creation of Nav Blink Function.
2012-05-22 09:58:37 -04:00
Robert Lefebvre
c8fb9a6635 More CopterLEDS changes.
Merged CopterLEDS and Piezo functions to eliminate pin conflict on APM2.  Created new Parameter bit to turn piezo function on and off from MP. Moved GPS and Aux pin assignments to allow commonality between APM1 and 2.  Set LED_Mode parameter default to 9 in order to make CopterLEDS completely backwards compatible with old Motor LEDS and Piezo code.  Legacy users should see no difference.
2012-05-15 12:00:21 -04:00
rmackay9
905a445391 ArduCopter - motors.pde - changed references to "motor_armed" to "motors.armed()" because we've moved to using the AP_Motors class.
Simplified set_servos_4 function which was responsible for calling "output_motors_armed" or "output_motors_disarmed" as this determination as to whether the motors are armed or not is handled within the AP_Motors class.
2012-04-04 22:58:42 +09:00
Andrew Tridgell
7634f541b9 ACM: use set_blocking_writes(false) when we arm motors 2012-03-30 17:46:20 +11:00
Jason Short
d1fcebb5ca Cosmetic changes
GPS LED lock waits for home_is_set to be true
2012-01-28 21:19:46 -08:00
Jason Short
f5fd3a0597 reset all I terms at Arming 2012-01-20 22:52:30 -08:00
Jason Short
3ebed0b278 This allows users to test the Auto_throttle hold or cruise value 2012-01-14 11:43:52 -08:00
Pat Hickey
b907c1fd5c ArduCopter: add ch_of_mot lookup to motors.pde 2012-01-09 21:57:02 -08:00
Jason Short
e7b750074b Added takeoff state and ground state variable 2012-01-04 09:28:36 -08:00
Andrew Tridgell
4fe527aefa ACM: use LED_OFF/LED_ON instead of LOW/HIGH 2011-12-26 19:32:53 +11:00
Jason Short
58ad9faf6d initing z dampener at arming 2011-12-23 14:46:08 -08:00
Andrew Tridgell
483bef35e5 IMU: update ACM and APM for flash_leds change in IMU init 2011-12-13 18:19:41 +11:00
Jason Short
307723960d Increased slightly the Auto_trim time 2011-12-10 10:19:20 -08:00
Jason Short
b3bd4bd3c9 Cosmetic cleanup, commented functions for compiler warnings 2011-11-27 22:23:02 -08:00
Andrew Tridgell
a99bcec762 desktop: report motors armed in desktop build too
this helps in autotest
2011-11-25 20:00:19 -08:00
Jason Short
6bf0c32173 Removed some old debug prints from motors.pde
added ability to not increment I term for traversals.
2011-11-07 14:32:39 -08:00
Jason Short
c8304114a3 renamed some command variables to align with Arduplane
reworked the arming code and moved the DCM gains out.
updated climb_rate to include sonar data.
2011-11-04 21:41:51 -07:00
Jason Short
27fc6eea10 Z dampener
Integrated Aurelio R. Ramos' Z dampening code.
2011-11-01 21:18:47 -07:00
Jason Short
dd23883097 Motor arming delays
Speeding up delays for motor arming commands - Level and Inflight leveling.
2011-10-27 11:54:46 -07:00
Jason Short
43b3015963 lowered DCM RP gains
made Instant_PWM optional
upped PWM output to 400hz
2011-10-11 22:20:23 -07:00
Andrew Tridgell
d89ae696ef merged the GCS updates from ArduPlane to ArduCopter
this removes all the non-MAVLink GCS options, and simplifies the HIL
and GCS code a lot. It also adds async sending of low priority GCS
text messages.
2011-10-11 20:53:43 +11:00
Jason Short
ba7abd62d8 Adjusted DCM Gains to normal levels. Added a check to stop navigating when landing and to land faster. 2011-09-23 13:52:10 -07:00
Jason Short
73fd0084be Added Piezo Support, code from Oliver. 2011-09-18 17:12:28 -07:00
Amilcar Lucas
227ce0a92d Merge some small misc improvements from APM_Camera branch 2011-09-17 20:25:31 +02:00
Jason Short
e6b7c57d26 Circle Mode now working
250Hz loop implemented
2011-09-11 11:22:01 -07:00
Andrew Tridgell
1456a2a912 renamed top level directories
ArduCopterMega -> ArduCopter
added archives directory for old code
2011-09-09 11:27:41 +10:00