Commit Graph

352 Commits

Author SHA1 Message Date
Randy Mackay
ad8bd16725 Plane: integrate AP_Notify 2013-08-30 13:01:35 +10:00
Andrew Tridgell
5cec9b65c9 Plane: constrain calibration to roll/pitch limits 2013-08-30 13:01:34 +10:00
Andrew Tridgell
8dd0aa12ed Plane: prevent GPS speed spikes at startup from breaking airspeed cal
the filter can be affected by a huge GPS velocity spike
2013-08-18 11:42:22 +10:00
Andrew Tridgell
4425b6af7c Plane: update for new TECS API 2013-08-14 14:59:01 +10:00
Andrew Tridgell
accfd46633 Plane: update for new APM_Control API 2013-08-14 14:57:41 +10:00
Andrew Tridgell
8378dc9779 Plane: use reference to AHRS 2013-08-13 13:49:34 +10: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
e22f58c9fc Plane: fixed build with OBC failsafe 2013-08-03 09:18:01 +10:00
Andrew Tridgell
c3b5f20a45 Plane: run TECS 50Hz code when throttle suppressed
this fixes auto-launch detection using TECS
2013-08-02 18:46:48 +10:00
Andrew Tridgell
8428779558 Plane: make it easier to find task numbers 2013-08-02 18:46:42 +10:00
Andrew Tridgell
62cc84aba3 Plane: use new scheduler load_average() function
this also simplifies the main loop
2013-08-02 18:46:28 +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
c0697d0a2d Plane: mark 2.75beta1 2013-07-22 12:50:30 +10:00
Andrew Tridgell
6e288551ab Plane: fixed reversion to pre-failsafe mode
if AUTO was entered using GCS, we need to switch back to the old mode,
not control channel
2013-07-22 12:50:02 +10:00
Andrew Tridgell
c8a83e17d0 Plane: remove old AIR_START code
this was never used or tested
2013-07-22 12:50:01 +10:00
Andrew Tridgell
7673ca0bac Plane: updates for new EAS2TAS scaling 2013-07-22 12:50:01 +10:00
Andrew Tridgell
9bbe6c1967 Plane: update to new license boilerplate for GPLv3
we had LGPLv2 in some places, despite the fw being GPLv3
2013-07-22 12:50:01 +10:00
Andrew Tridgell
882aa68c16 Plane: use new airspeed calibration code
Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-07-22 12:50:01 +10:00
Andrew Tridgell
9b70675b12 Plane: check the control switch a bit more often
faster response to mode changes
2013-07-22 12:50:00 +10:00
Andrew Tridgell
51b9cf3e76 Plane: move failsafe variables into a structure
this makes the logic a bit easier to follow
2013-07-22 12:50:00 +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
a4f49a28fb Plane: prepare for 2.74b release 2013-07-16 09:45:32 +10:00
Andrew Tridgell
e27dd14bcc Plane: fixed FBWB aileron control 2013-07-16 09:44:23 +10:00
Andrew Tridgell
e8355905dd Plane: prepare for 2.74 release 2013-07-15 11:19:38 +10:00
Andrew Tridgell
dbd47b2a30 Plane: make TECS the default speed/height controller 2013-07-15 11:12:24 +10:00
Andrew Tridgell
ec21922233 Plane: make wp_distance static
removed hack in AP_Camera library
2013-07-15 09:56:28 +10:00
Andrew Tridgell
ed20c4cbc8 Plane: fixed initial reporting of battery remaining
we were not showing battery remaining 100% until we used some battery
2013-07-14 21:59:15 +10:00
Andrew Tridgell
d4db2231d4 Plane: change to 2.73beta4 2013-07-13 21:47:22 +10:00
Andrew Tridgell
dc024d425a Plane: re-do roll hanging in ACRO mode
this avoids the euler angle zeros of the previous method by using a
gyro integrator on the roll axis

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-07-13 21:45:58 +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
ea9ae31a7a Plane: fixed a bug with altitude drift in FBWB mode
not taking account of deadzone correctly
2013-07-12 21:17:09 +10:00
Andrew Tridgell
1d04290eab Plane: change to 2.74beta3 2013-07-11 11:58:54 +10:00
Andrew Tridgell
608007361b Plane: added initial implementation of ACRO mode
rate based control with attitude locking
2013-07-11 09:10:41 +10:00
Andrew Tridgell
3c97fad2ec Plane: changes for GPS field changes 2013-07-10 14:04:22 +10:00
Andrew Tridgell
7aa360b176 Plane: added relative_altitude helper functions
prevents some code duplication
2013-07-10 14:04:22 +10:00
Paul Riseborough
971d36f06b Plane: added height to 10Hz TECS call 2013-07-10 14:04:22 +10:00
Andrew Tridgell
f7c8d1e1ee Plane: use current_loc.alt for altitude to TECS 2013-07-10 11:55:35 +10:00
Craig@3DR
7f4336430a Plane: trigger picture + logging on camera update_location() 2013-07-10 08:40:01 +10:00
Paul Riseborough
a4f3180e2a Plane: added support for throttle nudging with TECS 2013-07-09 20:51:03 +10:00
Paul Riseborough
c34803db13 Plane: pass in adjusted height above field to TECS 2013-07-09 09:25:55 +10:00
Andrew Tridgell
9f612f6f78 Plane: only call TECS when throttle is not suppressed
this helps prevent integrator buildup on the ground
2013-07-08 12:07:50 +10:00
Andrew Tridgell
1355b6d89d Plane: break-up scheduling into smaller pieces
ensure mavlink sends don't push us over a scheduling boundary
2013-07-05 18:05:27 +10:00
Andrew Tridgell
d30dd7c3f1 Plane: only run TECS when in an auto-throttle mode
this prevents integrator buildup in user controlled modes
2013-07-05 14:55:22 +10:00
Andrew Tridgell
dd330885b8 Plane: added compass and baro accumulate functions 2013-07-05 12:59:15 +10:00
Andrew Tridgell
6c7d160ee6 Plane: fixed TECS takeoff detection 2013-07-04 16:56:57 +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
Paul Riseborough
d62636d309 Plane: added new TECS altitude controller
Includes improvements to takeoff/launch detect logic to support hand
launching for X-8 flight
2013-07-04 16:56:57 +10:00
Andrew Tridgell
0d3faeda90 Plane: update_mount assumes 50Hz, for camera trigger 2013-06-25 12:44:26 +10:00
Andrew Tridgell
bb47029564 Plane: enable CAM_TRIGG_DIST parameter 2013-06-25 12:44:26 +10:00
Andrew Tridgell
056e0ca40d Plane: APM2 doesn't have channel 9 PWM output 2013-06-24 13:06:54 +10:00
Andrew Tridgell
641ad6bc63 Plane: increase time allowed for update_alt()
the altitude tracking code can be quite expensive with TECS
2013-06-07 08:41:09 +10:00
Andrew Tridgell
b27ffdd087 Plane: new plane beta 2.74beta2 2013-06-04 15:10:11 +10:00
Andrew Tridgell
c008fa764c Plane: update_commands() can take 7ms if it needs to write a waypoint 2013-06-04 13:42:25 +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
02d72ffcba Plane: make it possible to change board orientation at runtime 2013-06-03 16:52:44 +10:00
Andrew Tridgell
4c9bc30f58 Plane: make it possible to change control channel ordering without reboot
this makes configuration a bit easier
2013-06-03 16:42:38 +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
f7697574db Plane: use the new airspeed driver interface
the choice of analog source is now in the airspeed driver
2013-06-03 11:51:09 +10:00
Andrew Tridgell
bb3171ab5f Plane: zero attitude integrators on the ground 2013-06-01 22:29:38 +10:00
Andrew Tridgell
cd55ed45e2 Plane: removed the old roll/pitch/yaw PID controllers
use the new controllers, with auto parameter conversion
2013-05-31 14:06:56 +10:00
Andrew Tridgell
eba7d6da9a Plane: removed the old crash_timer code
This code is less relevent with the new L1 navigation, and could cause
issues with the pilot not having control after a long dive.

