Commit Graph

5575 Commits

Author SHA1 Message Date
Peter Barker
e5056f8d40 Copter: add option to disable SPORT flight mode
Saves about 1,500 bytes
2018-02-27 07:43:13 +09:00
Peter Barker
7154f4dea4 Copter: add option to disable LOITER mode 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
3a61b86e65 Copter: add option to disable POSHOLD mode
Saves about 4k 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
eb9bbddcb7 Copter: add in_guided_mode mode callback 2018-02-27 07:43:13 +09:00
Peter Barker
e66034f183 Copter: allow fence to be disabled while AFS is enabled 2018-02-27 07:43:13 +09:00
Peter Barker
bb9af3b79d Copter: autotune: correct compilation when logging disabled 2018-02-27 07:43:13 +09:00
Peter Barker
9cffa13f7b Copter: correct mav result for compass motor calibration on heli 2018-02-24 00:27:41 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas
b24e5c3991 Copter: Obey MOUNT == DISABLED 2018-02-22 20:58:51 +10:00
Peter Barker
846506230d Copter: remove pointless initialisations
Also reduce storage size of gps primary
2018-02-22 17:51:35 +10:00
Peter Barker
1a68979050 Copter: correct nullptr check for circle nav allocation 2018-02-22 16:14:50 +10:00
Peter Barker
dc5ef168fd Copter: toymode: correct compilation with fence is disabled 2018-02-22 10:26:37 +10:00
Peter Barker
25665c5dd9 Copter: correct definition of unused variable when precision landing disabled 2018-02-22 10:26:37 +10:00
Peter Barker
06da2f50ce Copter: correct compilation when logging is disabled 2018-02-22 10:25:39 +10:00
Andrew Tridgell
8d49e1ac18 Copter: re-added reason to mode change log msg
this was lost in the mode restructuring
2018-02-22 09:07:59 +10:00
Dr.-Ing. Amilcar Do Carmo Lucas
def098bd8a Copter: obey ADSB_ENABLED == DISABLED 2018-02-21 22:11:34 +09:00
Randy Mackay
f0534a35d1 Copter: format change for includes
non-functional change
2018-02-21 21:56:01 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
137de0fea5 Copter: conditionaly include more header files
this should help catch missing macros
2018-02-21 21:55:59 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
381bae1a4a Copter: add missing defines to config.h 2018-02-21 21:55:33 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas
002494c048 Copter: Obey CAMERA == DISABLED 2018-02-21 17:03:28 +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
348a757cc6 Copter: re-enable FLOWHOLD mode on skyviper 2018-02-14 18:27:00 +11:00
Andrew Tridgell
00ec3efb48 Copter: initialise G_Dt to 1.0/400 2018-02-13 17:15:05 +11:00
Peter Barker
730adc3f7c Copter: eliminate perf_update scheduler table shim 2018-02-13 17:15:05 +11:00
Andrew Tridgell
f06fdf330e Copter: use get_last_loop_time_s() for G_Dt 2018-02-13 17:15:05 +11:00
Andrew Tridgell
e0de4bccdf Copter: use filtered loop time 2018-02-13 17:15:05 +11:00
Peter Barker
de56ae56e1 Copter: pass log-performance-bit at init time rather than update time 2018-02-13 17:15:05 +11:00
Peter Barker
bfc373aeff Copter: move logging of PM messages to AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker
375911cd7c Copter: move PERF: statustext sending into AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker
80a3d63264 Copter: use AP_Scheduler's loop() function 2018-02-13 17:15:05 +11:00
Peter Barker
7f69c5d26d Copter: use scheduler ticks in place of mainloop_count 2018-02-13 17:15:05 +11:00
Peter Barker
bf6a2b8bb5 Copter: tell PerfInfo the configured loop rate 2018-02-13 17:15:05 +11:00
Randy Mackay
9eda7f4e31 Copter: global-pos-int uses system time 2018-02-13 08:52:48 +09:00
Peter Barker
e6ece4cf3d Copter: correct use of parent class constructors (heli) 2018-02-13 08:22:30 +09:00
Randy Mackay
0ca653c8dd Copter: disable winch, gripper, sprayer on v2 build 2018-02-12 13:50:55 +09:00
Andrew Tridgell
7938bd08bb Copter: make flowhold mode conditional
reduces build size on px4-v2 by 4k
2018-02-12 13:34:47 +09:00
murata
296ee7315b Copter: minor formatting fixes 2018-02-12 12:17:05 +09:00
murata
c31c2a4cf1 Copter: optionalize the winch 2018-02-12 12:16:57 +09:00
Peter Barker
40d74584ac Copter: remove shims used in scheduler 2018-02-12 11:19:34 +09:00
Peter Barker
8f8917369c Copter: correct use of parent class constructors 2018-02-09 13:41:12 +11:00
Peter Barker
5e55784707 Copter: remove unneeded and unwanted virtual keywords 2018-02-09 09:11:04 +09:00
Randy Mackay
4319e37f0c Copter: non-functional FlowHold changes
class declaration moved to alphabetical position in mode.h
parameter descriptions include FlowHow at beginning to help distinguished from optical flow parameters
resolved compiler warnings
2018-02-09 10:56:32 +11:00
Andrew Tridgell
763aee6b48 Copter: fixed units on flowhold brate rate 2018-02-08 17:36:33 +11: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
9261e1cbde Copter: enable F412 toymode button setup
different button mapping for new controller
2018-02-08 17:36:33 +11:00
Andrew Tridgell
daf35f7a30 Copter: pass loop rate to perf_info 2018-02-08 17:36:33 +11:00
Andrew Tridgell
5a210a697e Copter: fixed flowhold build 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
f442b91ea5 Copter: added FLOWHOLD flight mode
This flight mode allows for position hold with optical flow without
needing a rangefinder for height. It can estimate its height from the
flow data and IMU
2018-02-08 17:36:33 +11:00
Andrew Tridgell
a26d19b57c Copter: fill in flight mode in AP_Notify flags
needed for AP_Radio
2018-02-08 17:36:33 +11:00
Andrew Tridgell
ce0bcf1adc Copter: disable toy_mode by default 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
1f76f69d80 Copter: implement per-motor compass compensation 2018-02-08 17:36:33 +11:00
Andrew Tridgell
662afdc2fd Copter: fixed build warning
double precision promotion
2018-02-07 20:33:45 +11:00
Michael du Breuil
69da4041ac Copter: Move logging battery logging code to AP_BattMonitor 2018-02-06 00:11:32 +00:00
Tatsuya Yamaguchi
6698660fd6 Copter: fix Battery FailSafe action with auto mode 2018-02-05 15:13:25 +09:00
Peter Barker
ab7a9c9073 Copter: use zero_throttle_and_relax_ac in poshold, drift and autotune 2018-02-02 14:59:16 +09:00
murata
c13d6580ae Copter: delete \n from the log using gcs().send_text 2018-02-02 09:38:39 +09:00
Randy Mackay
5a1c3cf5f4 Copter: firmware text to ArduCopter 2018-01-31 12:13:57 +09:00
Randy Mackay
0f6762bbd2 Copter: PSC_ACCZ param name shortened 2018-01-31 08:48:21 +09:00
Randy Mackay
a3e9f72b0b Copter: fix default flight mode channel 2018-01-27 16:20:32 +09: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
Peter Barker
a97301c0f2 Copter: do not allow arming in RTL 2018-01-25 09:53:51 +09:00
Pierre Kancir
10e6fe43dd Copter: Add a switch option to enable/disable RC_Override 2018-01-24 21:37:41 +09:00
Pierre Kancir
cfc69214e6 Copter: add LAND_ALT_LOW parameter 2018-01-24 21:14:35 +09:00
Randy Mackay
60c3ae1ec2 Copter: fix spelling in drift mode variable name
non-functional change
2018-01-24 17:13:15 +09:00
Randy Mackay
f8c1d08316 Copter: 3.5.5-rc1 release note update 2018-01-24 12:09:43 +09:00
Randy Mackay
929dd04f2a Copter: 3.5.5-rc1 release notes 2018-01-24 12:09:39 +09: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
Dylan Herman
20fe5bb98f Copter: add SmartRTL failsafe action
Adds SmartRTL or RTL and SmartRTL or Land failsafe options for batt, throttle, and GCS failsafes
2018-01-22 10:54:28 +09:00
Peter Barker
996115c0d3 Copter: eliminate MAIN_LOOP_SECONDS macro 2018-01-20 15:35:58 +11:00
Michael du Breuil
0ddcb0a6fb Copter: Support AP_BattMonitor_Params 2018-01-17 22:21:55 +00:00
Alexey Bulatov
8accfb97f6 ArduCopter: Check for nullptr for motors class pointer
Because of added initialisation of UAVCAN send_heartbeat function
starts before motors initialisation. So we need check is object created.
2018-01-17 07:24:17 -08:00
Dylan Herman
c772e2d3fd Copter: sets SmartRTL home after AHRS home is set
Now calls AP_SmartRTL::set_home when arming. In addition, it calls it whenever
the ahrs home is set to the current location, whether by GCS or in-flight

