Commit Graph

288 Commits

Author SHA1 Message Date
Doug Weibel 44c66c2e8e 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 e1a544cc78 fix relay on apm 1 AP 2012-01-05 07:51:01 +08:00
Andrew Tridgell cdd5589498 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 4de2155845 Tweak to FBW min altitude
Patch from Yury
2011-12-31 15:44:40 -07:00
Jason Short a6c09b3ea5 Small issue with newline formatting 2011-12-29 23:02:02 -08:00
Michael Oborne cd145fd7a9 add circle to output modes 2011-12-29 18:21:32 +08:00
Andrew Tridgell cd3729d993 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 98353b7ba8 APM: added error checking on compass read 2011-12-28 20:41:53 +11:00
Andrew Tridgell 3cb96fb8af APM: convert to new I2C library 2011-12-28 20:41:53 +11:00
Andrew Tridgell a6920d603d 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 8d87aa41b9 APM: Update for DataFlash changes 2011-12-28 16:00:49 +11:00
analoguedevices b8917b58bd Added contributor names, removed "alpha" from firmware name 2011-12-26 17:13:37 +00:00
Andrew Tridgell f5a3eed1a7 APM: fixed some unsigned/signed warnings 2011-12-26 19:17:11 +11:00
Andrew Tridgell d81dc21dfe APM-log: fixed reading of GPS logs 2011-12-26 19:17:11 +11:00
Andrew Tridgell 3f9f3f3416 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 8e17b8d6d4 Correct a bug in throttle failsafe feature 2011-12-24 15:34:31 -07:00
Doug Weibel a5df59eba3 Remove old debug print 2011-12-24 14:26:35 -07:00
Doug Weibel 7879efb8ae 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 5e347854c3 setup the main loop failsafe after RC library is setup 2011-12-23 11:13:01 +11:00
Andrew Tridgell 5bda871d60 added comment on using GPS ground course 2011-12-23 11:13:01 +11:00
Andrew Tridgell d0245b206a 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 c805f2a0c3 failsafe: make sure we clear any RC override in manual failsafe 2011-12-22 10:55:43 +11:00
Andrew Tridgell 26d5d3c385 fixed HIL build 2011-12-21 23:31:39 +11:00
Andrew Tridgell 29fa78214b 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 e687ce9b3d mainloop_count should be uint16_t 2011-12-21 23:31:38 +11:00
Andrew Tridgell 89561d49d0 always declare a timer_scheduler
we should always run this code
2011-12-21 23:31:38 +11:00
Andrew Tridgell 4bdc872595 APM: show temperature in airpressure test
useful for tracking down baro bugs
2011-12-19 18:52:56 +11:00
Andrew Tridgell c14d702912 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 e99db6526f 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
Andrew Tridgell 71c911f65d Log: fixed logging dependence on compiler arg eval order 2011-12-18 17:31:45 +11:00
Andrew Tridgell f25ee899f3 APM: run mavlink loop while erasing logs 2011-12-18 10:19:52 +11:00
Andrew Tridgell fc20aa9602 geofence: enable return to old control mode via FENCE_CHANNEL
if you disable fencing with the fence channel switch while still in
GUIDED mode to the return point, then reset the control mode back to
the transmitter control mode
2011-12-18 10:00:44 +11:00
Andrew Tridgell df094ce463 fixed airspeed sensor for ArduPlane on APM2
we were trying to use a non-existant ADC chip!
2011-12-17 07:29:09 +11:00
Andrew Tridgell f6f808357c removed AperiodicProcess code
this code was never being used, and was more complex than it was
worth.
2011-12-17 07:29:09 +11:00
Andrew Tridgell b9a88aac32 geofence: added FENCE_TRIGGERED_PIN
this allows for a digital pin to be set high when the geofence
triggers. This pin can be connected to an external failsafe device
2011-12-17 07:29:08 +11:00
Michael Oborne 28d280562a apm 1280 disables 2011-12-16 22:26:39 +08:00
Andrew Tridgell 42522baf9f geofence: store fence points as int32_t
this keeps maximum precision in fence boundaries
2011-12-16 20:11:51 +11:00
Andrew Tridgell fc495ce6a7 geofence: added fence status reporting and faster altitude check 2011-12-16 20:11:51 +11:00
Andrew Tridgell 64ae2ebec5 geofence: don't trim control surfaces on geo-fence breach
the user input is likely to be bad
2011-12-16 20:11:51 +11:00
Andrew Tridgell 3b148c87d5 geofence: main geo-fence code
this implements the primary logic of geo-fencing
2011-12-16 20:11:51 +11:00
Andrew Tridgell 82b615df50 geofence: added geo-fencing control parameters 2011-12-16 20:11:51 +11:00
Andrew Tridgell 960d6ee38a removed an unused variable 2011-12-16 20:09:49 +11:00
Andrew Tridgell 84a694efb9 only check for "enter 3 times" in first 20s after boot
we don't want stray bytes on serial3 to make us enter the CLI during
flight!
2011-12-16 20:09:32 +11:00
Doug Weibel ca89857854 Changes to logging file system to avoid problems with 0 and 1 page logs 2011-12-13 20:09:07 -07:00
Andrew Tridgell 1998908a05 DCM: reset the DCM matrix after a ground start 2011-12-13 21:33:07 +11:00
Andrew Tridgell 8cd13749bd MAVLink: fixed link flood on waypoint upload 2011-12-13 20:39:04 +11:00
Andrew Tridgell dd9f3a3fa6 fixed a hang on 2nd run of IMU test
we should not try to initialise the ISR handlers twice
2011-12-13 18:28:50 +11:00
Andrew Tridgell 483bef35e5 IMU: update ACM and APM for flash_leds change in IMU init 2011-12-13 18:19:41 +11:00
Andrew Tridgell 888d6226b2 fixed two more CONFIG_HARDWARE #ifdef bugs 2011-12-13 17:05:48 +11:00
Andrew Tridgell 07dba4eff7 desktop: fixed Wire.begin() build problem 2011-12-12 15:14:55 +11:00
Andrew Tridgell 78e8fbff9c fixed hardware config check for barometer 2011-12-12 15:14:55 +11:00
Andrew Tridgell 1b1c629167 added sitl build target 2011-12-12 15:14:55 +11:00
Andrew Tridgell 2bd18e937c throttle: only use throttle slew in auto throttle modes
we don't want STABILISE and FBWA to have throttle change limits
2011-12-12 15:14:55 +11:00
Andrew Tridgell 0a7332b6e3 airspeed: smooth the airspeed value a bit more
the value is very noisy in my tests. A bit more smoothing may help
2011-12-12 15:14:55 +11:00
Andrew Tridgell 011110e1dd airspeed: use floating point values and better averaging in zero_airspeed()
this makes the calibration of airspeed a bit more accurate, and
prevents truncation of airspeed values
2011-12-12 15:14:55 +11:00
Andrew Tridgell d5c23c83cf apm2: fixed for new barometer code 2011-12-11 15:21:10 -08:00
Pat Hickey a99a1dbc9a ArduPlane: update AP_Baro construtors and initializers 2011-12-11 15:21:10 -08:00
Pat Hickey f3ad7f3af8 Wire and SPI Init: move to sketch system.pde from libraries
* Wire.begin removed from AP_Baro_BMP085::init()
* SPI.begin  removed from AP_Baro_MS5611::init()
* SPI.begin  removed from AP_InertialSensor_MPU6000::hardware_init()

