Adam M Rivera
f35e447927
AP_Declination: Updated compressed lookup value table. Located 9 more failure points due to truncation on the packed LUT.
13 years ago
Adam M Rivera
72b70c394c
AP_Declination: Found 7 of the 22 failure points and fixed them. The issue with those 7 was the way I originally packed the value array. The last delta values on some rows were getting truncated. The new number of failures is down to 15 - WIP.
13 years ago
Adam M Rivera
076192db51
AP_Declination: Updated test to run in 5 degree increments. Changed to only print failures and also print total pass vs total fail.
13 years ago
Adam M Rivera
230ca1ddca
AP_Declination: Moved check for y index of zero to after the y index is properly transformed.
13 years ago
Adam M Rivera
e0fa053c79
AP_Declination: The exception signs unpacking logic was incorrect. I was shifting a 1 value left y%8 which would have needed a the signs to be packed right to left. My packed signs byte was packed left to right (left most being the 0 position) so I needed to reverse the shifting.
13 years ago
Adam M Rivera
f66c6e16e4
AP_Declination: In order for the bitwise & operation to work, negative signs need to be represented by 1s instead of 0s. Changed so that negative signs are represented by a 1 in the packed signs array. Updated lookup logic to reflect this change.
13 years ago
Adam M Rivera
d88b9e8ffc
AP_Declination: Updated packed exception signs array. I had the signs packed incorrectly.
13 years ago
Adam M Rivera
036da88174
AP_Declination: Changed test to run in increments of 10 degrees. 1 was too granular.
13 years ago
Adam M Rivera
580b274bde
AP_Declination: Added original array to test sketch. Added loop to validate new compressed array against original in 1 degree steps.
13 years ago
Adam M Rivera
efefc3e4f4
AP_Declination: Moved rows with large spikes in delta to their own unsigned exception rows. The signs are in a separate packed array.
13 years ago
Adam M Rivera
0dcc4e8307
AP_Declination: Implemented Delta Encoding and Run-Length Encoding. Added method to traverse the compressed array and return the lookup value based on the same lat_index/lon_index that was used before.
13 years ago
Adam M Rivera
3a849771bc
AP_Declination: Changed PROGMEM read function to pgm_read_word_far to support the int16_t datatype.
13 years ago
Adam M Rivera
370e56c00a
AP_Declination: Changed datatype to int16_t to support the -90 <-> 90 latitude range.
13 years ago
Adam M Rivera
ae257ad42b
AP_Declination: Reduced the size of the lookup table to support -75 <-> 70 latitude range. This allows the datatype to remain int8_t.
13 years ago
Andrew Tridgell
b549b88e5e
AHRS: fixed error_yaw reporting with 2 MAVLink connections
...
when a user first connects with USB, and later switches to the
telemetry port without restarting we were getting zero for error_yaw
in the logs, as AHRS.get_error_yaw() was being called twice.
This ensures we give the last value after the counter is reset
13 years ago
Andrew Tridgell
16deefce31
Compass: fixed a comment
13 years ago
Andrew Tridgell
17290836ef
Compass: added some more comments
...
explain the algorithm a bit more
13 years ago
rmackay9
2ce597642e
Filter - added FilterWithBuffer typedefs for int32t and uint32 for ease of use
13 years ago
rmackay9
90fcdeadfd
AP_OpticalFlow - small bug fix to ensure init attempts to read the product id 3 times before giving up
13 years ago
Andrew Tridgell
10c35e3769
SITL: add magnetic field noise to the simulated compass
13 years ago
Andrew Tridgell
f4c1b6a3c6
SITL: ensure we don't run the sitl timer twice
...
this caused problems with random()
13 years ago
Andrew Tridgell
b2d6db9479
Compass: implement noise resistant varient of offset learning
...
This adds a large amount of noise robustness to the compass offset
learning algorithm, at a cost of 120 bytes of memory. The changes are
based on a long discussion with Bill Premerlani.
13 years ago
Andrew Tridgell
9b95d2060a
ADC: minor fix to the ADC Ch6() code
...
we don't need to add count any more, as floating point maths doesn't
need to round up
13 years ago
Andrew Tridgell
a72d4b46b3
Compass: implement Bills new offset nulling algorithm
...
this seems to work much better than the old algorithm, converging
faster and more accurately. Even better, it has no linkage to DCM, so
no possibility of nasty feedback effects
13 years ago
rmackay9
b5dbdab81e
APM_RC - moved Force_Out0_Out1, Force_Out2_Out3 and Force_Out6_Out6 to APM_RC parent class because it's already implemented in the APM1 and APM2 child classes anyway
13 years ago
rmackay9
2b2dbf2a7f
Filter - added simple LowPassFilter (simple but it's possible to make errors with simple stuff too so might as well have one)
13 years ago
rmackay9
39fd24ed14
Filter - remove obsolete warning from comments re alloc/malloc dangers
13 years ago
rmackay9
2d65ec2874
AP_Baro - change data type size of temperature's average filter to int32_t (was int16_t)
13 years ago
rmackay9
d371862fd2
AP_OpticalFlow - resolved compile error in example sketch (it could not find DCM.h but it's not required anyway)
13 years ago
Andrew Tridgell
a6d66dc45b
Math: added mul_transpose() operation
...
this is equivalent to multiplying by m.transposed(), but is more
efficient
13 years ago
Andrew Tridgell
f4d1295a4b
AHRS: fixed build of AHRS example
13 years ago
Andrew Tridgell
fe55a76335
Math: moved matrix multiple operations to .cpp file
...
this means we only link this in once, rather than for every use of
matrix multiply, which saves us some flash space
We need to be careful not to put large pieces of code in template
headers, as if the operation is used a lot, it costs us a lot of code
space
13 years ago
Andrew Tridgell
17fbb8ea26
Math: fixed the build of the eulers test in SITL
13 years ago
Andrew Tridgell
90c3d230d9
SITL: improve the simulated compass
...
this implements a much more accurate model of a compass using matrix
rotations, instead of trying to calculate components directly
13 years ago
rmackay9
24a471ff8f
AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods
13 years ago
Andrew Tridgell
9f4becbacf
AHRS: added AHRS specific MAVLink headers
13 years ago
Andrew Tridgell
9e6c18cca4
AHRS: added missing AP_AHRS.h
13 years ago
Andrew Tridgell
4f82134a5e
DCM: use the new rotate() method from AP_Math
...
this allows us to use a tested and optimised rotation method
13 years ago
Andrew Tridgell
17f7292fe9
Math: added a test for the rotate() method
13 years ago
Andrew Tridgell
c16b353ea7
Math: added rotate() method to Matrix3f
...
this is the core method used to update the DCM matrix with a gyro
vector. Moving it to AP_Math allows us to have a test for it
13 years ago
Andrew Tridgell
31e566475b
Math: added zero() and identity() methods to Matrix3f
13 years ago
Andrew Tridgell
c53b320e00
Quaternion: change signs in AP_AHRS_Quaternion
...
thanks to Justin for the suggestion
13 years ago
Andrew Tridgell
d948a28e7c
Math: change signs in quaternion library
...
thanks to Justin for the suggestion
13 years ago
Andrew Tridgell
af9ce0cfc9
Math: allow eulers test to build with AP_Declination library
13 years ago
Andrew Tridgell
72a761170b
Math: fixed build of eulers test on SITL
13 years ago
Andrew Tridgell
58a68c89d9
Math: added a function to combine standard rotations
...
this will allow us to have an overall board rotation plus a per-sensor
rotation
13 years ago
Andrew Tridgell
8ae0ea7e37
AP_Mount: adapt library for AHRS framework
13 years ago
Andrew Tridgell
79b9be8b1a
AHRS: fixup the AHRS test suite for the new framework
13 years ago
Andrew Tridgell
f8087d3c67
AHRS: adapt the quaternion library to AHRS
13 years ago
Andrew Tridgell
8dcf82b433
AHRS: adapt the DCM_HIL library to AHRS
13 years ago