Commit Graph

17950 Commits

Author SHA1 Message Date
Staroselskii Georgii
3eb6be64c9 AP_Compass: ignore first two readings in a clearer way
This way we don't mix two different conditionals: settling and data validation.
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
633330db14 AP_Compass: rename calibration array in HMC
I think naming the variable "scaling" makes more sense.
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
d8bddcbf3a AP_Compass: fix indentation in HMC's driver 2015-08-28 12:39:09 +10:00
Staroselskii Georgii
79ffddc6db AP_Compass: add a macro for checking calibration values in HMC 2015-08-28 12:39:08 +10:00
Lucas De Marchi
f61386ae43 AP_Compass: HMC5843: release the lock before read
read() calls accumulate() which takes the lock by itself so we must
release it like we were doing before 669ae26 ("AP_Compass: encapsulated
calibration in HMC").
2015-08-28 12:39:08 +10:00
Staroselskii Georgii
a9e8c1c464 AP_Compass: encapsulated calibration in HMC 2015-08-28 12:39:08 +10:00
Staroselskii Georgii
0fbc295d97 AP_Compass: encapsulated version detection in HMC driver 2015-08-28 12:39:08 +10:00
Lucas De Marchi
868d0bf3c3 AP_Compass: AK8963: refactor constructors
Declare a common constructor that others can call.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
a5df93bf10 AP_Compass: AK8963: be agnostic to I2C bus/address
This decision is better made by the caller rather than polluting the
driver with board-specific details.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
d92c2ac9f5 AP_Compass: pass backend instead of pointer to function
Just like was done for inertial sensor, different detect() functions
might need different arguments and passing a pointer to function here is
cumbersome. For example, it forces to have a method like "detect_i2c2"
rather than allowing hal.i2c2 to be passed as parameter.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
c66800dfec AP_InertialSensor: add singleton interface
In order to allow other libraries to use the InertialSensor we need a
way to let them to get the only instance of InertialSensor. The
conventional way to do a singleton would be to let the constructor
private and force it to be instantiated from the get_instance() method.

Here however we just call panic() on the constructor if there's already
an instance alive. This allows us to let the vehicles as is. Later we
can change it so they call the get_instance() method instead.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
565c18603d AP_InertialSensor: MPU6000: export auxiliary bus 2015-08-28 12:39:08 +10:00
Lucas De Marchi
caae933c28 AP_InertialSensor: Add support for auxiliary buses
Add an AuxiliaryBus class that can be derived for specific
implementations in inertial sensor backends. It's an abstract
implementation so other libraries can use the auxiliary bus exported. In
order for this to succeed the backend implementation must split the
initialization of the sensor from the actual sample collecting, like is
done in MPU6000.

When AP_InertialSensor::get_auxiliary_bus() is called it will execute
following steps:
	a) Force the backends to be detected if it's the first time it's
	   being called
	b) Find the backend identified by the id
	c) call get_auxiliary_bus() on the backend so other libraries can
	   that AuxiliaryBus to initialize a slave device

Slave devices can be used by calling AuxiliaryBus::request_next_slave()
and are owned by the caller until AuxiliaryBus::register_periodic_read()
is called. From that time on the AuxiliaryBus object takes its ownership.
This way it's possible to do the necessary cleanup later without
introducing refcounts, that we don't have support to.

