Commit Graph

13017 Commits

Author SHA1 Message Date
Andrew Tridgell
a2e92c4054 AP_BoardConfig: increase uavcan bus settle time to 2s
needed to ensure zubax mag has time to come up
2016-11-29 12:51:16 +11:00
Peter Barker
2c8a0a9123 DataFlash: rotate files when vehicle is disarmed 2016-11-28 09:42:09 -08:00
Peter Barker
fc79fb4ab4 DataFlash: know about armed state of vehicle 2016-11-28 09:42:09 -08:00
Randy Mackay
bac5deed43 AP_IRLock: health reporting based on successful I2C transfer
This change is required because sync messages are only sent if a target is visible
2016-11-28 12:08:36 +09:00
Andrew Tridgell
28b3de91cf AP_Compass: fixed orientation of internal i2c compass for FMUv1
thanks to Peter for noticing
2016-11-28 13:02:15 +11:00
Andrew Tridgell
40bd3a8861 HAL_PX4: tidy up thread wait code
use the same method for all threads. Makes for tidier top output
2016-11-28 10:28:01 +11:00
Andrew Tridgell
f039a37971 HAL_PX4: set names on all bus threads 2016-11-28 10:18:52 +11:00
Andrew Tridgell
00ccacb2ab AP_HAL: expose device bus number 2016-11-28 10:18:32 +11:00
Andrew Tridgell
f04b186879 HAL_PX4: fixed bug in instantiation of I2C bus threads
we ended up with a thread per device instead of a thread per bus!
2016-11-28 09:53:19 +11:00
Andrew Tridgell
12e0c840e8 HAL_PX4: set thread names for main threads 2016-11-28 09:47:49 +11:00
Andrew Tridgell
c62b64a600 AP_IRLock: improved sync protocol for IRLock I2C driver 2016-11-28 08:39:06 +11:00
Andrew Tridgell
50db4d362d AC_PrecLand: use new in-tree IRLock driver 2016-11-28 08:26:58 +11:00
Andrew Tridgell
c6ea451c56 AP_IRLock: new in-tree IRLock driver on I2C 2016-11-28 08:26:58 +11:00
Andrew Tridgell
22717f23be AP_OpticalFlow: apply yaw for flow in all drivers 2016-11-28 08:26:57 +11:00
Andrew Tridgell
06dfbc3e09 AP_OpticalFlow: added common driver for PX4Flow
used on Linux and NuttX boards
2016-11-28 08:26:57 +11:00
Andrew Tridgell
52715c5d16 AP_OpticalFlow: fixed default pixart flow scaling 2016-11-28 08:26:57 +11:00
Andrew Tridgell
9b93e12bbb AP_OpticalFlow: retry config register write up to 5 times 2016-11-28 08:26:57 +11:00
Andrew Tridgell
ea462d80e6 AP_OpticalFlow: added _applyYaw method to backend
for common handling of yaw correction
2016-11-28 08:26:57 +11:00
Andrew Tridgell
abc42c737c AP_OpticalFlow: added update function for Pixart flow driver 2016-11-28 08:26:57 +11:00
Andrew Tridgell
0be1b1aac2 AP_OpticalFlow: give access to AHRS from all backends 2016-11-28 08:26:56 +11:00
Andrew Tridgell
def6e014cf HAL_SITL: removed old optflow simulation 2016-11-28 08:26:56 +11:00
Andrew Tridgell
42435e700b SITL: expose height above ground to all models 2016-11-28 08:26:56 +11:00
Andrew Tridgell
2e2f8ad8cf AP_OpticalFlow: added SITL flow driver as normal driver
move away from HAL_SITL embedded drivers
2016-11-28 08:26:56 +11:00
Andrew Tridgell
a96ed8c188 AP_HAL: added virtual destructor for Semaphores 2016-11-28 08:26:56 +11:00
Andrew Tridgell
0889b25afa AP_OpticalFlow: initial code for Pixart optical flow chip 2016-11-28 08:26:56 +11:00
Randy Mackay
54a87ad35c AP_Proximity: set minimum boundary distance
AC_Avoidance will not stop if it thinks the vehicle is on or outside the polygon.  Setting a minimum distance ensures the vehicle is always within the polygon.
2016-11-27 15:05:48 +09:00
Randy Mackay
57ae14ab4c AP_Proximity: add get distances, distance_max, distance_min
These are used to send distance-sensor messages to the ground station
2016-11-27 15:05:45 +09:00
Randy Mackay
b46cc623a0 AC_Avoidance: adjust_velocity_polygon accepts body-frame points 2016-11-27 15:05:42 +09:00
Randy Mackay
55d79d9a32 AC_Avoidance: proximity sensor method re-uses polygon fence boundary code 2016-11-27 15:05:41 +09:00
Randy Mackay
cdee68174d AC_Avoidance: rename adjust_velocity_polygon_fence 2016-11-27 15:05:39 +09:00
Randy Mackay
79280036de AC_Avoidance: rename adjust_velocity_circle_fence method 2016-11-27 15:05:38 +09:00
Randy Mackay
40c4e75ae7 AC_Avoidance: remove unnecessary const float arguments 2016-11-27 15:05:36 +09:00
Randy Mackay
6293fa1595 AP_Proximity: add boundary points for object avoidance
This returns a fence which can be used for object avoidance by AC_Avoidance
2016-11-27 15:05:35 +09:00
Randy Mackay
26332251f5 AP_Proximity: add ignore areas
Only SF40c uses these ignore areas for now at least.
It is safe to increase the eeprom locations for the 2nd proximity instance because we only define a single instance.
2016-11-27 15:05:27 +09:00
Randy Mackay
87dea46f5d AP_Proximity: add get_closet_object for use in pre-arm checks 2016-11-27 12:03:06 +09:00
Randy Mackay
a56c9545bd AP_Proximity: SITL driver filles in backend sector data 2016-11-27 12:03:04 +09:00
Randy Mackay
f594a5a7d6 AP_Proximity: move sectors to backend
This prepares for sectors to be re-used by the SITL driver
2016-11-27 12:03:01 +09:00
Andrew Tridgell
f9845c93b1 AP_InertialSensor: keep transfers nicely setup for DMA on stm32
this avoids using stack based bounce buffers which may not support DMA
on stm32
2016-11-27 11:26:10 +11:00
Andrew Tridgell
37a9a78725 HAL_PX4: avoid bounce buffers for SPI when possible 2016-11-27 11:10:18 +11:00
Andrew Tridgell
f3d401abb9 HAL_PX4: fixed FMUv1 build 2016-11-27 07:45:54 +11:00
Andrew Tridgell
df60b4252a HAL_PX4: reduced noise in PX4 console 2016-11-26 19:06:15 +11:00
Andrew Tridgell
771cedca3d AP_InertialSensor: reduced number of SPI transfers
use cached copy of temperature in MPU6000 and MPU9250 to detect FIFO
error when possible
2016-11-26 19:02:22 +11:00
Andrew Tridgell
fdc94ec28a AP_HAL: fixed frequency init for register checking 2016-11-26 18:36:36 +11:00
Tom Pittenger
40777e9e74 AP_Mission: move jump_to_landing_sequence() to AP_Mission 2016-11-25 19:07:30 -08:00
Tom Pittenger
d4d186058d AP_Landing: move jump_to_landing_sequence() to AP_Mission 2016-11-25 19:07:30 -08:00
Tom Pittenger
1a70e2f353 AP_Landing: new param LAND_TYPE to split current behavior into AP_Landing_Slope.cpp 2016-11-25 19:07:30 -08:00
Tom Pittenger
c7bbb6998a TECS: set landing params as private and use accessors 2016-11-25 19:07:30 -08:00
Tom Pittenger
fe4cd7bbbd AP_Landing: set landing params as private and use accessors 2016-11-25 19:07:30 -08:00
Tom Pittenger
98ae77d6a3 AP_Landing: Migrate the rest of "LAND_" params from Plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger
d53b177877 AP_Landing: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger
9035dcbbc5 AP_TECS: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger
15ec551990 AP_Vehicle: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger
8f36fe7705 AP_Landing: migrate aparm "LAND_" params from plane to AP_Landing 2016-11-25 19:07:30 -08:00
Tom Pittenger
fc84c61672 AP_Landing: add const to all possible vars in function calls 2016-11-25 19:07:30 -08:00
Tom Pittenger
fc2f518f31 Plane: revert auto_state.checked_for_autoland back to Plane 2016-11-25 19:07:30 -08:00
Tom Pittenger
3814b5a38b AP_Landing: resorted functions so they line up with plane/landing for easier compare 2016-11-25 19:07:30 -08:00
Tom Pittenger
75e625fd30 AP_landing: port the rest of plane/landing.cpp 2016-11-25 19:07:30 -08:00
Tom Pittenger
9a79b79f1e AP_Landing: port more from plane 2016-11-25 19:07:30 -08:00
Tom Pittenger
10027b21d6 Plane/AP_Landing: port setup_landing_glide_slope() 2016-11-25 19:07:30 -08:00
Tom Pittenger
f556f705e6 Plane: move various g params to aparms 2016-11-25 19:07:30 -08:00
Tom Pittenger
d2376b7c8b Plane: migrate two helper functions to AP_Landing
- move functions restart_landing_sequence() and jump_to_landing_sequence() to AP_Landing
- NOTE: jump_to function can not set mode, so it is now done externally in vehicle
2016-11-25 19:07:30 -08:00
Tom Pittenger
896b931a7c Plane: Move auto_state variables to AP_landing members 2016-11-25 19:07:30 -08:00
Tom Pittenger
61b02cb41d AP_Landing: add new library for fixed wing landing abstraction 2016-11-25 19:07:30 -08:00
Tom Pittenger
ce8db1fdba Plane: move struct Rangefinder_State to AP_Vehicle 2016-11-25 19:07:30 -08:00
Andrew Tridgell
eaf378cbf0 GCS_MAVLink: updated optical flow send 2016-11-26 12:27:41 +11:00
Andrew Tridgell
f2246326bb AP_Baro: added MS5611 probing, and support 3 baros on Pixhawk2
this adds sensor probing for barometers, simplifies the MS5611 driver,
and adds support for the I2C external barometers on Pixhawk2
2016-11-25 21:40:11 +11:00
Andrew Tridgell
954728c9e9 AP_HAL: added set_chip_select() API
for devices with unusual timings
2016-11-25 21:26:27 +11:00
Andrew Tridgell
638e89bd1d HAL_PX4: implement set_chip_select for SPI 2016-11-25 21:24:10 +11:00
Andrew Tridgell
60801314e0 HAL_PX4: added different modes for external SPI
and lower bus speed to 1MHz
2016-11-25 21:24:10 +11:00
Andrew Tridgell
bcb6663187 HAL_PX4: added table of actual bus speeds for SPI 2016-11-25 20:31:43 +11:00
Andrew Tridgell
27605b0258 AP_InertialSensor: run invensese reg checking at low speed
config register read/write should be at low bus speed.

