Commit Graph

391 Commits

Author SHA1 Message Date
Peter Barker ba3a369651 Plane: remove update_events scheduler shim 2018-11-27 10:07:13 +11:00
Michael du Breuil 1e220d3d37 Plane: Add support for mode change to QLand as a failsafe 2018-11-24 14:37:04 -08:00
Peter Barker d4e88bc6ba Plane: remove pointless wrappers around RC_Channels functions 2018-11-23 10:56:17 +11:00
Peter Barker 03b71e1123 Plane: remove pointless wrappers around gcs functions 2018-11-23 10:56:17 +11:00
Andrew Tridgell da69bf3391 Plane: added an abstraction for reverse thrust
use have_reverse_thrust() and get_throttle_input()
2018-11-16 08:33:35 +11:00
Peter Barker a5c34f6172 Plane: OpticalFlow takes care of its own logging 2018-11-13 10:40:23 +11:00
Andrew Tridgell 432d786f82 Plane: pass height to landing gear update 2018-11-10 21:24:19 +11:00
Eugene Shamaev 01178a75e9 Plane: added landing gear support 2018-11-09 14:35:14 +11:00
Andrew Tridgell f2b8067023 Plane: pass manual_rc_mask to iocmu mixer 2018-11-07 07:35:45 +11:00
Andrew Tridgell c3d434bc35 Plane: pass mixing gain to iomcu 2018-11-07 07:35:45 +11:00
Andrew Tridgell d5c29fc57e Plane: use IOMCU mixing if available 2018-11-07 07:35:45 +11:00
Peter Barker 901664ce09 Plane: add support for RCn_OPTION (servorelay,camera)
Closes #7071
Closes #7666
2018-09-05 13:44:07 +10:00
Michael du Breuil e4bbcd5ee3 Plane: Don't initilize motors with a trim value 2018-08-23 13:19:08 +10:00
Alexander Malishev 001948d40c Plane: publish navigation info to OSD 2018-08-16 10:26:34 +10:00
Randy Mackay 903d00c4b2 Plane: remove compass accumulate 2018-08-06 11:05:34 +10:00
Andrew Tridgell 1d675390ab Plane: make soaring an optional build feature
this disables soaring on px4-v2, saving 5k of flash

This is needed to consider pr #9042, which takes a lot of flash space
2018-07-30 13:09:15 +10:00
Peter Barker 85f339caae Plane: remove annoying ice_update shim 2018-07-04 21:08:47 +01:00
Peter Barker e404562544 Plane: remove vexing button_update shim 2018-07-04 21:08:47 +01:00
Peter Barker 4502fd21c3 Plane: use compass singleton for logging 2018-07-04 20:11:27 +01:00
Michael du Breuil 1c276e6af7 Plane: Remove unneeded wrapper functions
Also removes unneeded battery failsafe flag clearing
2018-06-27 11:39:35 +10:00
Peter Barker 9824832523 Plane: use AP_RTC
Plane: AP_GPS now sets the system time directly
2018-06-15 08:01:22 +10:00
Peter Barker bc9df01d21 Plane: remove sending of statustext for home location 2018-05-29 14:38:45 +10:00
Peter Barker 22306c370b Plane: factor out a Plane::set_home 2018-05-29 14:38:45 +10:00
Tom Pittenger 4dca1c48f2 Plane: update vehicle max_speed to ADSB library 2018-05-23 14:02:45 -07:00
Michael du Breuil b479f3760a Plane: Remove some unneeded logging indirection
Saves 32 bytes on make px4-v2
2018-05-16 20:34:00 +10:00
Peter Barker eb026e0a5f Plane: correct compilation when logging is disabled 2018-05-10 17:55:13 +09:00
Peter Barker 68497f27fa Plane: move try_send_message handling of RC_CHANNELS up 2018-05-08 12:33:32 +01:00
Peter Barker 5ef417a669 Plane: GPS now logs its own data 2018-04-18 13:50:55 +09:00
Peter Barker 2b54113334 Plane: Baro does its own dataflash logging 2018-04-12 19:12:12 +01:00
Michael du Breuil 3e4288d604 Plane: Use RC_Channels instead of hal.rcin 2018-04-11 21:47:07 +01:00
Michael du Breuil 7405bb7b85 Plane: Support new battery failsafes 2018-03-27 22:12:21 +01:00
Peter Barker 7fd859da65 Plane: move home state into AP_AHRS 2018-03-19 10:32:37 +09:00
Peter Barker 7c86c4fe61 Plane: use ins singleton 2018-03-16 00:37:35 -07:00
night-ghost 98b8a61ca8 Plane: allow AP_Stats to be optional 2018-03-02 07:23:35 +11:00
David Ingraham a6aeebad4b Plane: Add support for AP_Gripper 2018-03-01 14:14:43 +11:00
Andrew Tridgell e6cebdecd1 Plane: use scheduler.get_last_loop_time_s() 2018-02-13 17:15:05 +11:00
Peter Barker 3859e5dfb1 Plane: eliminate update_perf_logging scheduler table shim 2018-02-13 17:15:05 +11:00
Andrew Tridgell 36660b2124 Plane: use filtered loop time 2018-02-13 17:15:05 +11:00
Peter Barker 4586b892f2 Plane: pass log-performance-bit at init time rather than update time 2018-02-13 17:15:05 +11:00
Peter Barker 8cae776448 Plane: move logging of PM and PERF messages to AP_Scheduler 2018-02-13 17:15:05 +11:00
Peter Barker 02540fdbf9 Plane: use AP_Scheduler's loop() function 2018-02-13 17:15:05 +11:00
Peter Barker 73092c3c30 Plane: use scheduler ticks in place of mainloop_count 2018-02-13 17:15:05 +11:00
Peter Barker 519e6c31d2 Plane: use AP::PerfInfo library 2018-02-13 17:15:05 +11:00
Andrew Tridgell 2fb6113098 Plane: use AP:PerfInfo class 2018-02-10 10:50:22 +11:00
Andrew Tridgell d1e11a5bde Plane: fixed build (remove learn_offsets call) 2018-02-08 17:36:33 +11:00
Tom Pittenger 512b327cd4 Plane: failsafe events to use enums instead of magical numbers : Non-functional change 2017-12-07 00:19:32 -08:00
Andrew Tridgell 2a81792b41 Plane: don't disable compass on one bad reading
the compass can go back for a short time and recover