* Both Wire.begin and SPI.begin added very early in init_ardupilot in
  ArduCopter/system.pde and ArduPlane/system.pde
2011-12-11 15:21:10 -08:00
Pat Hickey d7f77aec93 ArduCopter & ArduPlane: Added support for apm2beta build via APM2_BETA_HARDWARE define
* This enables the BMA085 driver for compatibility with beta boards.
* The CLI_SLIDER_ENABLED=DISABLED line does not need to be in the makefile.
  config.h takes care of this default.
2011-12-11 15:21:09 -08:00
Pat Hickey 1b2ebdff44 ArduPlane: added config.h and defines.h to support CONFIG_BARO 2011-12-11 15:21:09 -08:00
Pat Hickey 04ea979331 ArduPlane: Rename APM_BMP085 classes to AP_Baro_BMP085 classes 2011-12-11 15:21:09 -08:00
Pat Hickey f2652d23bf ArduPlane: calibrate accel with imu.init_accel after imu.init
* complements commit 73418559, where init_accel was eliminated
  from AP_IMU_INS::init cold start.
2011-12-10 13:32:47 -08:00
Doug Weibel 2ef4c79a7c Minimum ground speed patch from Claudio Natoli. Thanks Claudio!
This patch will boost the target airspeed as necessary to keep the ground speed above a parameter value - param_min_groundspeed.  Airspeed is still limited to FBW-max.  Setting min_groundspeed to zero (default) disables the feature.
2011-12-09 16:43:25 -07:00
Doug Weibel 2f962fe6da Augment failsafe gcs_send_text message 2011-12-09 09:11:45 -07:00
Doug Weibel 502a98dda1 Add hook to dump log filesystem index for debugging 2011-12-07 08:13:30 -07:00
Andrew Tridgell 39a36fe946 fixed the "reboot on GPS lock" bug
the problem was that with APM2 we may not have a 2nd GCS instance. The
"gps alt: xxx" message was being unconditionally sent to both GCS
instances, which caused a crash
2011-12-04 09:06:58 +11:00
Andrew Tridgell 4a057aefa0 test: removed the broken gyro test and merge it into the imu test
the gyro test assumed APM1 hardware, and would hang on APM2. The imu
test can just as easily display gyro and accelerometer data as well as
roll/pitch/yaw, so combine it in one test
2011-12-03 14:08:20 +11:00
Doug Weibel 88ab4f7d70 Fix for intermittent bug of log #1 starting on page 2 and confusing file system 2011-11-28 19:43:10 -07:00
Doug Weibel b03de3095e Add DataFlash.Init before doing a forced log erase on eeprom reset.
Add progress indication during log erase
2011-11-28 19:42:27 -07:00
Andrew Tridgell 2cabb11307 mavlink: don't force CLI and HIL with mavlink10 build 2011-11-28 16:22:33 +11:00
Andrew Tridgell 838c57cd1a mavlink: paranoia setting of failsafe when forcing AUTO mode
this shouldn't be needed, but will do no harm, and I thought I saw
this fail in a test
2011-11-28 16:22:33 +11:00
Andrew Tridgell 4036604fb7 mavlink: move Mavlink_compat.h to common code
this will allow it to be used by ArduCopter
2011-11-28 13:53:57 +11:00
Andrew Tridgell 5ae929ace9 build: CLI_SLIDER_ENABLED doesn't need to be forced off in apm2 build
this is handled by config.h now
2011-11-28 13:53:57 +11:00
Doug Weibel 7960e7963c Add Guided mode to failsafe handling 2011-11-26 21:10:53 -07:00
Andrew Tridgell a048709828 Logs: don't print hundreds of bogus log boundaries
this can take quite a long time
2011-11-26 17:02:55 +11:00
Pat Hickey ab56a764d3 ArduPlane: rev version number from 2.26 to 2.27 Alpha 2011-11-25 20:00:19 -08:00
Pat Hickey f7a9b8a563 ArduPlane: LED digital writes use LED_OFF and LED_ON 2011-11-25 20:00:19 -08:00
Andrew Tridgell 86927ac0a5 ArduPlane: rename purple to APM2 2011-11-25 20:00:19 -08:00
Andrew Tridgell 7def0e98e8 USB-MUX: auto-switch telemetry port based on UXB mux for ArduPlane
when USB is unplugged, switch baud rate to the SERIAL3_BAUD rate from
EEPROM
2011-11-25 20:00:19 -08:00
Andrew Tridgell ffba37d599 desktop: first version of register level SITL support
this adds register level emulation of the ADS7844 and the RC
input/output hardware on the APM1, allowing for SITL testing without
enabling HIL in the code
2011-11-25 20:00:18 -08:00
Andrew Tridgell 3a0b1d1903 purple: there are no dipswitches on the purple board 2011-11-25 20:00:18 -08:00
Andrew Tridgell 6093db948b compass: added AP_COMPASS_APM2_SHIELD
this makes the orientation clearer
2011-11-25 20:00:18 -08:00
Andrew Tridgell 649da8e05d purple: adc test not useful if no ADC 2011-11-25 20:00:18 -08:00
Andrew Tridgell 40459653b5 purple: fixed LED and IO pin defintitions 2011-11-25 20:00:18 -08:00
Andrew Tridgell ca76f6d0ec purple: add the remaining hw defines for purple hardware 2011-11-25 20:00:18 -08:00
Andrew Tridgell 1e41b4b2b0 timer_scheduler doesn't exist in HIL_MODE_ATTITUDE 2011-11-25 20:00:18 -08:00
Andrew Tridgell a3701e521a build: added hlsensors target 2011-11-25 20:00:18 -08:00
Andrew Tridgell 1c20efe4b8 re-organiser sensor declarations
this tries to make the #ifdef nesting easier to understand
2011-11-25 20:00:17 -08:00
Andrew Tridgell 3d175c449e adc.Init() takes timer_scheduler 2011-11-25 20:00:17 -08:00
Andrew Tridgell 03c7d7bfb6 purple: always declare timer_scheduler 2011-11-25 20:00:17 -08:00
Pat Hickey 1895458dbf purple: added new parameters to Init() functions
this adapts the test code for the purple API changes
2011-11-25 20:00:17 -08:00
Pat Hickey f9d6facdda test: added new passthru test
this passes radio inputs direct to servo outputs, which is useful for
hardware testing
2011-11-25 20:00:17 -08:00
Pat Hickey bad177bfdc removed old commented out code 2011-11-25 20:00:17 -08:00
Pat Hickey ad0cac670c purple: added new parameters needed for new library APIs
new APIs pass in timer_scheduler. We also to init the isr_registry
2011-11-25 20:00:17 -08:00
Pat Hickey 4015cb0a40 purple: fixed APM_RC.Init() to add isr_registry parameter 2011-11-25 20:00:17 -08:00
Pat Hickey 9e47536924 purple: declare sensors for purple library rework
we need some different declarations to match the new APIs
2011-11-25 20:00:17 -08:00
Pat Hickey 08675a91d8 purple: added config options for purple/APM1 hardware 2011-11-25 20:00:17 -08:00
Pat Hickey 3300032a89 purple: added hardware defines for ArduPlane 2011-11-25 20:00:17 -08:00
Pat Hickey cc67062442 build: added new command line build targets
this makes it more convenient to build common options
2011-11-25 20:00:16 -08:00
Andrew Tridgell 89d2f0f849 mod barometer.Init() based on hardware 2011-11-25 20:00:15 -08:00