Commit Graph

46 Commits

Author SHA1 Message Date
Andrew Tridgell 035ac3800a Plane: use G_Dt for acro angle integration
also cleanup some other uses of performance timing
2013-10-12 13:30:27 +11:00
Andrew Tridgell a33573352e Plane: fixes for updated AP_Math and AHRS APIs
Pair-Programmed-With: Brandon Jones <brnjones@gmail.com>
2013-08-05 10:30:04 +10:00
Andrew Tridgell 233b033e8c Plane: removed old speed/altitude control algorithms
Use TECS only. This makes the code a lot simpler and easier to
properly document
2013-07-22 13:28:11 +10:00
Andrew Tridgell 965dc228c2 Plane: fixed GUIDED mode change of altitude down 2013-07-22 12:50:02 +10:00
Andrew Tridgell 608345415b Plane: pass aircraft parameters to attitude controllers
also cope with rename of airspeed min/max variables

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-07-18 14:53:37 +10:00
Andrew Tridgell 113bc20f8a Plane: added a new CRUISE flight mode
See
http://diydrones.com/group/apmusergroup/forum/topics/feature-request-hold-heading-mode

this fixes issue #438
2013-07-13 21:45:58 +10:00
Andrew Tridgell 73928b82a6 Plane: fixed FBWB airspeed control
thanks to Gabor for reporting this!
2013-07-11 11:58:54 +10:00
Andrew Tridgell 7aa360b176 Plane: added relative_altitude helper functions
prevents some code duplication
2013-07-10 14:04:22 +10:00
Andrew Tridgell 1d6748cf3f Plane: use a glide slope in RTL when descending
when above the target altitude in RTL come down slowly, when below
climb rapidly

This fixes issue #39
2013-07-05 14:56:58 +10:00
Andrew Tridgell a5bda3ffef Plane: changed to using a "aircraft parameters" structure
this structure can be passed to libraries to give them easy access to
critical user parameters
2013-07-04 16:56:57 +10:00
Andrew Tridgell 93cd0f9a31 Plane: switch to new AP_Scheduler
this gives us more accurate task scheduling in ArduPlane, plus better
monitoring of task timing (via SCHED_DEBUG)
2013-06-04 13:34:58 +10:00
Andrew Tridgell fb9bf21522 Plane: allow channel mapping of first 4 channels
this makes it easier to support DSM and SBUS radios
2013-06-03 16:23:48 +10:00
Andrew Tridgell 55f7d18979 Plane: avoid copying the DCM matrix 2013-05-05 21:51:09 +10:00
priseborough 3663426550 Plane: Fixed bug in groundspeed_undershoot that could cause a fly-away in windy conditions.
Use the component of velocity in the forward direction rather than the magnitude
2013-05-05 21:51:08 +10:00
Andrew Tridgell 75f4a43e2d Plane: fixed LOITER_TURNS command
and cleanup more loiter variables
2013-04-15 21:31:11 +10:00
Andrew Tridgell 994d8e354a Plane: allow for negative WP_LOITER_RAD for conter-clockwise loiter
this follows the same convention as missions
2013-04-15 10:52:32 +10:00
priseborough 70a186464b Plane: added LEVEL_ROLL_LIMIT parameter
this replaces both TKOFF_HEAD_HOLD and RUDDER_STEER, allowing users to
instead select a roll limit for takeoff and landing
2013-04-12 21:59:52 +10:00
Andrew Tridgell 11eb0cfce1 Plane: update for new AP_Navigation controller class
this switches ArduPlane over to use the L1 navigation controller, via
a generic nav_controller object pointer.

Note that the nav_controller controls all types of navigation now,
including level flight and heading hold. This provides a cleaner
abstraction than the old method of special case navigation handling

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-04-12 12:48:09 +10:00
Andrew Tridgell a165f0d138 Plane: removed old angle wrap code 2013-03-29 13:13:50 +11:00
Randy Mackay c2055557f5 Plane: add support for GPS fix type 2D 2013-03-27 11:41:51 +09:00
Andrew Tridgell 8c0f065ee4 Plane: fixed an integer multiply error that caused poor altitude on landing
the control of altitude between waypoints was broken due to an integer
overflow
2013-02-13 19:32:44 +11:00
Jochen Tuchbreiter c5f19f5df8 Plane: Implement issue 80: counterclockwise loiter
- libraries/AP_Common/AP_Common.h: Use bit 2 of Location.options to store
  loiter direction
- ArduPlane/defines.h: New bitmask MASK_OPTIONS_LOITER_DIRECTION for struct
  Location bit 2
- ArduPlane/ArduPlane.pde: New variable loiter_direction
- ArduPlane/GCS_Mavlink.pde: For mavlink loiter-commands use sign of param3 to
  detemine direction. Set Location.option flag accordingly