Copter: merge
2018-01-17 11:04:46 +09:00
Randy Mackay
e85b1ac740 Copter: pass dt to avoidance calls 2018-01-16 12:13:48 +09:00
Leonard Hall
48d0ad26a6 Copter: mode_land sends dt to sqrt controller 2018-01-16 12:13:48 +09:00
Randy Mackay
b47d575f65 Copter: minor spelling fix
non-functional change
2018-01-12 16:51:25 +09:00
Peter Barker
6bcdab55d0 Copter: rename sys_status methods from geofence_ to sys_status_ 2018-01-09 17:15:19 +00:00
Peter Barker
077b062701 Copter: change pre-arm checks to allow interlock to be enabled
With this change we will continue to tell the user their interlock is
enabled, but we will not fail the pre-arm checks.

This will mean that the blinking-LED indicators will show the vehicle as
armable (flashing green / flashing blue), even if the interlock would
prevent arming.

This has the advantage that you don't need your vehicle in the
"dangerous" state to work out whether arming will work when you attempt
to arm it.

Note that we repeat the interlock switch check in the arming checks, and
it WILL fail if the interlock switch is enabled.
2018-01-09 08:13:06 +09:00
Peter Barker
114628afe4 Copter: use zero_throttle_and_relax_ac in stab, guided, acro and auto 2018-01-08 12:02:49 +00:00
Peter Barker
8d658e1dbc Copter: correct misleading comment in mode_throw 2018-01-08 12:02:49 +00:00
Peter Barker
cb129fbdaf Copter: remove argument to check()
Also, check() was check_fence()
2017-12-28 15:38:37 +00:00
Peter Barker
d1201e4776 Copter: tidy zero_throttle_and_relax (NFC) 2017-12-27 12:09:06 +00:00
Peter Barker
71ad1b5815 Copter: use zero_throttle_and_relax_ac function 2017-12-27 12:09:06 +00:00
Peter Barker
41dc8554c0 Copter: pull out a zero_throttle_and_relax function 2017-12-27 12:09:06 +00:00
Peter Barker
4c7491a05b Copter: mode_auto's landing_gear_deploy method defers to mode_rtl
Since we defer our rtl_run behaviour to the RTL flightmode, it should
also specify the landing gear behaviour
2017-12-27 12:08:15 +00:00
Peter Barker
d9235d3d41 Copter: make landing_gear_should_be_deployed a base-class method 2017-12-27 12:08:15 +00:00
Peter Barker
dda38d65eb Copter: AP_AHRS no longer requires GPS in constructor 2017-12-27 00:58:02 +00:00
Matt
5d6c979f70 COPTER: Fix MOUNT_CONTROL yaw in missions
If a the mount instances (gimbal) does not support yaw/pan control, the
copter needs to yaw in response to a DO_MOUNT_CONTROL command in
missions.  Checking if the mount has pan control, and if not, yawing the
copter was missing from the mission commands logic. As such, a
MOUNT_CONTROL command would control pitch but not yaw/pan.  This patch
impliments checking for pan control, and initiating copter yaw as
required.
2017-12-23 10:57:31 +09:00
Matt
c0f0e3eca3 COPTER: Fix MOUNT_CONTROL yaw in guided
If the mount instance does not support yaw/pan, the copter needs to yaw in
response to MSG_MOUNT_CONTROL and MAV_COMMAND_DO_MOUNT_CONTROL commands from
a GCS or co-computer. There was no checking for mount pan in the GCS_Mavlink
logic.  As such, no yaw takes place when a mount control command calls for it.
This patch impliments copter yaw control for both MSG_MOUNT_CONTROL and
MAV_COMMAND_DO_MOUNT_CONTROL in copter GCS_Mavlink.
2017-12-23 10:57:31 +09:00
Peter Barker
4dcb5aa3de Copter: stop setting home distance in fence 2017-12-15 01:42:49 +00:00
Peter Barker
bf5f51a616 Copter: factor out takeoff_trigger from althold, sport and loiter 2017-12-14 23:45:54 +00:00
Randy Mackay
2c0df87585 Copter: Copter.h method reordering 2017-12-15 08:26:45 +09:00
Peter Barker
6c82f7671d Copter: move all commands logic into AUTO flightmode 2017-12-14 14:08:01 +09:00
Andrew Tridgell
8ab0ac8a16 Copter: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Peter Barker
7222380598 Copter: populate system status bits for fence 2017-12-13 10:04:50 +09:00
Peter Barker
377466ddda Copter: fence no longer requires AP_InertialNav 2017-12-13 10:04:50 +09:00
Peter Barker
d09b0696db Copter: correct checking of heli mode change
init() may have changed all sorts of things about the
vehicle - wp navigation, position controllers, attitude controllers...