also change to check every 20 calls to reduce checking cost
2016-11-25 20:31:40 +11:00
Andrew Tridgell
7100272f14 AP_HAL: default to register checking every 10th call
this saves having this in nearly all callers
2016-11-25 20:31:36 +11:00
Andrew Tridgell
0e793e1214 HAL_PX4: lower SPI bus speed on invensense devices
now we are using DMA we don't need such high bus speed, and this makes
SPI reliable with a wider range of devices.
2016-11-25 18:32:19 +11:00
Andrew Tridgell
7d57f00ca0 AP_Compass: removed debug line
this is now common when using in-tree drivers
2016-11-25 18:23:53 +11:00
Andrew Tridgell
0f984290c3 AP_InertialSensor: enable fast sampling by default on some boards 2016-11-25 17:59:54 +11:00
Andrew Tridgell
f62972d966 AP_Compass: fixed build on bhat
enable both compasses if found
2016-11-25 17:50:24 +11:00
Andrew Tridgell
1f403b02ef AP_Compass: switch to continuous 155Hz mode for LIS3MDL 2016-11-25 17:50:24 +11:00
Andrew Tridgell
62805f59fa AP_Compass: added AK09916 driver
yet another magnetometer!
2016-11-25 17:50:24 +11:00
Andrew Tridgell
17a117b324 AP_Compass: be a bit less verbose in startup 2016-11-25 17:50:23 +11:00
Andrew Tridgell
0e4b8781b2 AP_Compass: auto-detect LIS3MDL compass 2016-11-25 17:50:23 +11:00
Andrew Tridgell
b6b2919126 AP_Compass: don't panic on too many compasses
just use the first ones found. Panicing because you have too many
isn't useful
2016-11-25 17:50:23 +11:00
Andrew Tridgell
40ef68f104 AP_Compass: added a LIS3MDL compass driver 2016-11-25 17:50:23 +11:00
Andrew Tridgell
f3a778f980 AP_InertialSensor: fixed freeing of fifo buffer 2016-11-25 17:50:19 +11:00
Andrew Tridgell
6f28c61c8d AP_InertialSensor: changed SIZE to LEN
thanks to Lucas for suggestion
2016-11-25 17:50:19 +11:00
hiro2233
cb7f46d653 AP_InertialSensor: fixed handling of user_ctrl register
with aux bus implementations
2016-11-25 17:50:18 +11:00
Andrew Tridgell
29bbee421e HAL_PX4: enable sharing of SPI bus with PX4 with DMA 2016-11-25 17:50:18 +11:00
Andrew Tridgell
9b4c588c09 AP_InertialSensor: adapt drivers for SPI-DMA capable systems
no longer need accumulate() transfers with SPI enabled DMA on stm32
2016-11-25 17:49:58 +11:00
Andrew Tridgell
3fad5ca065 HAL_PX4: implement DMA allocation routines 2016-11-25 17:49:58 +11:00
Andrew Tridgell
e42bb20052 AP_HAL: added dma allocation routines to hal.util 2016-11-25 17:49:58 +11:00
Andrew Tridgell
28daddaaf2 AP_InertialSensor: don't use accumulate approach on Linux or I2C 2016-11-25 17:49:57 +11:00
Andrew Tridgell
d9c8db7024 AP_InertialSensor: implement a new strategy for fast sampling
this moves to using a 1p filter on the high rate data, followed by
averaging down to 1kHz then a 2p filter to apply configured cutoff
frequency.

