Commit Graph

17940 Commits

Author SHA1 Message Date
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
squilter
767b4da5b6 Copter: update send text severities 2015-08-25 14:05:25 +09:00
squilter
f1d9b3570c Tracker: update severity values 2015-08-25 14:04:45 +09:00
squilter
b4cf0ce2bb Rover: update severity values 2015-08-25 14:04:40 +09:00
squilter
9d3a906602 GCS_Common: accept any type of severity, not just the old enum 2015-08-25 14:04:37 +09:00
Grant Morphett
da37769e33 Copter: Added include guards for Copter.h 2015-08-25 13:54:18 +09:00
Grant Morphett
dda229aecd Plane: Added include guards for Plane.h 2015-08-25 13:54:16 +09:00
Tom Pittenger
816d1f0e1b AP_GPS: resolve compiler warning re init order 2015-08-25 13:51:33 +09:00
Tom Pittenger
072d35b9cc AP_HAL_PX4: remove unused var 2015-08-25 13:51:21 +09:00
fillycheezstake
39dae7a156 Mount: fix for STORM32 serial ver 78e and higher
This fixes the structs to be compatible with the changes OlliW made to
the gimbal firmware.
http://www.olliw.eu/storm32bgc-wiki/Serial_Communication
2015-08-25 13:45:33 +09:00
Tom Pittenger
fed50aa5c5 Plane: is_crashed flag gets reset too easily
This behavior is excessively paranoid about clearing the flag so now it's extra sticky. You can only clear the is_crashed flag when:
- changing modes
- starting to execute a takeoff wp (if mission/index gets reset while still in auto)
- while in takeoff and throttle is suppressed it's held false

behavior that was removed:
- clear flag when starting to execute any nav cmd (reached next wp)
- if while crashed, you "start flying again" (non-sticky)
2015-08-24 20:00:12 +10:00