found by Michael
2017-11-28 09:02:24 +11:00
Michael du Breuil 9720fcb8cc Plane: Only update home when not armed, rather then not soft armed
Plane supports being armed, in takeoff logic and not spinning the motor
until the moment the safety button has been pressed. Unfortunately
because the safety button is required to be pressed for soft arming this
results in the plane updating home position while the user moves the
vehicle or is holding it to throw the vehicle which will can result in
several meters of altitude error from where the user expected home to
be.

Because the normal approach to plane is to have activated the safety
button before arming the aircraft this is not expected to be a behaviour
change for most users, but an improvement for people who use the button
to initiate a takeoff.
2017-11-21 11:45:15 +11:00
Michael du Breuil 767018b1d4 Plane: Support unlocking cruise heading with rudder 2017-11-09 09:39:44 +11:00
Tom Pittenger 8029a7f10e
Plane: add Tom Pittenger to developers list
Plane: add Tom Pittenger to developers list. He was added to main Plane.h as "Lead Developer" here *https://github.com/ArduPilot/ardupilot/blob/master/ArduPlane/Plane.h#L2) but never to the main ArduPilot.c file.
2017-11-06 13:46:32 +01:00
Andrew Tridgell 9c8cd6c1cc Plane: added Q_TRANS_DECEL
this gives a deceleration rate for QRTL transition from RTL, and also
for transitions to QLOITER
2017-11-05 20:44:42 +11:00
Michael du Breuil d52f5155f0 Plane: Rename rc failsafe state members 2017-11-02 16:46:08 -07:00
Andrew Tridgell 1085069851 Plane: use WP_LOITER_RAD if RTL_RADIUS is 0 for QRTL 2017-10-30 16:52:19 +11:00
Andrew Tridgell aa430a6e2c Plane: use RTL_RADIUS for QRTL threshold
when Q_RTL_MODE=1 in a quadplane use RTL_RADIUS as the distance to
switch to QRTL mode. We navigate to the destination using direct
waypoint navigation instead of using a loiter circle.
2017-10-30 16:30:38 +11:00
Peter Barker d49be616da Plane: call ins's periodic function 2017-10-27 16:33:45 +11:00
Tom Pittenger 8adacfeea3 Plane: always log MODE and include reason when logging is enabled 2017-10-25 21:18:29 +11:00
Lucas De Marchi 44ffb67837 ArduPlane: use FALLTHROUGH define
When falling through on a case switch, allow to add an empty statement
with the correct attribute to tell the compiler this behavior is
intended.
2017-08-22 23:59:13 -07:00
Peter Barker 1a665280e9 Plane: remove CLI 2017-08-14 10:23:50 +09:00
Peter Barker 2fb46a67dd Plane: camera is responsible for taking distance-based-images and logging 2017-07-28 14:27:53 +01:00
Michael du Breuil f87a69dcf2 Plane: Throttle based landing aborts should ask the landing library
Throttle based aborts should be requesting a go around from AP_Landing.
This was missed in the initial port.
2017-07-17 08:43:50 -07:00
Peter Barker c058fba5ac Plane: eliminate GCS_MAVLINK::send_statustext_all 2017-07-11 23:53:53 +01:00
Peter Barker 3b0a7703c4 Plane: eliminate gcs_send_message wrapper 2017-07-11 23:45:16 +01:00
Peter Barker 5a8f01c19c Plane: use send_text method on the GCS singleton 2017-07-09 17:17:29 -04:00
Peter Barker 949e07c7e3 Plane: use DataFlash should_log to determine raw IMU logging 2017-06-29 15:26:27 +01:00
Mark Whitehorn 6607dafc66 ArduPlane: change is_tailsitter() to tailsitter_active() 2017-06-07 20:21:49 +10:00
Mark Whitehorn 53b82d1d4d ArduPlane: add comments on tailsitter pitch limits 2017-06-07 20:21:49 +10:00
Mark Whitehorn 65755454e0 ArduPlane: set tailsitter VTOL pitch limits using only Q_ANGLE_MAX 2017-06-07 20:21:49 +10:00
Michael du Breuil 92d505598b ArduPlane: Poll AP_Landing for fly forward information 2017-05-15 14:50:29 -07:00
Peter Barker 378015691b Plane: stop appending lf to PERF message 2017-05-01 16:21:55 +01:00
Andrew Tridgell 351304ebcb Plane: don't set fly-forward when transitioning
when quad motors are providing assistance don't see the fly-forward
flag in the AHRS. This will lower the chance of EKF yaw confusion
2017-05-01 14:27:45 +10:00
Andrew Tridgell 954905e0eb Plane: allow battery failsafe with usb connected
some people connect USB to allow connections from a companion
computer. The arming check is sufficient to prevent unwanted battery
failsafes when bench testing
2017-04-28 16:33:49 +10:00
Andrew Tridgell 516bf26719 Plane: fixed QRTL change when coming from loiter
the nav controller can think we have already reached the loiter target
if we were last in a LOITER when we switch to RTL. In that case it
would switch to QRTL immediately