Do the heli check before doing any of that so we don't change state and
then fail to change mode
2017-12-13 08:49:01 +09:00
Randy Mackay
7504237fbb Copter: rename flight_mode.cpp to mode.cpp 2017-12-12 20:39:48 +09:00
Randy Mackay
99bafb0df1 Copter: rename heli_control_xx to mode_xx_heli 2017-12-12 10:39:26 +09:00
Randy Mackay
2d23e1f7c7 Copter: rename flightmode_ objects to mode_ 2017-12-12 10:39:26 +09:00
Randy Mackay
c3fbf2671c Copter: rename control_xx.cpp files to mode_xx.cpp 2017-12-12 10:39:26 +09:00
Randy Mackay
06fbe8f3a7 Copter: rename FlightMode class to Mode
also remove unused print_FlightMode method
2017-12-12 10:39:26 +09:00
Randy Mackay
6e9de7e609 Copter: flight_mode formatting changes
non-functional change
2017-12-12 10:39:26 +09:00
Randy Mackay
2e71a641c3 Copter: FlightMode allow_arming format changes
non-functional change
2017-12-12 10:39:26 +09:00
Randy Mackay
0ac708b5a0 Copter: remove ability to disable PosHold flight mode
This flight mode is stable and regularly used so it is unlikely that we ever want to disable it
2017-12-12 10:39:26 +09:00
Randy Mackay
7494eb2e77 Copter: alphabetise flight mode header file 2017-12-12 10:39:26 +09:00
Randy Mackay
a90979ec8e Copter: remove FlightMode_Avoid_ADSB.h file 2017-12-12 10:39:26 +09:00
Randy Mackay
8870897847 Copter: FlightMode objects use lower case 2017-12-12 10:39:26 +09:00
Randy Mackay
20d7216179 Copter: remove comments
non-functional change
2017-12-12 10:39:26 +09:00
Randy Mackay
ac8c2b3f03 Copter: resolve compiler warning from flight-mode declaration 2017-12-12 10:39:26 +09:00
Peter Barker
5d33cf08e1 Copter: eliminate calc_home_distance_and_bearing
Calling update_simple_mode_bearing calls get-heading
rather than the other way around

