Commit Graph

486 Commits

Author SHA1 Message Date
Francisco Ferreira 90a4b36263 Copter: remove pre-arm check for rally points 2016-07-22 09:00:23 +09:00
Francisco Ferreira 25fefe77b7 Copter: add AP_Rally_Copter
override default is_valid method so we can check if rally point is inside the fence, if it isn't we ignore it
2016-07-22 09:00:18 +09:00
Jonathan Challinger e22220ab62 Copter: refactor landing to reduce duplication, use vertical vel ff 2016-07-12 18:40:25 +09: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
Randy Mackay 877a144dea Copter: pre-arm check that rally points are within fence 2016-07-04 18:25:03 +09:00
Jonathan Challinger 91a5b26725 Copter: use simplified precland interface 2016-07-04 16:57:06 +09:00
Randy Mackay 543d5701e7 Copter: remove unused log_write_startup 2016-07-04 11:17:16 +09:00
Daniel Ricketts 87be8daf0e Copter: integrate AC_Avoidance library 2016-06-22 11:38:15 +09:00
Leonard Hall e9d8a28ec0 Copter: AP_Motor's throttle_hover replaces throttle_average 2016-06-18 11:55:49 +09:00
Peter Barker e977d85e0c Copter: move telemetry_delayed up into base class 2016-05-31 08:46:09 +10:00
Peter Barker bb19c57615 Copter: subclass GCS_MAVLink in place of defining its functions for it 2016-05-29 16:21:21 +10:00
Randy Mackay cb9ca94dd1 Copter: remove unused pv_location_to_vector_with_default 2016-05-25 16:19:42 +09:00
Randy Mackay 8171532dc5 Copter: allow rangefinder to be disabled from definition 2016-05-21 10:36:53 +09:00
Randy Mackay e489c3184c Copter: rangefinder.enabled false if no range finders are configured 2016-05-21 10:36:53 +09:00
Randy Mackay 59070653cc Copter: provide filtered range finder altitude to AC_WPNav 2016-05-21 10:36:53 +09:00
Randy Mackay 5ac13c0355 Copter: move rangefinder variables into structure
moved in rangefinder_alt, rangefinder_alt_health and rangefinder_enabled
2016-05-21 10:36:53 +09:00
Randy Mackay 273b9acad8 Copter: prearm check that RTL_ALT is below rangefinder max alt
Only applies where terrain following is enabled and a range finder is connected
2016-05-21 10:36:53 +09:00
Randy Mackay ba38b0234f Copter: use rangefinder class's valid_range_count
Also read_rangefinder directly updates rangefinder_alt variable instead of returning distance
No functional change
2016-05-21 10:36:53 +09:00
Randy Mackay 949d5f7109 Copter: add rangefinder_alt_ok
Reduces some duplicate code,no functional change.
2016-05-21 10:36:53 +09: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
Randy Mackay e0bf08abe0 Copter: fixes to guided mode target check is within fence
guided altitude targets are converted to alt-above-home
remove unnecessary fence_status local variable from guided_set_destination methods
log failures to set guided target under a new failure code: ERROR_CODE_DEST_OUTSIDE_FENCE (5)
rename pv_get_home_destination_distance_mc to pv_distance_to_home_cm
2016-05-21 09:56:12 +09:00
Saloni Jain bc22419286 Copter : Modified set_guided_destination() to reject requests for guided waypoints outside the fence. 2016-05-21 09:56:12 +09:00
Randy Mackay 793e3da904 Copter: rename variables used for NAV_DELAY command 2016-05-19 16:16:03 +09:00
Niti Rohilla 55f66b7696 Copter: Add support for MAV_CMD_NAV_DELAY 2016-05-19 16:16:02 +09:00
Jonathan Challinger c99cac773b Copter: add brake_timeout_to_loiter_ms 2016-05-13 11:42:25 +09:00
Andrew Tridgell 9da3b8db60 Copter: only log baro, gps and mag if ekf not logging them 2016-05-07 18:27:19 +10:00
Andrew Tridgell b235304235 Copter: reduce IMU logging to 25Hz
leave more room for IMT logging needed for Replay
2016-05-07 18:27:17 +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
Michael du Breuil c97888f524 Copter: Remove support for CONDITION_CHANGE_ALT 2016-04-30 10:56:07 +09:00
Randy Mackay 43d14defd4 Copter: RTL handles terrain data failure 2016-04-30 10:33:01 +09:00
Randy Mackay 47658fe964 Copter: add terrain failsafe 2016-04-30 10:33:01 +09:00
Randy Mackay 13c26eab67 Copter: update current_loc at 400hz 2016-04-30 10:33:01 +09:00
Randy Mackay ddffbe27aa Copter: add terrain pre-arm check 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 267c1c3934 Copter: guided mode handles terrain alt 2016-04-30 10:33:01 +09:00
Randy Mackay e8b14e59fc Copter: spline mission commands handle terrain altitudes 2016-04-30 10:33:01 +09:00
Randy Mackay 81d244c9bd Copter: do-circle accept terrain altitude 2016-04-30 10:33:01 +09:00
Randy Mackay 352b6ae82a Copter: RTL supports terrain altitudes 2016-04-30 10:33:01 +09:00
Randy Mackay 06ee6a7bd4 Copter: auto takeoff accepts abs and terrain alts 2016-04-30 10:33:01 +09:00
Randy Mackay 9449776e3c Copter: straight line waypoints accept terrain
auto_wp_start calls AC_WPNav's new set_wp_destination which accepts a
Location class allow altitude to be set as above-terrain or even an
absolute altitude
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
Andrew Tridgell 5149a49daa Copter: added logging of dropped log messages in PM message 2016-04-21 17:05:17 +10:00
Jonathan Challinger 2a36c32cf3 Copter: add prev_control_mode and prev_control_reason 2016-04-14 12:24:04 +09:00
Jonathan Challinger 1356deab8b Copter: add control_mode_reason 2016-04-14 12:24:04 +09:00
Jonathan Challinger a0ce8af633 Copter: use enum type for control_mode 2016-04-14 12:24:04 +09:00
Ricardo de Almeida Gonzaga 5bd034a5a8 Global: start using cmath instead of math.h 2016-04-05 21:06:19 -07:00
Leonard Hall a9cda8b384 Copter: add convert_pid_parameters to ease migration to new PID gains 2016-04-01 11:59:30 +09:00
Randy Mackay d2a42a7a0e Copter: remove heli_radio_passthrough
Replaced with set_radio_passthrough which can be used for all frames
2016-04-01 11:59:30 +09:00
Randy Mackay ce1fb7fb06 Copter: passthrough pilot input to motors to allow wiggling servos 2016-04-01 11:59:30 +09:00
Randy Mackay 3eaf7a4582 Copter: set tradheli rotor speed using 0 to 1 range 2016-04-01 11:59:30 +09:00
Leonard Hall 263052da21 Copter: drift uses 0 to 1 throttle and sets motor spool state 2016-04-01 11:59:30 +09:00
Leonard Hall 74983669be Copter: set_accel_throttle_I_from_pilot_throttle uses 0 to 1 range 2016-04-01 11:59:30 +09:00
Leonard Hall fd2509f6ed Copter: get_pilot_desired_throttle outputs in 0 to 1 range 2016-04-01 11:59:30 +09:00
Andrew Tridgell 31000ac756 Copter: moved Log_Write_Rate() to common code 2016-03-25 12:13:59 +11:00
Lucas De Marchi e88ba38595 ArduCopter: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Randy Mackay dca89e7fe7 Copter: throw static variables moved to global scope 2016-03-03 12:18:27 +09:00
Randy Mackay 24cfbeebd0 Copter: add throw_exit 2016-03-03 12:18:25 +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 6568402b28 Copter: convert to using static send_statustext
- no more MSG_STATUSTEXT
- TODO: replace calls to gcs_send_text and gcs_send_text_fmt to GCS_MAVLINK::send_statustext()
2016-02-24 09:18:06 +11:00
Peter Barker 44c63b8873 Copter: move use of defines after config.h and defines.h 2016-02-19 12:34:23 -02: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 82322144ee Copter: remove unnecessary header file 2016-01-23 09:42:08 +09:00
Randy Mackay 2c5f9422d4 Copter: log event if pilot cancels land
Also add definition for throttle value that cancels land
2016-01-14 15:21:57 +09:00
Jonathan Challinger 8965185587 Copter: add "high throttle cancels landing" option 2016-01-14 15:21:54 +09:00
Jonathan Challinger 5cc969f01b Copter: simplify battery and radio failsafe logic 2016-01-12 18:23:01 +09:00
Randy Mackay 89c147184f Copter: log guided mode targets 2016-01-12 18:04:59 +09:00
Jonathan Challinger dcd16696a2 Copter: refactor RTL to compute full path on initialization 2016-01-07 17:22:31 +09:00
bugobliterator 9a976963aa Copter: support AP_AccelCal 2015-12-29 10:46:34 -08:00
Lucas De Marchi e5e8bf3203 ArduCopter: don't link unused AP_Curve library 2015-12-28 10:23:23 -02:00
Jonathan Challinger 750cacc875 Copter: barometer ground effect compensation 2015-12-28 13:51:27 +09:00
Andrew Tridgell 4dd8714880 Copter: changed to Hz based task table 2015-12-27 14:57:21 +09:00
Jonathan Challinger 933ffb2b10 Copter: move prearm logic to arming_checks.cpp 2015-12-24 14:10:23 +09:00
Julien BERAUD f897356fd9 Copter: Optflow constructor update
AHRS passed as param
2015-12-18 17:56:06 +11:00
Lucas De Marchi 164b9f345c ArduCopter: remove unused AP_ADC_AnalogSource 2015-12-03 13:32:45 +11:00
Tom Pittenger 34d6d985e9 Copter: Add support for ADS-B 2015-11-27 15:02:15 +09:00
Caio Marcelo de Oliveira Filho c7acc46d09 Copter: use millis/micros/panic functions 2015-11-20 12:26:31 +09:00
Randy Mackay 1b29a1af46 Copter: consolidate setting of using-iterlock state 2015-11-17 09:02:31 +09:00
Randy Mackay 731c44d053 Copter: allow terrain to be excluded from build 2015-11-14 12:38:47 +09:00
Robert Lefebvre 5cc4f41d85 Copter: Helicopter: to use new Stab_Col and Acro_Col functions. 2015-11-12 19:37:23 +09:00
Robert Lefebvre 34fb600c4f Copter: Utilize Input Manager Class 2015-11-12 19:37:22 +09:00
lvale 549695181c Copter: revised and uniformization of severity messages 2015-11-05 12:20:49 +09:00
Jonathan Challinger 082c1f77fb Copter: soften takeoff 2015-11-04 20:49:22 +09:00
Lucas De Marchi 5244559010 Minimize AP_Progmem.h includes
Most of AP_Progmem is already gone so we can stop including it in most
of the places. The only places that need it are the ones using
pgm_read_*() APIs.

