Lucas De Marchi
6c2ceea165
AP_Compass: AK8963: remove author and connection comment
...
Authorship and how sensor is connected get outdated (as it already is).
Our code is on git so let it track who wrote each line.
2015-07-23 17:44:36 +10:00
Staroselskii Georgii
8ab33c46ce
AP_Compass: revisited AK8963 code
...
Reduced duplication a bit and revisited the update method which is now
split into several logical hunks.
2015-07-23 17:44:36 +10:00
Lucas De Marchi
fffedae3e0
AP_Compass: AK8963: reduce stack usage and zero out buffers
...
Since we are not using MPU9250's fifo to get samples from AK8963 we will
always read only 1 sample (+ control registers).
2015-07-23 17:44:35 +10:00
Lucas De Marchi
37734886a5
AP_Compass: AK8963: remove repeated comments
...
No need to repeat the same comments on 3 different places. Instead add a
single comment to explain how start_measurements() and read_raw() are
related.
2015-07-23 17:44:35 +10:00
Lucas De Marchi
27d95b67a8
AP_Compass: AK8963: remove state machine
...
Don't use a state machine in AK8963: the start_measurements() method
should be called only once. Even if there's a magnetic sensor overflow
the only thing we should do is to discard the new data.
This also moves the _collect_samples() method to be inside _update()
since it's the only place it should be called from, the one running on
the timer thread.
2015-07-23 17:44:35 +10:00
Lucas De Marchi
e232543fca
AP_Compass: AK8963: change initialization and rename methods
...
We need to check the AK8963's id before anything else Here we are
reordering the calls to _calibrate() and _check_id(). After that we
don't need to read and write again the AK8963_CNTL1 register.
While at it do some renames as well:
- _configure() -> _setup_mode(): since now there's a
_bus->configure() it became confusing what actually it's
doing.
- make error messages say what we were actually trying to do but
couldn't. Also remove PSTR since this is linux-only.
- start_conversion() -> start_measurements(): We are instructing the
bus to start to get the samples, not to tell the chip to start an
analog->digital conversion like in other sensors.
2015-07-23 17:44:35 +10:00
Lucas De Marchi
ae5d9baddb
AP_Compass: AK8963: remove defines not used anymore
...
The MPUREG_PWR_MGMT_1 defines were used when we cared about the MPU9250
initialization code. Now all initialization is done by the MPU9250 class
itself, so remove these defines.
Also remove AK8983_SELFTEST_MAGNETIC_FIELD_ON that is never used and let
the defines always with 2 bytes to improve readability.
2015-07-23 17:44:34 +10:00
Lucas De Marchi
cae895bfdf
AP_Compass: AK8963: group members together
...
Besides being semantically related, this removes the hole due to
alignment. The size is the same since the hole is actually turned into
padding.
2015-07-23 17:44:34 +10:00
Lucas De Marchi
28d3d775a4
AP_Compass: AK8963: remove resolution member
...
We only use the highest one and there's no intention to support the
14bits one. Just use the define rather than saving it as a member.
2015-07-23 17:44:34 +10:00
Lucas De Marchi
86b3312112
AP_Compass: AK8963: factor out common code of read_raw()
...
Similar code was added in the read_raw() implementation for each bus.
Add a new POD struct read_raw to contain the registers from the AK8963
and use it instead as argument.
2015-07-23 17:44:33 +10:00
dgrat
d941174978
AP_Compass: AK8963: enhance the readability
...
Reduce the deepness of indentation and fix coding style.
2015-07-23 17:44:33 +10:00
Randy Mackay
28c722c157
AC_Circle: rate change takes effect immediately
2015-07-23 16:21:20 +09:00
Tom Pittenger
d51e6d466b
AP_HAL_SITL: add support for airspeed failures
2015-07-23 14:38:06 +10:00
Tom Pittenger
250dcd31a2
SITL: Add ARSP_FAIL param
...
This will allow testing pitot tube hardware failures
2015-07-23 14:38:06 +10:00
Staroselskii Georgii
d7ac725a64
AP_HAL_Linux: fixed signal handler in RCInput_Navio
...
DMA is getting stopped in the separate method now. This is the best we
can get at the current time. It does yield slightly better experience
and works in the majority of cases.
The patch is a no bulletproof solution, though.
There's a possibility of corruption in case of e.g. a SIGKILL. There's
no signal framework at the time and the commit doesn't add one. That's
why all signals are handled in the same erroneous way. This is not a
good nor a final solution to the issue.
For the issue at hand a better fix might be porting the code to kernel
space but it's a rather tediuos task that we cannot undertake in the
couple of weeks.
2015-07-23 08:51:38 +10:00
Staroselskii Georgii
8528a7d159
AP_HAL_Linux: added deinit logic for RCInput_Navio
...
DMA needs to be stopped if a panic occurs.
2015-07-23 08:51:37 +10:00
Staroselskii Georgii
f4d14f73ba
AP_HAL_Linux: extended panic handling with RCInput deinitialization
...
The issue has already come up. There's no deinitialization mechanisms at the moment. As APM is rather software than firmware on Linux, there're some clean-up work that needs to be done. This commit triggers deinitialization of RCInput on a panic.
2015-07-23 08:51:37 +10:00
Vladislav Zakharov
97b51a4bcb
AP_HAL: Added deinit() method to RCInput
...
Add a deinit() counterpart. This is needed for some ports that require some deinitializtion logic. The default implementation is empty. I'm not sure whether we need to inforce it for all.
2015-07-23 08:51:37 +10:00
Tom Pittenger
9737c426eb
SITL: Gazebo index out of bound
...
- imu_orientation_quat[size=3] is fed to Quaternion[size=4] which causes an index-out-of-range problem
2015-07-22 21:33:46 +10:00
Michael du Breuil
59dda49cce
AP_GPS: Fix missing reserved fields in the UBX-RXM-RAWX message
2015-07-22 21:31:10 +10:00
Michael du Breuil
09fef505e0
AP_GPS: With a ublox driver, accept a packet if it will fit in the buffer
2015-07-22 21:31:10 +10:00
Michael du Breuil
22b16b4532
AP_GPS: Enable selecting what GNSS system to use if the reciever supports it
...
Ublox 7 and 8 seires use a UBX-CFG-GNSS message to enable satellite constellations. The default value does not enable any additional ones, and any constellations the reciever doesn't report knowing about are not configured.
2015-07-22 21:31:10 +10:00
Michael du Breuil
47592a1953
AP_GPS: Raise the baud rate on a ublox GPS if using RAW logging
...
the implementation leaves an easy path forward for providing a different startup blob for all the GPS's if raw logging is enabled
2015-07-22 21:31:09 +10:00
Michael du Breuil
19bb96b9cb
AP_GPS: Improve startup logic for detecting what gps is connected
...
Remove race condition on sending intial blob to the GPS, it was possible to send a blob that got the GPS configured enough to allow the autodetect to take over (and then some drivers like ublox would not finish sending the blob, which has potential details that the driver might have needed to send)
Limit the delay to checking for NMEA gps to only checking after all the available baud rates have been checked
Since a UBlox will actually report having DGPS (due to SBAS or RTCM data) actually report this as the highest supported mode
2015-07-22 21:31:09 +10:00
Arthur Benemann
e3398648d7
GCS_MAVLink: fix debug formatting
2015-07-21 21:41:34 +09:00
Randy Mackay
521f3dc4b9
GCS_MAVLink: only forward msg once per channel
...
Issue found and alternative fix provided by Arthur Benemann
2015-07-21 21:41:32 +09:00
Randy Mackay
6f72d202fe
GPS: fix parameter descriptions
2015-07-21 19:50:12 +09:00
Randy Mackay
e31f2d26c4
MotorsMulticopter: move get_hover_throttle_as_pwm to protected
...
No functional change
2015-07-21 16:27:04 +09:00
Randy Mackay
c7c6228b5d
MotorsMulticopter: remove virtual from set_yaw_headroom
2015-07-21 16:27:01 +09:00
Randy Mackay
157c97447d
AC_AttControlHeli: init passthrough_yaw
2015-07-21 16:26:27 +09:00
Randy Mackay
8b4805bfcb
AC_AttControl_heli: add MotorsHeli include
2015-07-21 16:25:56 +09:00
Randy Mackay
bf2bf2e3fa
AC_AttControl_Multi: new multirotor specific attitude control class
2015-07-21 16:25:53 +09:00
Randy Mackay
93dd7dd970
AC_AttControl: get_boosted_throttle purely virtual
2015-07-21 16:25:50 +09:00
Randy Mackay
4843be49de
AP_MotorsTri: remove call to empty parent Init
...
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:48 +09:00
Randy Mackay
f906934dfa
AP_MotorsSingle: remove call to empty parent Init
...
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:45 +09:00
Randy Mackay
112e934072
AP_MotorsMatrix: remove call to empty parent Init
...
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:43 +09:00
Randy Mackay
b1a4a6bf0a
AP_Motors_Coax: remove call to empty parent Init
...
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:40 +09:00
Randy Mackay
4d1dfd94f5
AP_MotorsMulticopter: multicopter features moved in from parent
...
Also rename from multirotor to multicopter
2015-07-21 16:25:37 +09:00
Randy Mackay
7355ac9cb8
AP_MotorsHeli: implement empty slow start method
2015-07-21 16:25:34 +09:00
Randy Mackay
a3fab10ef4
AP_MotorsHeli: init roll_radio_passthrough
2015-07-21 16:25:31 +09:00
Randy Mackay
c9dedbd3b2
AP_Motors: remove multicopter only features
...
Also rename uses of Multirotor to Multicopter
2015-07-21 16:25:28 +09:00
Robert Lefebvre
abb6eba291
AP_MotorsHeli: Change allow_arming check to use _rotor_speed_estimate
...
In future, this will be used to check actual rotor speed (measured) if available, to prevent trying to arm with the rotor spinning.
2015-07-21 16:25:21 +09:00
Robert Lefebvre
9fcbc77ce0
AP_MotorsHeli: Create rotor_speed_above_critical accessor
2015-07-21 16:25:11 +09:00
Robert Lefebvre
992c9c75bb
AP_MotorsHeli: Create parameter_check method.
2015-07-21 16:25:04 +09:00
Robert Lefebvre
e2fe640e6c
Copter: Clean up helicopter allow_arming() function
2015-07-21 16:24:58 +09:00
Robert Lefebvre
61d6c5aa1d
AP_Motors: Creation of AP_Motors_Multirotor class
2015-07-21 16:24:38 +09:00
Lucas De Marchi
5c9bf90d94
SITL: use ARRAY_SIZE macro
2015-07-21 14:25:19 +09:00
Lucas De Marchi
fd5d25b1d5
AP_Compass: use ARRAY_SIZE macro
2015-07-21 14:25:17 +09:00
Lucas De Marchi
3136b8916c
DataFlash: use ARRAY_SIZE macro
2015-07-21 14:25:15 +09:00
Lucas De Marchi
d8b70dc0c5
AP_Scheduler: use ARRAY_SIZE macro
2015-07-21 14:25:13 +09:00
Lucas De Marchi
fdc6a75124
AP_Menu: use ARRAY_SIZE macro
2015-07-21 14:25:10 +09:00
Lucas De Marchi
0471de2342
AP_Math: use ARRAY_SIZE macro
2015-07-21 14:25:09 +09:00
Lucas De Marchi
eda4879f3f
AP_InertialSensor: use ARRAY_SIZE macro
2015-07-21 14:25:07 +09:00
Lucas De Marchi
3f472fb9e1
AP_HAL_VRBRAIN: use ARRAY_SIZE macro
2015-07-21 14:25:05 +09:00
Lucas De Marchi
473415a3c2
AP_HAL_SITL: use ARRAY_SIZE macro
2015-07-21 14:25:03 +09:00
Lucas De Marchi
d4d56aef1a
AP_HAL_PX4: use ARRAY_SIZE macro
2015-07-21 14:25:01 +09:00
Lucas De Marchi
cfc2972e51
AP_HAL_Linux: use ARRAY_SIZE macro
2015-07-21 14:24:58 +09:00
Lucas De Marchi
b83708f77f
AP_HAL: use ARRAY_SIZE macro
2015-07-21 14:24:56 +09:00
Lucas De Marchi
9d59b43920
AP_GPS: use ARRAY_SIZE macro
2015-07-21 14:24:54 +09:00
Lucas De Marchi
4a595bd797
APM_Control: use ARRAY_SIZE
2015-07-21 14:24:52 +09:00
Lucas De Marchi
fb2eb262e7
AP_Math: use ARRAY_SIZE instead of defining another one
2015-07-21 14:24:49 +09:00
Randy Mackay
73ff01dc68
AP_Notify: replace unsigned int with uint8_t
2015-07-21 13:52:03 +09:00
Lucas De Marchi
1bba105be4
AP_Notify: don't manually define number of notify devices
...
Like b211b86
(AP_HAL_Linux: don't manually define number of spi devices)
did for spi.
2015-07-21 13:52:00 +09:00
Peter Barker
65813f308e
DataFlash: fix incorrect comment
2015-07-21 13:11:00 +09:00
Randy Mackay
8225e58454
AP_Motors: throttle_min method in 0 to 1000 range
...
Previously the pwm range value was returned. This value is only used by
the multicopter attitude controller's angle boost function.
2015-07-20 20:44:46 +09:00
Randy Mackay
6bf6442396
MotorsMatrix; protect against divide by zero
...
This should never happen but just to be safe
2015-07-20 20:44:43 +09:00
Randy Mackay
fa60c3dce8
MotorsCoax: fix output_armed_stabilized min thr limit
2015-07-20 20:44:36 +09:00
Randy Mackay
8a308205ce
MotorsSingle: fix output_armed_stabilized min thr limit
2015-07-20 20:44:32 +09:00
Randy Mackay
bd9a605086
MotorsTri: fix output_armed_stabilized min thr limit
...
_min_throttle is in the pwm range but was being used as if in the 0 to
1000 range
2015-07-20 20:44:23 +09:00
Randy Mackay
e53c46bd8f
MotorsMatrix: fix output_armed_stabilized min thr limit
...
_min_throttle was being used as if it were in the 0 to 1000 range when
in fact it is in the pwm range. This meant the lower limit was too low.
2015-07-20 20:44:14 +09:00
Jean-Baptiste Dubois
7dcfe1c667
RCOutput_Bebop: group channels write
2015-07-20 09:23:13 +10:00
Andrew Tridgell
3b1b7ea029
AP_GPS: fixed time handling with NMEA driver
2015-07-20 09:15:32 +10:00
Julien BERAUD
a852e48f37
AP_GPS_NMEA: fix gps startup
...
when no valid gps data, gps would restart in a loop. Take the frame without
gps fix into account for frame counting
2015-07-20 09:14:15 +10:00
John Hsu
14e462706d
SITL: added gazebo SITL shim
2015-07-20 09:10:48 +10:00
John Hsu
c34ddb7fb8
HAL_SITL: added gazebo SITL model support
2015-07-20 09:10:48 +10:00
Randy Mackay
a61129f7f8
GCS_MAVLink: add support for send_mission_item_reached
2015-07-19 12:14:09 +09:00
Randy Mackay
766ccea3be
Mission: fix bug causing first do-cmd to be run many times
...
The symptom was that if the very first command in the mission was a
do-command, it would be run after every nav-command that didn't have
another do-command before it.
2015-07-17 12:15:08 +09:00
Randy Mackay
429346f4bc
AP_Mission: add missing breaks to case statement
2015-07-17 12:15:06 +09:00
Randy Mackay
0acfcbfa81
NavEKF: use primary compass instead of first instance
...
Thanks very much to staroselskii for finding this bug
2015-07-17 10:02:42 +09:00
Randy Mackay
cedc9a8670
Compass: add last_update_usec per instance
2015-07-17 10:02:41 +09:00
Andrew Tridgell
69cfe11455
AP_Arming: raise accel arming threshold to 0.75
...
arming issues due to accel inconsistency are too common
2015-07-17 09:50:19 +10:00
Andrew Tridgell
18de1c2c47
GCS_MAVLink: send AHRS2 even if we don't have a secondary position
2015-07-17 08:24:49 +10:00
Andrew Tridgell
6009ae55b1
AP_Math: fixed build of eulers example sketch
2015-07-17 08:24:49 +10:00
Randy Mackay
cc0ab26f5d
Mount: fix init of mode
...
Mode was being set from MNT_DEFTL_MODE parameter before that parameter's
value had been initialised from eeprom
2015-07-16 14:14:01 +09:00
Jean-Baptiste Dubois
9e5d13c1de
RCOutput_Bebop: use CLOCK_MONOTONIC instead of CLOCK_REALTIME
...
CLOCK_MONOTONIC is not affected by discontinuous jumps in the system time.
2015-07-15 12:08:44 +02:00
Robert Lefebvre
14882bc6a8
AC_AttitudeControl: Remove unused takeoff jump #define
2015-07-14 20:16:58 +09:00
Robert Lefebvre
e1902e2289
AP_MotorsHeli: Remove unused _dt variable.
2015-07-14 20:13:43 +09:00
Randy Mackay
7d2fe3cc2b
AP_GPS_UBlox: remove unused member
2015-07-14 15:02:15 +09:00
Randy Mackay
2c33250bee
AP_GPS_UBlox: send_next_rate_update always runs all steps
...
Moving the if, endif checks within the case statement ensures the state
machine goes through all 10 states
2015-07-14 15:02:13 +09:00
Randy Mackay
4b015d2091
AP_GPS: remove compiler warnings
2015-07-14 15:02:10 +09:00
Randy Mackay
df3a04e284
AP_GPS: reduce fake Ublox hdop to 130
2015-07-14 15:02:08 +09:00
Andy Piper
5ccc58ffb4
AP_GPS: Read actual hDOP value from UBLOX messages
...
Before we were reading the position DOP and calling it hDOP. Since the
other drivers actualy read hDOP it seem best to do the same.
Fixes issue 462.
2015-07-14 15:02:03 +09:00
Paul Riseborough
610595bfb9
AP_NavEKF: Prevent position drift between arming and takeoff when using OF
2015-07-13 10:54:36 +09:00
Randy Mackay
2b4aaf2368
SITL: add vibe monitor and SIM_ACC2_RND to sitl
2015-07-12 16:50:30 +09:00
Paul Riseborough
8b4b0b9576
AP_NavEKF: Add accelerometer clip monitoring and isolation
...
Isolates an accelerometer that is clipping and attempts to use the one that is clipping less.
2015-07-12 16:49:19 +09:00
Staroselskii Georgii
72820303d4
AP_HAL_Linux: set higher SPI speed for Navio
...
We can set a higher speed on newer Linux kernels since
52469b2a38
.
The older ones will just floor the value.
2015-07-10 18:59:18 +10:00
Peter Barker
0028910428
AP_InertialNav: take reference to variable we are trying to update
...
There are no callers to this function. Perhaps it should be removed?
2015-07-10 18:56:20 +10:00
Andrew Tridgell
4e0c2c5a9b
AP_HAL: defined default log and terrain directories for bebop
...
the /var filesystem is wiped on boot on Bebop. Use these as a
temporary workaround
2015-07-10 16:46:31 +10:00
Andrew Tridgell
6df33dd3f4
AP_InertialSensor: fixed MPU6000_SPI bus initialisation
...
we need _spi for get_semaphore()
2015-07-10 16:46:30 +10:00
Julien BERAUD
954ec71630
HAL_Linux: added rcout implementation for bebop
2015-07-10 16:46:30 +10:00
Julien BERAUD
51c3c499e2
AP_Compass: support AK8963 on I2C
2015-07-10 16:46:30 +10:00
Julien BERAUD
0b41da0dea
AP_Compass: rework to make the bus generic for AK8963
...
Supporting only MPU9250, prepare to implement another bus, i.e i2c on the
bebop
2015-07-10 16:46:29 +10:00
Julien BERAUD
0cd584c293
AP_Compass: fix rotation for bebop AK8963
...
Set the correct rotation for bebop
2015-07-10 16:46:29 +10:00
Julien BERAUD
7dd0b5fae6
AP_Compass: removed _spi_sem and _spi
2015-07-10 16:46:29 +10:00
Julien BERAUD
d407737434
AP_Baro: added MS5607 support
2015-07-10 16:46:29 +10:00
Julien BERAUD
3cf952d1f8
AP_InertialSensor: add fifo support for MPU6000
...
And remove the use of data rdy in this case
2015-07-10 14:24:09 +10:00
Julien BERAUD
8a76ff53bd
AP_InertialSensor: add i2c bus driver for MPU6050
2015-07-10 14:24:09 +10:00
Julien BERAUD
1679728730
AP_InertialSensor: Configure SPI as a generic bus for MPU6000
...
Add the possibility to implement an i2c bus communication for the
MPU6050 on parrot bebop
2015-07-10 14:24:09 +10:00
Julien BERAUD
f0bed711cf
AP_HAL: added AK8963 I2C defines
2015-07-10 14:23:18 +10:00
Julien BERAUD
e0b59942b0
AP_HAL: changed log directories for bebop
2015-07-10 14:23:18 +10:00
Julien BERAUD
5c414b4ca2
AP_HAL: Fix Compass I2C address for Bebop
2015-07-10 14:23:18 +10:00
Julien BERAUD
8d6123928f
AP_HAL: Add i2c bus numbers and addresses
2015-07-10 14:23:18 +10:00
Julien BERAUD
bef8001a09
AP_HAL: added MS5607 baro define
2015-07-10 14:23:17 +10:00
Julien BERAUD
eea7ea8488
AP_HAL: split MPU6000 INS defines for I2C and SPI
2015-07-10 14:23:17 +10:00
Julien BERAUD
7275e33e79
AP_HAL: add the possibility to have more than 1 i2c
...
Bebop drone has 3 i2c
2015-07-10 14:23:17 +10:00
Andrew Tridgell
a6f62c208e
AP_HAL: added bebop Linux board type
2015-07-10 10:22:59 +10:00
Julien BERAUD
b32259307d
AP_GPS: Add baudrate 230400 for GPS
...
Needed by bebop gps by default
2015-07-10 10:12:52 +10:00
Andrew Tridgell
282efe2d57
AP_Baro: fixed example to run accumulate at 50Hz
2015-07-10 09:59:35 +10:00
Andrew Tridgell
c83d5b1f08
AP_Compass: only build AK8963 driver on Linux
...
must match MPU9250 build
2015-07-09 11:57:27 +10:00
Andrew Tridgell
f4a9f9876f
HAL_PX4: make usb_connected() more robust
...
thanks to a suggestion from Phillip Kocmoud, this should fix issues
with the XUAV-X2
2015-07-08 11:19:07 +10:00
Randy Mackay
2f8a7f316f
Notify: enable toshibaLED for NAVIO
2015-07-07 20:08:19 +09:00
Staroselskii Georgii
402f46c56f
AP_Airspeed: fixed a typo in the ARSPD_DEFAULT_PIN define
...
There was a redundant elif for Linux builds.
2015-07-07 21:02:21 +10:00
Randy Mackay
1d732ddf62
Mount: param desc rename from MAVLink to 3DR Solo
2015-07-07 13:29:24 +09:00
mirkix
1b0f482d37
AP_RangeFinder: Add support for HC-SR04 Range Finder connected to BBB
2015-07-07 08:00:33 +10:00
Randy Mackay
d192b3ccea
Compass: set device id for ak8963 and hmc5843
2015-07-06 21:04:46 +09:00
Randy Mackay
ad1f9c4829
DataFlash: add ORGN message
2015-07-06 12:11:49 +09:00
Randy Mackay
03356a8d3a
OptFlow: fix parameter descriptions
2015-07-06 11:37:38 +09:00
dgrat
f56f584233
Compass: Improved field rounding in learning
...
Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-07-06 11:31:58 +10:00
Daniel Frenzel
c49e44d02c
HAL_LInux: RCInput for Navio
...
Cleaned the code a bit
Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-07-06 11:19:33 +10:00
kozinalexey
20a04bad77
AP_GPS: request RMC message in NMEA driver
2015-07-06 11:16:12 +10:00
dzollo
5d5d9dc137
AP_GPS: Fix max/min bug on SBP buffering. Log messages whether SBP driver recognizes the msg_type or not.
2015-07-06 10:53:35 +10:00
Lucas De Marchi
efec7723ff
AP_InertialSensor: reset the MPU9250 chip on startup
...
Now that the initialization of MPU9250 is shared between the
AP_InertialSensor and other drivers using it as a backend, we can reset
the MPU9250 in order to put it in a known state.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
1deb837e70
AP_Compass: Use common function in MPU9250 for initialization
2015-07-06 10:48:07 +10:00
Lucas De Marchi
eb4e2ac2e5
AP_InertialSensor: factor out MPU9250 initialization
...
Now we have the initialization code split in 2 parts:
1) Making sure the MPU9250 chip is alive and working: this is now in a
static function that may be called by other drivers that use MPU9250 as
backend.
2) The configuration of gyro and accel. Once the first part is completed
successfully the AP_InertialSensor_MPU9250 finishes the configuration of
the sensors it uses.
The only change in behavior here is that before we would try 25 time (5x
inside _hardware_init time 5x inside _init_sensor() that calls the first
function) to "boot the chip" and now we are doing "only" 5.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
953bfbd3fe
AP_InertialSensor: provide static methods for spi transactions
...
Add static methods to do the SPI transactions and provide the wrapper
methods when we have an instance of the object. This is useful so these
methods can be called from other contexts when the AP_InertialSensor
hasn't been initialized yet.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
fde43a77b3
AP_HAL_Linux: allow to change spi device state
...
Allowing to change the SPI device state allows us to save the
information whether the device was already initialized and avoid 2
separate drivers to initialize it.
2015-07-06 10:48:06 +10:00
Lucas De Marchi
384d650a23
AP_HAL: allow to have spi device state
2015-07-06 10:48:06 +10:00
Staroselskii Georgii
26c8007c96
AP_Compass: updated backend detect method
...
Uses reimplemented AK8963 driver. There's also no need trying to detect this
compass twice. Actually, it might even be bad, because the current code can
allocate an AK8963 object twice.
2015-07-06 10:48:06 +10:00
Staroselskii Georgii
7a417d1151
AP_Compass: AK8963 rework
...
Got rid of extra abstraction layer. There is no need for that now.
2015-07-06 10:48:06 +10:00
mirkix
f82344358f
AP_InertialSensor: Change BBBMINI standard orientation
2015-07-06 10:12:39 +10:00
mirkix
e6363ea95d
AP_HAL_Linux: BBBMINI uses /dev/i2c-2
2015-07-06 10:09:21 +10:00
Lucas De Marchi
b211b86204
AP_HAL_Linux: don't manually define number of spi devices
...
It's error-prone, let's make the compiler define it for us.
2015-07-06 10:07:22 +10:00
Lucas De Marchi
82314ee4a3
AP_Common: add helper macro ARRAY_SIZE
2015-07-06 10:07:21 +10:00
Andrew Tridgell
1f58e0080a
SITL: fixed some build warnings
2015-07-06 09:21:49 +10:00
Andrew Tridgell
8f41d97548
AP_Math: fixed build error on PX4
...
variable set but not used with recent longitude_scale change
2015-07-06 08:19:57 +10:00
Andrew Tridgell
099392d3ca
AP_Math: don't optimise longitude_scale on faster CPUs
...
it causes problems with replay
2015-07-05 17:27:53 +10:00
Andrew Tridgell
88a90495b2
HAL_SITL: allow for more data before GPS pipe flush
2015-07-04 15:14:39 +10:00
Andrew Tridgell
21c895f6f3
AP_GPS: prevent extra NMEA messages causing rapid fix rates
...
unexpected messages could cause the GPS driver to report a very high
fix rate, which can confuse the EKF
2015-07-03 22:08:05 +10:00
Paul Riseborough
4fb7beba4b
AP_NAvEKF: Prevent failure due to magnetometer fusion numerical errors
...
If a badly conditioned covariance matrix causes negative innovation variances, then the filter will diverge. The previous approach of increasing process noise was not effective in some cases, so a hard reset of the covariance matrix has been adopted to guarantee recovery.
This fixes a numerical error observed using the replay on flight log which had significant periods of compass rejection.
2015-07-02 18:07:22 +10:00
Randy Mackay
43b1694c76
Compass: add third compass to PRIMARY param description
2015-07-02 14:19:30 +09:00