Commit Graph

10915 Commits

Author SHA1 Message Date
AndersonRayner 10e7d43007 AP_InertialSensor: Add output of all IMUs to example 2016-03-31 14:54:17 -03:00
Lucas De Marchi a502c0924c GCS_MAVLink: simplify sanity check 2016-03-30 01:32:45 -03:00
Francisco Ferreira d3e149e5d7 GCS_MAVLink: ignore Clang out-of-range warning
warning: comparison of constant 4 with expression of type 'mavlink_channel_t' is always false [-Wtautological-constant-out-of-range-compare]
    if (chan >= MAVLINK_COMM_NUM_BUFFERS) {
        ~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~
2016-03-30 01:32:45 -03:00
Marc MERLIN 5bcd1b02ef RSSI channel is not limited to 5-8.
Fix doc per my request on https://github.com/ArduPilot/ardupilot/issues/3280
2016-03-29 08:16:42 -07:00
Tom Pittenger 6718241dad cleanup comments 2016-03-29 05:32:28 -07:00
Andrew Tridgell 894e07a0bd AP_Parachute: added CHUTE_DELAY_MS parameter
on fixed wing it may take quite some time for the propeller to stop
2016-03-29 05:48:40 +11:00
Andrew Tridgell 73a2c99d56 SITL: limit rotational rate to 2000dps 2016-03-26 14:23:05 +11:00
Andrew Tridgell 4d01cb1716 HAL_SITL: fixed SITL engine mul error
expression without get() was treated as int
2016-03-26 14:17:12 +11:00
Andrew Tridgell b4c6a0e30e AP_TECS: added logging of speed_weight and state flags 2016-03-26 08:41:09 +11:00
Andrew Tridgell 8ff932b61c AP_TECS: allow underspeed to end faster
we now can exit an underspeed condition if we stay above min speed for
3 seconds and also reach 15% above min speed. This prevents a problem
with the thrust line causing downpitch leading to a crash due to too
much throttle
2016-03-26 07:44:22 +11:00
Andrew Tridgell 1ecfa6b487 RC_Channel: fixed example in SITL 2016-03-25 21:35:33 +11:00
Andrew Tridgell 5c92adddf9 HAL_SITL: allow examples to run under SITL 2016-03-25 21:35:16 +11:00
Andrew Tridgell 1e4fe7996e HAL_Linux: update URL 2016-03-25 20:47:53 +11:00
Andrew Tridgell 9737050a23 HAL_FLYMAPLE: update URL 2016-03-25 20:47:44 +11:00
Andrew Tridgell 664d91802e HAL_AVR: update URL 2016-03-25 20:47:35 +11:00
Andrew Tridgell 075dd49afe DataFlash: added Log_Write_Rate()
needed for quadplane as well as copter so should be in common code
2016-03-25 12:13:58 +11:00
Andrew Tridgell ab07781c66 APM_Control: raise default P and I gains, and set a lower limit on I for pitch
Too many users have very low I gains, which causes a lot of problems for TECS
2016-03-25 09:54:53 +11:00
Lucas De Marchi 46936767c1 AP_Compass: LSM303D: check for overruns in compass values 2016-03-23 17:50:38 -03:00
Lucas De Marchi cf2d866d51 AP_Compass: LSM303D: used AP_HAL::Device interface
Initialization was also changed a little bit so we don't try to
initialize 25 times. We rather use the same methods as in the
AP_InertialSensor drivers.

Also move up the call to is_zero() in read_raw so we don't set
_mag_[x|y|z] in case of failure.
2016-03-23 17:50:38 -03:00
Lucas De Marchi 5164fbb81b AP_Compass: LSM303D: cleanup driver
Make it similar to other compass drivers, including method names.
2016-03-23 17:50:38 -03:00
Lucas De Marchi 20a4a42cb3 AP_Compass: don't store raw and unfiltered fields
These are not used. The only place where raw fields are used are in the
compass calibrator and we don't need to store them.

Additionally remove duplicated documentation about the meaning of the
functions to avoid them getting out of sync.
2016-03-23 17:50:38 -03:00
Lucas De Marchi e6059f5197 AP_Compass: rename files to follow other libraries
AP_Compass.h is the main header to be exported and AP_Compass.cpp its
implementation. There's no need for an additional header.
2016-03-23 17:50:38 -03:00
Lucas De Marchi 286697b844 AP_Compass: don't rebuild tree when single driver changes
Let the drivers be internal to the library so we don't need to rebuild
the entire tree when a single driver changes.
2016-03-23 17:50:38 -03:00
Lucas De Marchi d3831dbb98 AP_Compass: AK8963: use AP_HAL::I2CDevice abstraction
We still need the BusDriver (in some places called SerialBus) interface
since this driver can also be used on an AuxiliaryBus and that has a
different interface.
2016-03-23 17:50:38 -03:00
Lucas De Marchi 41c1209169 AP_Compass: HMC5843: improve readability
- Capitalize and rename constants
 - Make clear what gain is applied in calibration and what is the
   "normal" gain
 - Make the separation between HMC5883L and HMC5843 explicit when it
   makes sense to improve readability
 - Remove spurious delay in calibrate function
2016-03-23 17:50:38 -03:00
Lucas De Marchi 0291ad869b AP_Compass: HMC5843: use AP_HAL::I2CDevice abstraction
We still need the BusDriver (in some places called SerialBus) interface
since this driver can also be used on an AuxiliaryBus and that has a
different interface.

Besides the usual conversion some more improvements:

  - Use generic function to convert endianness
  - Minor cleanups
  - Reorder per-board ifdefs in compass instantiation: distinguish when
    there's a default compass to when it should probe other compasses
2016-03-23 17:50:38 -03:00
Lucas De Marchi 57f8db5672 AP_HAL: sparse-endian: conditionally include byteswap header
This is not present in qurt.
2016-03-23 17:50:38 -03:00
Lucas De Marchi c5dc54dac7 AP_HAL: utility: import sparse-endian header 2016-03-23 17:50:38 -03:00
Lucas De Marchi 0ed3a93142 AP_HAL: define compass locations for linux boards 2016-03-23 17:50:38 -03:00
ashwinvasudevan e33812e1cb AP_InertialSensor: added missing brackets 2016-03-23 17:46:41 +09:00
Lucas De Marchi 72b246e52c AP_HAL_Linux: fix use of 0-length array
0-length arrays are supported in C but forbidden in C++. GCC allows it
but clang is more strict:

../../libraries/AP_HAL_Linux/SPIDriver.cpp:75:35: fatal error: no matching constructor for initialization of 'Linux::SPIDeviceDriver [0]'
SPIDeviceDriver SPIDeviceManager::_device[0];
                                  ^
../../libraries/AP_HAL_Linux/SPIDriver.h:20:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 0 were provided
class SPIDeviceDriver : public AP_HAL::SPIDeviceDriver {
      ^
../../libraries/AP_HAL_Linux/SPIDriver.h:20:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
../../libraries/AP_HAL_Linux/SPIDriver.h:25:5: note: candidate constructor not viable: requires 9 arguments, but 0 were provided
    SPIDeviceDriver(const char *name, uint16_t bus, uint16_t subdev, enum AP_HAL::SPIDeviceType type, uint8_t mode, uint8_t bitsPerWord, int16_t cs_pin, uint32_t lowspeed, uint32_t highspeed);
    ^
1 error generated.
2016-03-20 00:17:02 -03:00
Andrew Tridgell da2a71a3de AP_BoardConfig: raise uavcan startup delay to 2s 2016-03-19 21:18:05 +11:00
Lucas De Marchi abbe419823 AP_Compass: fix mismatched tag
In file included from /home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/Compass.h:6:
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:86:5: warning: struct 'param_t' was previously declared as a class [-Wmismatched-tags]
    struct param_t _params;
    ^
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:44:11: note: previous use is here
    class param_t {
          ^
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:86:5: note: did you mean class here?
    struct param_t _params;
    ^~~~~~
2016-03-18 22:39:39 -03:00
Lucas De Marchi d5d6a10e63 AP_Compass: LSM303D now is part of LSM9DS0 2016-03-18 21:51:37 -03:00
Lucas De Marchi a671b7f5b2 AP_Compass: remove misleading message
Not having data ready during initialization is normal. Don't print error
message since it can mislead people to think the compass was not
initialized successfully.
2016-03-18 21:51:37 -03:00
raspilot 1d1d224c18 AP_InertialSensor: Enable dual IMU for raspilot 2016-03-18 21:51:37 -03:00
raspilot 9d787e44cc AP_HAL_Linux: update spi table for raspilot 2016-03-18 21:51:37 -03:00
Lucas De Marchi c5022ef5c9 AP_HAL: add names for LSM9DS0 on raspilot 2016-03-18 21:51:37 -03:00
Lucas De Marchi f75c12f57c AP_InertialSensor: LSM9DS0: change mode of drdy pins to input 2016-03-18 21:51:37 -03:00
raspilot c83e4df002 AP_InertialSensor: LSM9DS0: Disable I2C at init to avoid SDA hanging by slave. 2016-03-18 21:51:37 -03:00
raspilot 557beb4bb1 AP_InertialSensor: LSM9DS0: Fixed wrong call to _register_read_xm() 2016-03-18 21:51:37 -03:00
Lucas De Marchi c1623c21cc AP_HAL_Linux: rename ToneAlarmDriver to follow other names
We don't add "Driver" to the name of the files anymore.
2016-03-18 21:51:37 -03:00
Lucas De Marchi d52ee7c0a1 AP_HAL_Linux: ToneAlarmDriver_Raspilot: cleanup driver
- Fix coding style
  - Remove unused variables and members
  - Add virtual as needed and override where needed
2016-03-18 21:51:36 -03:00
Pritam Ghanghas 6de5b52974 AP_HAL_Linux: separate class for tone alarm driver 2016-03-18 21:51:36 -03:00
Michael Oborne 92106a944f AP_GPS_UBLOX: add data injection support 2016-03-18 15:51:32 +11:00
Andrew Tridgell eb89b5bbb6 AP_L1_Control: prevent possibly fly-away when passed waypoint in L1
if the top level controller doesn't consider a waypoint complete when
we are passed next_WP then it would keep flying away from the line
segment. This doesn't happen with the current master code, but we want
to ensure it is handled
2016-03-18 13:47:44 +11:00
Andrew Tridgell 7d92202db9 AP_Param: save flash space for parameter strings
now that we no longer need AVR support we can use nul terminated
strings for parameter names, saving a couple of k of flash space
2016-03-18 13:03:18 +11:00
Andrew Tridgell 692e042eac AP_Arming: set AP_PARAM_NO_SHIFT 2016-03-18 12:33:45 +11:00
Andrew Tridgell 4deb01b8d5 RC_Channel: set AP_PARAM_NO_SHIFT 2016-03-18 12:33:34 +11:00
Andrew Tridgell 018c7425a4 AP_Param: added AP_PARAM_NO_SHIFT
used for cases where we know the shift is not needed
2016-03-18 12:33:16 +11:00
Andrew Tridgell 1d42b0281a SITL: ADSB: fixed heading and fixed windows startup 2016-03-18 11:18:19 +11:00
Andrew Tridgell 71b6d3e33d AP_Param: add in nested group offset in load for conversion 2016-03-18 10:04:56 +11:00
Randy Mackay c15fa950c0 AP_Param: convert_old_parameter becomes public and accepts scaling 2016-03-18 10:04:55 +11:00
Andrew Tridgell 12067b27b3 AP_Param: cope with multi-level nesting and zero-idx
this copes properly with multi-level nesting of groups, and fixes an
issue with an idx of zero in nested groups
2016-03-18 10:04:55 +11:00
Lucas De Marchi d8eb0d401d AP_Compass: fix missing rename
cb8355c (AP_HAL: fix compass define for bebop) renamed the constant in
AP_HAL but not in AP_Compass.
2016-03-17 11:49:38 -03:00
Lucas De Marchi b3d26c5988 AP_Compass: remove trailing whitespaces in header 2016-03-17 02:57:05 -03:00
Lucas De Marchi cb8355c315 AP_HAL: fix compass define for bebop 2016-03-17 02:55:51 -03:00
Lucas De Marchi 057822b51c AP_InertialSensor: AuxiliaryBus: fix return value
We should return the number of bytes written/read, not 0 on success.
This number may be useful in some cases so return it.

While at it fix a simple wrong space in the header.
2016-03-17 02:55:39 -03:00
Lucas De Marchi 6a6175df1c AP_HAL_Linux: move dirname to I2CDevice core
All entries would need the "devices/" prefix and it's more natural not
using it.
2016-03-17 02:55:31 -03:00
Peter Barker a66da7be00 AP_Motors: correct parameter documenation 2016-03-17 16:10:10 +11:00
Don Gagne cae7ea0d13 Add @Volatile, @ReadOnly support 2016-03-17 10:58:05 +11:00
Paul Riseborough 6d9ba8c527 AP_NavEKF2: Improve protection against ground based mag interference
Reset the mag field states and yaw earlier than the normal 5m height threshold if toilet bowling is detected.
2016-03-17 10:55:11 +11:00
Lucas De Marchi 08cc7b2472 RC_Channel: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi 96c30aea39 PID: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi c2b5ad46b4 GCS_MAVLink: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi 96ad73d198 GCS_Console: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi ec36e06c63 DataFlash: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi 80749af698 AP_Vehicle: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi 8fcf551505 AP_Terrain: replace header guard with pragma once 2016-03-16 18:40:44 +11:00
Lucas De Marchi 9271e97c0b AP_TECS: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 0d2f661a6c AP_SpdHgtControl: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 9c28730815 AP_ServoRelayEvents: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi d82369b293 AP_SerialManager: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 336e04ca60 AP_RSSI: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 109f807260 AP_RPM: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 0332cde374 AP_Relay: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi 41d5f4a3b1 AP_RCMapper: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi f6712c8bc4 AP_RangeFinder: replace header guard with pragma once 2016-03-16 18:40:43 +11:00
Lucas De Marchi f908dffbeb AP_Rally: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi b180f3a83f AP_Parachute: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 5518cb2b01 AP_Navigation: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi bb0d96cedd AP_NavEKF: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi e40b87cd0e AP_NavEKF2: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 3a771bf0e3 AP_Mount: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 7d9153feb8 AP_Motors: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi d82e80c749 APM_OBC: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 2790c16905 AP_Mission: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 9c4f93244e AP_Menu: replace header guard with pragma once 2016-03-16 18:40:42 +11:00
Lucas De Marchi 382b6f87fe APM_Control: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi b4a8a0b961 AP_Math: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 83f11145d5 AP_LandingGear: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 7ad0036a11 AP_L1_Control: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 152f169b76 AP_IRLock: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 79837c343f AP_InertialNav: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 44bc2eceb4 AP_HAL_VRBRAIN: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi bcdc3336de AP_HAL_SITL: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 6f028502b0 AP_HAL_QURT: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi 28f67f0947 AP_HAL_PX4: replace header guard with pragma once 2016-03-16 18:40:41 +11:00
Lucas De Marchi f7a983e525 AP_HAL_FLYMAPLE: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi cd266fbf4f AP_GPS: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi 761ed7ae03 AP_Frsky_Telem: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi 37d7a8214d AP_EPM: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi d721ad70eb AP_Camera: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi 235d64b7b9 AP_BoardConfig: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi 39f39afa7b AP_Arming: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi ffe36afeb2 AP_Airspeed: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi e0153faa85 AP_AHRS: replace header guard with pragma once 2016-03-16 18:40:40 +11:00
Lucas De Marchi 5047f2b6f8 AP_ADSB: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 155fb6f600 AP_AccelCal: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 3ae4c222e0 AC_WPNav: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 65680c8b8d AC_Sprayer: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 4e9ca31cb9 AC_PrecLand: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi f637a29ab6 AC_PID: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 498693d0b8 AC_InputManager: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 7dc3942ad4 AC_Fence: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi f42484bcc5 AC_AttitudeControl: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Andrew Tridgell ff04871fc5 AP_Param: fixed a reporting problem with AP_Vector3f
if we load an element other than the X element of a Vector3f via
MAVLink then the value reported back to the GCS would be at the wrong
offset in memory. This led to some very confusing results for users
2016-03-16 17:03:30 +11:00
Tom Pittenger 425c9bcd0b AP_Arming: use AP_BATT_MONITOR_MAX_INSTANCES instead of fixed array size 2016-03-14 09:19:09 -07:00
Tom Pittenger 5872512d85 AP_Arming: added more info to battery arming failure 2016-03-14 09:16:14 -07:00
Michael du Breuil 21bdf32d33 AP_Arming: Add minimum voltage to arm 2016-03-14 09:06:57 -07:00
Gustavo Jose de Sousa 4613b68efb AP_InertialSensor: waf: skip VibTest example
The code is currently broken.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa 6729475b25 AP_Math: fix eulers example for PX4 2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa d9bb696fa3 AP_Math: avoid bias in rand_num() in eulers example
Use RAND_MAX to avoid bias.
2016-03-14 11:54:31 -03:00
Andrew Tridgell b0ac6c26e0 SITL: support octaquad in quadplane sim 2016-03-13 10:12:14 +11:00
Andrew Tridgell 2a6e64e358 HAL_PX4: send all channels to px4io
this allows for 16 channel SBUS out
2016-03-13 10:03:56 +11:00
Jonathan Challinger 4bf3ec0e91 AP_HAL_PX4: implement RCOutput::read_last_sent 2016-03-10 13:56:27 -08:00
Jonathan Challinger 6663d30728 AP_HAL: add RCOutput::read_last_sent definition 2016-03-10 13:56:23 -08:00
Tom Pittenger a85d4f2f4b AP_TECS: reverse-thrust cleanup
- throttle slew rate was using % full range including the negative range (-100 to +100 instead of 0 to 100) which meant it was faster
- throttle integrator windup limit was higher than normal because it's a porportional to throttle max - min but that makes no sense when min is negative causing larger limits
2016-03-10 15:34:52 +11:00
Andrew Tridgell 36177526cf AP_BoardConfig: allow setting of SBUS output frame rate 2016-03-10 15:28:46 +11:00
Lucas De Marchi 4467929692 AP_Notify: add class to turn LED off
On early versions of minlure an RGB LED was wrongly placed next to the
barometer, causing trouble on it.

Additionally depending on the LED intensity it may be a pain to leave it
turned on for boards supposed to be used for bench testing. This allows
to disable the LED by software so we don't have to remove it.
2016-03-09 20:46:06 -03:00
Gustavo Jose de Sousa e5de4f2348 AP_Compass: AP_Compass_test: code enhancements
- Use panic() instead of looping forever.
- Readability improvement with the use of MAX() and MIN().
2016-03-09 10:12:14 -03:00
Gustavo Jose de Sousa a61f9855d3 AP_Compass: AP_Compass_test: report multiple compasses
Report data from all available compasses, not just the primary one.
2016-03-09 10:12:10 -03:00
Gustavo Jose de Sousa 16acca865f AP_Compass: AP_Compass_test: fix style
Used uncrustify and some manual changes.
2016-03-09 10:12:05 -03:00
Gustavo Jose de Sousa 0efbe8c80c AP_Compass: allow calling calculate_heading() for different instances 2016-03-09 10:12:00 -03:00
Lucas De Marchi 6358876f58 AP_HAL: add missing MPU9250 name for BH 2016-03-07 14:50:14 -03:00
Lucas De Marchi 71eefdfd2c AP_Compass: remove trailing whitespaces 2016-03-07 14:49:35 -03:00
Lucas De Marchi a46ca4c810 AP_Compass: HMC5883: reorganize header 2016-03-07 14:49:35 -03:00
Holger Steinhaus d2b6eb7700 AP_BoardConfig: wait for UAVCAN initialization complete signal 2016-03-05 09:32:13 +11:00
Holger Steinhaus 503e196546 AP_BoardConfig: allow to enable UAVCAN plug-and-play mode 2016-03-05 09:32:13 +11:00
Andrew Tridgell d0b67ce007 AP_AHRS: allow for EKF without GPS on plane in VTOL modes
this allows for testing quadplanes indoors
2016-03-05 08:58:08 +11:00
Andrew Tridgell 5d5c398344 AP_BoardConfig: raise UAVCAN startup time
new version needs a longer time to start sensors
2016-03-04 14:57:16 +11:00
Lucas De Marchi 47be4b5868 AP_OpticalFlow: fix use of undefined variable
../../libraries/AP_OpticalFlow/AP_OpticalFlow_Onboard.cpp:86:5: warning: "FLOWONBOARD_DEBUG" is not defined [-Wundef]
 #if FLOWONBOARD_DEBUG
     ^
2016-03-03 18:37:15 -03:00
Tom Pittenger ff249788bf Plane: add a default Navigation option as explained in the param docs 2016-03-03 09:16:26 -08:00
Paul Riseborough 1e8af3dea4 AP_Notify: Add tone sequence to alert user when throw detector is armed
Use a medium tempo ascending three tone sequence with sufficient gap to allow the throwing action to be completed without distraction.
2016-03-03 12:18:16 +09:00
Tom Pittenger 67e2db7975 AP_TECS: add TECS_LAND_PDAMP
// @Description: This is the damping gain for the pitch demand loop. Increase to add damping  to correct for oscillations in speed and height. If set to 0 then TECS_PTCH_DAMP will be used instead.
2016-03-02 10:54:21 -08:00
Tom Pittenger fcb802cccc AP_TECS: add TECS_LAND_I_GAIN and TECS_TKOFF_I_GAIN
// more integral gain options for land
2016-03-02 10:54:20 -08:00
Tom Pittenger a139789693 AP_TECS: add TECS_LAND_TDAMP for land damp
+     // @Description: This is the damping gain for the throttle demand loop during and auto-landing. Same as TECS_THR_DAMP but only in effect during an auto-land. Increase to add damping to correct for oscillations in speed and height. When set to 0 landing throttle damp is controlled by TECS_THR_DAMP.
2016-03-02 10:54:19 -08:00
Tom Pittenger 035f3b16a1 AP_BattMonitor: add new param BATT_WATT_MAX
Description: If battery wattage (voltage * current) exceeds this value then the system will reduce max throttle (THR_MAX and TKOFF_THR_MAX) to satisfy this limit. This helps limit high current to low C rated batteries regardless of battery voltage. The max throttle will slowly grow back to THR_MAX (or TKOFF_THR_MAX) if demanding the current max and under the watt max.
2016-03-02 10:14:25 -08:00
Tom Pittenger 278fb2e60d AP_Math: add location sanity checker/fixer util 2016-03-02 08:48:26 -08:00
Tom Pittenger 1c513a99a0 AP_Mission: removed LOITER_TO_ALT heading requirement param field
- and increased loiter radius max size (8bit to 16bit), it will soon always have heading requirement along with all loiter cmds
2016-03-02 08:48:24 -08:00
Alexey Bulatov 3933ac2a63 AP_GPS: Added ERB to AP_GPS 2016-03-02 06:04:52 -08:00
Alexey Bulatov 7e2c822499 AP_GPS: Structure for detect ERB 2016-03-02 06:04:46 -08:00
Alexey Bulatov 97190c89d1 AP_GPS: ERB GPS driver
ERB - Emlid Reach Binary protocol.
That driver designed for communication between Reach
and ArduPilot.
Provided opportunities:
- Detection of the driver
- Parsing of input messages: status of transmitter
and navigation information.
- Inject GPS messages from base
2016-03-02 06:04:39 -08:00
Jonathan Challinger e946e047e6 AC_AttitudeControl: add attitude_controller_run functions, call from input functions 2016-03-02 20:16:18 +09:00
Tom Pittenger c0a6a94936 AP_IntertialNav: ensure we work on valid updated data 2016-03-02 10:53:07 +09:00
Paul Riseborough 38b3625ed8 AP_NavEKF2: Fix bug in initial alignment calculation
The bug caused the initial roll angle to be incorrect if the vehicle was powered up when inverted, causing long alignment times.
2016-03-02 09:10:09 +09:00
Paul Riseborough 2888bdd6d5 AP_NavEKF: Protect against possible div by 0 2016-03-01 10:08:47 -03:00
Paul Riseborough 7d6b926749 AP_NavEKF2: Improved magnetic heading fusion
Use an Euler yaw heading that switches between a 321 and 312 rotation
sequence to avoid areas of singularity.  Using Euler yaw decouples the
observation from the roll and pitch states and prevents magnetic
disturbances from affecting roll and pitch via the magnetometer fusion
process.
2016-03-01 10:08:47 -03:00
Randy Mackay e502e0fc2e SoloGimbal: resolve compiler warning re float comparison 2016-03-01 21:51:43 +09:00
Randy Mackay 438769c8ae SoloGimbal: resolve compiler warning re initialisation order 2016-03-01 21:51:41 +09:00
Paul Riseborough bb74371c58 AP_NavEKF2: Do not use GPS height if GPS accuracy is poor
If we are using GPS height, revert back to using Baro height if the GPS accuracy is poor.
2016-03-01 15:13:13 +09:00
Tom Pittenger b1ea82079e AP_Rangefinder: compiler warning float to double on atof()
- this is horribly inefficient so better to change the parsing
2016-02-29 10:26:31 -08:00
Tom Pittenger 068374658c AP_Mission: utilize radius for loiter commands 2016-02-29 06:43:19 -08:00
Will Sackfield 8b5fa9d23d SITL: Initialise yaw_rate and pitch_rate
* Clang requires these variables to be initialized
2016-02-29 14:14:37 +11:00
Will Sackfield 6f43b7121c DataFlash: Cast msg to uint8
* Clang requires this explicit cast
2016-02-29 14:14:37 +11:00
Will Sackfield 723e166c13 AP RPM: Initialise backend with _instance
* Unsure how this worked in the past
2016-02-29 14:14:37 +11:00
Will Sackfield 0a60d713af AP HAL SITL: Use fully qualified SITL namespace
* using namespace SITL caused ambiguities due to
both SITL and HAL SITL using the same namespace
2016-02-29 14:14:37 +11:00
Will Sackfield 8c98eb2b84 APMControl: Cast type to uint8
* Clang requires that the type be explicitly cast
to uint8
2016-02-29 14:14:37 +11:00
Staroselskii Georgii 5b3627f83e AP_Notify: made DiscreteRGBLed more generic
- made pins and polarity configurable
- got rid of all Navio specific code
2016-02-27 03:06:50 -03:00
Staroselskii Georgii ef4e3aa333 AP_Notify: renamed Navio2Led to DiscreteRGBLed 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 0bd7839b9f AP_Notify: made Navio2LED a little easier to configure
- got rid of a lot of not needed defines
- allocated channels on init instead of accessing them every time
  through the HAL reference
- simpliefied hw_set_rgb()
2016-02-27 03:06:50 -03:00
Staroselskii Georgii da550e5e98 AP_Inertial_Sensor: do not rotate MPU9250 on Navio2 2016-02-27 03:06:50 -03:00
Staroselskii Georgii f93e790717 AP_HAL_Linux: make Ublox work on the higher frequency
The lower speed was only valid for very old Navio's. All new boards ship
with the GPSs that support higher frequencies.
2016-02-27 03:06:50 -03:00
Staroselskii Georgii a327a8779e AP_HAL_Linux: added Navio2 support 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 7187f26220 AP_HAL_Linux: use Raspberry Pi GPIO for Navio2 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 6680baf777 AP_HAL_Linux: use MPU9250 for Navio2 2016-02-27 03:06:50 -03:00
Staroselskii Georgii c9869e768a AP_HAL_Linux: use Util_RPI for Navio2 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 23a2cf45aa AP_HAL_Linux: added RCInput for Navio2 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 2ea69571ef AP_Notify: disabled boardled for Navio 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 3223802431 AP_Notify: enabled leds for Navio2 2016-02-27 03:06:50 -03:00
Alexey Bulatov fc6351b929 AP_Notify: added Navio2LED driver 2016-02-27 03:06:50 -03:00
Staroselskii Georgii a24e9df765 AP_HAL_Linux: added AnalogIn_Navio2
This is a shim driver around the temporarily interface that is exported via
sysfs entries.
2016-02-27 03:06:50 -03:00
Staroselskii Georgii 392165c6a2 AP_HAL: added Navio2 board definitions 2016-02-27 03:06:50 -03:00
Staroselskii Georgii 6172ed078e GCS_Mavlink: send power status from all boards 2016-02-27 03:06:50 -03:00
dgrat 672acdc8ef AP_Math: Created location.h header for location functions
Helps to order AP_Math functions by purpose.
2016-02-27 02:51:33 -03:00
Lucas De Marchi 7f685a12bd AP_Math: remove trailing whitespaces and tabs 2016-02-27 02:51:33 -03:00
dgrat 5148e41c1a AP_Math: Cleaned macro definitions
Moved Definitions into a separate header. Replaced PI with M_PI and
removed the M_PI_*_F macros.
2016-02-27 02:51:33 -03:00
dgrat 7c4c8ea579 AP_Math: Remove ROTATION_COMBINATION_SUPPORT
This function is not used.
2016-02-27 02:51:33 -03:00
Gustavo Jose de Sousa 6144226c51 AP_HAL: always define HAL_OS_SOCKETS
And avoid warnings.
2016-02-26 14:17:33 -03:00
AndersonRayner c9d5c548a6 Corrects a bracket error for the LSM9DS0 IMU
Switches the probe of the accel and gyro so they boot correctly (was
failing the WHOAMI with a switched result)
2016-02-25 20:08:01 -03:00
Michael du Breuil 287a3367ad AP_HAL_SITL: Force the simulated gps time to be on valid intervals for u-blox hardware 2016-02-26 09:57:03 +11:00
Daniel Frenzel ead51a9d19 AP_Math: Removed useless "undef INLINE" 2016-02-25 02:10:39 -03:00
Daniel Frenzel ef7cf7c4aa AP_Math: Removed useless header
"float.h" does not exist. It is useless and wrong to include it.
2016-02-25 02:10:39 -03:00
Andrew Tridgell 04bac8a446 AP_GPS: removed duplicate dataflash write of ublox version 2016-02-24 14:26:57 +11:00
Andrew Tridgell 14bd4ba2c7 AP_GPS: removed console print for GPS type
it is now sent as a STATUSTEXT
2016-02-24 14:22:48 +11:00
Michael du Breuil 1426ff2732 AP_GPS: Broadcast what type of GPS is found and at what baud rate 2016-02-24 14:22:48 +11:00
Andrew Tridgell fe3812c51b GCS_MAVLink: re-worked text send in terms of ObjectArray 2016-02-24 09:18:06 +11:00
Andrew Tridgell 2120913ac2 AP_HAL: added ObjectArray template
this is a ring buffer that supports indexing for efficient handling of
queue peeking and manipulation
2016-02-24 09:18:06 +11:00
Tom Pittenger 9718ee23d1 AP_HAL: fix peekbytes casting 2016-02-24 09:18:06 +11:00
Tom Pittenger 54d2a263fe GCS_MAVLink: create queue scheme for static statustext msgs 2016-02-24 09:18:05 +11:00
Tom Pittenger faa4238370 SITL: fixed warning comparing signed vs unsigned 2016-02-23 10:32:48 -08:00
Andrew Tridgell 7fede90df3 HAL_PX4: work around a bus locking issue on Pixracer
Pixracer has FRAM on the same bus as the ms5611 and the FRAM ramtron
driver does not use the same locking mechanism as other px4 SPI
drivers. We need to disable interrupts during FRAM transfers to ensure
we don't get FRAM corruption
2016-02-23 16:34:06 +11:00
Andrew Tridgell 0a72c2bbd5 AP_Baro: prevent bad ground pressure from making a board unbootable 2016-02-23 16:34:06 +11:00
Andrew Tridgell 1df2512935 AP_HAL: added update() method for object ringbuffer
to support updating objects for GCS work Tom is doing
2016-02-23 16:34:06 +11:00
Tom Pittenger 1d528d552f AP_HAL: rename RingBuffer.force() to RingBuffer.push_force() 2016-02-21 22:13:27 -08:00
Paul Riseborough 7459bfb96b AP_NavEKF2: Eliminate simple compass fusion singularities near +-90 deg pitch
The use of yaw angle fusion during startup and ground operation causes problems with tail-sitter vehicle types.
Instead of observing an Euler yaw angle, we now observe the yaw angle obtained by projecting the measured magnetic field onto the the horizontal plain.
This avoids the singularities associated with the observation of Euler yaw angle.
2016-02-22 16:29:36 +11:00
Andrew Tridgell 4ff396dfa8 AP_HAL: added force() and peek() method for object ringbuffers 2016-02-22 12:34:32 +11:00
Andrew Tridgell 5080201be6 GCS_MAVLINK: added set_dataflash() method 2016-02-22 12:34:32 +11:00
Paul Riseborough 4aefe1caee AP_NavEKF2: Fix sign error in magnetic heading innovation calculation 2016-02-20 08:55:48 +11:00
Tom Pittenger 7e4ae39b8e AP_Arming: fixed GPS_CFG mask bug 2016-02-19 13:53:44 -08:00
Víctor Mayoral Vilches 9bb039accd AP_HAL: PXFmini add HAL_BARO_MS5611_NAME
Peer coded with @LanderU.
2016-02-19 19:17:34 -02:00
Lucas De Marchi 0ccd2de12b AP_AHRS: fix use of undefined macro
../../libraries/AP_AHRS/examples/AHRS_Test/AHRS_Test.cpp:63:5: warning: "WITH_GPS" is not defined [-Wundef]
 #if WITH_GPS
     ^

g_gps was not even declared so remove it.
2016-02-19 12:35:20 -02:00
Lucas De Marchi 7d24b4d1ca AP_Notify: add missing include to use board config
<command-line>:0:18: warning: "HAL_BOARD_LINUX" is not defined [-Wundef]
../../libraries/AP_Notify/Buzzer.h:20:5: note: in expansion of macro ‘CONFIG_HAL_BOARD’
 #if CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
     ^
In file included from ../../libraries/AP_Notify/Buzzer.cpp:18:0:
../../libraries/AP_Notify/Buzzer.h:20:25: warning: "HAL_BOARD_VRBRAIN" is not defined [-Wundef]
 #if CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
                         ^
2016-02-19 12:35:20 -02:00
Lucas De Marchi 69f6a73c19 Global: fix missing renames for HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD
Commit b87fd58 (AP_HAL: ERLEBOARD legacy support) renamed the define but
forgot some around.
2016-02-19 12:35:18 -02:00
Peter Barker 475a2040a1 AP_NavEKF2: avoid use of undefined #defines
Ensure EKF_DISABLE_INTERRUPTS is defined

Do not define MATH_CHECK_INDEXES, assume it is defined
2016-02-19 12:34:24 -02:00
Peter Barker 11760c33f6 AP_NavEKF: avoid use of undefined #defines
Ensure EKF_DISABLE_INTERRUPTS is defined

Do not define MATH_CHECK_INDEXES, assume it is defined
2016-02-19 12:34:24 -02:00
Peter Barker 80bc7a50d7 AP_Math: define MATH_CHECK_INDEXES
Wrapped in ifndefs so the top-level Makefile can override

Assume MATH_CHECK_INDEXES is always defined
2016-02-19 12:34:23 -02:00
Lucas De Marchi 3ace8b52de AP_HAL_Linux: use AnalogIn_IIO for minlure 2016-02-19 11:55:31 -02:00
Lucas De Marchi f865e085b1 AP_BattMonitor: add defaults for minlure 2016-02-19 11:55:31 -02:00
Lucas De Marchi 4e034cd2e1 AP_HAL_Linux: AnalogIn_IIO: add scale for minlure 2016-02-19 11:55:31 -02:00
Lucas De Marchi f56a80cd80 AP_HAL_Linux: AnalogIn_IIO: return fixed board voltage
Return board voltage as 5V so we don't fail prearm checks.
2016-02-19 11:55:31 -02:00
Lucas De Marchi d387deb2f5 PID: fix example using wrong type
pid.imax() has type int16_t

../../libraries/PID/examples/pid/pid.cpp:36:53: warning: format ‘%f’ expects argument of type ‘double’, but argument 6 has type ‘int’ [-Wformat=]
             pid.kP(), pid.kI(), pid.kD(), pid.imax());
                                                     ^
2016-02-19 11:51:49 -02:00
Lucas De Marchi edd3e3c34a Filter: silence warning about unused function
../../libraries/Filter/examples/Derivative/Derivative.cpp:16:14: warning: ‘float noise()’ defined but not used [-Wunused-function]
 static float noise(void)
              ^
2016-02-19 11:51:49 -02:00
Lucas De Marchi 1f072c4353 AP_HAL: fix unused variable
../../libraries/AP_HAL/examples/UART_test/UART_test.cpp:13:28: warning: ‘uarts’ defined but not used [-Wunused-variable]
 static AP_HAL::UARTDriver* uarts[] = {
                            ^
2016-02-19 11:51:49 -02:00
Jonathan Challinger c454631be8 AP_InertialSensor: work around gyro and accel errors on startup 2016-02-19 16:40:52 +09:00
Paul Riseborough 047e9fabaf AP_NavEKF2: Fix bug in simple heading fusion
The innovation calculation should have been updated when the heading fusion maths was updated.

We now use a direct heading or yaw angle measurement in the derivation, not the difference between observed and published declination.
2016-02-19 15:35:11 +09:00
Lucas De Marchi bf9cf74c38 StorageManager: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi 98904825cb Filter: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi f5437f30ac AP_Scheduler: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi 008e3c9810 AP_OpticalFlow: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi 09d926fa11 AP_Notify: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi 705393b30c AP_HAL_Linux: replace header guard with pragma once 2016-02-18 14:52:35 -02:00
Lucas De Marchi dbf2aedf1e AP_HAL: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Lucas De Marchi 2bed317c6c AP_HAL_Empty: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Lucas De Marchi 1a71c169fe AP_Compass: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Lucas De Marchi 246f940d01 AP_Buffer: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Lucas De Marchi 62f50aede7 AP_BattMonitor: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Lucas De Marchi 6623246cf5 AP_ADC: replace header guard with pragma once 2016-02-18 14:52:34 -02:00
Leonard Hall 49a4bde5d9 AC_AttControl: lower minimum accelerations for large copters 2016-02-18 20:49:13 +09:00
mirkix 8da58226ae AP_HAL_Linux: Fix BBBmini IIO scaling 2016-02-18 00:00:07 -02:00
mirkix d868fe4eff AP_HAL: Remove unused GPIO leds for BBBmini 2016-02-17 23:41:24 -02:00
Paul Riseborough d3c9a0aef1 AP_NavEKF: Limit heading innovations after the consistency check 2016-02-18 08:53:47 +09:00
Paul Riseborough 6a34e4c384 AP_NavEKF2: Fix bug in magnetic heading and declination fusion equations.
The derivation incorrectly used a tan instead of an atan function. This applies the corrected auto-code.
2016-02-18 08:53:45 +09:00
Paul Riseborough 59bf29198d AP_NavEKF2: Remove unnecessary logic preventing constant position
This removes a legacy design concept that is no longer required in this filter implementation. Planes will not be armed without EKF aiding and the proposed copter throw mode also requires EKF aiding to be operating.
The other problem with interrupting fusion during the launch is it doesn't reduce the corrections, it just delays them as wen the launch completes, the EKF inertial position estimate is still moving still moved and the corrections are therefore just delayed by the short launch interval.

Thank you to OXINARF for picking up the inconsistency with the previous logic
2016-02-18 08:53:43 +09:00
Paul Riseborough 7e05646316 AP_NavEKF2: Improvements to non-GPS performance
Change to user adjustable fusion of constant position (as per legacy EKF) instead of constant velocity.
Enable user to specify use of 3-axis magnetometer fusion when operating without aiding.
Don't allow gyro scale factor learning without external aiding data as it can be unreliable
2016-02-18 08:53:41 +09:00
Tom Pittenger a9c985bfb3 AP-Mount: compiler warning
ardupilot/libraries/AP_Mount/SoloGimbal_Parameters.cpp:193:107: warning: comparing floating point with == or != is unsafe [-Wfloat-equal]
2016-02-17 14:54:31 -08:00
Lucas De Marchi 10abec277d AP_HAL: functor: use std::remove_reference 2016-02-16 19:49:09 -02:00
Lucas De Marchi d80a0e47bc AP_Common: missing: move definitions to standard headers
This way we don't create problems regarding which header to include: we
just include the normal/c++11 headers and everything works as it should.
2016-02-16 19:49:09 -02:00
Lucas De Marchi 75d58bcfb6 Global: rename HAVE_NULLPTR_T with HAVE_STD_NULLPTR_T
This makes for a more standard name for these overrides.
2016-02-16 19:49:09 -02:00
Andrew Tridgell 29100937bc AP_Common: allow for nullptr_t but not std::move replacement 2016-02-16 19:49:09 -02:00