found by Leonard (thanks!)
2017-04-24 16:28:59 +10:00
Eugene Shamaev ca84ab36be Plane: AOA and SSA estimations are added to parameters and data logs 2017-04-19 20:48:42 +10:00
Andrew Tridgell 17ba8b3304 Plane: raise logging rate for PID and servos 2017-04-09 16:45:19 +10:00
Andrey Kolobov 35d406aeab Plane: added a soaring controller to Arduplane 2017-03-14 08:53:10 +11:00
Michael du Breuil 1bb806edb2 Plane: Use new landing interfaces 2017-03-02 12:38:59 +11:00
Andrew Tridgell 3bb25eb194 Plane: added Q_TAILSIT_INPUT
this allows the user to control tailsitters either in body frame (like
a plane) or in earth frame (like a multicopter). This is useful for
people wanting to learn to fly prop-hang on 3D planes
2017-02-26 09:20:13 +11:00
Andrew Tridgell c787f4c56f Plane: initial support for tailsitter transitions 2017-02-18 17:26:43 +11:00
Michael du Breuil 29b16dbafd Plane: Refactor to request relative altitudes from AHRS
Removes the need for plane to do the math for finding the relative height.

Also caches the value at the same time we update current_loc, which is a
non behaviour change as that was the only time you could see a change in
the relative height propegate through the system anyways
2017-02-13 09:23:14 +11:00
Tom Pittenger 1a34221db9 Plane: remove old commented code
- leftover from the AP_Landing stage refactor
2017-01-26 13:45:28 -08:00
Michael du Breuil 4cf1c74c62 AP_Landing + Plane: Check for land complete before requesting disarm 2017-01-26 13:11:44 -08:00
Tom Pittenger 2ccd91d88f AP_Landing: rename stage enum 2017-01-26 13:11:44 -08:00
Tom Pittenger 650e694eb1 Plane: move landing.reset to landing.do_land() 2017-01-26 13:11:44 -08:00
Tom Pittenger 61bc0a6206 Plane: check stage==LAND instead of landing.in_progress 2017-01-26 13:11:44 -08:00
Michael du Breuil 3e66dd10d7 Plane: Move landing stages inside AP_Landing and refactor 2017-01-26 13:11:44 -08:00
Tom Pittenger 6c0296ba13 AP_Landing: shadow copy of plane flight_stage into landing
.. and describe stages without using specific stage name
2017-01-26 13:11:43 -08:00
Randy Mackay fc4741395d Plane: notify initialised after parameters loaded 2017-01-23 15:07:21 -08:00
Andrew Tridgell 081909bf6a Plane: removed use of pwm_to_angle() 2017-01-12 17:39:37 +11:00
Andrew Tridgell b83f50be0f Plane: use new SRV_Channels API 2017-01-12 17:39:37 +11:00
Tom Pittenger 063f517424 Plane, TECS, AP_Landing: rename stage LAND_ABORT to ABORT_LAND
this will reduce confusion when searching for FLIGHT_LAND_* and you get a bunch of takeoff related hits. It will also make more sense when the landing library fully manages the FLIGHT_LAND stage entirely because it will not mange FLIGHT_LAND_ABORT
2016-12-30 23:50:03 -08:00
Tom Pittenger 04f32b6ec6 Plane: simplify flight stage landing check to use landing.in_progress 2016-12-30 23:50:03 -08:00
Tom Pittenger 84e11fd899 Plane, AP_TECS: do not pass auto_land flag to TECS, it already knows it 2016-12-30 23:50:03 -08:00
Tom Pittenger c286ceba43 Plane: move enum FlightStages to AP_Vehicle::FixedWing 2016-12-30 23:50:03 -08:00
Tom Pittenger b7b56b94a3 Plane: convert landing.complete to landing.is_complete() 2016-12-14 04:32:30 -08:00
Tom Pittenger 4b683edac9 Plane: simplified logic where landing complete overrides the calc value 2016-12-14 04:32:30 -08:00
Tom Pittenger 83f0a8114b Plane: use a common reset for uniform landing wipe 2016-12-14 04:32:30 -08:00
Tom Pittenger 8c1509ad47 Plane: abstract land abort request method 2016-12-14 04:32:30 -08:00
Randy Mackay c3b6fd4315 Plane: fix suppressing comment for case fall through
No functional change
eclipse stops complaining if no-break is used in place of fall-through
2016-12-14 13:22:15 +09:00
Tom Pittenger a3ccca17ff Plane: use fabsf instead of fabs 2016-12-06 17:38:47 -08:00
Peter Barker 669dc01b67 Plane: correct on_flight_line landing stage check 2016-12-06 03:24:41 -08:00
Tom Pittenger 9dd46aa03a Plane: post msg if aborting via throttle
fixes https://github.com/ArduPilot/ardupilot/issues/4906
2016-12-02 17:40:01 -08:00
Peter Barker 17f5ef4610 Plane: inform dataflash of vehicle arm state 2016-11-28 09:42:09 -08:00
Tom Pittenger dc85ffa834 Plane: move jump_to_landing_sequence() to AP_Mission 2016-11-25 19:07:30 -08:00
Tom Pittenger ac1dced3bf Plane: set landing params as private and use accessors 2016-11-25 19:07:30 -08:00
Tom Pittenger e919afad1e Plane: update comment and remove redundant work
- update_flight_stage is already called within restart_landing_sequence()
2016-11-25 19:07:30 -08:00
Tom Pittenger fc2f518f31 Plane: revert auto_state.checked_for_autoland back to Plane 2016-11-25 19:07:30 -08:00
Tom Pittenger 9a79b79f1e AP_Landing: port more from plane 2016-11-25 19:07:30 -08:00
Tom Pittenger 5dbb2d4c2a Plane: move two functions out of landing.cpp
- these two functions will be hard to port to AP_Landing due to complex dependancies so we'll defer them by moving them ArduPlane.cpp
2016-11-25 19:07:30 -08:00
Tom Pittenger d2376b7c8b Plane: migrate two helper functions to AP_Landing
- move functions restart_landing_sequence() and jump_to_landing_sequence() to AP_Landing
- NOTE: jump_to function can not set mode, so it is now done externally in vehicle
2016-11-25 19:07:30 -08:00
Tom Pittenger 896b931a7c Plane: Move auto_state variables to AP_landing members 2016-11-25 19:07:30 -08:00
floaledm bae9ce20c1 Plane: update sensor status error flags independently of sending a sys_status message 2016-11-02 08:36:58 +11:00
murata ab99ea54eb Plane: To nullptr from NULL. 2016-10-29 10:32:05 -03:00
Peter Barker 98ae6c776a Plane: support for AP_Stats (flight time, bootcount, runtime) 2016-10-29 14:53:25 +09:00
Andrew Tridgell b65c559558 Plane: updates for EKF API changes 2016-10-27 17:09:06 +11:00
priseborough 72db2ebd81 Plane: Add compensation for optical flow sensor body position offset 2016-10-27 14:54:42 +11: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
Ferrin Benjamin Katz 38581669ec Plane: slow down home update
Moved the code theat updates the home position while the aircraft is
unarmed from 10hz loop to one second loop and ensured that is does not
update more then once every 5 seconds. Closes issue 4311.
2016-10-17 09:50:25 +11:00
murata 2f18d1de73 Plane: To add a judgment of 0 degrees longitude. 2016-10-04 08:15:23 -07:00
Andrew Tridgell 9b83781b4f Plane: fixed mixer arming error with FMUv4
thanks to Tim Gold for reporting this
2016-09-11 08:25:40 +10:00
floaledm 71921f3aa4 Plane: removed frsky_telemetry_send scheduled task 2016-08-25 10:16:17 +10:00
Tom Pittenger b187e1f9a6 Plane: add reason to set_mode() 2016-08-17 22:38:54 -07:00
Tom Pittenger 285e41bac6 Plane: add avoidance_adsb framework for object avoidance 2016-08-17 22:38:54 -07:00
Tom Pittenger ca32bcc58d Plane: add new flight mode AVOID_ADSB to mimic GUIDED 2016-08-17 22:38:54 -07:00
Tom Pittenger c4460a285c Plane: remove adsb sensor library based avoidance
adsb based avoidance has been moved to AP_Avoidance library
2016-08-17 22:38:54 -07:00
Andrew Tridgell adb5a3ee1f Plane: re-work AFS for new AP_AdvancedFailsafe API 2016-08-16 12:55:51 +10:00
Andrew Tridgell 5d6dfd927b Plane: changes for AP_AdvancedFailsafe naming 2016-08-16 12:55:50 +10:00
Tom Pittenger f85fc7c1dc Plane: pass in max airspeed via function call instead of using aparm 2016-08-08 00:02:42 -07:00
Tom Pittenger fc50f145ce Revert "ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter)."
This reverts commit da1b18d918.
2016-08-07 17:54:24 -07:00
AndersonRayner da1b18d918 ArduPlane: Convert references to AP_Airspeed. Added automatic migration of ARSPD_FBW_MIN and ARSPD_FBW_MAX (plane parameter) to ARSPD_FBW_MIN and ARSPD_FBW_MAX (library parameter). 2016-08-04 10:09:04 -07:00
Andrew Tridgell 327a057ee0 Plane: added internal combustion engine support
this allows for automatic engine start and restart
2016-07-25 10:06:03 +10:00
Andrew Tridgell 3f0a8d1761 Plane: added AP_Button support for plane
this also adds the g2 parameter table
2016-07-22 15:01:20 +10:00
Tom Pittenger 3177dc2f31 Plane: ADSB service needs to run at 10Hz for dynamic ADSB data 2016-07-20 22:46:51 -07:00
Tom Pittenger ab38b12f2c Plane: adsb specific status updates 2016-07-20 22:40:14 -07:00
Andrew Tridgell 4da3236c07 Plane: separate out landing height adjustment from barometer changes
this stores a landing height adjustment for an aborted landing
without adjusting barometer readings, applying them only on landing
2016-07-20 22:04:21 -07:00
Andrew Tridgell 1256c2f351 Plane: changed for AP_Vehicle API change 2016-06-24 11:39:23 +10:00
Andrew Tridgell f514e76f52 Plane: reset ground_start_count if we lose 3D fix
thanks to Michael for this suggestion
2016-06-22 21:25:11 +10:00
Andrew Tridgell 40db90cebe Plane: limit roll and pitch to Q_ANGLE_MAX in Q modes
planes often have large LIM_ROLL_CD
2016-06-16 22:00:04 +10:00
Michael du Breuil bb9086b87f Plane: setup mixer in the one second loop when disarmed 2016-06-06 15:17:37 +10:00
Tom Pittenger a80a87eb09 Plane: simplify TECS prep logic by utilizing auto_state.land_in_progress 2016-05-31 09:46:52 -07:00
Tom Pittenger 4db5b80b37 Plane: add flag for auto_state.land_in_progress 2016-05-31 09:46:51 -07:00
Andrew Tridgell be14714fa4 ArduPlane: update signing timestamp on GPS lock 2016-05-21 15:25:13 +10:00
Tom Pittenger 4a6dd5a781 Plane: reset baro drift when setting home while disarmed 2016-05-17 15:32:42 -07:00
Tom Pittenger 78d6291e2c Plane: corrected land abort gcs msg 2016-05-13 17:22:13 -07:00
Tom Pittenger 6c0579a895 Plane: for better helical landings allow for instant approach stage if previous nav cmd was LOITER_TO_ALT 2016-05-13 17:22:07 -07:00
Andrew Tridgell 574ba71ef3 Plane: update for AP_TECS API change 2016-05-14 08:26:10 +10:00
Andrew Tridgell 12e0012b16 Plane: allow for NAV_LOITER_UNLIM and NAV_LOITER_TIME in quadplane 2016-05-11 15:57:41 +10:00
Andrew Tridgell 3fc43b94f9 Plane: separate out auto and guided VTOL states
this prevents a switch to AUTO from using VTOL mode incorrectly
2016-05-11 15:14:43 +10:00
Andrew Tridgell 691d4b6ca7 Plane: added local reached_loiter_target()
this distinguishes between VTOL and fixed wing loiter targets
2016-05-11 05:55:26 +10:00
Andrew Tridgell 6b358a5618 Plane: added Q_GUIDED_MODE parameter
this allows you to do hybrid VTOL and fixed wing guided mode
2016-05-11 05:55:25 +10:00
Andrew Tridgell eab42c5740 Plane: fixed attitude logging with fast logging off 2016-05-11 05:55:24 +10:00
skyscraper 7f29903287 ArduPlane: Fix up after refactoring RC_Channel class
Further to refactor of RC_Channel class which included
adding get_xx set_xx methods, change reads and writes to the public members
to calls to  get and set functionsss

