Commit Graph

521 Commits

Author SHA1 Message Date
Andrew Tridgell 8853a104f0 APM: fixed SITL build 2012-08-17 16:28:45 +10:00
Andrew Tridgell 2fb8a13ac6 APM: added parameter FBWB_ELEV_REV
this fixes issue 343
2012-08-17 15:04:53 +10:00
Andrew Tridgell 50e2458df0 math: more abs() fixes
abs() is 16 bit
2012-08-16 15:17:42 +10:00
Andrew Tridgell 9c3c1c4f54 APM: fixed hil build 2012-08-16 12:53:37 +10:00
Andrew Tridgell 5ebcf425cf APM: allow telemetry send during parameter and waypoint fetch
this slows down telemetry by a factor of 4 during parameter or
waypoint transmit. That ensures that mode changes and gps position are
still updated during a long parameter fetch
2012-08-16 10:50:12 +10:00
Andrew Tridgell 0a7d8a4933 MAVLink: enable fetching of single parameters
this makes it possible for the GCS to fetch a single parameter by
name, which is useful for parameters that change in flight
2012-08-16 10:14:46 +10:00
Andrew Tridgell a1107602e9 APM: allow for separate calibration of airspeed/barometer
this is useful just before takeoff, to account for temperature changes
2012-08-15 19:49:09 +10:00
Andrew Tridgell efee2b1557 APM: added LAND_FLARE_ALT and LAND_FLARE_SEC
these allow you to configure the altitude and time before touchdown to
flare the plane and lock the heading. Useful on larger planes.
2012-08-15 18:11:16 +10:00
Andrew Tridgell 455e088c9f APM: rename RDRSTEER to WHEELSTEER
thanks to Jon for the suggestion
2012-08-15 16:28:59 +10:00
Andrew Tridgell c652538516 APM: use AHRS position for geo-fence
this allows it to take account of dead-reckoning
2012-08-15 14:31:10 +10:00
Andrew Tridgell 20be77ab32 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 b8521ff9ae APM: reload airspeed and throttle after landing
this allows for restarting a mission after landing with reasonable
airspeed values
2012-08-15 12:39:35 +10:00
Andrew Tridgell f4023d1b44 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 4b5d98e65b 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 ce5f3dcfe2 APM: report speed changes via MAVLink 2012-08-15 12:39:35 +10:00
Andrew Tridgell 1b152ef9e0 APM: implement FENCE_ACTION_REPORT
when FENCE_ACTION is set to FENCE_ACTION_REPORT a fence breach is
reported, but the flight mode is not changed
2012-08-15 12:39:35 +10:00
Andrew Tridgell 8c3b6f471f 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 b54ab2d72a APM: expose change_command() and geofence_breached() to libraries
this makes a failsafe library easier
2012-08-15 12:39:34 +10:00
Andrew Tridgell dd17302def APM: show waypoint number in jump message 2012-08-15 12:39:34 +10:00
Andrew Tridgell c525b6b997 APM: minor formatting fix 2012-08-15 12:39:34 +10:00
Andrew Tridgell 93f45f232f 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 98015636d9 APM: interpret zero lat/lng as being current location
this makes it easy to have a "loiter in current position" mission
element
2012-08-15 12:39:34 +10:00
Andrew Tridgell 98d5a49717 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 35c88dd418 INS: disable INS AP_Param table when not on APM1 hardware
this could cause overwriting of memory with default values
2012-08-11 22:06:03 +10:00
Andrew Tridgell 3b9623a44c Mavlink: log wind estimation result 2012-08-11 22:06:03 +10:00
Andrew Tridgell 9d9c7b0455 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 aa839c3f46 APM: pass airspeed sensor to AHRS 2012-08-11 08:57:44 +10:00
Andrew Tridgell 9bdf204e35 APM: support the MISSION_WRITE_PARTIAL_LIST command
this allows missions to be partially updated in flight
2012-08-09 17:13:36 +10:00
Andrew Tridgell a7399c405d MAVLink: removed the need for Mavlink_compat.h
we have now fully transitioned to MAVLink 1.0, so we no longer need
the compatibility layer and the old names in the code
2012-08-09 12:22:46 +10:00
Andrew Tridgell 16d63978f1 MAVLink: moved mavlink variables back to library
these were moved to the main sketches to allow for compile time
selection of MAVLink 0.9 vs 1.0. We no longer support 0.9, so we can
move it back, which simplifies some test sketches
2012-08-09 12:06:21 +10:00
Andrew Tridgell 4c77cbcd0b APM: Added RST_MISSION_CH option
this allows a pilot to reset the mission using a transmitter
switch. Very useful for repeating a mission during testing
2012-08-09 10:33:16 +10:00
Andrew Tridgell 54f97bb9e7 APM: removed THROTTLE_REVERSE option
Better to use RC3_REV
2012-08-09 10:04:44 +10:00
Andrew Tridgell 6e46db39a1 APM: Added STICK_MIXING option
this replaces the compile time option. Disabling during long distance
flights when the transmitter may be out of range is useful.
2012-08-09 08:53:29 +10:00
Amilcar Lucas 9a8fd4738e Add an optional second mount to ArduPlane and ArduCopter 2012-08-08 23:22:24 +02:00
Andrew Tridgell f33d15ab80 APM: removed pointless load() call 2012-08-08 16:51:23 +10:00
Andrew Tridgell 5e19c0cf04 AP_Airspeed: removed values passed to constructor 2012-08-08 16:38:39 +10:00
Andrew Tridgell 7d9e4a7559 APM: fixed default flap speed
the default of 255 translates to -1 as a AP_Int8, so use zero to mean
no flaps
2012-08-08 13:04:21 +10:00
Andrew Tridgell 67f076a9db 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 b366205172 APM: removed cli slider and dipswitch options
use mavlink/eeprom for all config
2012-08-08 12:12:29 +10:00
Andrew Tridgell f98b887dbe AP_Param: update ArduPlane core for new AP_Param interface 2012-08-08 12:11:57 +10:00
Jonathan Challinger e97305ea6e APM: fixed rounding of altitude
the cast was rounding to the nearest meter
2012-08-08 12:07:35 +10:00
Amilcar Lucas 03b902d4b7 Add me :) 2012-08-06 00:40:12 +02:00
Amilcar Lucas fe4713b46e 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 f3f89004e9 More work on ch9, 10 and 11 2012-08-04 19:44:41 +02:00
Amilcar Lucas 4be8073328 Implement set ROI 2012-08-04 18:44:29 +02:00
Amilcar Lucas 9b31938519 The mount type must be updated periodically 2012-08-04 18:44:08 +02:00
Amilcar Lucas 431ed1c9b9 More flexible RC support 2012-08-04 18:39:20 +02:00
Amilcar Lucas 813e3ad229 Enable camera triggering by default 2012-08-04 16:32:47 +02:00
Amilcar Lucas 8f836b2fd6 ATmega1280 does not have enough memory for mount support so disable AUTO GPS support, to allow mount support to fit.
This should almost have no side effects, because the most users use MTK anyways.
If the user defined a GPS protocol, than we will NOT overwrite it
2012-08-04 16:32:20 +02:00
Andrew Tridgell 526344ab7c 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 95522fb8a3 ArduPlane: bug fix to global var_info parameter list for ahrs object. 2012-08-01 10:52:34 +09:00
Andrew Tridgell 24ba59f528 APM: fixed overflow in geofence code for altitudes above 327 meters 2012-07-31 15:46:47 +10:00
Andrew Tridgell cc9712860b APM: fixed case of 'LAND_PITCH_CD'
mavlink parameters are uppercase by convention
2012-07-29 17:07:38 +10:00
rmackay9 717d0d25d4 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
rmackay9 d9e92c0beb ArduPlane: change to Parameters.pde to support moving var_info from AP_AHRS to AP_AHRS_DCM 2012-07-28 14:31:01 +09:00
Michael Oborne eeac211b1d AP Fix Hil Airspeed calc in m/s 2012-07-26 20:21:17 +08:00
Andrew Tridgell cfe19c8f53 APM: update version for 2.50 release 2012-07-26 11:36:17 +10:00
Andrew Tridgell 6243cf77a8 APM: added a SCALING_SPEED parameter
this allows users to adjust the base speed used for scaling roll/pitch
PIDs. This can be used to make PIDs work for both airspeed and
non-airspeed control
2012-07-26 11:30:23 +10:00
Andrew Tridgell caa16cbb54 APM: fixed HIL build 2012-07-26 10:09:07 +10:00
Andrew Tridgell efc184c3ad APM: fixed build
the SET_ROI commands are not supported yet
2012-07-26 10:03:36 +10:00
Andrew Tridgell d4599aa4f0 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 7dd58227a6 AP fix sitl hil attitude mode. 2012-07-24 07:18:25 +08:00
Andrew Tridgell 16ddc9fb8a APM: fixed a problem with wayoints completing early
when a user forces a waypoint jump, we may need to reset prev_WP to
prevent us thinking the waypoint is complete before we have started
2012-07-21 20:32:07 +10:00
Andrew Tridgell d0ebb4ca26 MAVLink: fixed another two places where micros() was used for a millisecond time 2012-07-20 11:57:15 +10:00
Jason Short dbcfbfe857 Added Oilpan INS group object param 2012-07-18 23:07:50 -07:00
Jason Short fdf8724b66 Arduplane: Fixed unsigned int comparison warning 2012-07-18 23:07:34 -07:00
Jeff Taylor c083ca5f35 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 2121491197 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 2673179075 APM: Use g.airspeed_cruise for turn rate calculation if the airspeed sensor is disabled.
This gives our best approximation for auto flight
2012-07-19 11:50:41 +10:00
Jonathan Challinger 3c4f971618 APM: Removed unused YAW_DAMPENER code.
YAW_DAMPENER was defined as zero
2012-07-19 11:50:21 +10:00
Jonathan Challinger 87c78cff5e APM: Removed incorrect nav_gain_scaler from nav_roll calculation.
nav_gain_scaler was originally added due to a perceived improvement in
loiter performance, but is incorrect for navigation. Turn rate is a
function of airspeed and bank angle, ground speed has no effect on
that.
2012-07-19 11:50:06 +10:00
Amilcar Lucas 504809d146 ArduPlane parameters: re-order the files, looks like the second file gets ignored :( 2012-07-18 22:52:17 +02:00
Amilcar Lucas 61f0cd15be ArduPlane parameters: Add base class info as well 2012-07-18 22:39:49 +02:00
Amilcar Lucas d911e4f61e Support up to 11 servos in APM2
Conflicts:

	ArduPlane/ArduPlane.pde
2012-07-18 22:01:19 +02:00
Michael Oborne 45609b3e6f fix rc libray param gen 2012-07-18 07:03:39 +08:00
Jonathan Challinger e271f97b53 Changed mavlink GLOBAL_POSITION_INT.relative_alt message to correctly return altitude above ground. 2012-07-17 16:15:11 +10:00
Andrew Tridgell ead41670c4 Airspeed: change APM to use new AP_Airspeed library
the next step is AHRS dead reckoning
2012-07-16 11:21:50 +10:00
Michael Oborne e877650c06 AP fix duplicate keys in param config 2012-07-13 07:06:01 +08:00
Amilcar Lucas 8e14ebbc10 Merge the changes from APM_Camera branch into ArduCopter
Conflicts:

	ArduCopter/Camera.pde
	ArduCopter/Parameters.pde
2012-07-11 00:39:13 +02:00
Andrew Tridgell d07593b3bb APM: added credit for FBW altitude limit code
thanks Yuri!
2012-07-10 08:36:50 +10:00
Andreas M. Antonopoulos 3b0a4f8c68 param_parser: cosmetic
Arduplane: doc fixes
2012-07-08 21:45:26 -07:00
Andrew Tridgell 58fd1d1cf6 APM: fixed DisplayName/Description mixups in parameter docs 2012-07-07 17:40:43 +10:00
Andrew Tridgell 7bc724d118 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 6ced622da4 APM: fixed some build warnings and type errors 2012-07-06 19:59:18 +10:00
Andrew Tridgell 855d67c30a APM: more parameter documentation 2012-07-05 15:06:45 +10:00
Andrew Tridgell 85332ff85b GeoFence: fixed default return altitude units
off by 100x!
2012-07-05 15:06:44 +10:00
Andrew Tridgell ba39738606 MAVLink: added climb rate reporting 2012-07-05 13:00:46 +10:00
Andrew Tridgell 6afbfdafeb Docs: fixed some units in APM parameter docs 2012-07-05 13:00:46 +10:00
Andrew Tridgell fe54329de2 MAVLink: remove MAVLink 0.9 protocol support
this simplifies the code a lot. We're not going back to 1.0
2012-07-05 13:00:46 +10:00
Andrew Tridgell 5623ef99a0 APM: changed test for having completed a waypoint
the new test is that we have passed a "finish line" perpendicular to
the track between the last waypoint and the current waypoint.

The previous tests are also still used, so if we circle a waypoint or
get within the waypoint radius we also consider it completed
2012-07-04 12:42:46 +10:00
Andrew Tridgell d9351ff681 APM: use new location functions 2012-07-04 12:42:46 +10:00
Andrew Tridgell f150c645c8 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
Michael Oborne 84d2782c33 fixup sitl attribute group for planner. - causing invalid advanced/standard views 2012-07-01 21:43:32 +08:00
Andrew Tridgell e791cad9ef AnalogSource: convert analogRead() calls to the new API
this should give us much better analog values, plus save a bunch of
CPU time
2012-07-01 15:01:05 +10:00
Andrew Tridgell 1cb96e14a9 SITL: enable the SIM_* parameters in ArduCopter and ArduPlane 2012-06-29 15:10:52 +10:00
Andrew Tridgell 57579e494b Barometer: fixed airstart for APM
we need to re-load the ground pressure and temperature from eeprom on
and airstart
2012-06-27 16:01:50 +10:00
Andrew Tridgell 44b7d94b1c APM: ArduPlane updates for new compass interface 2012-06-27 16:01:50 +10:00
Andrew Tridgell 4fda89beb7 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 4a91c267d7 APM: set_centripetal() is now set_fly_forward()
this controls more than just centripetal correction
2012-06-27 16:01:49 +10:00
rmackay9 74d37a3713 ArduPlane HIL: fixed bug so g_gps->setHil calls send time as a uint32_t (was sending a float but was cast back to an uint32_t resulting in a meaningless time that never changed). 2012-06-26 22:59:24 +09:00