Commit Graph

4211 Commits

Author SHA1 Message Date
rmackay9 b71877366e 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 c0a54762c6 MAVLink: port the new adaptive flow control to ArduCopter
This allows for arbitrary stream rates, and supports flow control if
you are using a 3DR radio
2012-04-02 11:18:53 +10:00
Andrew Tridgell e1270401bf MAVLink: make parameter send use adaptive stream rate
this makes it possible to fetch parameters with very low air data
rates
2012-04-02 11:18:53 +10:00
Andrew Tridgell 1fd1a55fa6 MAVLink: import change to txbuf as a percentage 2012-04-02 11:18:53 +10:00
Andrew Tridgell 7b50724f60 MAVLink: allow for find grained stream rate control
streams can now be requested at any multiple of 20ms. So if you ask
for a stream at 7Hz then you will get it at close to 7Hz.
2012-04-02 11:18:53 +10:00
Chris Anderson 0a9fd22243 Merge branch 'master' of https://code.google.com/p/ardupilot-mega 2012-04-01 16:23:42 -07:00
Andrew Tridgell 4ddeb82b26 MAVLink: imported new headers, with RADIO packet 2012-04-01 21:44:44 +10:00
rmackay9 75d7308fb4 ArduCopter - CH6 tuning - changed Roll/Pitch Rate D tuning to use the user supplied tuning range instead of the range / 100.
also changed heli_ext_gyro_gain to make it use the tuning range directly.
2012-03-31 09:28:25 +09:00
Andrew Tridgell e0bb7e2777 MAVLink: don't waste 100 bytes of bandwidth sending 1 byte of information
the GPS_STATUS message is a massive waste of bandwidth, but it is the
only message that tells us the number of visible satellites. So only
send it if that information changes.

This makes MAVLink work better at low baud rates
2012-03-30 17:46:20 +11:00
Andrew Tridgell 87ed39ea46 APM: use set_blocking_writes(false) when we have done ground start 2012-03-30 17:46:20 +11:00
Andrew Tridgell 7634f541b9 ACM: use set_blocking_writes(false) when we arm motors 2012-03-30 17:46:20 +11:00
Andrew Tridgell 0c445101ff 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 b4107d35e8 MAVLink: raise the serial transmit buffer size to 256 bytes
the 128 byte serial transmit buffer was causing significant problems
with queueing of mavlink messages. With 256 bytes we can fit a lot
more messages out in each pass of the code, which makes telemetry more
efficient

As we discussed on the dev call, we now have enough free ram for this
to be worthwhile
2012-03-30 17:46:20 +11:00
Andrew Tridgell 3b3f9d8b17 autotest: use the automatic declination code in autotest 2012-03-30 14:25:27 +11:00
Andrew Tridgell 22ff8cb197 examples: fixed build of some examples with new AP_Declination code 2012-03-30 14:25:27 +11:00
Andrew Tridgell 86cc7a5e1d APM: enable AP_Declination by default 2012-03-30 14:25:27 +11:00
Andrew Tridgell 0bc604f030 ACM: removed FORCE_AUTOMATIC_DECLINATION_UPDATE
we now have the EEPROM option COMPASS_AUTODEC instead
2012-03-30 14:25:27 +11:00
Andrew Tridgell 504c53f746 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 168c45ab12 AP_Declination: enabled auto declination by default in APM 2012-03-30 14:25:27 +11:00
Andrew Tridgell 927834106d 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 70d4280935 AP_Declination: added timing information to declination test 2012-03-30 14:25:27 +11:00
Andrew Tridgell 175352845c AP_Declination: fixed build under SITL 2012-03-30 14:25:27 +11:00
Adam M Rivera ca82350f17 AP_Declination_test: Updated test with better print messages. 2012-03-30 14:25:26 +11:00
Adam M Rivera 01b1e58f7d 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 51b70e4d36 ArduCopter: Changed implementation of configuration value for automatic declination. There is now a FORCE_AUTOMATIC_DECLINATION_UPDATE that when enabled will update the declination on every GPS 3D fix regardless of whether or not the user saved a value to the EEPROM. By default the declination will only be set by the automatic declination routine if the user has not saved a declination to the EEPROM. 2012-03-30 14:25:06 +11:00
Adam M Rivera 23f6093f05 AP_Declination: Updated comments to reflect new LUT size. 2012-03-30 14:25:06 +11:00
Adam M Rivera 50791a8b0f 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 f35e447927 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 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. 2012-03-30 14:21:58 +11:00
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. 2012-03-30 14:21:58 +11:00
Adam M Rivera 230ca1ddca 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 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. 2012-03-30 14:21:58 +11:00
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. 2012-03-30 14:21:58 +11:00
Adam M Rivera d88b9e8ffc AP_Declination: Updated packed exception signs array. I had the signs packed incorrectly. 2012-03-30 14:21:57 +11:00
Adam M Rivera 036da88174 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 580b274bde 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 efefc3e4f4 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 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. 2012-03-30 14:21:57 +11:00
Adam M Rivera 3a849771bc 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 370e56c00a 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 ae257ad42b 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
Michael Oborne cc047f2944 APM Planner 1.1.59
fix possible issue loading stream rates
fix tracker ranges
add more ch6 options
modify mag calib with throttle
2012-03-30 06:17:06 +08:00
rmackay9 0efb0e5b4d ArduCopter - added CH6_STABILIZE_KD tuning value 2012-03-29 21:09:41 +09:00
Michael Oborne c1eede5ef3 firmware build 2012-03-29 09:53:56 +08:00
Andrew Tridgell 9d193f06c9 APM: Change version to 2.32 2012-03-29 12:50:12 +11:00
Andrew Tridgell 4c4c38f69a APM: Added MANUAL_LEVEL option
when MANUAL_LEVEL is set to 1, we don't do accelerometer levelling at
startup, and instead used the values saved in the EEPROM. This makes
it easier to do levelling on the bench, or once for a series of
flights for the day
2012-03-29 12:39:53 +11:00
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
2012-03-29 12:39:53 +11:00
Andrew Tridgell 16deefce31 Compass: fixed a comment 2012-03-29 12:39:53 +11:00
Andrew Tridgell 17290836ef Compass: added some more comments
explain the algorithm a bit more
2012-03-29 12:39:53 +11:00
Andrew Tridgell c084a72723 pysim: ensure Vector3() uses floats 2012-03-29 12:39:53 +11:00