Andrew Tridgell
734dcebb2a
SITL: fixed ChipErase()
...
the loop never completed
2012-05-23 21:15:45 +10:00
Andrew Tridgell
5e0d937e50
SITL: fixed build with new ChipErase() call
2012-05-23 17:33:33 +10:00
Andrew Tridgell
c2fb8a7a98
DataFlash: use ChipErase() instead of PageErase() on all pages
...
This makes the DataFlash erase much faster (about 6 seconds instead of
about 60 seconds).
We need to test and ensure the behaviour is equivalent apart from the
speed
2012-05-22 19:29:02 -07:00
Andrew Tridgell
8f27297896
DCM: fixed a bug when using GPS for yaw correction
...
When using GPS for yaw correction we need to apply the x and y omegaI
corrections from the _omega_I_sum in the period before we get to the
minimum ground speed for GPS yaw correction. Otherwise we get a large
sudden omega_I change on takeoff.
2012-05-21 12:15:06 +10:00
Andrew Tridgell
37f652e19b
AP_Common: fixed some duplicate product ID warnings
2012-05-17 23:37:32 +10:00
rmackay9
eaeaa3811a
ArduCopter: bug fix for reversing tri servo
...
Extended AP_MotorsTri class to take in pointer to rc_tail servo (rc_7) and we use this servo's REV parameter to determine whether to reverse the output to the tail servo or not
2012-05-13 12:36:46 +09:00
Craig Elder
fe742f1c23
IMU: expose IMU_PRODUCT_ID as EEPROM Variable
...
this will allow us to log the Product ID in tlogs
2012-05-09 18:30:36 -07:00
Craig Elder
c323a71933
AP_InertialSensor: Return product ID from sensor initialization
...
this exposes the product ID to the IMU Layer
2012-05-09 18:30:36 -07:00
Craig Elder
a22b15adf1
PRODUCT: Define product IDs for all supported products
2012-05-09 18:30:36 -07:00
Craig Elder
b824a87b90
MPU6000: Fixed Scaling on Accelerometers Rev C vs Rev D
...
Rev C have non standard scaling factor that is 1/2 of the data sheet
Rev D chips conform to the specification
2012-05-09 18:30:35 -07:00
Chris Anderson
46614e9acd
fixed typo ("minimum" should have been "maximum")
2012-05-06 15:50:19 -07:00
Andrew Tridgell
76a3fd9a4e
MPU6k: added suspend/resume on init
2012-05-01 12:06:54 +10:00
Andrew Tridgell
ae1702c20b
Baro: added suspend/resume on init
2012-05-01 12:06:54 +10:00
Andrew Tridgell
3115d48ba1
ADC: added suspend/resume on init
2012-05-01 12:06:54 +10:00
Andrew Tridgell
57ac39649a
TimerProcess: added suspend_timer()/resume_timer()
...
this will be used to avoid races in driver initialisation
2012-05-01 12:06:54 +10:00
rmackay9
3b2d203f0f
AP_AHRS: updated default AHRS_YAW_P to 0.2 (was 0.4)
...
This reduces the compass's default authority over the yaw direction by half
2012-04-30 17:29:45 +09:00
Andrew Tridgell
8f2cecae4d
MAVLink: re-generated with new pygen
...
this moves the enums to make them less order sensitive
2012-04-30 12:27:30 +10:00
Adam M Rivera
292f9699fa
Parameters.pde/AP_MotorsHeli: Updated comments to leverage the new value aliases
2012-04-28 20:50:41 -05:00
Andrew Tridgell
3177f57d48
build: cope with Arduino 1.0 in command line build
...
this should autodetect 1.0 versus older builds
2012-04-27 15:38:42 +10:00
Adam M Rivera
21886104a6
Parameters.pde/AP_MotorsHeli.cpp: Added comments from Roberts clone.
2012-04-26 18:26:14 -05:00
Adam M Rivera
b1f19dbb01
AP_AHRS_DCM.cpp: Added comments that follow the new parse structure
2012-04-25 12:00:42 -05:00
Andrew Tridgell
532ac607b2
sitl: support MAVLink 1.0 builds
2012-04-24 22:24:58 +10:00
Andrew Tridgell
fef4134702
MAVLink: removed the cpp part of the library
...
this was preventing building MAVLink 1.0 with the arduino GUI as we
can't set cpp defines
2012-04-24 22:24:58 +10:00
Andrew Tridgell
9bf8d60dae
MAVLink: one more define for MAVLink 1.0 compat
2012-04-24 19:54:20 +10:00
Andrew Tridgell
fd9d2f856e
MAVLink: re-add the XML message definitions
...
these are a very useful reference for the current headers in the code
2012-04-24 10:57:43 +10:00
Andrew Tridgell
a54cd57568
MAVLink: imported new mavlink header updates
...
this fixes the camera control code which was broken by a previous
import
2012-04-24 10:57:43 +10:00
Andrew Tridgell
bff8fc8947
APM_RC: added OutputCh_current() method
...
this allows logging of the actual servo output values. The radio_out
method previously used doesn't take account of the various override
mechanisms available via waypoints
2012-04-24 10:57:43 +10:00
Andrew Tridgell
6d837891b0
DCM: buffer omega_I changes over 10 seconds
...
this buffers up _omega_I changes in _omega_I_sum over a period of 10
seconds, applying the slope limit only when _omega_I_sum is
transferred to _omega_I.
The result is a huge improvement in the ability of _omega_I to track
gyro drift over the long term.
2012-04-23 12:13:25 +10:00
Andrew Tridgell
398a608b83
DCM: drop the 'drop z' method
...
the 'drop z' method reduced the impact of noise on omegaI, but it also
made us more sensitive to errors in accelerometer calibration and
scaling, as demonstated by the logs from Gabor here:
http://diydrones.com/xn/detail/705844:Comment:834373
Simulation testing shows that the other noise suppression methods
applied in the DCM code, in particular the slope limiting on omegaI
the removal of the weighting and the upcoming use of a _omega_I_sum
buffer have reduced the impact of noise enough that we can now safely
include z in the acceleration calculation.
2012-04-23 12:13:24 +10:00
rmackay9
c62ce95768
AP_Motors - allow tail servo to be reversed. Closes ArduCopter issue #228
2012-04-21 23:07:57 +09:00
rmackay9
346ca5c865
DataFlash_APM2 - moved CS_inactive call (which disables the dataflash) from the beginning to the end of all methods. This means the dataflash does not monopolize the SPI bus.
...
Also formatting changes to use tab instead of space. Sorry, should have done this as a separate check-in to the above changes.
2012-04-21 20:14:45 +09:00
rmackay9
577f18a09c
AP_OpticalFlow - updated test sketch to allow testing of APM2 version
2012-04-21 20:11:18 +09:00
rmackay9
e9fd7c955d
AP_OpticalFlow - added support for optical flow for APM2
2012-04-21 20:10:35 +09:00
rmackay9
026cd4e64f
AP_OpticalFlow - moved most pin definitions into .cpp file
2012-04-21 20:09:15 +09:00
James Goppert
750c30afc1
MAVLink update to 1.0.7
2012-04-20 12:31:50 -04:00
Andrew Tridgell
4652b30adf
GPS: u-center config file for 3DR Ublox
2012-04-20 22:05:30 +10:00
Andrew Tridgell
0b194259be
GPS: fixed auto GPS test
2012-04-20 22:05:30 +10:00
Andrew Tridgell
3141cfe059
GPS: detect new style 3DR UBlox
2012-04-20 22:05:30 +10:00
Andrew Tridgell
64d5f4c26a
GPS: fixed the UBlox test code
2012-04-20 20:57:08 +10:00
James Goppert
b5ca40e8c5
Updated MAVLink to 1.0.6 release.
2012-04-19 15:46:29 -04:00
Adam M Rivera
2c8cd0b07b
AP_AHRS_HIL.h: Fixed HIL build by adding missing public property.
2012-04-16 10:26:14 -05:00
Andrew Tridgell
a9de75156b
AHRS: added AHRS_YAW_P parameter
...
this allows users to change the yaw gain in DCM
2012-04-16 20:55:13 +10:00
analoguedevices
ce5d71c08c
added missing #include
2012-04-09 14:32:54 +00:00
rmackay9
4dac4c4c11
AP_AHRS - changed parameter order to remove compiler warning
2012-04-09 17:37:11 +09:00
rmackay9
cc191b86c0
AP_Compass - changed parameter initialisation order to remove compiler warning
2012-04-09 17:37:02 +09:00
Andrew Tridgell
7921d33c40
MAVLink: imported new mavlink headers
...
this adds local and remote radio noise levels
2012-04-08 12:22:17 +10:00
rmackay9
1b4ac37e66
AP_MotorsMatrix - fixed stability patch issue in which it would not limit a motor's output unless an opposite motor had been defined. This would only have affected Y6 frames.
2012-04-07 12:16:12 +09:00
rmackay9
e63e858b64
AP_MotorsOcta - V Frame - test order fix spotted by David Wiens
2012-04-07 08:11:28 +09:00
rmackay9
d0cbd577cd
AP_Motors - fixed last "shadowing" compiler warning caused by badly named parameter in auto_armed method.
2012-04-05 00:28:04 +09:00
rmackay9
c27b83c8a8
AP_MotorsMatrix - fixed another compiler error regarding shadowing a variable. Fixed by removing those the angle and direction arrays which weren't even used
2012-04-05 00:24:56 +09:00
rmackay9
e9f0103063
AP_MotorsHeli - fixed compiler warning re move_swash function declared with int parameters in .h file but actually using int16_t in .cpp file. They're the same in arduino but perhaps the build checker is a little more strict that Arduino.
2012-04-05 00:06:33 +09:00
rmackay9
40e5a15452
AP_Motors - fix compiler warning re shadowing a variable caused by badly named parameter in armed function.
...
Another compiler warning fixed in AP_MotorsMatrix.cpp caused by declaring "i" twice.
2012-04-04 23:59:51 +09:00
rmackay9
71ad185238
ArduCopter - AP_Motors library - added new library which has few advantages over current code:
...
1. it's step towards rearchitecting the current code base ahead of a move to RTOS.
2. internally it uses a MatrixTable for the Quad, Octa, OctaQuad, Y6 frames.
3. it implements the missing stability patch for Octa and OctaQuads (still missing for Y6)
Later check-ins will incorporate into the main ArduCopter code.
2012-04-02 17:26:37 +09:00
Andrew Tridgell
5ce5f3d176
MAVLink: import change to txbuf as a percentage
2012-04-02 11:18:53 +10:00
Andrew Tridgell
8a215c8b55
MAVLink: imported new headers, with RADIO packet
2012-04-01 21:44:44 +10:00
Andrew Tridgell
08b66e18b7
FastSerial: added set_blocking_writes() interface
...
this allows us to put a serial port into non-blocking mode, so that
writes that don't fit in the transmit buffer are dropped. This will be
used in flight to prevent stray printf() calls from causing large time
delays in the code
2012-03-30 17:46:20 +11:00
Andrew Tridgell
c2ff66c9cd
examples: fixed build of some examples with new AP_Declination code
2012-03-30 14:25:27 +11:00
Andrew Tridgell
825340d53d
Compass: added COMPASS_AUTODEC option
...
when this is 1 (which is the default), we will get the declination
automatically via the AP_Declination library
when it is 0 we will use the value configured by the user
2012-03-30 14:25:27 +11:00
Andrew Tridgell
e4e052ff91
AP_Declination: save some more memory by putting the declination keys in progmem
...
there was a comment saying this was too slow, but it actually costs
about 30 usec extra, which is trivial given the full auto declination
call costs 680 usec and its only called once per boot
2012-03-30 14:25:27 +11:00
Andrew Tridgell
edb627a5c1
AP_Declination: added timing information to declination test
2012-03-30 14:25:27 +11:00
Andrew Tridgell
01c4cde14f
AP_Declination: fixed build under SITL
2012-03-30 14:25:27 +11:00
Adam M Rivera
9c414e9573
AP_Declination_test: Updated test with better print messages.
2012-03-30 14:25:26 +11:00
Adam M Rivera
cff189e911
AP_Declination: Update LUT based on the changes that I made in the LUT generation code. This LUT is the final version that has no truncation.
2012-03-30 14:25:26 +11:00
Adam M Rivera
380b9ece44
AP_Declination: Updated comments to reflect new LUT size.
2012-03-30 14:25:06 +11:00
Adam M Rivera
c04e074c89
AP_Declination: Removed trailing zero deltas as they have no impact on the final value and only take up extra bytes.
2012-03-30 14:21:58 +11:00
Adam M Rivera
662f11f801
AP_Declination: Updated compressed lookup value table. Located 9 more failure points due to truncation on the packed LUT.
2012-03-30 14:21:58 +11:00
Adam M Rivera
0178906389
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.
2012-03-30 14:21:58 +11:00
Adam M Rivera
08259bb2de
AP_Declination: Updated test to run in 5 degree increments. Changed to only print failures and also print total pass vs total fail.
2012-03-30 14:21:58 +11:00
Adam M Rivera
64c236800c
AP_Declination: Moved check for y index of zero to after the y index is properly transformed.
2012-03-30 14:21:58 +11:00
Adam M Rivera
e99d26cfa3
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.
2012-03-30 14:21:58 +11:00
Adam M Rivera
d9c9e0e608
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.
2012-03-30 14:21:58 +11:00
Adam M Rivera
8b1c383f97
AP_Declination: Updated packed exception signs array. I had the signs packed incorrectly.
2012-03-30 14:21:57 +11:00
Adam M Rivera
c0813f8d62
AP_Declination: Changed test to run in increments of 10 degrees. 1 was too granular.
2012-03-30 14:21:57 +11:00
Adam M Rivera
289d7a2784
AP_Declination: Added original array to test sketch. Added loop to validate new compressed array against original in 1 degree steps.
2012-03-30 14:21:57 +11:00
Adam M Rivera
63ce400f77
AP_Declination: Moved rows with large spikes in delta to their own unsigned exception rows. The signs are in a separate packed array.
2012-03-30 14:21:57 +11:00
Adam M Rivera
782c1aaaa3
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.
2012-03-30 14:21:57 +11:00
Adam M Rivera
9888a4730f
AP_Declination: Changed PROGMEM read function to pgm_read_word_far to support the int16_t datatype.
2012-03-30 14:21:57 +11:00
Adam M Rivera
d883bdf75e
AP_Declination: Changed datatype to int16_t to support the -90 <-> 90 latitude range.
2012-03-30 14:21:57 +11:00
Adam M Rivera
719636d00c
AP_Declination: Reduced the size of the lookup table to support -75 <-> 70 latitude range. This allows the datatype to remain int8_t.
2012-03-30 14:21:57 +11:00
Andrew Tridgell
071f89df2e
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
2012-03-29 12:39:53 +11:00
Andrew Tridgell
20941c15c3
Compass: fixed a comment
2012-03-29 12:39:53 +11:00
Andrew Tridgell
79deeef0a0
Compass: added some more comments
...
explain the algorithm a bit more
2012-03-29 12:39:53 +11:00
rmackay9
fd5e1c2f7b
Filter - added FilterWithBuffer typedefs for int32t and uint32 for ease of use
2012-03-28 22:02:52 +09:00
rmackay9
99cdc69110
AP_OpticalFlow - small bug fix to ensure init attempts to read the product id 3 times before giving up
2012-03-28 22:00:57 +09:00
Andrew Tridgell
972bdcfa39
SITL: add magnetic field noise to the simulated compass
2012-03-28 20:55:27 +11:00
Andrew Tridgell
dc127fe749
SITL: ensure we don't run the sitl timer twice
...
this caused problems with random()
2012-03-28 20:55:27 +11:00
Andrew Tridgell
2a011578f9
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.
2012-03-28 20:55:27 +11:00
Andrew Tridgell
16f094a1c5
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
2012-03-27 15:37:24 +11:00
Andrew Tridgell
a3d3dd86cf
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
2012-03-27 15:37:24 +11:00
rmackay9
cf1a6f8ab8
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
2012-03-25 21:13:31 +09:00
rmackay9
2324be7e68
Filter - added simple LowPassFilter (simple but it's possible to make errors with simple stuff too so might as well have one)
2012-03-25 16:15:25 +09:00
rmackay9
bdda74fd28
Filter - remove obsolete warning from comments re alloc/malloc dangers
2012-03-25 16:14:07 +09:00
rmackay9
dc58c8a905
AP_Baro - change data type size of temperature's average filter to int32_t (was int16_t)
2012-03-24 23:21:11 +09:00
rmackay9
766abb8e6c
AP_OpticalFlow - resolved compile error in example sketch (it could not find DCM.h but it's not required anyway)
2012-03-24 14:47:21 +09:00
Andrew Tridgell
477b31fb0d
Math: added mul_transpose() operation
...
this is equivalent to multiplying by m.transposed(), but is more
efficient
2012-03-23 16:48:52 +11:00
Andrew Tridgell
1b3a7d47bd
AHRS: fixed build of AHRS example
2012-03-22 23:00:45 +11:00
Andrew Tridgell
fb9790e1f4
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
2012-03-21 10:43:48 +11:00
Andrew Tridgell
ece2aac4b9
Math: fixed the build of the eulers test in SITL
2012-03-21 10:41:55 +11:00
Andrew Tridgell
e93b31c76b
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
2012-03-21 10:41:55 +11:00
rmackay9
f8ad719825
AC_PID - added more paranoid checking that imax is positive in constructor, operator() and load_gains methods
2012-03-20 11:51:15 +09:00