Thanks to Soren for pointing out the issues

See issue #305
2013-05-28 11:19:28 +10:00
Andrew Tridgell
dd633fcf3f Plane: make voltage and battery capacity failsafe settable at runtime
this also fixes issue #292
2013-05-22 20:33:57 +10:00
Andrew Tridgell
bd4b7d136f Plane: mark ArduPlane 2.74beta 2013-05-13 17:32:33 +10:00
Andrew Tridgell
001d18b51d Plane: removed scaling of pitot source 2013-05-13 15:19:05 +10:00
Andrew Tridgell
97b6aaac77 Plane: use voltage_average() for RSSI
this fixes it on PX4
2013-05-13 15:19:05 +10:00
priseborough
854c50501d Plane: Added a constraint to demanded bank angle during FBW-A mode to prevent roll limits being exceeded 2013-05-07 11:01:05 +10:00
Andrew Tridgell
0cf49308af Plane: mark a 2.73beta release 2013-05-05 22:36:22 +10:00
Andrew Tridgell
0e6a64fc14 Plane: reset roll/pitch integrators for APM_Control in takeoff
when airspeed is below airspeed minimum. This is consistent with the
previous controllers

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
2013-05-05 22:03:13 +10:00
Andrew Tridgell
4e2b88f6e6 Plane: added ATT_CONTROLLER option to select attitude controller
set to 1 for the new APM_Control library
2013-05-05 21:51:09 +10:00
Andrew Tridgell
3cd52a9689 Plane: fixes for AP_Baro_HIL 2013-05-02 15:09:27 +10:00
Andrew Tridgell
855277fa85 Plane: get ready for 2.72 release 2013-04-28 15:56:30 +10:00
Andrew Tridgell
b53e3bb1fc Plane: log GPS messages as they come in
stops us logging duplicate messages
2013-04-28 14:56:31 +10:00
Andrew Tridgell
0b8c2da4df Plane: support 12 output channels on PX4 2013-04-25 20:10:53 +10:00
Andrew Tridgell
ac7561c5d5 Plane: mark 2.72beta version 2013-04-24 16:19:18 +10:00
Andrew Tridgell
2e5834cc7f Plane: print flight mode as string in logs 2013-04-20 15:18:10 +10:00
Andrew Tridgell
5c553852ed Plane: when logging is disabled don't include DataFlash at all 2013-04-20 13:52:36 +10:00
Andrew Tridgell
0c5b393919 Plane: added compass logging 2013-04-20 13:52:36 +10:00
Andrew Tridgell
c8af70a18d Plane: make the plane code compatible with the new logging system
not actually converted yet
2013-04-20 13:52:36 +10:00
Andrew Tridgell
abe4dba871 Plane: added PX4 flash logging 2013-04-17 21:35:27 +10:00
Andrew Tridgell
42344455c9 Plane: fixed structure init for arduino compiler 2013-04-15 21:59:07 +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
82cd391cf8 Plane: use RADIUS_OF_EARTH define 2013-04-15 14:55:58 +10:00
Andrew Tridgell
8f091e70c8 Plane: move elevon variables into a structure 2013-04-15 14:53:56 +10:00
Andrew Tridgell
79c6f32400 Plane: made variables static and remove initial rc overrides
minor code size savings
2013-04-15 14:46:01 +10:00
Andrew Tridgell
8d2cf6f3e5 Plane: update author list 2013-04-12 22:01:41 +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
575f346e85 Plane: removed HIL_MODE_ATTITUDE
we really need full sensors for HIL with the L1 controller. The flight
is also _much_ better with sensors HIL.
2013-04-12 17:44:40 +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
dcbe144c7e Plane: prepare for release of 2.71 2013-04-06 17:27:21 +11:00
Andrew Tridgell
c5e2cfcc3e Plane: preparing for 2.71-beta 2013-04-02 09:25:24 +11:00
Andrew Tridgell
7db7d7db77 Plane: change FBWB altitude control algorithm
this makes FBWB much less sensitive to airframe tuning. When the
elevator stick first goes neutral it locks in the current altitude as
the target altitude. When the elevator stick is off neutral, it moves
the target altitude in proportion to the elevator, at a rate goverened
by the new FBWB_CLIMB_RATE parameter

