Commit Graph

226 Commits

Author SHA1 Message Date
Andrew Tridgell 511e8beaed Plane: updates for new GCS_MAVLink API 2014-05-21 12:45:25 +10:00
Andrew Tridgell 69b5f352f6 Plane: prevent a bad glide slope when first entering auto
we need to ensure that prev_WP_loc is not used as it could be
completely different from current_loc. As a precuation, this also sets
up next_WP_loc so that when the set_next_WP() is first called that
prev_WP_loc is set to current_loc
2014-05-18 16:14:11 +10:00
Andrew Tridgell bd09d8551d Plane: use setup_uart() 2014-05-16 11:44:53 +10:00
Andrew Tridgell ccc8a6a6ed Plane: use MIS_AUTORESET when entering AUTO mode 2014-04-29 11:46:06 +10:00
Andrew Tridgell 0de41f0ce1 Plane: set AHRS vehicle class 2014-04-21 18:13:12 +10:00
Andrew Tridgell 1bce4239a3 Plane: added AUTOTUNE flight mode
this is just like FBWA, but with automatic roll/pitch tuning
2014-04-12 14:12:14 +10:00
Andrew Tridgell e19341ca32 Plane: convert to new GPS driver API 2014-04-01 06:38:24 +11:00
Michael Day 25f23cf16c Plane: Sends MAV_SYS_STATUS_GEOFENCE and also allows GCS to enable/disable fence. 2014-03-27 09:26:20 +11:00
Andrew Tridgell e8b9f22b01 Plane: updates for GPS changes 2014-03-24 12:04:31 +11:00
Andrew Tridgell 0d39f354b0 Plane: use new common MAVLink code 2014-03-19 12:13:38 +09:00
Andrew Tridgell 4bf140aeac Plane: make next_WP and prev_WP be locations
having a command ID in them doesn't really make sense

Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2014-03-19 12:12:39 +09:00
Randy Mackay 982ce56d2b Plane: bug fix to set_current_cmd
When set_current_cmd mavlink message is received, resume mission only if
the mission has completed.
Stop mission when vehicle leaves AUTO mode.
2014-03-19 12:12:28 +09:00
Andrew Tridgell 4992e2e2cf Plane: use mission.resume() not mission.start() 2014-03-19 12:12:19 +09:00
Randy Mackay 36a5287de5 Plane: call mission.init during startup 2014-03-19 12:11:49 +09:00
Randy Mackay 9446e9fd2e Plane: integrate AP_Mission library 2014-03-19 12:10:58 +09:00
Andrew Tridgell 65ae9663d4 Plane: set 2nd GPS as secondary 2014-03-08 21:48:12 +11:00
Andrew Tridgell 07826096a2 Plane: support a 2nd GPS 2014-02-26 09:24:23 +11:00
Andrew Tridgell 8a4289b56f Plane: remove unused variables
thanks to Mike McCauley
2014-02-24 18:49:14 +11:00
Andrew Tridgell 33851030a4 Plane: use ahrs.get_armed() 2014-02-19 10:53:26 +11:00
Andrew Tridgell 11337ab2df Plane: updates for AHRS holding home position 2014-02-15 05:29:47 +11:00
Andrew Tridgell 043c80dbe6 Plane: use new board_voltage() method 2014-02-14 21:50:59 +11:00
Andrew Tridgell e42a10a764 Plane: allow printing of GUIDED mode in logs 2014-02-02 14:04:36 +11:00
Andrew Tridgell cdd36b2c41 Plane: use AP_ServoRelayEvents library 2014-01-20 17:06:29 +11:00
Andrew Tridgell d3adf4c32c Plane: enable AP_BoardConfig 2014-01-20 17:06:28 +11:00
Andrew Tridgell cf09fef1db Plane: prevent log corruption when new log started 2014-01-14 14:29:14 +11:00
Andrew Tridgell a15336079e Plane: start logging when first needed 2014-01-14 13:51:49 +11:00
Andrew Tridgell 8755747da0 Plane: only log when armed by default
use safety switch if arming not enabled
2014-01-14 13:07:43 +11:00
Andrew Tridgell 72473e4317 Plane: use AP_HAL available_memory() call 2013-12-28 14:51:37 +11:00
Andrew Tridgell 7ffbed24cc Plane: initialise scheduler callback after logging
this could cause log corruption otherwise
2013-12-28 10:24:46 +11:00
Andrew Tridgell 263f3b116b Plane: added FS_GCS_ENABL==2 option
this allows GCS failsafe when the GCS isn't getting updates from the
aircraft
2013-12-20 11:39:00 +11:00
Andrew Tridgell 8b7fe3cf50 Plane: changes for new DataFlash API 2013-12-17 11:51:36 +11:00
Andrew Tridgell 5a0cb5dea4 Plane: added sonar logging to dataflash 2013-11-28 21:49:27 +11:00
Andrew Tridgell 8383abc1fe Plane: added SERIAL2_BAUD and rename SERIAL3_BAUD to SERIAL1_BAUD 2013-11-26 13:00:03 +11:00
Andrew Tridgell 457183b6f5 Plane: cope with uartD being NULL 2013-11-23 21:44:45 +11:00
Andrew Tridgell 2fa5e6310d Plane: added 3rd telemetry stream on platforms that have it
this generalises the gcs object usage
2013-11-23 19:29:22 +11:00
Andrew Tridgell 7e10811673 Plane: send firmware and git version in tlog 2013-11-09 10:09:20 +11:00
Andrew Tridgell fe3943e686 Plane: faster startup
make it less likely to send wrong INS_PRODUCT_ID, plus don't waste as
much time
2013-11-02 21:41:11 +11:00
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 eef693f243 Plane: removed some compat code
fixes warnings
2013-09-30 21:06:43 +10:00
Andrew Tridgell 444d053dc2 Plane: enable Oilpan and BMP085 on Linux 2013-09-29 01:02:05 +10:00
Andrew Tridgell b28a4f21f2 Plane: fixed uartA baud rates for APM1 2013-09-21 09:30:29 +10:00
Andrew Tridgell 21a4da0d29 Plane: removed flash_leds() calls 2013-09-19 18:38:28 +10:00
Andrew Tridgell 4bd6b2f428 Plane: use new usb_connected() function 2013-09-19 16:23:58 +10:00
Andrew Tridgell fe5a4ab710 Plane: fixed Vcc 2013-09-12 13:26:27 +10:00
Andrew Tridgell f6688582a6 Plane: added FENCE_ACTION=3 behaviour
this makes it safer to enable the geofence as a receiver failsafe
mode. It retains manual throttle control, so if it triggers on the
ground due to the receiver losing signal from the transmitter then the
throttle can be kept low, preventing an unexpected takeoff.
2013-09-08 07:31:10 +10:00
Andrew Tridgell 4a8c9a7765 Plane: support reboot to bootloader 2013-09-04 11:59:16 +10:00
Andrew Tridgell a93f7c39a9 Plane: updates for new notify API 2013-08-30 13:01:35 +10:00
Randy Mackay ad8bd16725 Plane: integrate AP_Notify 2013-08-30 13:01:35 +10:00
Andrew Tridgell accfd46633 Plane: update for new APM_Control API 2013-08-14 14:57:41 +10:00
Andrew Tridgell 74dabad1f3 Plane: added SKIP_GYRO_CAL parameter
useful for starting the sim at high altitudes, and for starting planes
without having to hold them still
2013-07-22 12:50:01 +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 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 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 826ad6c086 Plane: unlock roll and pitch when we enter ACRO mode 2013-07-13 12:34:34 +10:00
Andrew Tridgell f300df5fd1 Plane: added FS_LONG_TIMEOUT and FS_SHORT_TIMEOUT parameters
this is to address the issue raised here:

