rmackay9
8a29f47ce0
AP_GPS: replaced "int" with "int16_t" and "long" with "int32_t"
2012-08-18 16:35:38 +09:00
Andrew Tridgell
c9ba693e1f
AP_Baro: the HIL baro needs to inherit calibrate() from the parent class
...
this was what caused the renorm errors
2012-08-18 16:32:23 +10:00
Andrew Tridgell
14cdbd36cb
AHRS: check for bad values in the error before they can affect DCM
...
this should fix the DCM renorm errors in autotest, probably caused by
bad climb rates
2012-08-18 13:54:11 +10:00
Andrew Tridgell
81cd4b6c13
Filter: ensure the derivative filter never returns an invalid number
2012-08-18 13:54:11 +10:00
rmackay9
2e77691ca1
AP_Limits: change order of initialisation of class variables to remove compiler warnings.
2012-08-18 12:51:32 +09:00
Michael Oborne
bcceedffab
Fix Airspeed use use
2012-08-18 08:30:15 +08:00
Andrew Tridgell
d9cc967508
AHRS: force an extra read of the compass on startup
...
the first read from the compass can be bad. This ensures we have a
good value when getting the initial AHRS yaw.
Thanks to Randy and Jason for the bug report!
2012-08-17 17:57:39 +10:00
Andrew Tridgell
e171720608
DataFlash: fixed SITL build
2012-08-17 16:27:19 +10:00
Andrew Tridgell
34a1297842
SITL: added SIM_ENGINE_MUL
...
this allows for simulated engine failures
2012-08-17 14:22:08 +10:00
Jason Short
bd91215770
Dataflash fix for missing card error
2012-08-16 15:37:28 -07:00
Andrew Tridgell
82954f823b
SITL: make abs() 16 bit in SITL
...
this will help us find abs() bugs in autotest
2012-08-16 15:18:17 +10:00
Andrew Tridgell
6300fa7399
math: more abs() fixes
...
abs() is 16 bit
2012-08-16 15:17:42 +10:00
Jason Short
a66e43aff1
Location Lib : Abs was overflowing causing bad comparison
2012-08-15 22:01:51 -07:00
Jason Short
ff38dadd00
Location Lib. Potential fix for bad angle and distance calcs.
...
last_lat changed to int32_t since it can be negative.
2012-08-15 21:36:55 -07:00
Jason Short
3ca57ac105
DataFlash : Removed Chip Erase - relying on Block erase only
2012-08-15 21:04:24 -07:00
Jason Short
ce2a608706
Dataflash Logs : Fixed block erase on APM2
...
Byte order for 512 vs 528 was reversed.
2012-08-15 21:04:24 -07:00
Andrew Tridgell
034fb5b194
APM: fixed hil build
2012-08-16 12:53:37 +10:00
Andrew Tridgell
73dcbc24c3
Quaternion: we no longer support acceleration in the GPS driver
...
remove the linear acceleration compensation code
2012-08-15 20:07:53 +10:00
Andrew Tridgell
2d47bd0386
GPS: support getting raw velocity values from a UBlox
...
this may give better velocity numbers than the value from COG
2012-08-15 20:06: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
a4b1b9f0a4
AP_AnalogSource: make read_average() return a float
...
this allows it to take advantage of better than 1 bit resolution by
averaging
2012-08-15 12:39:35 +10:00
Andrew Tridgell
299711f4a9
MAVLink: added FENCE_ACTION_REPORT
2012-08-15 12:39:35 +10:00
Andrew Tridgell
9b4b7997b6
AHRS: added ahrs.yaw_initialised()
...
this allows the high level code to know if the AHRS driver has a
reliable yaw estimate
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
Pat Hickey
99e96031f2
APM_RC_APM2: updated comments for clarity
2012-08-13 15:34:17 -07:00
rmackay9
cf943255a5
AP_RC_Channel: deleted this library as nobody seems to be using it.
...
Everyone is using RC_Channel instead which includes parameters.
2012-08-13 16:36:10 +09:00
rmackay9
35e7a6e018
GPS_IMU: deleted this empty library as nobody seems to be using it.
2012-08-13 16:35:29 +09:00
rmackay9
59cb6e5dba
Waypoints: deleted this library as nobody seems to be using it.
2012-08-13 16:35:08 +09:00
rmackay9
62c3ea9ea1
Trig_LUT: deleted this library as nobody seems to be using it
2012-08-13 16:34:50 +09:00
rmackay9
004c8bd5ed
AP_EEPROMB: deleted this library as nobody seems to be using it.
2012-08-13 16:34:33 +09:00
rmackay9
3482f05b48
APM_RC: rename example sketch directories for APM2 so they can be opened easily from arduino ide
2012-08-13 11:50:53 +09:00
Andrew Tridgell
48e275e22d
AHRS: avoid a compiler bug in quaternion code
...
Having _wind in the AP_AHRS class causes a register allocation error
when building the Quaternion code with some versions of avr-gcc. Quite
bizarre.
2012-08-13 11:08:10 +10:00
Andrew Tridgell
19a5d11669
AHRS: use airspeed for wind in forward flight
...
when not turning we can use the airspeed sensor directly to calculate
the wind speed.
2012-08-12 10:54:25 +10:00
Andrew Tridgell
f5b7ae213c
AHRS: added AHRS_GPS_USE parameter
...
this allows for the GPS to be disables for position updates, which
allows for testing dead-reckoning
2012-08-11 22:06:03 +10:00
Andrew Tridgell
4951d686f6
Mavlink: re-generate with WIND message
2012-08-11 22:06:03 +10:00
Andrew Tridgell
8d914b14e4
Mavlink: added WIND message
...
this allows us to log the wind estimation result
2012-08-11 22:06:03 +10:00
Andrew Tridgell
779dacfd24
AHRS: added wind estimation code
...
this allows us to estimate the wind while we have GPS lock, then use
that estimate in the long term dead reckoning
2012-08-11 22:06:03 +10:00
Andrew Tridgell
0ba57d05eb
AP_Math: added matrix column extraction functions
2012-08-11 22:06:02 +10:00
Amilcar Lucas
c7d1974741
RC_Channel_aux: cycle thru all functions except k_none and k_nr_aux_servo_functions
...
Probably makes no difference because g_rc_function[k_none] == NULL
2012-08-11 13:43:21 +02:00
Andrew Tridgell
af4071894e
AHRS: added long-term dead-reckoning
...
this uses airspeed (if available) or last GPS ground speed to update
our position estimate in AHRS
2012-08-11 12:00:31 +10:00
Andrew Tridgell
618f43bef6
AP_GPS: added last_ground_speed() method
...
used for dead-reckoning in AHRS
2012-08-11 11:59:47 +10:00
Andrew Tridgell
8a6fcf998b
AP_GPS: fixed types to be stdint types
2012-08-11 11:59:03 +10:00
Andrew Tridgell
3419d8e006
SITL: fill in SIMSTATE.lat and SIMSTATE.lng
2012-08-11 11:58:25 +10:00
Andrew Tridgell
d46b7a67b7
MAVLink: re-generate MAVLink C code
2012-08-11 11:58:06 +10:00
Andrew Tridgell
d9ad1c8616
MAVLink: added SIMSTATE.lat and SIMSTATE.lng
...
this allows us to display both true and estimated position on the
groundstation
2012-08-11 11:57:45 +10:00
Andrew Tridgell
87fca1985f
AP_Math: added location_update() and location_offset() functions
...
these will be used by AHRS dead reckoning
2012-08-11 11:56:54 +10:00
Andrew Tridgell
f95b06a880
AHRS: make airspeed sensor available to AHRS
...
this will be used for long term dead-reckoning
2012-08-11 08:57:32 +10:00
Andrew Tridgell
b01907cf23
ACM: fixed HIL build
2012-08-11 08:34:16 +10:00
Jason Short
e12ce1d5a7
MOTORS Mixer: temp removal of Yaw Contrib code
2012-08-09 17:00:11 -07:00
Jason Short
52b2aacf28
AHRS DCM: FOrmatting
2012-08-09 16:59:43 -07:00
Amilcar Lucas
32e354be4e
AP_Mount: Reduce parameter name length, to allow MNT2_* strings to be smaller than the limit of 15 characters
2012-08-10 00:16:52 +02:00
Andrew Tridgell
f812fc921f
build: fixed more build warnings
2012-08-09 16:19:39 +10:00
Andrew Tridgell
0763bbd1af
MPU6000: fixed some build warnings
2012-08-09 16:19:21 +10:00
Andrew Tridgell
c70bae9617
AP_MetaClass: fixed a warning
2012-08-09 16:19:04 +10:00
Andrew Tridgell
7f4b7703c1
AP_Param: fixed some build warnings
2012-08-09 16:18:53 +10:00
Andrew Tridgell
6213032957
MAVLink: removed obsolete files
2012-08-09 15:25:49 +10:00
Andrew Tridgell
5d1d9e9042
MAVLink: added generator.sh script
...
this is used to re-generate our MAVLink C code
2012-08-09 15:25:06 +10:00
Andrew Tridgell
dc47074dbd
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
2a7b298bbc
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
Amilcar Lucas
0b0b9c29a2
Allow fully independent operation of two AP_Mount instances
2012-08-08 23:11:23 +02:00
Amilcar Lucas
530ea0bebd
AP_Mount: Enable Joystick speed code, now that the framework supports more than 16 parameters per group.
...
Save some bytes by skiping the redundant *_rc_in initialization in the AP_Mount() constructor
2012-08-08 22:45:36 +02:00
Andrew Tridgell
a8c99f3887
SITL: fixed deletion of eeprom.bin
...
with the new AP_Param constructor order, we need to erase rather than
unlink the eeprom
2012-08-08 18:01:06 +10:00
Andrew Tridgell
dcc50b5705
AP_Airspeed: removed values passed to constructor
2012-08-08 16:38:39 +10:00
Andrew Tridgell
e6e25525bc
AP_Param: avoid saving values within 0.01% of the default value
...
this saves some more space due to rounding errors
2012-08-08 13:13:30 +10:00
Andrew Tridgell
45c27317ef
AP_Mount: fixed defaults for angles
...
this saves some eeprom space by not saving the 4500 values
2012-08-08 13:04:49 +10:00
Andrew Tridgell
8ae35cae1c
AP_Math: rename get_bearing() to get_bearing_cd() to make units obvious
2012-08-08 12:12:30 +10:00
Andrew Tridgell
7ff7514a88
SITL: added pgm_read_dword() and pgm_read_float()
2012-08-08 12:11:57 +10:00
Andrew Tridgell
518d6365ff
AP_Param: update remaining libraries for new constructor syntax
2012-08-08 12:11:57 +10:00
Andrew Tridgell
898a5af692
AP_Param: update AHRS for new constructor syntax
2012-08-08 12:11:57 +10:00
Andrew Tridgell
5e8fe8d93e
AP_Param: update PID libraries for new constructor syntax
2012-08-08 12:11:57 +10:00
Andrew Tridgell
c298d5130f
AP_Param: major update to use default values in var_info table
...
this stores the default value for all scalar variables in the var_info
table, which makes it possible to avoid storing default values in
eeprom. That allows us to oversubscribe the eeprom space with a much
lower risk of overrun.
2012-08-08 12:11:57 +10:00
Andrew Tridgell
a7b9aff79f
AP_Baro: the DerivativeFilter now handles duplicate data
...
this saves a few bytes of memory
2012-08-08 12:07:36 +10:00
Andrew Tridgell
77f3b60b6f
Filter: make the DerivativeFilter test GNUPlot friendly
...
makes testing easier
2012-08-08 12:07:36 +10:00
Andrew Tridgell
899eeb608b
Filter: automatically cope with duplicate timestamps
...
this makes it easier for callers to avoid excessive slope calculations
Thanks to Jon Challinger for the idea
2012-08-08 12:07:35 +10:00
Andrew Tridgell
d7d33c64b7
Filter: fixed a off-by-one DerivativeFilter bug
...
many thanks to Jon Challinger for noticing this!
2012-08-08 12:07:35 +10:00
Amilcar Lucas
2c4a0636f3
AP_Mount: move mount to a "retracted position" into the fuselage with a fourth servo
2012-08-06 01:27:29 +02:00
Amilcar Lucas
107155fa1a
AP_Mount: Allow using any RC channel to control any of the mount axes.
...
This has the added benefit of saving 60 bytes and simplifying Mission Planner gui.
Moved some code from RC_Channel_aux to AP_Mount class
The servos get written by the update_mount_position() function, this simplifies main()
PS: The beauty of using libraries: I did not have to touch a single line of ArduPlane's code!
2012-08-05 23:48:57 +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
9c1ac2d9e6
More work on ch9, 10 and 11
2012-08-04 19:44:41 +02:00
Amilcar Lucas
bbc4bdb729
More flexible RC support
2012-08-04 18:39:20 +02:00
Andreas M. Antonopoulos
7262b0429a
AP_Limits: experimental "bounce" mode.
2012-07-31 18:39:58 -07:00
Robert Lefebvre
4ffc5e211a
Fixing Trad Heli Ext ESC Controller
...
-Added ramp-down rate instead of instantly setting ramp to zero when throttle is dropped to bottom. This is to allow "warm-restart" if shutdown was unintentional.
-Actual ESC still goes to zero while throttle is dropped to the bottom, only the ramp counter winds down slowly behind the scenes.
2012-07-31 17:47:25 -04:00
rmackay9
5077674043
AP_InertialSensor_MPU6000: another attempt at fixing the SITL build
2012-07-28 17:19:19 +09:00
rmackay9
7683e9d870
AP_InertialSensor_MPU6000: changed DMP memory definition (dmpMem) to const uint8_t to remove SITL compile errors (hopefully)
...
Removed unused 'dump' variable from dmp_load_mem to reduce compiler warnings
2012-07-28 16:33:04 +09:00
rmackay9
0eaf427062
AP_AHRS_MPU6000: cleaning up compiler warning due to unused yaw_deltat variable
2012-07-28 16:23:25 +09:00
rmackay9
48074f4766
AP_InertialSensor_Oilpan: changed initialisation order of parameters to remove compiler warning
2012-07-28 15:22:37 +09:00
rmackay9
1b521a9f73
AP_AHRS: updated test sketch to allow use of MPU6000's DMP
2012-07-28 14:27:26 +09:00
rmackay9
dbe7c8ed1a
AP_AHRS_MPU6000: first draft implementation of class that uses MPU6000's DMP to calculate attitude
2012-07-28 14:17:38 +09:00
rmackay9
b844bb7919
AP_AHRS: removed var_info from AP_AHRS class (moved to AP_AHRS_DCM)
2012-07-28 14:16:56 +09:00
rmackay9
468170b589
AP_AHRS_DCM: moved var_info to belong to AP_AHRS_DCM instead of AP_AHRS
2012-07-28 14:16:15 +09:00
rmackay9
7b9782c5ac
AP_IMU_INS: added gx(), gy() and gz() methods to return gyro offsets
2012-07-28 14:15:23 +09:00
rmackay9
6cd0918134
AP_InertialSensor: methods added to access DMP functionality
2012-07-28 14:14:43 +09:00
Andrew Tridgell
4b4b67496b
MAVLink: rename the message_definitions directory
2012-07-26 10:03:36 +10:00
Andrew Tridgell
8dd62829f9
MAVLink: removed MAVLink 0.9 message definitions
...
we are now 1.0 only
2012-07-26 10:03:36 +10:00
rmackay9
bb05dab924
AP_Mount: addition of Amilcar's mount_type
...
set_roi_cmd modified to take a Location. I know the intention was for set_roi_cmd to interpret the MAVLink command directly but unfortunately in arduCopter missions are only made up of waypoints (which are Locations).
2012-07-25 11:00:38 +09:00
Jonathan Challinger
9cd98e79dd
AHRS: normalise GA_b before computing error vector only if too large
...
When GA_b is small the direction of the vector is unreliable, so
normalising can exacerbate the error in the direction
2012-07-23 17:16:50 +10:00
Andrew Tridgell
175b6d2606
AP_AnalogSource: fixed reporting of VCC
...
the VCC pin number should not be converted
2012-07-21 19:49:24 +10:00
Andrew Tridgell
5f5ab9c07c
AHRS: if we don't have gps correction enabled, zero the yaw correction
2012-07-20 17:21:04 +10:00
Andrew Tridgell
c937738732
AHRS: allow the gps/accelerometers to control yaw when rolled
...
this solves a problem with yaw estimation when at high roll angles,
when the compass code becomes ineffective
2012-07-20 11:50:04 +10:00
Andrew Tridgell
151a50b6af
MAVLink: imported updated generated mavlink C code
...
no functionality changes
2012-07-20 11:50:03 +10:00
Jason Short
c9d3ab5413
Oilpan ADC parameters added
...
including a function that configures each Accel Axis
Defaults matching old behavior
Added param group
2012-07-18 22:57:11 -07:00
Jason Short
148da2e4a0
Lead Filter: simplified calculation
2012-07-18 22:57:10 -07:00
Andrew Tridgell
819b6459b2
GPS-UBlox: removed duplicate config messages
...
these were left over from debugging
2012-07-19 15:23:15 +10:00
Amilcar Lucas
3de23220ed
RC_Channel parameters: Fix a typo
2012-07-18 22:39:49 +02:00
Amilcar Lucas
22d2f9ea15
Support up to 7 aux servo outputs
2012-07-18 21:58:22 +02:00
rmackay9
e61cf0e1f9
AP_Mount: added set_manual_rc_channel and set_manual_rc_channel_function to allow input of pitch, roll and yaw controls from a regular RC_Channel (i.e. not RC_Channel_aux)
...
For now, angles red in are always of the range -45 deg ~ 45 deg which is consistent with the existing arducopter implementation but should be improved to scale the pilot's input to the mount's actual range.
2012-07-18 23:20:05 +09:00
Amilcar Lucas
461098b289
Replace long with int32_t
2012-07-18 02:12:31 +02:00
Amilcar Lucas
724c5f6490
Use ascending order in the values
2012-07-18 02:11:49 +02:00
Amilcar Lucas
1da0ce20ce
Improve parameter documentation, it still does not work, but is an improvement.
...
I just do not understand why these parameters do not appear in Mission planner :(
2012-07-17 23:32:30 +02:00
Michael Oborne
9e4d118fdb
Airspeed Library - fix param names.
...
The Group definition give the start of the param name.
This way we can maintain multiple instances if required of the same library as options.
2012-07-16 21:48:47 +08:00
Andrew Tridgell
feb456de56
Airspeed: Added AP_Airspeed sensor library
...
this will allow an airspeed sensor object to be passed to AHRS for
dead reckoning
2012-07-16 11:21:20 +10:00
rmackay9
acef75319c
AP_MotorsMatrix: small bug fix to limit checking on remove_motor call. Fix thanks to Michael Peschel!
2012-07-16 00:38:58 +09:00
rmackay9
669ffb5ef8
RC_Channel_aux: added enable_out method to help stop servos from moving before the mount has initialised.
...
changed parameter names of "update_aux_servo_function" to make it more clear that any 4 servos can be passed in (not just servos 5~8).
Also allowed NULL servos to be passed in as parameters because we only need 3 in ArduCopter.
2012-07-15 16:28:53 +09:00
rmackay9
5616b1769b
AP_Camera: changed "int" to "int16_t" and "long" to "int32_t" here and there.
2012-07-15 16:26:12 +09:00
Andreas M. Antonopoulos
c73f7ef3ab
AP_Limits library, provides modular "limits" such as altitude and geo-fencing.
2012-07-14 19:26:17 -07:00
Michael Oborne
a469682b7b
fix param config names
2012-07-14 15:34:15 +08:00
Robert Lefebvre
ed235a3924
Change to prevent Tricopter servos from going hard-over during Disarmed state.
...
Believe this was an oversight when the change to AP_Motors went in.
2012-07-13 23:12:26 -04:00
Robert Lefebvre
8ce9aae2f7
Instituting Yaw Differential on Multirotors. Intent is to stop "rise on yaw input".
...
Since motors with increasing speed due to yaw input seem to generate more thrust that motors that slow lose thrust, thus net thrust goes up, causing copter to climb.
Values are a guesstimate, proven out by test flying. This could probably become a parameter.
2012-07-13 22:59:28 -04:00
Andreas M. Antonopoulos
d4a0cb5db1
Added Michael Pursifull's Maxsonar HRLV model support
2012-07-11 18:46:47 -07:00
rmackay9
6f8d0a02a4
AP_Camera: moved seme constructor initialisers around to remove compile warnings
2012-07-12 09:33:22 +09:00
rmackay9
4dd4c95d5c
AP_AnalogSource_Arduino: fix to allow analog port to be read to be specified as a "channel" (i.e. A0)
...
Also fixed example range finder sketch to work with interrupt enabled AP_AnalogSource_Arduino class
2012-07-11 21:19:17 +09:00
Amilcar Lucas
cc02d85cdf
AP_Mount: add support for non-spring-loaded joysticks
2012-07-11 00:07:33 +02:00
Amilcar Lucas
9a41cbffdf
RC_Channel: improve parameter documentation
2012-07-11 00:07:10 +02:00
Amilcar Lucas
46d20c2d6b
Remove unused function, remove unnecessary angle wrapping.
2012-07-11 00:06:45 +02:00
Amilcar Lucas
bccb07cbd0
Allow mount control when no AHRS exists
...
Allow mount control on non stabilized axes
2012-07-11 00:06:26 +02:00
Andrew Tridgell
a72f6acef6
AP_Math: added get_distance_cm() to return in centimeters
2012-07-11 07:49:05 +10:00
Andrew Tridgell
165604a55c
AHRS: fixed HIL build
2012-07-10 18:02:05 +10:00
Andrew Tridgell
0f9fb2c64b
AHRS: added AHRS_GPS_GAIN parameter
...
this allows control of how much GPS velocity information is used in
doing centripetal correction in DCM
2012-07-10 16:22:48 +10:00
Andrew Tridgell
e1725e9ea5
AP_Param: added some docs on the eeprom header format
2012-07-10 14:03:49 +10:00
Craig Elder
6d3fdfc03a
DataFlash: The current method for checking if chip erase worked is producing false positives. We are forcing the block erase until we have a deterministic test method.
2012-07-09 15:23:35 -07:00
Amilcar Lucas
af338939be
RC_Channel: Improve documentation
2012-07-07 21:57:30 +02:00
Amilcar Lucas
46552b4222
AP_Mount: Fix radians/degrees scaling regressions
...
Rename calculate() into stabilize()
Implement MAV_MOUNT_MODE_RC_TARGETING initialization
Document to make sure this radians/degrees mess up does not happen again
2012-07-07 21:56:56 +02:00
Andrew Tridgell
d755fedc26
AnalogSource: prevent a division by zero on zero ADC data
2012-07-06 19:59:18 +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
f501503eb0
AP_Baro: improved barometer averaging
...
this changes the barometer calculations to floating point. On a MS5611
this is actually about twice as fast as the previous 64 bit
calculations, but gains us more accuracy as we are able to take
advantage of sub-bit precision when we average over 8 samples.
2012-07-06 15:11:30 +10:00
Andrew Tridgell
520d762382
Filter: split the DerivativeFilter steps into update() and slope()
...
this allows us to apply new data at a different rate than we calculate
the slope.
2012-07-06 15:11:30 +10:00
Andrew Tridgell
3c7e521f70
AP_Baro: update MS5611 test to use baro library altitude
2012-07-06 15:11:30 +10:00
Andrew Tridgell
302696951a
AHRS: make the yaw independent drift correction optional and disable
...
the new correction algorithm copes poorly with gyro drift, leading to
signification attitude errors in the face of drift
2012-07-06 15:11:30 +10:00
Andrew Tridgell
8c5ef3e60f
AHRS: only enable barometer for AHRS if it is smooth enough
...
if we used less than 5 samples to compute the pressure then don't use
it for climb rate
2012-07-05 16:29:21 +10:00
Andrew Tridgell
ec0995eea1
SITL: lower baro noise a bit
2012-07-05 16:29:21 +10:00
Andrew Tridgell
6534dab719
Filter: fixed DerivativeFilter example build
2012-07-05 16:29:21 +10:00
Andrew Tridgell
d29b6ce0a8
SITL: run the HIL barometer at 80Hz to match APM2
2012-07-05 16:29:21 +10:00
Andrew Tridgell
209136386b
AP_Baro: added get_pressure_samples() interface
...
this returns how many samples were used to calculate the last pressure
2012-07-05 16:29:21 +10:00
Andrew Tridgell
1a42b10255
Filter: fixed typo in 9 point DerivativeFilter
2012-07-05 16:29:20 +10:00
Andrew Tridgell
185c6e5b32
AP_Baro: change to a 7 point DerivativeFilter for climb rate
2012-07-05 13:00:47 +10:00
Andrew Tridgell
75470dc912
Filter: cope with non-uniform time steps in the DerivativeFilter
...
this helps with the barometer a lot, as the timing is quite variable
2012-07-05 13:00:47 +10:00
Andrew Tridgell
f03ba86d9d
SITL: add some minimal noise when motors are off
...
this actually improves the gyro calibration
2012-07-05 13:00:46 +10:00
Andrew Tridgell
60caaa4b04
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
2cd6da2539
AHRS: only use GPS for yaw when compass is not being used
...
this avoids having two competing controllers
2012-07-05 13:00:46 +10:00
Andrew Tridgell
adfa97b6f8
AHRS: enable barometer for vertical velocity
...
this re-enables the barometer for vertical velocity information
for drift correction, now that we have a better filter
on the climb rate
2012-07-05 13:00:46 +10:00
Andrew Tridgell
f9fc7aafe7
AP_Baro: use DerivativeFilter in barometer climb rate
2012-07-05 13:00:46 +10:00
Andrew Tridgell
f19e5a6273
Filter: added DerivativeFilter implementation
...
this adds a DerivativeFilter implementation of up to 10 points
2012-07-05 13:00:46 +10:00
Andrew Tridgell
9f8703274c
AP_Baro: show climb rate in baro test sketch
2012-07-05 13:00:45 +10:00
rmackay9
b5f47f5e63
AP_Motors: clarified some doxygen descriptions for TradHeli
2012-07-05 08:46:50 +09:00
Amilcar Lucas
0febf76d9d
Document++
2012-07-05 00:33:46 +02:00
Amilcar Lucas
e9c72822dc
Remove unused function
2012-07-05 00:33:10 +02:00
Andrew Tridgell
c35a2e999b
SITL: added SIM_GPS_DELAY parameter
...
this allows a delay to be added to the gps data to test the impact on
AHRS/DCM
2012-07-04 21:05:22 +10:00
rmackay9
faeda3713e
AP_AHRS: removed DCM_test example sketch
...
No longer required because it doesn't compile and is redundant anyway because the AP_AHRS_DCM class is tested in the AHRS_Test example sketch.
2012-07-04 18:22:51 +09:00
Andrew Tridgell
3849ca8b5c
AHRS: make DCM drift correction not rely on accurate yaw
...
this uses a new formulation of the GPS based drift correction from
Bill Premerlani that rotates the error vector to avoid relying on
accurate yaw. This means we should get accurate roll/pitch correction
even with lots of magnetometer interference
It also makes it possible to fly a multicopter with no compass. It can
even navigate and correct yaw (slowly!)
2012-07-04 17:00:40 +10:00
Andrew Tridgell
1cd8c54f21
AP_Math: cope with co-located waypoints in location_passed_point()
2012-07-04 14:24:04 +10:00
Andrew Tridgell
468dfe3faa
AP_Math: the windows arduino build is missing acosf()
2012-07-04 14:14:58 +10:00
Andrew Tridgell
0bdce404a5
AP_Math: add include of math.h
...
this is needed for location.cpp
2012-07-04 13:59:23 +10:00
Andrew Tridgell
be9b9f3e67
DataFlash: fixed SITL build
2012-07-04 13:44:01 +10:00
Andrew Tridgell
dd24330645
DataFlash: fallback to BlockErase if ChipErase fails
...
The errata on the APM2 dataflash chip says that ChipErase may not work
on some chips
2012-07-04 12:42:46 +10:00
Andrew Tridgell
dd200cba31
Math: added location functions to math library
...
these do common calculations on struct Location
2012-07-04 12:42:46 +10:00
Andrew Tridgell
1314e4f872
AHRS: make P gain on PI roll/pitch controller tunable
...
this is to make it easier for Craig and Alan to tune
2012-07-04 12:42:46 +10:00
Andrew Tridgell
060cbe2030
AP_Mount: removed unused enum
2012-07-03 10:39:34 +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
057eb5e6f6
Baro: average over all pressure/temperature samples on MS5611
...
this allows us to use the MS5611 barometer at its full 100Hz sample
rate (80Hz for pressure, 20Hz for temperature). The pressure and
temperature values are averaged between reads without adding any
latency. Previously the driver would throw away values between
readings
This also fixes a race condition in reading from the SPI bus that
could lead to bad values from the barometer
2012-07-02 13:44:53 +10:00
Andrew Tridgell
f70cd71791
Baro: fixed build of MS5611 test code
2012-07-02 13:44:53 +10:00
Andrew Tridgell
769011e947
AnalogSource: added some example code
2012-07-01 15:01:05 +10:00
Andrew Tridgell
1fdcc3e8f0
SITL: added support for new analog source
...
removed analogRead() to prevent people using it
2012-07-01 15:01:05 +10:00
Andrew Tridgell
c8befe4536
AnalogSource: make the Arduino AnalogSource interrupt driven
...
this fixes several problems with reading analog sources:
- we were getting poor values because we didn't wait long enough for
an analog source to settle
- we wasted a lot of CPU cycles waiting for conversions
- we were not taking averages over many samples, which we did with
the old AP_ADC driver on the APM1
2012-07-01 15:01:05 +10:00
Andrew Tridgell
136c03c3c0
AHRS: include the P terms in get_gyro()
...
this makes it more useful for navigation controllers
2012-06-29 21:54:09 +10:00
Andrew Tridgell
acc6adf6e9
MPU6k: removed an unused variable
2012-06-29 21:54:09 +10:00
Andrew Tridgell
ed691fc465
SITL: added SITL class for controlling simulation
...
this holds mavlink settable parameters for controlling sensor noise
levels
2012-06-29 15:10:51 +10:00
Andrew Tridgell
16c55c64d4
AHRS: don't add the P terms in _omega
...
this can lead feedback via the _P_gain()
2012-06-29 15:10:51 +10:00
Andrew Tridgell
37fc6c46b9
AHRS: disable barometer for vertical acceleration
...
this seems to have been the cause of the 'flips' seen by Marco and
others. Testing by Craig and Alan shows that the flips are gone when
the barometric acceleration is removed.
It looks like a 5 point average filter is not enough to keep the
vertical acceleteration noise low. With high noise in the z axes, the
x and y axes are scaled back when the ge vector is normalised.
2012-06-28 11:12:49 +10:00
Andrew Tridgell
58c4d458dc
AHRS: re-instate new DCM drift correction code
...
This reverts commit 078489638d47fbaffde7c51249e36b5a8fc4ef9d.
2012-06-28 11:09:22 +10:00
Andrew Tridgell
fd241692d0
AHRS: revert to the old drift correction algorithm
...
we need to work out why Craigs quad flipped today before we enable
this new drift correction
2012-06-27 18:16:41 +10:00
Andrew Tridgell
a6543f1e84
SITL: removed an unused variable
2012-06-27 16:01:50 +10:00
Andrew Tridgell
5bccfbd94c
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
8e044a560b
AHRS: include P term in omega
...
thanks to Jon for suggesting this
2012-06-27 16:01:50 +10:00
Andrew Tridgell
37e2f2ee2c
AHRS: implement spin rate limits
...
this follows the method that Bill developed in his fastRotations
paper. We've demonstrated that this is indeed needed in APM, as we
were able to produce the 'dizzy' effects in both the ArduPlane and
ArduCopter simulator
2012-06-27 16:01:50 +10:00
Andrew Tridgell
e4a245179c
AHRS: cope with copters with no compass
...
if a copter doesn't have a compass, we can't use the GPS for gyro
drift correction
2012-06-27 16:01:50 +10:00
Andrew Tridgell
f4faf941e2
GPS: test the more modern MTK16
2012-06-27 16:01:50 +10:00
Andrew Tridgell
27761737ce
SITL: fixed GPS heading in simulated UBlox
...
longitude scale does not apply to velocity->heading conversions
2012-06-27 16:01:50 +10:00
Andrew Tridgell
b811653800
SITL: changes UBlox simulation to 5Hz
...
this matches the real UBlox driver
2012-06-27 16:01:50 +10:00
Andrew Tridgell
e4d28b12e5
Compass: remove the need to call calculate() on the compass object
...
the new AHRS code doesn't use calculate() and the compass.heading
attribute. Instead it works on the raw magnetometer vector. This
change removes the internal calculate state from the compass object
and instead adds calculate_heading() for use by older code that
doesn't go via AHRS.
This significantly reduces the calculation involved in compass updates
The null offsets enable/disable code is also removed, as it is not
needed now that compass offsets are not linked to the AHRS state.
2012-06-27 16:01:50 +10:00
Andrew Tridgell
3a41ad8e7c
AHRS: normalize the ge vector in drift correction, and use barometer
...
The normalisation ensures the error term scales uniformly with
different accelerations.
The barometer is used for vertical acceleration estimation
2012-06-27 16:01:50 +10:00
Andrew Tridgell
c387edd74c
Baro: added get_altitude() and get_climb_rate() interfaces
...
this allows the barometer driver to calibrate and return altitude and
climb rate values. This will be used by the AHRS drift correction code
for vertical velocity
The climb rate uses a 5 point average filter
2012-06-27 16:01:50 +10:00
Andrew Tridgell
06c8763881
Filter: added 5 point average float filter
2012-06-27 16:01:50 +10:00
Jonathan Challinger
d230690b7b
AHRS: brought DCM more inline with Bill's implementation
...
omega_I applied continuously. _ki larger. Stop integrating when _omega.length()>20
The key change was the scaling of ge to ensure the error is not
quadratic
2012-06-27 16:01:49 +10:00
Andrew Tridgell
d4c8041c51
AHRS: first successful version of Bills new drift correction system
...
This makes 3 major changes:
1) fixes the scaling of the yaw drift correction term to fix the time
constant
2) don't integrate the mag vector over multiple readings
3) accumulate omega_I changes over 15 seconds before applying, to try
to prevent omega_I picking up short term responses
2012-06-27 16:01:49 +10:00
Andrew Tridgell
4d08f75292
AHRS: update for new _fly_forward flag
2012-06-27 16:01:49 +10:00
Andrew Tridgell
0f5c22bd8e
AHRS: implement Bills new drift correction algorithm
...
this is an initial implementation of this paper:
http://gentlenav.googlecode.com/files/RollPitchDriftCompensation.pdf
2012-06-27 16:01:49 +10:00
Andrew Tridgell
52d77407d4
AHRS: added GPS support to AHRS test
2012-06-27 16:01:49 +10:00
Andrew Tridgell
37db5247cd
GPS: added velocity and acceleration components
...
used by AHRS for acceleration correction
2012-06-27 16:01:49 +10:00
Andrew Tridgell
fe865bc1dc
Math: added comment
2012-06-27 16:01:49 +10:00
Andrew Tridgell
c30b0d85a3
Math: moved more template functions to the .cpp files
...
save a bit more code space for larger functions
2012-06-27 16:01:49 +10:00
rmackay9
068fe64b9b
ArduCopter HIL: changed calls to setHIL to send in time as a uint32_t (it was a float)
2012-06-26 22:50:17 +09:00
Jason Short
7b9583453b
Added a crude Lead Filter. Needs some fine tuning, lag specification, scaling. Works great on 4hz GPS such as Mtek.
2012-06-21 11:14:20 -07:00
Amilcar Lucas
78ccb9d37f
Add linebreaks to increase readability.
2012-06-21 00:36:10 +02:00
Amilcar Lucas
b072a59843
Improve parameters descriptive text
2012-06-21 00:20:37 +02:00
Amilcar Lucas
594cedd324
Documentation improvements, no functional changes (only comments)
2012-06-17 22:53:54 +02:00
Amilcar Lucas
f4e9587aca
Move local temp variables to the stack it saves 1952 bytes
...
Add function comments
Only use _ on class member variables
Only point to a 3D GPS point if GPS has a fix
Implement MAV_MOUNT_MODE_MAVLINK_TARGETING
2012-06-17 22:25:51 +02:00
Wingspinner
d09ac5899b
Added support for channel curves (and expo) to AP_RC_Channel class. Also updated AP_RC_Channel example/test to demonstrate and test new functionality
2012-06-15 08:40:14 +00:00
Wingspinner
b699c77323
Added support for channel curves (and expo) to AP_RC_Channel class. Also updated AP_RC_Channel example/test to demonstrate and test new functionality
2012-06-15 08:38:52 +00:00
Andrew Tridgell
a851c53de4
GPS: need pgmspace.h for _write_progstr_block()
2012-06-15 16:27:11 +10:00
Andrew Tridgell
70f18289c5
GPS: fixed auto-config of UBlox setup with no UBX messages
...
if a UBlox is configured for NMEA only, with no UBX messages at all
then it would never trigger the GPS_AUTO detection. This adds a UBX
config message to the init strings that enables the NAV_SOL message
2012-06-15 15:53:27 +10:00
Andrew Tridgell
1fe297ab63
FastSerial: added tx_pending() method
...
this allows the caller to wait for the tx buffer to drain
2012-06-15 15:53:27 +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
rmackay9
1e38b0d535
AP_GPS_NMEA: fix from Roberto Navoni to improve NMEA accuracy
2012-06-12 20:27:50 +09:00
Andrew Tridgell
f9560ef093
GPS: use the new nav_setting in a couple of the sample sketches
2012-06-10 16:35:13 +10:00
Andrew Tridgell
33a2ad7e07
GPS: add stub settings for nav_setting in the other GPS drivers
...
only Ublox supports nav_setting so far
2012-06-10 16:34:53 +10:00
Andrew Tridgell
514be604a5
GPS: added auto-configuration of UBlox GPS
...
the Ublox will now auto-configure for 5Hz with just the messages we
want. It also supports setting the navigation engine type
2012-06-10 16:34:13 +10:00
Andrew Tridgell
9c1ce9e1c5
FastSerial: avoid buffer re-allocation on re-open if possible
...
we commonly re-open serial ports a lot in the AUTO GPS driver
2012-06-09 07:43:22 +10:00
Andrew Tridgell
cf4e56457b
SITL: map() is a C++ function, so needs to be in C++ part of the header
...
this fixes the ACM build
2012-06-08 17:09:23 +10:00
Andrew Tridgell
cbf477addd
GPS: added debug code to the main GPS class
2012-06-08 16:42:03 +10:00
Andrew Tridgell
a8bfc5d8e9
GPS: re-open the serial port with a 256 byte serial receive buffer
...
this ensures all GPS parsers have a 256 byte buffer available
2012-06-08 16:42:03 +10:00
Andrew Tridgell
296e651b30
GPS: fixed the UBLOX parser to handle unknown messages
...
the parser was broken in several ways:
1) when it received an unknown message it didn't update the ck_a and ck_b fields, so it
thought the message had a bad checksum, which meant it got out of protocol sync
2) the read() method would return false if the last message from the GPS was of an unknown type.
So we relied on the last msg always being one that we understand and want
3) the parser considered any valid UBLOX message to be 'new data', whereas we only actually get
a new fix when we get box a new position and velned message
4) the total message size per update is more than 128 bytes, but the serial port was opened
with only a 128 byte buffer, so we got corruption regularly
2012-06-08 16:42:02 +10:00
Andrew Tridgell
9c2ba2e814
GPS: tidy up the auto gps test
2012-06-08 16:42:02 +10:00
Robert Lefebvre
238a1ced2c
TradHeli adding ramp up time to Ch8 Throttle Pass-through.
2012-06-07 22:55:47 -04:00
Robert Lefebvre
df17ff3bc1
AP_MotorsHeli Syntax correction.
2012-06-04 15:53:07 -04:00
Andrew Tridgell
25c17a5425
re-enable the AP_Mount build
2012-06-04 19:32:11 +10:00
Andrew Tridgell
0f0cbce22f
GPS: fixed a race condition in the ublox driver
...
the status update comes as a separate message from the lat/lon
2012-06-04 14:47:58 +10:00
Andrew Tridgell
012fc35314
mavlink: fixed build with uart resend
2012-06-04 13:45:55 +10:00
Andrew Tridgell
b6467cb1fa
MAVLink: updates to mavlink headers to fix mavlink 1.0 issues
2012-06-04 13:34:07 +10:00
Andrew Tridgell
d8919731ee
Mavlink: fixed library build for MAVLink 1.0
2012-06-04 13:14:52 +10:00
Andrew Tridgell
ec1abbf987
SITL: fixed SITL build with mavlink10
2012-06-04 13:14:52 +10:00
Andrew Tridgell
60f8d09506
mavlink10: fixed MAV_VAR -> MAVLINK_TYPE
2012-06-04 13:14:51 +10:00
Andrew Tridgell
bccfb08c55
MAVLink: updated to latest upstream mavlink
...
this includes no significant changes
2012-06-04 13:14:51 +10:00
Jason Short
73e23aab2a
GPS time set to unsigned int32
2012-06-03 11:13:50 -07:00
rmackay9
5c9dc00ae2
AP_Baro: fixed comment to clarify that every-other call updates temperature or pressure
2012-06-03 17:31:17 +09:00
rmackay9
dcdeae412e
ArduCopter: Another attempt at fixing the lat/lon printing bug in which small negative lattitudes or longitudes were appearing as positives.
...
Fixed in both ArduCopter Log.pde and the GPS Auto test sketch
2012-06-03 16:58:19 +09:00
rmackay9
173ae33627
ArduCopter Desktop Build: added definition of "map" to wiring.h and included WMath.cpp to fix SITL build failures.
...
All real work on this issue done by Michael Oborne.
2012-06-02 17:46:00 +09:00
rmackay9
c82a403b88
AP_MotorsHeli: Added reference to "Arduino.h" to allow autotest builder to work.
...
Moved around initialisation of parmeters in AP_MotorHeli object to remove compiler warnings.
2012-06-02 16:13:23 +09:00
rmackay9
c3b1a79f6a
RC_Channel library: change all "int" types to "int16_t".
...
Fixes SITL compile error due to type mismatch of set_pwm between .h and .cpp file (this only occurs because on the SITL, "int" is actually "int32_t"
2012-06-02 14:20:58 +09:00
rmackay9
d9f124afbb
RC_Channel.pde: fixed compile errors so that it actually works!
2012-06-02 14:00:44 +09:00
rmackay9
2a216ce900
ArduCopter: fixed print_latlon bug in which it would print negative lat/lon numbers incorrectly (i.e. -1234567890 would be printed as -124.xxx).
2012-06-02 12:51:12 +09:00
Jason Short
c2d14a5cad
RC_Channel fix for throttle output.
...
throttle was outputting incorrectly and allowing the user to max out the throttle leaving nothing for attitude control
2012-05-31 14:59:03 -07:00
Jason Short
0adb5cb396
Issue 416: RC_Channel – Fix to make dead_zones still output 0
2012-05-31 12:05:47 -07:00
Jason Short
1c690b44de
removed never used filter, and fixed a constrain that could make range calcs go bad
2012-05-31 11:45:07 -07:00
Jason Short
862b374d19
Channel rage fix - low output was always 0 vs _low
2012-05-31 11:31:48 -07:00
Robert Lefebvre
5f058fb9b2
TradHeli: Incorporating Ext ESC Control
2012-05-30 21:50:25 -04:00
Robert Lefebvre
56335e81e4
Fix TradHeli Collective Yaw Effect bug.
2012-05-25 15:25:21 -04:00
Andrew Tridgell
ddfa06e857
SITL: fixed ChipErase()
...
the loop never completed
2012-05-23 21:15:45 +10:00
Andrew Tridgell
6e444f6b64
SITL: fixed build with new ChipErase() call
2012-05-23 17:33:33 +10:00