In some cases the header needed to be added in the .cpp since it was
removed from the .h to reduce scope. In those cases the headers were
also reordered.
2015-10-30 14:35:32 +09: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 84da1f5039 Rename gcs_send_text_P to gcs_send_text 2015-10-30 14:35:07 +09:00
Caio Marcelo de Oliveira Filho bf6d1afd59 ArduCopter: include SITL only for SITL board
Include board-specific files only when the board is used. Since these
should be exceptional cases, let the includer handle the ifdef instead
of putting ifdefs in every platform-specific header.

In the future we should evaluate whether the HAL for the board should
instantiate this.
2015-10-22 13:36:14 -02:00
Caio Marcelo de Oliveira Filho 49a42dc985 SITL: use a SITL namespace 2015-10-22 11:04:42 -02:00
Caio Marcelo de Oliveira Filho 05ae7858e8 Copter: explicitly ask for always using EKF
When instantiating AP_AHRS_NavEKF for ArduCopter, explicitly pass the
flag to always use the EKF.

The motivation is to move vehicle specifc code out of the general
libraries. This patch shouldn't change behavior.
2015-10-21 11:01:11 +11:00
Caio Marcelo de Oliveira Filho 3e3f13659d ArduCopter: implement HAL::Callbacks
Also removes includes for each board since they are not necessary
anymore.
2015-10-21 09:16:09 +11:00
Randy Mackay e20038a453 Copter: support SET_ATTITUDE_TARGET in guided mode 2015-10-09 12:15:38 +09:00
Andrew Tridgell 1c26ed0fca Copter: fixed deadzone handling for external tail gyro
when using an external tail gyro on a flybar heli the stick input
should be directly passed to output. This patch fixes the use of
deadzone in that passthrough.

