Commit Graph

1599 Commits

Author SHA1 Message Date
Andrew Tridgell
0542539fc9 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
926dfbc0e9 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
04a71197f9 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
f347572fc2 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
9adaacedcd GPS: added debug code to the main GPS class 2012-06-08 16:42:03 +10:00
Andrew Tridgell
f4718cafad 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
ddebf7b443 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
148e59a4de GPS: tidy up the auto gps test 2012-06-08 16:42:02 +10:00
Robert Lefebvre
f7be9a4b5d TradHeli adding ramp up time to Ch8 Throttle Pass-through. 2012-06-07 22:55:47 -04:00
Robert Lefebvre
0c8078c436 AP_MotorsHeli Syntax correction. 2012-06-04 15:53:07 -04:00
Andrew Tridgell
43fe5bab78 re-enable the AP_Mount build 2012-06-04 19:32:11 +10:00
Andrew Tridgell
b4fbda7a28 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
a6c1a86c23 mavlink: fixed build with uart resend 2012-06-04 13:45:55 +10:00
Andrew Tridgell
1ad17bc78c MAVLink: updates to mavlink headers to fix mavlink 1.0 issues 2012-06-04 13:34:07 +10:00
Andrew Tridgell
4f7a80a04d Mavlink: fixed library build for MAVLink 1.0 2012-06-04 13:14:52 +10:00
Andrew Tridgell
34234b7003 SITL: fixed SITL build with mavlink10 2012-06-04 13:14:52 +10:00
Andrew Tridgell
7602f698eb mavlink10: fixed MAV_VAR -> MAVLINK_TYPE 2012-06-04 13:14:51 +10:00
Andrew Tridgell
2c3bfd896a MAVLink: updated to latest upstream mavlink
this includes no significant changes
2012-06-04 13:14:51 +10:00
Jason Short
1ebfb8fe25 GPS time set to unsigned int32 2012-06-03 11:13:50 -07:00
rmackay9
bad6591e6d AP_Baro: fixed comment to clarify that every-other call updates temperature or pressure 2012-06-03 17:31:17 +09:00
rmackay9
8f8e91a620 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
080c5184d5 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
8f3169a200 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
3246f2bad3 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
37e4637c13 RC_Channel.pde: fixed compile errors so that it actually works! 2012-06-02 14:00:44 +09:00
rmackay9
df3fb5c041 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
477aa6e47a 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
7ee38df5a2 Issue 416: RC_Channel – Fix to make dead_zones still output 0 2012-05-31 12:05:47 -07:00
Jason Short
2cc9fde3c9 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
00cabc6343 Channel rage fix - low output was always 0 vs _low 2012-05-31 11:31:48 -07:00
Robert Lefebvre
bafb478924 TradHeli: Incorporating Ext ESC Control 2012-05-30 21:50:25 -04:00
Robert Lefebvre
ffc04b7305 Fix TradHeli Collective Yaw Effect bug. 2012-05-25 15:25:21 -04:00
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