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
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
Andrew Tridgell
7e8ef0ae95
APM: fixed handling of DO_REPEAT_SERVO and DO_REPEAT_RELAY
2012-09-17 14:45:47 +10:00
Andrew Tridgell
b55e7903aa
APM: prepare for 2.62 release
2012-09-13 12:02:18 +10:00
Andrew Tridgell
b1408008c9
APM: allow for landing pitch control until final stage
2012-09-12 13:09:16 +10:00
Andrew Tridgell
05e72c6e68
APM: fixed roll in landing approach
2012-09-12 11:53:17 +10:00
Andrew Tridgell
5f3ffe4839
APM: switch to Randys new IMU rate control method
...
this drives the speed of the 50Hz loop by the number of samples
accumulated in the IMU. This should give much more consistent timing
in DCM.
Thanks to Randy for introducing this scheme in ArduCopter!
2012-09-11 16:39:36 +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
cb88681914
APM: added support for MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN
...
this allows for remote reboot of APM
2012-09-10 11:42:30 +10:00
Andrew Tridgell
657dd5969f
APM: preparing for 2.61 release
2012-09-08 18:36:17 +10:00
Andrew Tridgell
dec12c7370
APM: use ahrs.airspeed_estimate() in two more places
...
this applies the wind constraint
2012-09-08 11:37:11 +10:00
Andrew Tridgell
164c60d25f
APM: added RUDDER_STEER option
...
when enabled, this uses only the rudder to steer during takeoff and
landing, using aileron only for levelling
2012-09-08 10:07:03 +10:00
Andrew Tridgell
68705fe7e6
APM: accumulate mag readings during spare cycles in ArduPlane
...
With this change we average over 100 mag readings per compass.read()
call, which means we are reading the compass at over 1kHz instead of
10Hz. The noise reduction is huge.
2012-09-08 10:05:58 +10:00
Andrew Tridgell
83153eebd4
APM: obey pitch limits in FBWA as well
...
this means pitch limits are constrained by LIM_PITCH_MIN and
LIM_PITCH_MAX
2012-08-30 20:15:42 +10:00
Andrew Tridgell
e2b8817a89
APM: added the ability to forcibly crash the plane on OBC failsafe breach
...
this allows a user to setup the OBC failsafe system to forcibly crash
the plane (surfaces at limits, zero throttle) when the failsafe system
triggers. This is to allow APM to be used in the Outback Challenge. In
the OBC an external failsafe board also does this using the heartbeat
control pin, so this is an extra safety mechanism.
To prevent users accidentially triggering a crash, this code only
activates if FS_TERM_ACTION is set to to the magic value 42.
2012-08-28 20:18:24 +10:00
Andrew Tridgell
fce01464b1
APM: added ALT_CTRL_ALG parameter
...
this allows you to select different altitude control algorithms. The
current choices are for the default (automatic based on if airspeed is
available), or to force a non-airspeed algorithm
The idea is to make it possible to use airspeed for some things (like
wind speed, speed scaling) but not for alt control
2012-08-28 20:18:24 +10:00
Andrew Tridgell
dcbd0fbd44
APM: cleanup throttle suppression code and don't use airspeed to unsupress
...
this removes the throttle suppression when any of the conditions are
met once, as otherwise flying slow below 10m could zero the throttle.
It also removes the use of airspeed for disabling throttle
supression. Otherwise a strong gust of wind can cause ArduPlane to
try to takeoff!
2012-08-28 20:18:23 +10:00
Andrew Tridgell
c730d9072e
APM: prepare for ArduPlane 2.60
2012-08-22 16:28:38 +10:00
Andrew Tridgell
2d8f99433c
APM: removed factor of 0.5 in non-airspeed takeoff pitch
...
this limited the pitch far below the specified target pitch
2012-08-22 16:28:38 +10:00
Andrew Tridgell
6ab2a861f7
APM: added RSSI to RC_CHANNELS_RAW as well
...
and prevent double read
2012-08-22 13:58:25 +10:00
Andrew Tridgell
c0c0b8c976
APM: added RECEIVER_RSSI_PIN option
...
this allows for the receiver RSSI to be sent over MAVLink
Thanks to Burt Green for the suggestion
2012-08-22 13:33:12 +10:00
Andrew Tridgell
9e926eae51
APM: optional build with new controller libs
2012-08-22 12:39:07 +10:00
uncrustify
0e8a76ccdd
uncrustify ArduPlane/ArduPlane.pde
2012-08-21 19:19:51 -07:00
Andrew Tridgell
343f7d2de0
APM: removed DMP support from ArduPlane
...
Without centripetal correction the DMP code will almost certainly
crash a plane
2012-08-22 11:46:35 +10:00
Andrew Tridgell
6d11940ada
AHRS: removed Quaternion build support from APM/ACM/rover
2012-08-22 10:42:21 +10:00
rmackay9
6d489947cf
ArduPlane: replaced many "int" with "int16_t", "long" with "int32_t"
2012-08-18 18:26:13 +09:00
Andrew Tridgell
5e690d5680
APM: added parameter FBWB_ELEV_REV
...
this fixes issue 343
2012-08-17 15:04:53 +10:00
Andrew Tridgell
df3c8a5bc0
APM: when land_complete is true, use land_pitch
...
this gives a flare on final landing
2012-08-15 12:39:35 +10:00
Andrew Tridgell
47be6d8ad1
AP_Airspeed: remove airspeed filter and run at 10Hz
...
this saves on the filter memory, and gives just as good a result
2012-08-15 12:39:35 +10:00
Andrew Tridgell
8cb55eb75a
APM: keep the time of the last heartbeat message
...
this will be used for failsafe processing
2012-08-15 12:39:34 +10:00
Andrew Tridgell
2865434d02
APM: added 'OBC' failsafe module for ArduPlane
...
this adds FS_* parameters for setting up APM to follow the outback
challenge failsafe rules.
This includes:
- manual pin
- heartbeat pin
- waypoint for heartbeat failure
- waypoint for GPS failure
2012-08-15 12:39:34 +10:00
Andrew Tridgell
93f1d5645b
APM: fixed LOITER_TIME and LOITER_TURNS
...
These now follow the mavlink spec. Loiter time is in seconds, and
loiter turns is now 32 bit angle, so can handle larger numbers of
turns.
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
Amilcar Lucas
d34549f386
Add an optional second mount to ArduPlane and ArduCopter
2012-08-08 23:22:24 +02:00
Andrew Tridgell
dcc50b5705
AP_Airspeed: removed values passed to constructor
2012-08-08 16:38:39 +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
a823c9ceae
APM: removed cli slider and dipswitch options
...
use mavlink/eeprom for all config
2012-08-08 12:12:29 +10:00
Andrew Tridgell
12cd6b68ff
AP_Param: update ArduPlane core for new AP_Param interface
2012-08-08 12:11:57 +10:00
Amilcar Lucas
f14237126a
Add me :)
2012-08-06 00:40:12 +02:00
Amilcar Lucas
b8c7b8a786
RC_Channel: Allow each channel to know who they are, this simplifies the enabling and output function calls.
2012-08-05 23:08:31 +02:00
Amilcar Lucas
4ba847c449
The mount type must be updated periodically
2012-08-04 18:44:08 +02:00
Andrew Tridgell
301ab00c5b
APM: added control switch debouncer
...
this adds a switch debouncer, similar to the one used in
ArduCopter. I'm adding this after a flight on the weekend where noise
on the control mode channel caused a mode change away from auto.
To prevent this change adding excessive mode switch latency, it also
moves the reading of the control switch to the 10Hz loop, away from
the 3.3Hz loop. That gives us 0.2s delay in mode switch changes and
allows for spikes in the control mode for 0.1 seconds without changing
mode.
2012-08-01 13:59:37 +10:00
rmackay9
06e35820e5
ArduPlane: allow MPU6000's DMP to be used for attitude estimation.
...
Enable by adding this line to APM_Config.h:
#define DMP_ENABLED ENABLED
2012-07-28 19:50:40 +09:00
Andrew Tridgell
9eb05a2e1a
APM: update version for 2.50 release
2012-07-26 11:36:17 +10:00
Andrew Tridgell
7e697e4abd
APM: switch back to old nav_roll calculation
...
the old nav_roll will be used for the 2.50 release to prevent the need
for re-tuning. For the release after that we will use the new
calculation
2012-07-26 10:03:36 +10:00
Michael Oborne
39ad8b5eec
AP fix sitl hil attitude mode.
2012-07-24 07:18:25 +08:00
Jeff Taylor
d02655ac56
APM: Fixed bug where landing_pitch wasnt initialized properly
...
this adds a new LAND_PITCH_CD parameter to control the landing pitch
when an airspeed sensor is not being used
2012-07-19 13:59: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
Amilcar Lucas
610fdeacc1
Support up to 11 servos in APM2
...
Conflicts:
ArduPlane/ArduPlane.pde
2012-07-18 22:01:19 +02: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
c80a88766f
APM: added credit for FBW altitude limit code
...
thanks Yuri!
2012-07-10 08:36:50 +10:00
Andrew Tridgell
f6d7d1bc59
APM: changed PID library to do automatic deltat calculation
...
this fixes a problem with the HDNG2RLL PID, which was using the wrong
time base and prevents similar bugs from happening in the future
2012-07-06 19:59:18 +10:00
Andrew Tridgell
58fd91165f
APM: fixed some build warnings and type errors
2012-07-06 19:59:18 +10:00
Andrew Tridgell
6ee9f1ae97
APM: use new location functions
2012-07-04 12:42:46 +10:00
Andrew Tridgell
99b11e4f19
Mount: enable mount control via eeprom parameters
...
this enables MNT_* parameter control of the camera mount code. It also
fixes the conversion of calculated angles between degrees and
integers, and fixes stabilised mount control when yaw control is not
available.
2012-07-03 10:21:01 +10:00
Andrew Tridgell
55092c25a6
SITL: enable the SIM_* parameters in ArduCopter and ArduPlane
2012-06-29 15:10:52 +10:00
Andrew Tridgell
3a2594fa1a
APM: ArduPlane updates for new compass interface
2012-06-27 16:01:50 +10:00
Andrew Tridgell
6639294c72
APM: update for new barometer interface
...
the barometer can now calibrate and return altitude values.
A 0.3 low pass filter is used on altitude to match the previous code
2012-06-27 16:01:50 +10:00
Andrew Tridgell
4a50686c3e
APM: prepare for 2.40 release
2012-06-16 10:11:26 +10:00
Amilcar Lucas
1906e06b69
Added camera trigger functionality
2012-06-13 21:00:20 +02:00
Amilcar Lucas
a32b7c200b
Add "3 axis camera stabilization" and "point camera to 3D point" functionality
...
Patch by Gregory Fletcher and reviewed by me
2012-06-13 20:55:19 +02:00
Amilcar Lucas
5ffd489d87
Spellcheck
2012-06-13 20:44:35 +02:00
Jason Short
c804860243
Cosmetic changes only.
2012-06-10 13:10:07 -07:00
Andrew Tridgell
99b39aef93
APM: ready for 2.40-beta
2012-06-08 18:03:21 +10:00
Andrew Tridgell
25c17a5425
re-enable the AP_Mount build
2012-06-04 19:32:11 +10:00
Andrew Tridgell
3af29bd84e
AP_Mount: disable AP_Mount until it works with MAVLINK10
2012-06-04 13:14:51 +10:00
Andrew Tridgell
b3aa704c49
AirSpeed: added parameter ARSPD_USE
...
setting ARSPD_ENABLE to 1 and ARSPD_USE to 0 allows the airspeed
sensor to be initialised and logged without it being used for flight
control. This is very useful when initially testing an airspeed sensor
in a new plane. It also makes it possible to enable/disable the use of
the airspeed sensor during a flight at any time.
2012-05-22 20:02:23 +10:00
Andrew Tridgell
3ae1c6f9e0
APM: prepare for 2.34
2012-05-14 14:29:59 +10:00
Andrew Tridgell
f43f5900bc
Telemetry: make it possible to use UART2 on APM2
...
building with TELEMETRY_UART2=ENABLED allows you to use the solder
bridge on the APM2 to enable telemetry on UART2. This allows both USB
telemetry and a radio at the same time.
2012-05-04 10:39:44 +10:00
Andrew Tridgell
b6a475f6a5
MAVLink: make APM build with MAVLink 1.0 possible with arduino GUI
2012-04-24 22:24:58 +10:00
Andrew Tridgell
85ba978a65
ready for 2.33 release
2012-04-09 18:16:49 +10:00
Andrew Tridgell
7b50724f60
MAVLink: allow for find grained stream rate control
...
streams can now be requested at any multiple of 20ms. So if you ask
for a stream at 7Hz then you will get it at close to 7Hz.
2012-04-02 11:18:53 +10:00
Andrew Tridgell
86cc7a5e1d
APM: enable AP_Declination by default
2012-03-30 14:25:27 +11:00
Andrew Tridgell
9d193f06c9
APM: Change version to 2.32
2012-03-29 12:50:12 +11:00
Andrew Tridgell
1c934dc7ef
APM: increase ArduPlane version to 2.31
2012-03-27 16:13:29 +11:00
Andrew Tridgell
989304fb47
APM: enable the new offset nulling in APM
2012-03-27 15:37:24 +11:00
Andrew Tridgell
8afd196907
APM: adapt ArduPlane for AHRS framework
2012-03-19 17:29:02 +11:00
Michael Oborne
3944c1e665
update AP version to 2.30
2012-03-18 10:27:49 +08:00
Andrew Tridgell
2a03a0584f
AP_Declination: disable library when AUTOMATIC_DECLINATION is not ENABLED
...
unfortunately this library was causing avrdude to fail to load the hex
to my APM2. Until we work out why, it's disabled.
2012-03-11 21:46:41 +11:00
Adam M Rivera
d3667faef4
AP_Declination: Added call to compass.set_initial_location if the compass is enabled when the 3D fix is obtained.
...
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Andrew Tridgell
371677610d
APM: avoid fetching the DCM matrix twice
...
also no special case for quaternions
2012-03-10 10:34:32 +11:00
Andrew Tridgell
e39c3cb9d2
APM: make it possible to build ArduPlane with quaternion support
2012-03-10 10:34:29 +11:00
rmackay9
02cf07bb6b
ArduPlane - updated to use new filter library
2012-02-28 21:03:04 +09:00
rmackay9
e1114bf7f7
ArduPlane - added Filter.h to unbreak the build!
2012-02-26 17:05:56 +09:00
rmackay9
21d7a77009
ArduPlane - switch sonar to use new mode filter from filter library
2012-02-26 15:35:42 +09:00
Andrew Tridgell
0248b48d30
allow MAG_ENABLE to be changed in flight
...
this disables the compass in DCM if MAG_ENABLE is changed in
flight. Without this we would use a fixed yaw once the compass is
disabled
This also makes sure we don't pass the compass to DCM till we have
done a read. This ensures we have a good compass fix for the initial
DCM heading
2012-02-25 14:51:09 +11:00
Andrew Tridgell
330ff5dc8b
APM: added some comments related to hold_course
...
hold_course is either -1 (for disabled) or a course to hold for
takeoff/landing. This makes the code a bit clearer.
It also resets hold_course in all non-auto modes, to ensure it isn't
used
2012-02-15 08:50:45 +11:00
Andrew Tridgell
bc0ed62aa9
adapt mainline APM code to AP_Param
2012-02-13 16:22:51 +11:00
Michael Oborne
9ca6668c1b
fix SITL attitude hil
2012-01-20 16:04:49 +08:00
analoguedevices
418f5ea31e
Increment version number in anticipation of a firmware hex push.
2012-01-16 22:48:46 +00:00
Doug Weibel
797e0e27a9
Additional commenting on global variables
...
First pass done.
2012-01-16 10:28:03 -07:00
Doug Weibel
b4e58b50ee
Additional commenting on global variables
2012-01-16 09:45:42 -07:00
Doug Weibel
0306bf97a0
Just a little more commenting work on global variables
2012-01-15 16:11:02 -07:00
Doug Weibel
69c7598db2
Update battery monitoring code for ArduPlane
...
Fixes compatibility for APM2. Also a significant update to the battery monitoring code: We previously had monitoring modes for individual cell voltages for 3 and 4 cell lipos. These have been removed as they were never really supported (the cell voltages were computed but were not reported or recorded anywhere). Also, some clean-up/prep work was done for supporting monitoring 2 separate battery packs. The CLI battery and current monitoring tests were consolidated into 1 test.
2012-01-15 16:10:28 -07:00
Doug Weibel
892f24ac5c
Adding comments for global variables
2012-01-11 12:37:43 -07:00
Doug Weibel
4de2155845
Tweak to FBW min altitude
...
Patch from Yury
2011-12-31 15:44:40 -07:00
Andrew Tridgell
cd3729d993
APM: added error checking on barometer read
...
if the barometer is dead and the GPS has a fix, use the GPS for
altitude
2011-12-28 20:41:53 +11:00
Andrew Tridgell
98353b7ba8
APM: added error checking on compass read
2011-12-28 20:41:53 +11:00
Andrew Tridgell
3cb96fb8af
APM: convert to new I2C library
2011-12-28 20:41:53 +11:00
analoguedevices
b8917b58bd
Added contributor names, removed "alpha" from firmware name
2011-12-26 17:13:37 +00:00
Andrew Tridgell
e687ce9b3d
mainloop_count should be uint16_t
2011-12-21 23:31:38 +11:00
Andrew Tridgell
89561d49d0
always declare a timer_scheduler
...
we should always run this code
2011-12-21 23:31:38 +11:00
Andrew Tridgell
df094ce463
fixed airspeed sensor for ArduPlane on APM2
...
we were trying to use a non-existant ADC chip!
2011-12-17 07:29:09 +11:00
Andrew Tridgell
f6f808357c
removed AperiodicProcess code
...
this code was never being used, and was more complex than it was
worth.
2011-12-17 07:29:09 +11:00
Andrew Tridgell
fc495ce6a7
geofence: added fence status reporting and faster altitude check
2011-12-16 20:11:51 +11:00
Andrew Tridgell
3b148c87d5
geofence: main geo-fence code
...
this implements the primary logic of geo-fencing
2011-12-16 20:11:51 +11:00
Andrew Tridgell
960d6ee38a
removed an unused variable
2011-12-16 20:09:49 +11:00
Andrew Tridgell
888d6226b2
fixed two more CONFIG_HARDWARE #ifdef bugs
2011-12-13 17:05:48 +11:00
Andrew Tridgell
78e8fbff9c
fixed hardware config check for barometer
2011-12-12 15:14:55 +11:00
Andrew Tridgell
011110e1dd
airspeed: use floating point values and better averaging in zero_airspeed()
...
this makes the calibration of airspeed a bit more accurate, and
prevents truncation of airspeed values
2011-12-12 15:14:55 +11:00
Pat Hickey
a99a1dbc9a
ArduPlane: update AP_Baro construtors and initializers
2011-12-11 15:21:10 -08:00
Pat Hickey
04ea979331
ArduPlane: Rename APM_BMP085 classes to AP_Baro_BMP085 classes
2011-12-11 15:21:09 -08: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
Pat Hickey
ab56a764d3
ArduPlane: rev version number from 2.26 to 2.27 Alpha
2011-11-25 20:00:19 -08:00
Andrew Tridgell
86927ac0a5
ArduPlane: rename purple to APM2
2011-11-25 20:00:19 -08:00
Andrew Tridgell
7def0e98e8
USB-MUX: auto-switch telemetry port based on UXB mux for ArduPlane
...
when USB is unplugged, switch baud rate to the SERIAL3_BAUD rate from
EEPROM
2011-11-25 20:00:19 -08:00
Andrew Tridgell
ffba37d599
desktop: first version of register level SITL support
...
this adds register level emulation of the ADS7844 and the RC
input/output hardware on the APM1, allowing for SITL testing without
enabling HIL in the code
2011-11-25 20:00:18 -08:00
Andrew Tridgell
1c20efe4b8
re-organiser sensor declarations
...
this tries to make the #ifdef nesting easier to understand
2011-11-25 20:00:17 -08:00
Andrew Tridgell
03c7d7bfb6
purple: always declare timer_scheduler
2011-11-25 20:00:17 -08:00
Pat Hickey
9e47536924
purple: declare sensors for purple library rework
...
we need some different declarations to match the new APIs
2011-11-25 20:00:17 -08:00
analoguedevices
b3716d988f
Rev version number
2011-11-19 23:43:47 +00:00
Doug Weibel
f752c4b799
Change to logging file system.
...
This commit is somewhat temporary as I have come up with a better scheme and will be modifying this. Just making this commit in case I need to roll back
2011-11-17 21:25:51 -07:00
analoguedevices
7535b8a3d5
Rev version number
2011-11-16 05:04:36 +00:00
analoguedevices
e3ef9a2a36
Rev version number to 2.25
2011-11-14 05:31:27 +00:00
Amilcar Lucas
ab730ff919
Added camera and/or antenna mount support.
...
It is fully configurable with the mission planner, there is no need to change
the source code to adapt to your setup.
It needs more testing, but the SIL is not working for me.
2011-10-31 22:55:58 +01:00
Andrew Tridgell
0211fc2f09
move g_rc_function[] to RC_Channel library
...
libraries should not rely on data declared in the main program. This
caused a build error for the Desktop build for ArduCopter under cygwin
2011-10-29 18:42:18 +11: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
Doug Weibel
9cbc38b516
Add a feature for a minimum altitude parameter while flying in FBW-B
...
This patch written by YureZzZ - Thank you!
2011-10-16 23:11:40 -06:00
Michael Oborne
7ef51f723d
Sensor hil fix's
2011-10-13 22:22:03 +08:00
Andrew Tridgell
546b4df76d
avoid the need for compiler optimisation for HIL build
...
read_airspeed() is only available when in a non-HIL build. The
optimiser normally removes this call, but when debugging in a desktop
build, it is nice to avoid using the optimiser
2011-10-09 22:08:58 +11:00
Amilcar Lucas
7b4ccffa53
Moved relay control functions to it's own library
2011-10-02 01:00:27 +02:00
Amilcar Lucas
dcef0f34e9
Correct/update channel assigment comment
2011-10-02 00:06:44 +02:00
Doug Weibel
5073acce3e
Add auto flap functionality to FBW-B
2011-09-30 07:25:36 -06:00
Andrew Tridgell
6a9a85f184
remove unused climb_rate code
2011-09-19 11:04:02 +10: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
2ca8e58bc2
GCS: simplify the API for sending messages
...
this makes the code clearer, and saves us another 100 bytes of text
2011-09-19 11:04:02 +10:00
Andrew Tridgell
220b941e31
removed some more dead messages, and convert MSG_* to an enum
...
this make it safer to add a new message while keeping deferred queue
the right size
2011-09-19 11:04:02 +10:00
Andrew Tridgell
9baab490f1
HIL: first step in simplifying the HIL/GCS code
...
this gets rid of the messy #ifdefs around HIL_PORT, and removes
non-MAVLink GCS and HIL support
2011-09-19 11:04:01 +10:00
Andrew Tridgell
58fa51b680
ArduPilot updates for new DCM code
...
G_Dt is no longer needed, and scale ADC values by 8 to match old
constants
2011-09-17 14:58:02 +10:00
Amilcar Lucas
f08cea8044
These changes were meant to be inside commit a14c06adc06b. I'm sorry but reverting stuff is not that easy
2011-09-13 01:54:47 +02:00
Amilcar Lucas
5406991831
Added support for routing any function to any of the aux. servos.
...
This is a manual merge from the APM_Camera branch.
It reverts the stuff that Oliver did not menat to do with his commit 6dcbc7f44bc0
2011-09-13 01:24:06 +02:00
Amilcar Lucas
c7b3bfd295
Use the G_RC_AUX macro when possible. Added more comments. Remove unused code
2011-09-12 20:21:12 +02:00
Amilcar Lucas
46f9d4cec8
This is ugly, but it fixes compilation on arduino
2011-09-11 23:25:06 +02:00
Amilcar Lucas
ce010b4e38
Moved update_aux_servo_function() to the RC_Channel_aux.* files.
...
This simplifies code sharing between ArduCopter and Arduplane at the expense of 48bytes.
Moved CH_x defines out of the defines.h file and into the library where they belong
2011-09-11 23:07:30 +02:00
Amilcar Lucas
213969202a
Moved the RC_Channel_aux class to its own file. The includes could be improved, has anyone got any ideas how ?
2011-09-11 19:13:01 +02:00