It also makes the tail handling consistent with roll and pitch
handling, by not using ACRO_YAW_P when in tail pass-through.

Finally it also fixes deadzone handling for roll and pitch, and
removes the unnecessary get_pilot_desired_yaw_rate() that has a
different prototype from the one used in the rest of the code
2015-09-25 12:05:43 +10:00
Randy Mackay cdd4570f02 Copter: fix init order of ekfYawReset_ms 2015-09-24 16:57:50 +09:00
Jonathan Challinger e47175862a Copter: use modified getLastYawResetAngle function 2015-09-24 16:57:44 +09:00
Andrew Tridgell 053194fd51 Copter: added EK2_* parameters and EKF2 instance 2015-09-23 11:56:33 +10:00
Randy Mackay 57c5840f0d Copter: add EKF attitude arming check 2015-09-21 17:06:39 +09:00
Randy Mackay 01c0b20930 Copter: calibrate gyros depending on INS GYR_CAL parameter 2015-09-21 17:06:34 +09:00
Andrew Tridgell d6b244670b Copter: fix for changed AP_RangeFinder API 2015-09-08 16:46:52 +10:00
Leonard Hall 543f6fdcd4 Copter: AltHold limits lean angle to maintain altitude
get_pilot_desired_lean_angles function now takes angle max parameter but
all flight modes except AltHold simply pass in the ANGLE_MAX parameter
meaning no functional change for them
2015-09-07 15:10:12 +09:00
Jonathan Challinger 7d67a00aa3 Copter: add compass_cal update function 2015-09-03 16:59:12 +10:00
Peter Barker 51a761656e Copter: DFMessageWriter; ability to trickle messages out to DF 2015-09-03 15:20:19 +10:00
Randy Mackay f4b152f0e3 Copter: add Precision Landing to GPS land 2015-08-31 18:00:31 +09:00
Randy Mackay 0da38ba2bf Copter: add Precision Landing log message 2015-08-31 18:00:30 +09:00
Randy Mackay 26ded641db Copter: integrate Precision Landing lib 2015-08-31 18:00:28 +09:00
Fredrik Hedberg 66d9d38750 Copter: Use AP_MotorsHeli_Single for HELI_FRAME. 2015-08-31 11:27:32 +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
squilter 767b4da5b6 Copter: update send text severities 2015-08-25 14:05:25 +09:00
Grant Morphett da37769e33 Copter: Added include guards for Copter.h 2015-08-25 13:54:18 +09:00
squilter a11227af84 Copter: define and send FIRMWARE_VERSION 2015-08-21 22:40:52 +09:00
Tom Pittenger 87d0b12c7c Copter: implement try send mission_item_reached
clean up unreachable code
2015-08-19 15:42:07 +10:00
Andrew Tridgell 1fdf7ec83f Copter: added RPM sensor support
send result via MAVLink
2015-08-12 15:03:50 +10:00
Randy Mackay b781f85948 Copter: convert fn from body-frame to NE 2015-08-11 16:41:08 -07:00
Gustavo Jose de Sousa 4d4b856735 ArduCopter: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:28:40 +10:00
Jonathan Challinger a18f71b29e Copter: bug fix to RTL_ALT_MIN feature
commited by Randy
2015-08-08 15:38:47 +09:00
Randy Mackay 6765aedb5b Copter: init vehicle capabilities 2015-07-31 14:50:29 +09:00
squilter edf5ff1bbe Copter: add capability bitmask 2015-07-31 14:50:15 +09:00
Randy Mackay 53aad69fa2 Copter: include AttControl_Multi.h 2015-07-21 16:26:02 +09:00
Robert Lefebvre e3a0f1568d Copter: Tradheli to check rotor speed control input before arming
Also, force rsc_control input to 0 when disarmed.  This prevents condition where AP_MotorsHeli can receive a rotor speed command greater than zero while disarmed, which was causing the ColYaw function to move the rudder servo.  These two changes are somewhat tied together as it required changing the arming_check to check the RSC_Control not desired_speed from AP_MotorsHeli.
2015-07-21 16:25:25 +09:00
Tom Pittenger 0ecebbd55f Copter: Refactor verify_command
- abstracted verify_command so that command-wide actions can happen more cleanly, namely mission_item_reached
- This also brings the structure in line with plane and rover
2015-07-21 14:48:37 +09:00
Randy Mackay c62da52259 Copter: add gcs_send_mission_item_reached 2015-07-19 12:14:12 +09:00
Robert Lefebvre 5541899a99 Copter: Whitespace fixes. 2015-07-14 20:17:16 +09:00
Randy Mackay 764fa36716 Copter: log ERR when compass, baro unhealthy 2015-07-12 22:11:35 +09:00
Randy Mackay 221ddb545e Copter: log ahrs home and ekf origin 2015-07-06 12:11:51 +09:00
Peter Barker 12bce49cd1 Copter: use common mission logging code 2015-06-30 16:23:35 +10:00
Peter Barker 788faf1f7d Copter: DataFlash frontend/backend split 2015-06-26 16:02:50 +10:00
Randy Mackay 814edfa457 Copter: shift yaw target if ekf yaw estimate resets 2015-06-24 11:49:35 +09:00
Randy Mackay 89345bad7a Copter: clarify takeoff_timer_start alt units
No functional change
2015-06-22 13:24:01 +09:00
Randy Mackay 8cdfac8fcd Copter: remove baro and pilot thr from crash checks
Add acceleration < 3m/s/s check
Run crash and parachute checks at 400hz
2015-06-19 15:46:10 +09:00
Robert Lefebvre 62079226ff Copter: add Heli Dataflash message 2015-06-19 15:10:52 +09:00
Leonard Hall fe0d069eab Copter: Autotune log acceleration 2015-06-18 23:06:51 +09:00
Randy Mackay f603c1ef69 Copter: fix ekf-check reliance on position_ok 2015-06-15 22:29:20 +09:00
Randy Mackay a0d97f1160 Copter: acro_level_mix becomes local variable
Coverity uncovered this as an uninitialised member defect
2015-06-08 14:46:24 +09:00
Andrew Tridgell bfb105fa5a Copter: changes for new AHRS API 2015-06-01 16:16:59 +10:00
Andrew Tridgell e5e21ddcce Copter: fixed heli SITL build 2015-06-01 08:19:39 +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