This will have the advantage of not calculating home bearing
when we stop calling update_simple_mode_bearing unnecesarily
2017-12-09 16:26:09 +09:00
khancyr
b44ba29a05 AC_Avoidance: replace AP_InertialNav by AHRS 2017-12-08 11:27:37 +09:00
Peter Barker
103e2cc711 Copter: calculate wp bearing and distance on demand
Move responsibility for calculating wp bearing/distance
into the FlightMode object doing the navigation

Calculating these variables was being done at 50Hz where they
were used at 10Hz max.
2017-12-07 07:43:08 +09:00
Peter Barker
4ae2be55aa Copter: fix up autotune namespacing
This moves static variables into the autotune flightmode object.

It also adjusts namespacing on everything to take advantage of
having everything encapsulated in the AutoTune object
2017-12-07 07:35:37 +09:00
Peter Barker
7b637334f4 Copter: eliminate mode_has_manual_throttle 2017-12-06 10:09:58 +09:00
Peter Barker
4fd61ed6dc Copter: make exit_mode take FlightMode objects as arguments 2017-12-06 10:09:58 +09:00
Peter Barker
adf4140b9b Copter: fix heli-flags compilation issue 2017-12-06 08:24:24 +09:00
Peter Barker
477ae8f7be Copter: pass heli_flags into flightmode constructor 2017-12-06 08:24:24 +09:00
Peter Barker
83d0a71e10 Copter: FlightMode - simplify flight mode initialization 2017-12-06 08:24:24 +09:00
Peter Barker
0ca5605b8d Copter: FlightMode: remove virtual from many methods 2017-12-06 08:24:24 +09:00
Peter Barker
ef1489e87a Copter: eliminate mode_requires_gps 2017-12-06 08:24:24 +09:00
Peter Barker
a4859e13c1 Copter: eliminate mode_allows_arming 2017-12-06 08:24:24 +09:00
Peter Barker
9c60c1de58 Copter: FlightMode - convert SMARTRTL flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
b0e34bd307 Copter: FlightMode - convert GUIDED_NOGPS flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
cf423ce681 Copter: FlightMode - convert THROW flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
1de99c737e Copter: remove unimplemented heli desired_yaw_rate 2017-12-06 08:24:24 +09:00
Peter Barker
37c706c24e Copter: FlightMode - convert AVOID_ADSB flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
51cd143012 Copter: FlightMode - convert BRAKE flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
cafce01357 Copter: FlightMode - convert POSHOLD flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
67063d6b1e Copter: FlightMode - convert AUTOTUNE flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
018c70d224 Copter: FlightMode - convert FLIP flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
5e3e831152 Copter: FlightMode - convert SPORT flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
6a38664ff4 Copter: FlightMode - convert DRIFT flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
682f3c0e7e Copter: FlightMode - convert RTL flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
3b1ca99b95 Copter: FlightMode - convert LAND flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
2db09ba0f7 Copter: FlightMode - convert GUIDED flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
f2495b2d08 Copter: FlightMode - convert LOITER flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
871ba5630f Copter: FlightMode - convert CIRCLE flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
e2b70c3a0a Copter: FlightMode - convert AUTO flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
a95a35c134 Copter: FlightMode - convert STABILIZE flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
79c06974b7 Copter: FlightMode - convert ALT_HOLD flight mode 2017-12-06 08:24:24 +09:00
Peter Barker
d74f0c72da Copter: FlightMode - convert ACRO flight mode 2017-12-06 08:24:24 +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
Peter Barker
99a22a263d Copter: a FlightMode base class 2017-12-06 08:24:24 +09:00
Peter Barker
e0233f1dc4 Copter: create a takeoff_state_t type 2017-12-06 08:24:24 +09:00
Peter Barker
b828fa4ffc Copter: Create an ap_t type 2017-12-06 08:24:24 +09:00