Commit Graph

39728 Commits

Author SHA1 Message Date
Andrew Tridgell e3a965272c HAL_ChibiOS: added Pixhawk1-1M
this is for 1M versions of the Pixhawk1. It is smaller than fmuv2 as
it only links the specific sensors needed for Pixhawk1
2019-10-01 09:08:25 +10:00
Andrew Tridgell b5217412f9 AP_GPS: fixed a bug in handling corrupt u-blox packets
when we have corrupt input due to loss of bytes on a UART we can end
up with a u-blox packet with zero payload bytes. When that happens we
need to bypass payload reading as otherwise we will end up keeping
reading bytes until the driver resets at 4 seconds, causing a GPS
outage.

This was causing GPS outages every few hours in copters running 3.6.7,
and was also reproduced in SITL using SIM_GPS_BYTELOSS.
2019-09-30 15:20:30 -06:00
Mark Whitehorn 356e9f116d IO_Firmware: update binaries (gcc version 6.3.1 20170620... 6-2017-q2-update) 2019-10-01 07:13:33 +10:00
Mark Whitehorn 0a6ae60c89 AP_IOMCU: fix IO fast channel mask 2019-10-01 07:13:33 +10:00
Mark Whitehorn d8a07b6c44 HAL_ChibiOS: fix FMU fast_channel_mask
fix IO fast channel mask
use IOMCU chmask to only set right channels
remove unused variable
2019-10-01 07:13:33 +10:00
Andrew Tridgell 748cf39116 HAL_ChibiOS: disable DMA for RCIN on Pixracer
this frees up DMA for USART1_RX, which gives DMA for input over the
SERIAL5 WiFi port, which is important for applications where a
pixracer is being fed vision data over WiFi
2019-09-30 07:58:40 +10:00
mhefny 92d55fa126 SITL: removed unnecessary files of webots 2019-09-30 04:46:38 +10:00
Peter Barker 04ee459e8c AP_Baro: exclude Sub pressure transducers from non-sub builds 2019-09-28 16:41:06 +10:00
Andrew Tridgell 1635da1dd7 Tools: removed HAVE_OCLOEXEC check 2019-09-28 14:19:46 +10:00
Andrew Tridgell c29867ecad AP_Common: removed fcntl overrides
not needed with AP_Filesystem, and fixes lots of warnings with newer
compilers
2019-09-28 14:19:46 +10:00
Andrew Tridgell 81711eb28e AP_HAL: fixed build on g++ 7.3 for stm32
the system maths headers don't like our maths defines, but are happy
if we include math.h first
2019-09-28 14:19:46 +10:00
Henry Wurzburg cf3bd2487b AP_OSD: add current averaging filter to reduce jitter (~5 sample timeconstant) 2019-09-28 14:17:59 +10:00
Randy Mackay 9d5cbbe58f Copter: restore range finder updates to 20hz 2019-09-28 11:13:14 +09:00
Randy Mackay a5d0f55bdc Copter: upward surface tracking never closer than avoidance margin 2019-09-28 11:13:14 +09:00
Randy Mackay 0d032ecd86 AC_Avoidance: add enabled and margin accessors 2019-09-28 11:13:14 +09:00
Randy Mackay 1c4f47f882 Copter: add upward facing surface tracking 2019-09-28 11:13:14 +09:00
Randy Mackay 6be4adbe02 RC_Channels: define surface tracking auxiliary function 2019-09-28 11:13:14 +09:00
Randy Mackay 5d24d0e4dd Copter: surface tracking always includes ekf alt error when setting target rangefinder alt 2019-09-28 11:13:14 +09:00
Randy Mackay d5d7fbe761 Copter: rangefinder glitch detection moved to read_rangefinder 2019-09-28 11:13:14 +09:00
Randy Mackay 808efa4c79 Copter: surface tracking format fixes 2019-09-28 11:13:14 +09:00
Randy Mackay d41e7dcbee Copter: move surface tracking implementation to surface_tracking.cpp 2019-09-28 11:13:14 +09:00
Randy Mackay b54cf410ef Copter: increase read_rangefinder to 50hz 2019-09-28 11:13:14 +09:00
Peter Barker 3ef94a69ad Sub: call periodic fence update function 2019-09-28 07:58:48 +09:00
Peter Barker 4d6dc9b0a7 Copter: call periodic fence update function 2019-09-28 07:58:48 +09:00
Peter Barker b6bc0c638c Rover: call periodic fence update function 2019-09-28 07:58:48 +09:00
Peter Barker 6891225438 Sub: initialise AC_Fence library 2019-09-28 07:58:48 +09:00
Peter Barker e5fa8f622b Copter: initialise AC_Fence library 2019-09-28 07:58:48 +09:00
Peter Barker 1fd989491c Rover: initialise AC_Fence library 2019-09-28 07:58:48 +09:00
Randy Mackay 9aeac012d2 AC_Avoid: add support for complex fence types
AP_OABendyRuler: support exclusion polygons

AP_OADijkstra: support exclusion polygons

AC_Avoid: adjust_velocity supports exclusion polygons

AC_Avoidance: handle fence::get_boundary_points returning nullptr instead of setting num_points to zero

AC_Avoidance: Dijkstra's works with only exclusion polygons

AC_Avoidance: Dijkstra: check for fence counts instead of polyfence validity

We really only care whether fences can be returned - and they won't be
returned unless they are valid

AC_Avoidance: BendyRuler: just try to get inclusion fence rather than checking validity

