Commit Graph

1286 Commits

Author SHA1 Message Date
Andrew Tridgell dd9065123c SITL: use the new noise model
use the new noise model at a low level for master until we sort out
DCM noise handling
2012-03-02 18:31:07 +11:00
Andrew Tridgell 63ea5dfb49 APM_RC: allow the fast RC speed to be passed as a parameter
this will allow users to test different speeds
2012-03-02 17:57:08 +11:00
Andrew Tridgell f1a389fe19 AP_Param: ensure we can't have duplicate keys in Parameters.h
this is O(n^2), but only at startup, and takes less than 1ms to run.
It catches a very nasty coding error
2012-03-02 15:48:28 +11:00
Andrew Tridgell 1476f044e6 I2C: added lockup_count() interface
used for reporting I2C problems
2012-03-02 15:48:27 +11:00
Andrew Tridgell c9031f1d36 SITL: implement cli()/sei() properly for desktop build
this disables simulated hardware interrupts during critical sections
2012-03-02 15:48:27 +11:00
Jason Short 59e1d43f60 Updated fastPWM to 490Hz 2012-02-29 22:17:38 -08:00
Pat Hickey 8fa559930f AP_Param: nested group recursion into next_group disableable by macro
* c.f. 0251932c81fe7eb, e5515bb6ef82
2012-02-29 19:48:43 -08:00
Pat Hickey 8b3d013294 AP_Param: One more nexted group recursion disableable by macro
* c.f. e5515bb6ef82
2012-02-29 18:48:54 -08:00
rmackay9 9832ac879e AP_Compass - fixed compile warning 2012-02-29 22:57:35 +09:00
rmackay9 0311b70004 AP_Baro - fixed small compiler warning to do with order of parameters in constructor 2012-02-29 22:46:29 +09:00
rmackay9 64f9f1d92e AP_Compass - fixed small compiler warning to do with order of parameters in constructor 2012-02-29 22:45:49 +09:00
rmackay9 7c1d1b45a7 AP_DCM - fixed small compiler warning to do with order of parameters in constructor 2012-02-29 22:45:26 +09:00
rmackay9 3cbd172ea9 RC_Channel - fixed small compiler warning 2012-02-29 22:44:29 +09:00
rmackay9 ced49f7d01 AP_ADC - removed small compiler warning 2012-02-29 22:43:46 +09:00
Pat Hickey 42078f2794 AP_Param: Make nested group recursion disableable by macro
* Eliminates recursive calls inside AP_Param.
  This is important to Pat @ Galois, but not the project in general.
  Recursion depth on these functions is bounded structurally using
  existing nested group constructors (can't create loops in finite space)
  and checked at init time
2012-02-28 16:28:27 -08:00
rmackay9 400a4b0bdb AP_RangeFinder - changed example sketch to work with new Filter library 2012-02-28 21:02:10 +09:00
rmackay9 5b89c65d9c Filter - updated example sketch to use modified library 2012-02-28 21:01:35 +09:00
rmackay9 d17a015df1 Filter - added AverageFilter, removed SumFilter
added FilterWithBuffer to allow removal of malloc/free without losing ability to pass around filter objects
2012-02-28 21:01:11 +09:00
Andrew Tridgell 078268528e AP_Param: show numerical value in eeprom dump utility 2012-02-28 09:43:49 +11:00
Andrew Tridgell 701da6c30f AP_Param: fixed v.load() on a sub-element of a AP_Vector3f
this isn't actually used at the moment in APM, but we should get it
right in case someone does try to load a single element of a vector
2012-02-28 09:43:49 +11:00
Andrew Tridgell 34f1ebcfb4 SITL: simulate noise on each ADC channel separately
scale the noise based on the period of the motors
2012-02-28 09:43:49 +11:00
Andrew Tridgell 4cdc0a8c11 SITL: raise the ADC noise level to 8 bits when flying
this is about the level of noise of a aircraft that has a lot of
vibration
2012-02-28 09:43:49 +11:00
Andrew Tridgell b32701e008 IMU: removed unused accel_filtered code 2012-02-28 09:43:49 +11:00
Andrew Tridgell ac44b73951 AP_Param: fixed setting of CAM_P_G in ArduCopter
the variable CAM_P_G has the same prefix as the CAM_P group. We want
to allow for parameters having a common prefix with a group, so we
need to keep searching after we've found a group that matches the
prefix
2012-02-27 10:54:33 +11:00
Andrew Tridgell 7fe4a41c31 AP_Param: make the templating code a bit clearer
add comments on the arguments, and name them in a clearer way
2012-02-27 10:54:33 +11:00
Andrew Tridgell 5bf138fb38 DCM: fixed the sense of the compass GPS test in initial yaw
we were only disabling null offsets when we didn't have a compass,
which doesn't make much sense!
2012-02-26 22:24:45 +11:00
rmackay9 747e045193 ModeFilter - corrected shadowed variable compiler warning for drop_high_sample 2012-02-26 17:57:28 +09:00
rmackay9 e01477a7a8 Filter - added AverageFilter - this will be used in place of SumFilter because it removes the possibility of overflows 2012-02-26 17:34:36 +09:00
rmackay9 b345529241 Filter - removed shadowing of variables in constructors for Filter, ModeFilter and SumFilter (sorry tridge!)
increased maximum sample buffer size from 6 to 10
2012-02-26 17:17:46 +09:00
rmackay9 3f0d27ec87 ModeFilter - remove older ModeFilter library (new library is now in Filter directory) 2012-02-26 15:36:23 +09:00
rmackay9 00a1b5cd53 AP_RangeFinder - cut over to use new ModeFilter from Filter library 2012-02-26 15:34:50 +09:00
rmackay9 ae8fd43335 Filter - first version of filter library include ModeFilter 2012-02-26 15:34:05 +09:00
rmackay9 f6f05755d9 AP_Mount - #include FastSerial first to allow it to compile under Arduino 1.0 2012-02-26 15:31:56 +09:00
Andrew Tridgell bd2776aedd Compass: use constructor to set initial values for _learn and _use_for_yaw
this ensures they are set if you have MAG_ENABLE==0
2012-02-25 17:36:31 +11:00
Andrew Tridgell 56bb74ef36 DCM: disable compass null offsets when setting initial yaw
we need to ensure the compass null offsets code doesn't see a sudden
yaw change, or it will change the offsets by a large amount very
suddenly
2012-02-25 16:02:24 +11:00
Andrew Tridgell f50f4357ca Compass: catch the case of a user enabling a compass mid-flight
if a compass has not been initialised at startup we can't enable it
mid-flight, as we don't have the orientation
2012-02-25 14:51:09 +11:00
Andrew Tridgell 3abe035557 DCM: use the new use_for_yaw() compass method 2012-02-25 14:51:09 +11:00
Andrew Tridgell c3319afadd Compass: added COMPASS_LEARN and COMPASS_USE parameters
these allow you to control if the compass should be used for yaw and
if it should learn its offsets. This is useful for locking in compass
offsets once they are confirmed to be good, and for learning offsets
without using them in flights.

The default is to behave the same as previously, which is
COMPASS_LEARN=1 and COMPASS_USE=1
2012-02-25 14:51:08 +11:00
Andrew Tridgell 051bd78b37 AP_Param: added some comments on AP_Vector3f handling 2012-02-25 11:37:20 +11:00
Andrew Tridgell 3cf0eebac8 DCM: don't reset _have_initial_yaw for GPS heading unless very slow
wait till we reach 1m/s before we reset _have_initial_yaw. This
prevents us continually resetting the DCM matrix if our ground speed
is close to 3m/s.
2012-02-25 11:37:20 +11:00
Andrew Tridgell 007a6b8958 AP_Param: added special handling for Vector3f
We would like to be able to use Vector3f as a parameter while exposing
the individual elements of the vector as MAVLink parameters. This
change to AP_Param makes that possible, by giving AP_Vector3f a dual
personality
2012-02-25 11:37:20 +11:00
Andrew Tridgell 1d95137b71 SITL: added -C option to desktop mode
this allows running APM to stdout, which is useful for test sketches
2012-02-25 11:37:20 +11:00
Andrew Tridgell f221bd13ab libs: removed unused library GPS_IMU 2012-02-25 11:37:20 +11:00
Andrew Tridgell 1a21c78062 libs: removed unusued library GCS_SIMPLE 2012-02-25 11:37:20 +11:00
Andrew Tridgell c63ca9c697 DCM: tidy up use of error_course and in_motion
in_motion is not a good name now it is also used for the compass

The error_course and heading component values don't need to be part of
the DCM object, they can be on the stack to reduce the memory usage a bit
2012-02-25 11:37:20 +11:00
Andrew Tridgell d5b619218c DCM: use rotation_matrix_from_euler() to calculate initial yaw
When we first get a compass reading or we first start motion we need
to setup the DCM matrix with the right yaw. This uses
rotation_matrix_from_euler() to get a DCM matrix corresponding to our
current roll/pitch, but with the correct yaw
2012-02-25 11:37:20 +11:00
Andrew Tridgell 48cad8bc25 DCM: use rotation_matrix_from_euler() in matrix reset
this makes the code a bit easier to read
2012-02-24 11:54:11 +11:00
Andrew Tridgell 5009679617 DCM: use calculate_euler_angles() to get eulers from DCM
this makes the code a bit easier to understand
2012-02-24 11:52:55 +11:00
Andrew Tridgell df6013616e AP_Math: added rotmat <-> euler functions
these will make the dcm matrix manipulation easier to understand
2012-02-24 11:52:55 +11:00
Andrew Tridgell 50f85835bd Compass: ensure we don't produce NAN values for compass heading
this leaves the previous heading values alone if we are at a pitch of
exactly 90 or -90, at which point we can't compute a meaningful
heading
2012-02-24 11:52:55 +11:00