http://diydrones.com/forum/topics/ardupilot-circle-mode
2013-07-12 11:56:04 +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 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 4a0c90246e Plane: make GPS UART blocking again 2013-06-11 18:50:23 +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 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 515d726ee0 Plane: use RC_Channel::rc_channel() instead of rc_ch[] 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 d9bcfd913a Plane: reset attitude integrators on mode change 2013-06-01 22:29:38 +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 a22f5e3bc4 Plane: enable wind estimation 2013-05-24 11:21:42 +10:00
Andrew Tridgell fdd509a7c1 Plane: move baro init earlier in startup
this ensures it is initialised when CLI takeover by MP happens

Thanks to Prof Avi Levi for reporting this bug
2013-05-06 10:57:57 +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 5ba171af9a Plane: fixed mavlink levelling
this was broken by a recent commit (after 2.72 was released)
2013-05-02 13:38:28 +10:00
Andrew Tridgell a019e3740e Plane: updates for new compass API 2013-05-02 12:48:14 +10:00
Andrew Tridgell de3fcbc413 Plane: removed the MANUAL_LEVEL option
levelling on every startup is far too error prone. This was just
another parameter that everyone changed.
2013-04-29 14:19:53 +10:00
Andrew Tridgell 2e5834cc7f Plane: print flight mode as string in logs 2013-04-20 15:18:10 +10:00
Andrew Tridgell c56f338fe0 Plane: convert to new logging system 2013-04-20 13:52:36 +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 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 dfb14d760b Plane: added HIL_SERVOS option
this allows for real servo output in HIL
2013-03-30 14:38:43 +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 c2055557f5 Plane: add support for GPS fix type 2D 2013-03-27 11:41:51 +09:00
Andrew Tridgell 87c6545ac6 Plane: don't trigger GCS failsafe if GCS never connected
The we have never received a heartbeat message from the GCS then don't
use the lack of heartbeat to trigger a failsafe event
2013-03-09 13:48:39 +11:00
Andrew Tridgell 0a0b51cc63 Plane: reset AHRS trim after a level operation 2013-02-20 11:56:02 +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
Andrew Tridgell 28352b3548 Plane: ensure ahrs.init() is called 2013-01-13 17:32:48 +11:00
Andrew Tridgell 86f667f6cc Plane: added new SERIAL0_BAUD parameter
this is useful on PX4
2013-01-13 07:39:40 +11:00
Andrew Tridgell 9e0096ddb5 Plane: fix handling of sensors HIL startup 2013-01-04 12:34:35 +11:00
Andrew Tridgell b6295c12e1 Plane: fixes for new AP_Relay interface 2013-01-02 10:18:45 +11:00
Andrew Tridgell edad43611d Plane: reset last heartbeat time on startup completion
this gives more time for the GCS to send its first heartbeat
2012-12-26 08:46:36 +11:00
Andrew Tridgell cf8e648558 CLI: fixed accel setup
disable mavlink callback in CLI
2012-12-24 08:51:33 +11:00
Andrew Tridgell d54c6989ab Plane: fixed the last build warnings
we now build with no warnings for APM1, APM2 and SITL. Yay!
2012-12-20 22:46:48 +11:00
Andrew Tridgell feca411943 Plane: added new TRAINING mode
this mode gives manual control when the roll or pitch is within the
set limits (the same limits as FBW mode), and prevents the pilot from
flying beyond those limits, essentially a "attitude limited manual"
mode
2012-12-20 22:41:58 +11:00
Andrew Tridgell 18db7b2efd GPS: move _port setting to init()
this is needed to avoid constructor ordering dependencies
2012-12-20 14:52:32 +11:00
Pat Hickey c441f02426 ArduPlane: init DataFlash obj 2012-12-20 14:51:37 +11:00
Pat Hickey a14621534c ArduPlane: port from hal.dataflash to old DataFlash api 2012-12-20 14:51:36 +11:00
Pat Hickey 92b0c302f2 ArduPlane: Ported to AP_HAL 2012-12-20 14:51:36 +11:00
Andrew Tridgell 1104287aa2 Plane: use enum FlightMode in more places 2012-12-01 08:15:48 +11:00
Andrew Tridgell a6d8dbeac2 Plane: update ArduPlane for new ins interface 2012-11-30 07:15:18 +11:00
Andrew Tridgell a87394fff2 Plane: don't do accel calibration in HIL mode
this should fix the hang on startup
2012-11-25 21:53:37 +11:00
Andrew Tridgell 56e4cbfb1d Plane: allow reboot on APM1, and add reboot to main CLI menu 2012-11-24 18:20:37 +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
Michael Oborne a5e3ce4655 remove cli planner mode - no longer used 2012-11-21 07:45:45 +08:00