AC_Avoidance: BendyRuler supports exclusion circles

AC_Avoid: Dijkstra support for exclusion circles

AC_Avoid: BendyRuler support for inclusion circles

AC_Avoid: stop an inclusion/exclusion circular fences

AC_Avoid: stop at inclusion/exclusion circular fences

AC_Avoid: fixes to Dijkstra's use of inclusion/exclusion circles and polygons

AP_Avoidance: take semaphores when interacting with AHRS and polyfence

AC_Avoid: Dijkstra's fix for some_fences_enabled inclusion circles
2019-09-28 07:58:48 +09:00
Randy Mackay 3431938bce AP_Logger: add error code to Write_OADijkstra 2019-09-28 07:58:48 +09:00
Peter Barker a0c6ff95e4 AP_Proximity: polyfence valid() has been renamed 2019-09-28 07:58:48 +09:00
Peter Barker 714a3e2462 AC_Fence: support for multiple polygon fences
AC_Fence: add interface for retrieving exclusion polygons

AC_Fence: add interface to get exlusion polygons to polyfence loader

AC_Fence: add suport for inclusion circles

AC_Fence: add option for compiling-out FENCE_POINT protocol support

AC_Fence: get_exclusion_polygon and get_boundary_points set num_points to zero on failure

AC_Fence: use Debug(...) to hide debug messages

AC_PolyFence_loader: add methods to retrieve all inclusion zones

AC_PolyFence_loader: valid simply returns true if a polygon boundary can be returned

AC_Fence: add get_exclusion_circle

AC_Fence: add get_exclusion_circle_update_ms accessor

AC_Fence: PolyFence_loader gets inclusion circle accessors

AC_PolyFence_loader: add and use semaphore to protect loaded fence

AC_Fence: move fence breach check below fence type checks

This allows us to provide more information to the user about why they
are breached.

For example, if the radius is negative you are considered in breach of
it - but we'd tell you you were breached, not that your radius was
invalid

AC_Fence: clear the fence if we discover the user has set the fence count to zero
2019-09-28 07:58:48 +09:00
Peter Barker c5f52a8355 Tools: autotest: tests for new fence code
Tools: autotest: move clear_mission up, use it before running each test

Also have it understand MAV_MISSION_TYPE_ALL

Tools: autotest: add tests for polyfence

Tools: autotest: add tests for multiple inclusion polyfences

Tools: autotest: ensure we can't arm inside a circle exclusion zone

Tools: autotest: add test for arming outside an inclusion zone

Tools: autotest: add tests for upload timeout

Tools: autotest: add tests for not arming due to polygon zones

Tools: autotest: add test for fence point reboot survivability

Tools: autotest: add test for moving fence point

Tools: autotest: add some tests via MAVProxy

Tools: autotest: add test for avoiding polygonal exclusion zones

Tools: autotest: add test for object avoidance

Currently disabled as it doesn't pass where it seemingly should.

Tools: autotest: skip MAVProxy tests on older MAVProxy versions

Tools: autotest: adjust fence loading for lack of string back from MAVProxy

Tools: autotest: create a do_RTL function

Tools: autotest: cope with loading QGC-style fence files

Tools: autotest: add test for object-avoidance in guided mode

Tools: autotest: add OA test for auto mode

Tools: autotest: add test for bendy ruler in guided mode

Tools: autotest: adjust for new MAVProxy fence module not emitting old strings

Tools: autotest: add tests for prearming due to bad parameter values
2019-09-28 07:58:48 +09:00
Peter Barker 6d0c5da84a GCS_MAVLink: allow upload of fence using mission item protocol
GCS_MAVLink: add support for fence inclusion circles

GCS_MAVLink: factor out a transfer_is_complete; start commenting properly
2019-09-28 07:58:48 +09:00
Peter Barker f3b0148719 AP_OADijkstra: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Peter Barker dfca32a2af AP_OABendyRuler: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Peter Barker 3a7f1b882e AC_Avoidance: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Peter Barker 74aed5aef8 GCS_MAVLink: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Peter Barker 5fe16d5250 AP_Proximity: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Peter Barker ff37590776 AC_Fence: move polygon points into AC_Fence_Polygon 2019-09-28 07:58:48 +09:00
Peter Barker 189ef5f1e7 AP_Math: define != for Vector2<int> 2019-09-28 07:58:48 +09:00
Peter Barker f1e5c72ee9 StorageManager: add write_uint8 alias for write_byte 2019-09-28 07:58:48 +09:00
Peter Barker f090f35afa AP_InternalError: add a general should-not-be-here bit 2019-09-28 07:58:48 +09:00
Peter Barker bc8e56966f GCS_MAVLink: squelched rally-points-received message 2019-09-28 07:58:48 +09:00
Andrew Tridgell 8dd2119b14 AP_NavEKF2: make it easy to do EK2 timing tests
for future benchmarking
2019-09-28 08:57:26 +10:00
Andrew Tridgell e820219202 HAL_ChibiOS: changed optimisation of higher end boards to -O2
-O3 does not seem to be a win, and takes up a lot more flash
2019-09-28 08:57:26 +10:00
Andrew Tridgell 0e3a27f74f AP_NavEKF3: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00
Andrew Tridgell 163efd0df5 AP_NavEKF2: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00
Andrew Tridgell 5f90afa71e AP_Mount: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00
Andrew Tridgell 13a2367278 AP_Math: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00