old public member(int16_t)   get function -> int16_t     set function (int16_t)
(expression where c is an object of type RC_Channel)
c.radio_in                     c.get_radio_in()           c.set_radio_in(v)
c.control_in                   c.get_control_in()         c.set_control_in(v)
c.servo_out                    c.get_servo_out()          c.set_servo_out(v)
c.pwm_out                      c.get_pwm_out()            // use existing
c.radio_out                    c.get_radio_out()          c.set_radio_out(v)
c.radio_max                    c.get_radio_max()          c.set_radio_max(v)
c.radio_min                    c.get_radio_min()          c.set_radio_min(v)
c.radio_trim                   c.get_radio_trim()         c.set_radio_trim(v);

c.min_max_configured() // return true if min and max are configured

Because data members of RC_Channels are now private and so cannot be written directly
 some overloads are provided in the Plane classes to provide the old functionality

new overload Plane::stick_mix_channel(RC_Channel *channel)
which forwards to the previously existing
void stick_mix_channel(RC_Channel *channel, int16_t &servo_out);

new overload Plane::channel_output_mixer(Rc_Channel* , RC_Channel*)const
which forwards to
(uint8_t mixing_type, int16_t & chan1, int16_t & chan2)const;

Rename functions

 RC_Channel_aux::set_radio_trim(Aux_servo_function_t function)
    to RC_Channel_aux::set_trim_to_radio_in_for(Aux_servo_function_t function)

 RC_Channel_aux::set_servo_out(Aux_servo_function_t function, int16_t value)
    to RC_Channel_aux::set_servo_out_for(Aux_servo_function_t function, int16_t value)

 Rationale:

        RC_Channel is a complicated class, which combines
        several functionalities dealing with stick inputs
        in pwm and logical units, logical and actual actuator
        outputs, unit conversion etc, etc
        The intent of this PR is to clarify existing use of
        the class. At the basic level it should now be possible
        to grep all places where private variable is set by
        searching for the set_xx function.

        (The wider purpose is to provide a more generic and
        logically simpler method of output mixing. This is a small step)