- ArduPlane/commands.pde: Make sure loiter-directions get saved into EEPROM
  correctly
- ArduPlane/commands_logic.pde: Set loiter_direction on all loiter-actions
  as well as RTL/instant loiter
- ArduPlane/navigation.pde: Yield loiter_direction in update_loiter
2013-02-05 10:29:31 +11:00
Andrew Tridgell ebb7f27962 Plane: minor signed/type fixups 2013-01-27 13:16:26 +11:00
Randy Mackay d2767b911c AP_Math: switch get_distance_cm to return uint32_t
Includes changes required on ArduCopter and ArduPlane side as well
2013-01-26 17:04:12 +09:00
James Bielman 5631f865b2 Update floating point calculations to use floats instead of doubles.
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Andrew Tridgell cf18534163 Plane: use new functions 2012-12-20 14:53:22 +11:00
Andrew Tridgell 84300c85d6 APM: make it possible to run the CLI on any serial port 2012-11-21 21:41:34 +11:00
Andrew Tridgell 2324997e16 APM: added ALT_OFFSET parameter
useful to adjust for barometric pressure changes during a long flight
2012-09-19 16:23:25 +10:00
Andrew Tridgell 7e672628ea APM: removed the GPS_enabled flag
this fixes using GPS_PROTOCOL to specify a specific GPS with a GPS
that takes a few updates before it works (eg. needing baud rate
changes).

This makes it easier to use an APM1-1280 with more features enabled
2012-09-11 13:37:34 +10:00
Andrew Tridgell 96ea350143 APM: added XTRK_MIN_DIST option
this allows you to disable crosstrack correction on short legs
2012-09-08 10:06:44 +10:00
Andrew Tridgell c9cf483822 APM: added XTRK_USE_WIND parameter
when enabled this will use the wind estimation code to adjust the
navigation bearing, allowing the navigation code to cope with much
higher levels of wind while using a compass
2012-08-25 17:49:26 +10:00
uncrustify 909e39d667 uncrustify ArduPlane/navigation.pde 2012-08-21 18:58:17 -07:00
Andrew Tridgell e26e8b3b67 APM: added RDRSTEER_ PID for steering on ground
this allows for rolling takeoff with steering, and use of rudder in
landing
2012-08-15 12:39:35 +10:00
Andrew Tridgell 92bdc23ab6 APM: minor formatting fix 2012-08-15 12:39:34 +10:00
Andrew Tridgell d9b09d2c93 APM: allow for navigation by dead-reckoning
we now ask AHRS if we have a position estimate, and use that if
available
2012-08-11 12:01:08 +10:00
Andrew Tridgell 5bfd1200d6 APM: change variables to use _cm, _cd and _ms suffix for units
this makes it less likely that we mix up units
2012-08-08 12:12:30 +10:00
Andrew Tridgell d6e370886f APM: rename airspeed_cruise to airspeed_cruise_cm to make the units clearer
it is in cm/s, not m/s
2012-07-19 11:50:41 +10:00
Andrew Tridgell de3c9ce56d Airspeed: change APM to use new AP_Airspeed library
the next step is AHRS dead reckoning
2012-07-16 11:21:50 +10:00
Andrew Tridgell 6ee9f1ae97 APM: use new location functions 2012-07-04 12:42:46 +10:00
Andrew Tridgell 8afd196907 APM: adapt ArduPlane for AHRS framework 2012-03-19 17:29:02 +11:00
Andrew Tridgell 5bda871d60 added comment on using GPS ground course 2011-12-23 11:13:01 +11:00
Doug Weibel 2ef4c79a7c Minimum ground speed patch from Claudio Natoli. Thanks Claudio!
This patch will boost the target airspeed as necessary to keep the ground speed above a parameter value - param_min_groundspeed.  Airspeed is still limited to FBW-max.  Setting min_groundspeed to zero (default) disables the feature.
2011-12-09 16:43:25 -07:00
Michael Oborne 31159a7e1b modify crosstrack calc 2011-11-13 08:25:24 +08:00
Doug Weibel 645b9c1d48 Initial rewrite of command logic.
Changes mission structure so that conditional and immediate commands are located between associated waypoints instead of after the second waypoint.
2011-10-27 13:45:52 -06:00
Andrew Tridgell e61d742345 GCS: make the two GCS links gcs0 and gcs3
the artifical separation between 'gcs' and 'hil' just leads to
confusion. This also simplifies the code a bit more, and saves us a
bit more text
2011-09-19 11:04:02 +10:00
Andrew Tridgell e0dc1271d6 imported ArduPlane from ArduPilotMega svn 2011-09-09 11:29:39 +10:00