Commit Graph

300 Commits

Author SHA1 Message Date
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
Randy Mackay
7297a1ff83 Plane: renamed RAW dataflash message to IMU 2013-01-26 17:29:29 +09:00
Randy Mackay
e674626fd6 Plane: rename CUR and CURR to CURRENT for logging
Based on user complaint that log was enabled/disabled using CUR while
message that appeared in log was CURR.
2013-01-26 17:19:42 +09:00
Randy Mackay
6f46f4a7d0 Plane: logging changes to use new faster packet method
also RAW message renamed to IMU
2013-01-26 17:07:21 +09: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
Andrew Tridgell
4d9a74d742 Plane: cleanup driver declaration
remove a lot of the #if nesting
2013-01-21 16:08:55 +11:00
Andrew Tridgell
4deee014d6 Plane: setup PX4 airspeed analog port 2013-01-21 13:56:28 +11:00
Andrew Tridgell
92c9a4c1ce Plane: start update logging for new API 2013-01-13 17:31:42 +11:00
Andrew Tridgell
bea9a9d558 Plane: move memcheck_init() earlier in setup() 2013-01-11 10:25:09 +11:00
James Bielman
ab37f833db MS5611: Fix CONFIG_MS5611_SERIAL definitions.
- Make sure the values are defined as integers.  We were always using
  SPI rather than using I2C when desired.
2013-01-09 11:19:51 -08:00
Andrew Tridgell
38f56be2c4 Plane: enable hardware sensors on PX4 2013-01-04 21:07:56 +11:00
James Bielman
264db3670e AP_Baro: Add CONFIG_MS5611_SERIAL option to choose between SPI and I2C.
- Update ArduCopter and ArduPlane modules to pass the correct serial
  driver to the MS5611 driver.
- Update barometer examples, assuming SPI.
2013-01-03 13:48:06 -08:00
Andrew Tridgell
4cdb3cd390 Plane: use GRAVITY_MSS 2013-01-02 14:45:08 +11:00
Andrew Tridgell
1a49549e3e Plane: start port of main ArduPlane code to AP_HAL_PX4 2013-01-02 14:45:08 +11:00
Andrew Tridgell
b6295c12e1 Plane: fixes for new AP_Relay interface 2013-01-02 10:18:45 +11:00
Craig@3DR
0ed25cf719 Global change all references from
GPS_PROTOCOL_MTK16
to
GPS_PROTOCOL_MTK19
2013-01-02 09:24:31 +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
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
9a2e77b797 Plane: fully disable relay and mount code on APM1-1280
this saves some more flash space
2012-12-20 14:53:23 +11:00
Andrew Tridgell
cf18534163 Plane: use new functions 2012-12-20 14:53:22 +11:00
Andrew Tridgell
62d7fd1a26 Plane: fixed HIL builds 2012-12-20 14:52:37 +11:00
Andrew Tridgell
761ab5c3e8 Plane: use AP_HAL_BOARD_DRIVER 2012-12-20 14:52:33 +11:00
Andrew Tridgell
73f70cc596 Plane: moved to new GPS init syntax 2012-12-20 14:52:32 +11:00
Andrew Tridgell
678947c65d Plane: more fixes for SITL and new AP_Param startup 2012-12-20 14:52:29 +11:00
Andrew Tridgell
e82deca305 Plane: updates to support AP_HAL SITL 2012-12-20 14:51:40 +11:00
Pat Hickey
f8dec9ae4a ArduPlane: fixes to use CONFIG_HAL_BOARD instead of CONFIG_APM_HARDWARE 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
Pat Hickey
a4f1f6a5db AP_Progmem: fix dependencies for all sketches touched by AP_HAL_AVR 2012-12-20 14:51:28 +11:00
Pat Hickey
3f1d9d7f69 AP_Param: #include <AP_Param.h> fixups for libraries & sketches
* I mostly went through with grep and added an #include <AP_Param.h> below
  every #include <AP_Common.h>. Not all of these example sketches might
  strictly need AP_Param.
2012-12-20 14:51:19 +11:00
Andrew Tridgell
e4949291e5 Plane: preparing for 2.68 release 2012-12-04 11:24:24 +11:00
Andrew Tridgell
805a340350 Plane: enable attitude and raw logging in HIL modes 2012-12-04 11:13:33 +11:00
Andrew Tridgell
24e1af1c82 Plane: fixed sensors and attitude HIL
we now use the Stub version of the InertialSensor driver. In sensors
HIL we can now correctly drive the AHRS code.
2012-12-03 23:26:39 +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
f8a95e4084 APM: preparing for 2.67 release 2012-11-21 22:28:30 +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
rmackay9
2df7a407da ArduPlane: fix HIL build 2012-11-07 21:23:07 +09:00
rmackay9
ef727bbb3c ArduPlane: move to use new INS library instead of IMU library 2012-11-07 19:21:03 +09:00
Andrew Tridgell
8652bfee8d APM: added RSSI_PIN option for receiver RSSI
this allows you to configure the pin for receiver RSSI without
recompiling
2012-11-06 22:04:41 +11:00
Andrew Tridgell
aa236c43f8 APM: prepare for 2.66 2012-10-31 13:25:19 +11:00
Pat Hickey
d4bb8a10d7 Update ArduCopter and ArduPlane dependencies on AP_Menu 2012-10-18 20:53:39 -07:00
rmackay9
f695db61ea ArduPlane: added AP_Semaphore.h to list of includes 2012-10-06 13:14:28 +09:00
rmackay9
41fbb19cf5 AP_InertialSensor_MPU6000: replaced _cs_pin parameter with #define and saved 1 byte of memory
Updated ArduCopter, ArduPlane and example sketches in AP_InertialSensor, AP_IMU and AP_AHRS libraries because they no longer need to pass in cs_pin to the constructor
2012-09-28 19:21:59 +09:00
Andrew Tridgell
51aeb2dd4c APM: prepare for 2.65 2012-09-24 07:14:30 +10:00
Andrew Tridgell
a4c3c5973d APM: prepare for 2.64 release 2012-09-23 19:32:56 +10:00
Andrew Tridgell
cebb67e1df APM: removed the unused sonar code
when we start supporting a sonar we'll add a AP_Sonar library, like
AP_Airspeed
2012-09-19 19:35:22 +10: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
37cb56f3e1 APM: save another few bytes 2012-09-18 13:58:50 +10:00
Andrew Tridgell
df962d25a8 APM: fixed a comment 2012-09-18 13:58:49 +10:00
Andrew Tridgell
12dc2e79cf APM: save 100 bytes of memory
remove flight_mode_strings array
2012-09-18 13:58:49 +10:00
Andrew Tridgell
86face0a03 APM: preparing for 2.63 release 2012-09-17 17:32:13 +10:00