This prevents the aircraft from slowly drifting in altitude in FBWB,
and gives a more intuitive control mechanism for altitude.

Thanks to Chris Miser from Falcon UAV for help in designing this
change
2013-03-28 10:27:25 +11:00
Randy Mackay
a49fe272ad Plane: replace gps fix with status
Required to ensure 3d fix is used for initialising home
2013-03-27 11:42:02 +09:00
Andrew Tridgell
f077f54e6a Plane: added TKOFF_HEAD_HOLD option
this allows control over whether ArduPlane tries to hold heading
during auto takeoff. For hand launches it can be better to hold the
wings level and not attempt to hold heading during takeoff to prevent
the possibility of a stall during the climb out.

Thanks to Chris Miser from Falcon UAV for the feedback that led to
this option.
2013-03-27 10:27:14 +11:00
Andrew Tridgell
1d983b3f2e Plane: fixed X accel triggering of auto 2013-03-22 11:53:45 +11:00
Andrew Tridgell
1ebaa14a99 Plane: prepare for 2.70 release 2013-02-21 09:49:15 +11:00
Andrew Tridgell
2f677acf3b Plane: update firmware version to 2.69 2013-02-11 15:02:08 +11:00
Andrew Tridgell
9f70c6c70d Plane: make CIRCLE mode hold altitude
this will prevent us losing a lot of altitude during the initial
failsafe phase
2013-02-11 13:52:25 +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
Andrew Tridgell
3caaa27526 Plane: fixed build errors in logging 2013-01-27 12:58:50 +11:00