Andrew Tridgell
e33554a1f9
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
1ce4a03147
SITL: lower baro noise a bit
2012-07-05 16:29:21 +10:00
Andrew Tridgell
9f3da1bf7f
Filter: fixed DerivativeFilter example build
2012-07-05 16:29:21 +10:00
Andrew Tridgell
5f38669666
SITL: run the HIL barometer at 80Hz to match APM2
2012-07-05 16:29:21 +10:00
Andrew Tridgell
735c88e9b3
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
92001e3e7d
Filter: fixed typo in 9 point DerivativeFilter
2012-07-05 16:29:20 +10:00
Andrew Tridgell
999a1d1d55
AP_Baro: change to a 7 point DerivativeFilter for climb rate
2012-07-05 13:00:47 +10:00
Andrew Tridgell
a07e280eda
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
ce3f8be6c7
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
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
9d7ed30023
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
6653c0b874
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
a5d607d25a
AP_Baro: use DerivativeFilter in barometer climb rate
2012-07-05 13:00:46 +10:00
Andrew Tridgell
f97289792b
Filter: added DerivativeFilter implementation
...
this adds a DerivativeFilter implementation of up to 10 points
2012-07-05 13:00:46 +10:00
Andrew Tridgell
cf2c546051
AP_Baro: show climb rate in baro test sketch
2012-07-05 13:00:45 +10:00
rmackay9
be3d035a64
AP_Motors: clarified some doxygen descriptions for TradHeli
2012-07-05 08:46:50 +09:00
Amilcar Lucas
6904bef611
Document++
2012-07-05 00:33:46 +02:00
Amilcar Lucas
8400bd67f8
Remove unused function
2012-07-05 00:33:10 +02:00
Andrew Tridgell
dc6d70bc15
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
cac0757c2e
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
03516b7dfa
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
6cf2e2fa13
AP_Math: cope with co-located waypoints in location_passed_point()
2012-07-04 14:24:04 +10:00
Andrew Tridgell
7be29c8b04
AP_Math: the windows arduino build is missing acosf()
2012-07-04 14:14:58 +10:00
Andrew Tridgell
8fa1acb141
AP_Math: add include of math.h
...
this is needed for location.cpp
2012-07-04 13:59:23 +10:00
Andrew Tridgell
597170afdc
DataFlash: fixed SITL build
2012-07-04 13:44:01 +10:00
Andrew Tridgell
c6ff292721
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
84a489498d
Math: added location functions to math library
...
these do common calculations on struct Location
2012-07-04 12:42:46 +10:00
Andrew Tridgell
e0685f4408
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
1142ec0665
AP_Mount: removed unused enum
2012-07-03 10:39:34 +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
Andrew Tridgell
7a77832f45
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
f7b06e0a64
Baro: fixed build of MS5611 test code
2012-07-02 13:44:53 +10:00
Andrew Tridgell
2bd5cd3b9a
AnalogSource: added some example code
2012-07-01 15:01:05 +10:00
Andrew Tridgell
0341e0e5f0
SITL: added support for new analog source
...
removed analogRead() to prevent people using it
2012-07-01 15:01:05 +10:00
Andrew Tridgell
2046e396a2
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
b5aa821071
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
02b9ea4dfe
MPU6k: removed an unused variable
2012-06-29 21:54:09 +10:00
Andrew Tridgell
117bae9585
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
37494dda2b
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
21ae2957fb
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
e531061caa
AHRS: re-instate new DCM drift correction code
...
This reverts commit 078489638d47fbaffde7c51249e36b5a8fc4ef9d.
2012-06-28 11:09:22 +10:00
Andrew Tridgell
8600ad8d7f
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
70bfacc350
SITL: removed an unused variable
2012-06-27 16:01:50 +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
ce016b5ae8
AHRS: include P term in omega
...
thanks to Jon for suggesting this
2012-06-27 16:01:50 +10:00
Andrew Tridgell
0fa1f29cf3
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
3ffecc18d8
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
3458962184
GPS: test the more modern MTK16
2012-06-27 16:01:50 +10:00
Andrew Tridgell
426006d98f
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
20c1baf585
SITL: changes UBlox simulation to 5Hz
...
this matches the real UBlox driver
2012-06-27 16:01:50 +10:00