It also fixes the FIFO reset to not cause data corruption. We need to
disable all FIFO channels before doing the reset, and wait for the
FIFO to stop in the sensor.

Finally it moves sampling of the MPU6000 and MPU9250 into the main
thread. That significantly improves scheduling performance as we no
longer get long FIFO SPI transfers happening during other tasks. All
transfers happen at the start of the fast loop. That makes timing much
more predictable.

Thanks to Leonard and Paul for help with this design!
2016-11-25 17:49:57 +11:00
Andrew Tridgell
b165e025d9 Filter: added new constructor for 1p filter
allow both sample rate and cutoff to be specified in constructor
2016-11-25 17:49:57 +11:00
Andrew Tridgell
7220dc15f9 HAL_PX4: adjusted bus speeds on invensense sensors 2016-11-25 17:49:57 +11:00
Andrew Tridgell
5934a099a4 AP_HAL: added support for more SRXL varients
based on work by Roman Seb <roman-29188@gmx.de>
2016-11-24 22:54:23 +11:00
priseborough
0a177d04fd AP_NavEKF2: Simply core switch implementation
Functionally equivalent
2016-11-24 19:58:10 +09:00
priseborough
7d48054e6f AP_NavEKF2: Group GPS innovation tests when compiling error score 2016-11-24 19:58:07 +09:00
Randy Mackay
e9ea06bd10 AP_NavEKF2: minor comment fix 2016-11-24 19:58:03 +09:00
Randy Mackay
a32068a973 AC_WPNav: remove ekf position reset handler
This has been migrated to the position control library
2016-11-24 19:58:00 +09:00
Randy Mackay
1012333eef AC_PosControl: add ekf position reset handling
Previously this was in AC_WPNav and used only for loiter but it should work for any flight modes that use horizontal or vertical position control
2016-11-24 19:57:56 +09:00
Randy Mackay
c615bac1cd AP_AHRS: add getLastPosDownReset accessor 2016-11-24 19:57:53 +09:00