2016-05-10 16:21:16 +10:00
Andrew Tridgell cbbf26a1f6 Plane: removed Log_Write_IMUDT 2016-05-07 18:27:20 +10:00
Andrew Tridgell 3bbc6353d8 Plane: use have_ekf_logging() 2016-05-07 18:27:20 +10:00
Andrew Tridgell 226e6f1d6c Plane: only save compass offsets when disarmed and learning enabled 2016-04-30 16:43:14 +10:00
Andrew Tridgell abfcf89f5e Plane: reduced the rate of EKF and attitude logging to 25Hz
this will reduce the log file size while not appreciably reducing the
ability to analyse logs
2016-04-30 14:34:47 +10:00
Andrew Tridgell 0fd044c1f7 Plane: added Q_RTL_MODE parameter
used to switch to VTOL landing on RTL
2016-04-30 14:34:47 +10:00
Andrew Tridgell 4666b25258 Plane: initial implementation of QRTL for quadplane RTL 2016-04-30 14:34:47 +10:00
Michael du Breuil 731c68f273 Plane: Change mode to RTL on end of mission rather then staying in auto
Deleted commands_process as it had 2 lines of useful code left, and was cleaner to move the remaining two lines into the caller case
2016-04-29 13:12:18 +10:00
Luis Vale Gonçalves 73ac146b7e Revising ardupilot.com to .org
Revising ardupilot.com to .org
2016-04-23 22:49:37 -07:00
Andrew Tridgell 07168c3db4 Plane: fixed places that assumed mission command IDs are 8 bit 2016-04-23 21:03:46 +10:00
James Stoyell 4e7e84fc99 Plane: Modified last_valid_rc_ms AFS failsafe input to work when standard failsafe is on
Ran into a bug on our physical plane where failsafe.last_valid_rc_ms was not recognizing that the transmitter had failed. This is likely due to how the standard failsafe works in receiving lower-than-possible throttle values. So in order to account for this, I added a new variable to the failsafe, AFS_last_valid_rc_ms, and I update it only if the ch3_failsafe (the throttle failsafe) is not on. If the throttle failsafe is on, that means that the plane has indeed lost transmitter input, so the AFS needs to recognize that.
2016-04-22 11:48:36 -07:00
Tom Pittenger 2ba9a04bf5 Plane: smooth-out the end of takeoff pitch by reducing takeoff pitch min via TKOFF_PLIM_SEC
@Description: This parameter reduces the pitch minimum limit of an auto-takeoff just a few seconds before it reaches the target altitude. This reduces overshoot by allowing the flight controller to start leveling off a few seconds before reaching the target height. When set to zero, the mission pitch min is enforced all the way to and through the target altitude, otherwise the pitch min slowly reduces to zero in the final segment. This is the pitch_min, not the demand. The flight controller should still be commanding to gain altitude to finish the takeoff but with this param it is not forcing it higher than it wants to be. (+1 squashed commits)
2016-04-21 22:54:17 -07:00
Tom Pittenger 183369b92a Plane: take advantage of L1 stale flag and correctly inhibit flight stage if not lined up on approach 2016-04-21 21:30:58 -07:00
Tom Pittenger c5a3b1b134 Plane: non-functional change - change labels for approach flight stage criteria 2016-04-21 21:30:56 -07:00
Tom Pittenger 85913bd237 Plane: rely on flight stage to know if we're doing auto_land in TECS 2016-04-21 21:30:53 -07:00
Tom Pittenger 6a83ad419a Plane: moved update_flight_stage() inside setup_glide_slope()
the glide_slope gets calculated every time there's a major event such as mission item change or wp_proportion change so its good to update the flight stage then too because.
also logging stage when stage changes, might as well get an extra data point in there when it's timely
2016-04-21 21:30:51 -07:00
Michael du Breuil ef348473eb Plane: Remove tecs_hgt_afe from the 50hz tecs update 2016-04-21 17:03:00 +10:00
Michael du Breuil f5749b44cd Plane: Move position update to 50hz loop rather then the 10hz 2016-04-21 16:53:20 +10:00
Andrew Tridgell cf7b6123a9 Plane: log the number of lost log messages 2016-04-21 16:45:02 +10:00
Andrew Tridgell 8683616d8c Plane: redo scheduler table and improve perf logging
The scheduler table was still setup for a worst case CPU of
AVR2560. Adjust times for the stm32 and improve perf logging
2016-04-21 16:45:02 +10:00
Andrew Tridgell a7006a7784 Plane: refactor perf variables into a structure 2016-04-21 16:45:02 +10:00
Andrew Tridgell 97a7192f76 Plane: make it more obvious that AUTO_FBW_STEER is not for normal use 2016-04-06 07:58:23 +10:00
Andrew Tridgell f4ccf94dfc Plane: added QLAND mode
for VTOL landing. Use for failsafe as well
2016-03-09 18:20:41 +11:00
Tom Pittenger 9e452838ab Plane: loiter missions to default to loiter_radius if mission says 0 or 1.
- except loiter_unlim which uses RTL_loiter, although I'm not sure why.
2016-02-29 10:12:20 -08:00
Andrew Tridgell 93ac82e1f6 Plane: write voltage/current much more frequently 2016-02-29 21:24:54 +11:00
Tom Pittenger b8fc524954 Plane: enforce expected flight_stage in TECS 2016-02-25 06:37:24 -08:00
Tom Pittenger a280396645 Plane: nonfunctional change, comment only. Units were in old in comment 2016-02-12 12:14:38 -08:00
Tom Pittenger c837fbca2f Plane: 3/3 new param TECS_LAND_SRC for Land Sink Rate Change
// @Description: When zero, the flare sink rate (TECS_LAND_SINK) is a fixed sink demand. With this enabled the flare sinkrate will increase/decrease the flare sink demand as you get further beyond the LAND waypoint. Has no effect before the waypoint. This value is added to TECS_LAND_SINK proportional to distance traveled after wp. With an increasing sink rate you can still land in a given distance if you're traveling too fast and cruise passed the land point. A positive value will force the plane to land sooner proportional to distance passed land point. A negative number will tell the plane to slowly climb allowing for a pitched-up stall landing. Recommend 0.2 as initial value.
2016-02-12 11:39:27 -08:00
Tom Pittenger 8ac6343730 Plane: removing mission_cmd in TECS and making it bool is_landing
this is reverse-thrust cleanup suggested by Tridge
2016-02-12 11:22:59 -08:00
Tom Pittenger 046741d23b Plane: abort landing at 90% throttle instead of 95% 2016-02-08 21:13:43 -08:00
Tom Pittenger b098466e87 Plane: reduce redundant logging of STAT from 6 Hz to 5 Hz
- STAT log entry was being done every 5 Hz plus at 1 Hz. This removes the 1Hz.
2016-02-08 21:13:12 -08:00
Tom Pittenger 66fcd8f58a Plane: run is_crashed at 5hz instead of 1hz 2016-02-08 21:13:04 -08:00
Tom Pittenger 2e92089ce6 Plane: Reverse Thrust
Reverse thrust for controlled landings, even with much steeper approach slopes. This is achieved by allowing throttle demand to go negative to maintain a target airspeed. A Pre-Flare stage was added, triggered by an altitude, to allow for a slower airspeed just before land. That lower airspeed can be near stall.
new params LAND_PF_ALT, LAND_PF_SEC, LAND_PF_ARSPD, USE_REV_THRUST
2016-02-09 14:18:02 +11:00
Tom Pittenger b8d5369ebd Plane: add flight stage LAND_PREFLARE 2016-02-09 14:18:02 +11:00
Andrew Tridgell d82c8dcd6d ArduPlane: update for changed AP_Camera API 2016-01-29 09:19:44 +11:00
Dario Lindo Andres 9bba55f937 ArduPlane: 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
added support for TRIGGER MSG
2016-01-29 09:19:43 +11:00
Andrew Tridgell 69b2421563 Plane: ensure TECS is updated at 10Hz only 2016-01-20 17:23:36 +11:00
Andrew Tridgell 23eef91c59 Plane: added parameter RTL_RADIUS
this allows the loiter radius for RTL to be controlled separately from
the radius for loiter (as requested by a user)
2016-01-19 15:04:30 +11:00
Andrew Tridgell 418464ab8c Plane: added quadplane version of is_flying() 2016-01-09 07:38:53 +11:00
Andrew Tridgell 5e784ddb5c Plane: consider flying status for throttle_wait 2016-01-09 07:38:53 +11:00
Andrew Tridgell 7afa2a493d Plane: implement VTOL flight stage 2016-01-09 07:38:53 +11:00
Andrew Tridgell 0d6b353bcb Plane: added quad assistance and auto support for quadplane 2016-01-09 07:38:52 +11:00
Andrew Tridgell 2983576067 Plane: added QLOITER mode
quadplane loiter
2016-01-09 07:38:52 +11:00
Andrew Tridgell ca85c332d6 Plane: separate QSTABILIZE and QHOVER modes 2016-01-09 07:38:52 +11:00
Andrew Tridgell 6468fc6d93 Plane: Initial implementation of quadplane
adds "HOVER" mode
2016-01-09 07:38:52 +11:00
Tom Pittenger 0bfe235d6b Plane: use abort landing logic with mavlink GO_AROUND cmd
- also enabled use of CMD_DO_GO_AROUND altitude param
2015-12-31 15:34:41 +11:00
Siddharth Bharat Purohit 78566bda36 Plane: wire up accel calibrator for plane 2015-12-29 10:46:35 -08:00
Andrew Tridgell 58d9b030ea Plane: update for Hz based AP_Scheduler 2015-12-27 14:57:08 +09:00
Andre Kjellstrup 6f5387c48d ArduPlane: Camera options for better camera control
All on one because they would not pass autotest if split up.
2015-12-18 18:16:11 +11:00
Tom Pittenger 4c1a70eb66 Plane: print start of land approach 2015-12-01 07:05:07 +11:00