Commit Graph

259 Commits

Author SHA1 Message Date
Andrew Tridgell
c4bd17052e import new Parameters.h for AP_Param to APM 2012-02-13 16:22:51 +11:00
Andrew Tridgell
ab057d9801 implement dump of all vars in CLI using AP_Param 2012-02-13 16:22:51 +11:00
Andrew Tridgell
faa098b2b6 adapt mainline APM code to AP_Param 2012-02-13 16:22:51 +11:00
Sandro Benigno
3932e8b2a1 Battery monitor type 3 cannot calculate battery remaining properly, due it uses only voltage reading. This path set battery_remaining to a value out-of-band for that type of monitoring. It informs to external devices to not show that info. 2012-02-11 21:01:13 -02:00
Andrew Tridgell
c95a295fd6 allow for lower serial baud rates
not many people will use less than 9600 baud, except for those wanting
to test extreme range radios, which is what I'm trying to do :-)
2012-02-04 19:07:18 +11:00
Pat Hickey
5cdee95516 ArduPlane: Call APM_RC.enable_out for all channels in init_rc_out. 2012-01-22 12:03:11 -08:00
Michael Oborne
e71266c258 change rc norm_output to scale evenly across the entire range 2012-01-20 16:24:55 +08:00
Michael Oborne
9dafc668cd fix SITL attitude hil 2012-01-20 16:04:49 +08:00
analoguedevices
40f37c1037 Increment version number in anticipation of a firmware hex push. 2012-01-16 22:48:46 +00:00
Doug Weibel
78ac65d6c3 Additional commenting on global variables
First pass done.
2012-01-16 10:28:03 -07:00
Doug Weibel
a3f9fee3d2 Additional commenting on global variables 2012-01-16 09:45:42 -07:00
Doug Weibel
2ea9db84e0 Update battery monitoring code for ArduCopter
Fixes compatibility for APM2.  Also a significant update to the battery monitoring code:  We previously had monitoring modes for individual cell voltages for 3 and 4 cell lipos.  These have been removed as they were never really supported (the cell voltages were computed but were not reported or recorded anywhere).  Also, some clean-up/prep work was done for supporting monitoring 2 separate battery packs.  The CLI battery and current monitoring tests were consolidated into 1 test.
changed
2012-01-15 17:10:02 -07:00
Doug Weibel
82338f2571 Remove a debugging print 2012-01-15 16:37:07 -07:00
Doug Weibel
3b2196354f Stashing some battery monitoring ratio values in the comments for future use. 2012-01-15 16:35:46 -07:00
Doug Weibel
e109992c12 Add a CLI setup action to reset the magnetometer offsets
Since the magnetometer offsets are not available through the MAVLink parameter interface (since they are an AP_Var vector) this little feature allows them to be reset from the CLI.  Useful if you somehow get bad offsets or if you change magnetometer.  If you have a bad set of large offset values I have seen issues with the nulling algorithm have trouble converging to the proper values.  I have never seen it have trouble converging from 0/0/0, so this could be a useful feature from time to time.
2012-01-15 16:15:08 -07:00
Doug Weibel
17b31d0b5b Fix airspeed sensor support for APM2.
Airspeed sensor should be attached to Analog input 0
2012-01-15 16:12:08 -07:00
Doug Weibel
17b3e514dc Just a little more commenting work on global variables 2012-01-15 16:11:02 -07:00
Doug Weibel
fd8dc84fac Update battery monitoring code for ArduPlane
Fixes compatibility for APM2.  Also a significant update to the battery monitoring code:  We previously had monitoring modes for individual cell voltages for 3 and 4 cell lipos.  These have been removed as they were never really supported (the cell voltages were computed but were not reported or recorded anywhere).  Also, some clean-up/prep work was done for supporting monitoring 2 separate battery packs.  The CLI battery and current monitoring tests were consolidated into 1 test.
2012-01-15 16:10:28 -07:00
Doug Weibel
622217357c Bug fix for compass.
This is a fix for an interesting bug when a DCM matrix reset was added to the ground start.  This bug only showed up if (A) a ground start were performed after an air start or due to use of the "Calibrate Gryo" action, (B) if the current orientation were sufficiently different from 0/0/0, and (C.) if the particular magnetometer had sufficiently large offsets.  Why did resetting the DCM matrix to 0/0/0 pitch/roll/yaw at ground start cause a bug?  The magnetometer offset nulling determines the proper offsets for the magnetometer by comparing the observed change in the magnetic field vector with the expected change due to rotation as calculated from the rotation in the DCM matrix.  This comparison is made at 10Hz, and then filtered with a weight based on the amount of rotation to estimate the offsets. Normally it would take considerable time at normal in-flight rotation rates for the offset estimate to converge. 

If a DCM matrix reset occurs when the offset nulling algorithm is up and running, the algorithm sees the DCM reset as a instantaneous rotation, however the magnetic field vector did not change at all.  Under certain conditions the algorithm would interpret this as indicating that the offset(s) should be very large.  Since the "rotation" could also have been large the filter weighting would be large and it was possible for a large erroneous estimate of the offset(s) to be made based on this single (bad) data point.