Between these 2 functions the caller can configure the slave device by
doing its specific initializations by calling the passthrough_*
functions. After the initial configuration and register_periodic_read()
is called only read() can be called.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
3cb6f391d4 AP_InertialSensor: MPU6000: split detection and initialization 2015-08-28 12:39:08 +10:00
Lucas De Marchi
7d9579c5d8 AP_InertialSensor: identify backend with ID
Identify backend with an id, allowing other libraries to connect to
them. This is different from the _product_id member because it
identifies the sensor, not the board the sensor is in, which is
meaningless for our use case.
2015-08-28 12:39:07 +10:00
Lucas De Marchi
22c787058e AP_InertialSensor: allow to split detection and initialization
This allows backends to have a separate detection and initialization
logic. It doesn't change any backend yet and with the current code
there's no change in behavior either. This only allows
AP_InertialSensor::_detect_backend() to be called earlier so
AP_InertialSensor object can be used by other libraries. If it's not
called, later on AP_InertialSensor::init() will detect and start all
backends.
2015-08-28 12:39:07 +10:00
Lucas De Marchi
f7954ee885 AP_InertialSensor: MPU6000: allow to read generic block
We were able to read only the block of registers that are part of the
data output from accelerometer/gyroscope. In order to support reading
the external sensors we need support for reading a generic block of
registers.
2015-08-28 12:39:07 +10:00
Lucas De Marchi
b5da8ad61f AP_InertialSensor: MPU6000: rename method
We're reading the sensor data available in MPU6000 so name the method
accordingly, which is also the same name used in MPU9250.
2015-08-28 12:39:07 +10:00
Lucas De Marchi
d9a4d3e777 AP_InertialSensor: MPU6000: fix leaking samples 2015-08-28 12:39:07 +10:00
Lucas De Marchi
f18dd17377 AP_InertialSensor: fix typos
resister->register and fix copy and paste error from MPU6000 to MPU925.
2015-08-28 12:39:07 +10:00
Grant Morphett
c0a28c45f8 scripts: using the wrong variable for the board type 2015-08-28 12:00:07 +10:00
Andrew Tridgell
7eedf2cafe Travis: removed APM2 from .travis.yml 2015-08-28 10:44:01 +10:00
Andrew Tridgell
b03c6137a8 Travis: don't do APM2 build in travis any more
we no longer require APM2 compatibility for patches in master
2015-08-28 10:42:45 +10:00
Randy Mackay
1608cffe95 Copter: increase failsafe close-to-home to 5m
This distance is used when a failsafe is initiated to decide whether to RTL or LAND
2015-08-28 09:24:37 +09:00
squilter
426dab5078 GCS_MAVLink: update severities and remove old enum 2015-08-28 10:04:35 +10:00
squilter
4a51dcc14d GCS_Console: update severities 2015-08-28 10:04:35 +10:00
squilter
583c087eca Plane: update severities 2015-08-28 10:04:35 +10:00
squilter
dfc35cca8b AP_InertialSensor: update severities 2015-08-28 10:04:35 +10:00
squilter
ddda407ff3 AP_Arming: update severities 2015-08-28 10:04:35 +10:00
André Kjellstrup
d4ed30a023 Plane: releasenotes update 2015-08-28 10:03:16 +10:00
Randy Mackay
be603da579 Copter: fix optflow position_ok check
We should accept predicted relative horizontal position only when disarmed
2015-08-27 20:57:41 +09:00
Paul Riseborough
21f873662c AP_NavEKF: Prevent false triggering of optical flow takeoff detection
Now that we have a pre-arm check in place to detect bad lidar, the motion check is unnecessary and can false trigger for copters with flexible undercarriages or on uneven ground.
2015-08-27 20:57:38 +09:00
Randy Mackay
53b65675b2 SITL: param change to for copter optflow testing 2015-08-27 20:57:35 +09:00
Randy Mackay
4cdb5bf2bd Copter: sanity check do-set-home and do-set-ROI location 2015-08-27 15:16:04 +09:00
Randy Mackay
a9c6d34a9e Tracker: sanity check home location parameters 2015-08-27 15:16:01 +09:00
Randy Mackay
84252405c3 Rover: sanity check ROI target 2015-08-27 15:15:59 +09:00
Randy Mackay
1271e531e2 Mission: sanity check location 2015-08-27 15:15:56 +09:00
Andrew Tridgell
81d4864c10 autotest: added more autotest build logging 2015-08-27 12:03:28 +10:00
Andrew Tridgell
b966f7fc3e autotest: ensure we start on master branch 2015-08-27 12:03:14 +10:00
Randy Mackay
9ef6abf613 AP_GPS: config file for Ublox M8N
This is not directly used by the driver but this directory is where we place the recommended GPS config files
2015-08-27 09:54:22 +09:00
Grant Morphett
50b732d2af web-firmware: Added an icon and link for AntennaTracker 2015-08-27 09:23:57 +09:00
Randy Mackay
0424b3f93c Copter: pre-arm check of EKF compass variance 2015-08-26 13:59:41 +09:00
Randy Mackay
920d5cefbb Copter: always check GPS before arming in Loiter 2015-08-26 13:15:28 +09:00
Tom Pittenger
749c0c190f AP_Baro - fix BARO_ALT_OFFSET param
This param seems to have been un-implemented. This is putting it back in. Adds a meter offset to the calculated altitude form the baro sensors.
Also changes it from int8 to float
2015-08-26 13:16:05 +10:00
Randy Mackay
e4c62811ea Plane: fix link to BATT parameter descriptions 2015-08-26 11:17:55 +09:00
Randy Mackay
536311744d Rover: fix link to BATT param descriptions 2015-08-26 11:17:53 +09:00
Randy Mackay
71cc89d107 Copter: add ACCEL_Z_FILT_HZ parameter description
Also fixed parameter links to ATC, BATT and MOT libraries
2015-08-26 11:17:50 +09:00
Randy Mackay
bb891a62d3 BattMonitor: fix parameter descriptions 2015-08-26 11:17:48 +09:00
Tom Pittenger
ee9a66bd02 Plane: fix compiler warning re double promotion 2015-08-25 16:45:52 +09:00
Randy Mackay
3db22a9c27 Tracker: update version to 0.7.3
This is done because of the text severity change.  The GCSs need a unique version from which they can be sure the severities have changed.
2015-08-25 14:54:58 +09:00