To fix this bug methods were added to the compass object to start and stop the offset nulling algorithm.  Further, when the algorithm is started, it is set up to get fresh samples.  The DCM matrix reset method now calls these new methods to stop the offset nulling before resetting the matrix, and resume after the matrix has been reset.
2012-01-12 14:44:24 -07:00
Doug Weibel
6f9c6a3b8e Adding comments for global variables 2012-01-11 12:37:43 -07:00
analoguedevices
47197891e3 Put in commented-out APM2 # defines, to save people the trouble of having to type them in themselves. 2012-01-09 02:00:46 +00:00
Doug Weibel
0fb4082581 Bug fix for issue 438.
The rate in a change alt command does not need to be signed.  The code will determine if the rate needs to be positive or negative
2012-01-08 18:24:55 -07:00
Michael Oborne
5d5800ee1f fix relay on apm 1 AP 2012-01-05 07:51:01 +08:00
Andrew Tridgell
645eac6f38 I2c: default to 5ms timeout, and faster bus speed
we will slow down the speed when we get a failure
2012-01-04 16:36:47 +11:00
Doug Weibel
35fba5d4a3 Tweak to FBW min altitude
Patch from Yury
2011-12-31 15:44:40 -07:00
Jason Short
bc7f0a567c Small issue with newline formatting 2011-12-29 23:02:02 -08:00
Michael Oborne
0c75c863de add circle to output modes 2011-12-29 18:21:32 +08:00
Andrew Tridgell
5aca951438 APM: added error checking on barometer read
if the barometer is dead and the GPS has a fix, use the GPS for
altitude
2011-12-28 20:41:53 +11:00
Andrew Tridgell
2c41264a9b APM: added error checking on compass read 2011-12-28 20:41:53 +11:00
Andrew Tridgell
c6b8a08918 APM: convert to new I2C library 2011-12-28 20:41:53 +11:00
Andrew Tridgell
c91827ee09 geofence: re-breach if user changes mode outside the fence
if the user changes mode while outside the fence, and fencing is still
enabled, then declare a new breach
2011-12-28 17:28:35 +11:00
Andrew Tridgell
b108b907e0 APM: Update for DataFlash changes 2011-12-28 16:00:49 +11:00
analoguedevices
fefda548d2 Added contributor names, removed "alpha" from firmware name 2011-12-26 17:13:37 +00:00
Andrew Tridgell
4cd4987ae7 APM: fixed some unsigned/signed warnings 2011-12-26 19:17:11 +11:00
Andrew Tridgell
d09c344ab8 APM-log: fixed reading of GPS logs 2011-12-26 19:17:11 +11:00
Andrew Tridgell
94cbbf6f28 APM-log: changed to use df_NumPages
this copes with different data flash sizes on APM1 and APM2
2011-12-26 19:17:11 +11:00
Doug Weibel
7779dff355 Correct a bug in throttle failsafe feature 2011-12-24 15:34:31 -07:00
Doug Weibel
c40093a1a7 Remove old debug print 2011-12-24 14:26:35 -07:00
Doug Weibel
4009018167 Fix scaling on "turn coordination" yaw PID so that P gain values fall in "usual" range 0.1 to 10. 2011-12-24 14:26:35 -07:00
Andrew Tridgell
66029af574 setup the main loop failsafe after RC library is setup 2011-12-23 11:13:01 +11:00
Andrew Tridgell
f7dda9f413 added comment on using GPS ground course 2011-12-23 11:13:01 +11:00
Andrew Tridgell
968ad78df0 APM2: default magnetometer to enabled
all APM2s have a MAG at the moment

thanks to Chris for the suggestion
2011-12-22 17:51:14 +11:00
Andrew Tridgell
ef3c5c071a failsafe: make sure we clear any RC override in manual failsafe 2011-12-22 10:55:43 +11:00
Andrew Tridgell
c6633d7bc9 fixed HIL build 2011-12-21 23:31:39 +11:00
Andrew Tridgell
ad63c10ab7 APM: added failsafe support
we now pass all channels through at 50Hz if the main loop stops
running, regardless of why. This gives us a reasonable failsafe, as
long as the low level RC library is still working, and interrupts
don't get completely disabled.
2011-12-21 23:31:39 +11:00
Andrew Tridgell
0aab4da1a1 mainloop_count should be uint16_t 2011-12-21 23:31:38 +11:00
Andrew Tridgell
61b2b2e32a always declare a timer_scheduler
we should always run this code
2011-12-21 23:31:38 +11:00
Andrew Tridgell
73146bae5d APM: show temperature in airpressure test
useful for tracking down baro bugs
2011-12-19 18:52:56 +11:00
Andrew Tridgell
98406e842b geofence: send fence status messages on fence events
this ensures the fence status goes out as soon as possible, which
means the messages arrive in a sane order on the GCS
2011-12-19 11:25:59 +11:00
Andrew Tridgell
226470c614 APM: added RST_SWITCH_CH parameter
This is useful for switching back to the mode indicated by the control
switch after a failsafe or fence breach. I was just changing modes
each time, but it is far more elegant to have a spring loaded switch
for "I am ready to take control again", rather than continually
changing modes.
2011-12-19 11:25:59 +11:00