Commit Graph

20170 Commits

Author SHA1 Message Date
Peter Barker
f385a4a329 GCS_Common: fix compiler warnings on missing parentheses 2019-06-11 21:50:53 +10:00
Randy Mackay
6ed09d83f3 GCS_MAVLink: send_home_position uses const Location reference 2019-06-11 13:13:22 +09:00
Randy Mackay
0a86bbdc9a AC_Avoidance: add license to cpp file 2019-06-11 13:13:22 +09:00
Randy Mackay
70e9881880 AR_WPNav: integrate OAPathPlanner 2019-06-11 13:13:22 +09:00
Randy Mackay
af80070ed9 AP_OAPathPlanner: path planning around obstacles
implements both bendy ruler and dijkstra's algorithms

includes many changes after peer review including:
removed unused airspeed and turn-rate arguments
renamed constants to start with OA_BENDYRULER_
removed fence_ptr check from update function that could cause bendy ruler to fail when fences were disabled
AC_Fence's fence-margin is not used and instead we always use a hard-coded 2m limit
vehicle's heading is used instead of ground-course when speed is below 0.2m/s
static assert added to ensure OA_BENDYRULER_BERAING_INC constant is defined correctly
replace BAD_MARGIN/GOOD_MARGIN with FLT_MAX/-FLT_MAX
use calc_margin_from_xxx function's return values
calc-margin-from-proximity-sensors fails if copy-locations fails
remove debug
remove unused singletons

and other changes including:
integrate fence rename to get_boundary_points
adapt to fence return point and duplicate final point from not being returned
create bendyrule and dijkstra objects on init
add pre-arm-check to ensure they've been created successfully
Dijkstra's detects polygon fence changes
minor fix to Dijkstra's return path
allow update_visgraph to accept 0,0 as extra point

and these fixes from peer reviews:
remove unused methods
add note about dangers of operator[]
reduce memory consuption of ShortPathNode
remove unused methods including print_all_nodes and print_shortest_path
replace OA_DIJKSTRA_POLYGON_VISGRAPH_INFINITY_CM with FLT_MAX
update method gets check that ekf origin has been set
fix indexing bug in inner fence creation
fix whitespace error
find-node-from-id uses switch statement instead of 3 IF statements
update_visgraph comments added to clarify usage of extra_position argument
find-closest-node-idx always uses node_index instead of int16_t
static assert that OA_DIJKSTRA_POLYGON_FENCE_PTS < 255
some looping style changes
AP_OABendyRuler: fix to ground course calculation
AP_OAPathPlanner: pre_arm_check writes to caller's buffer
remove unnecessary hal and stdio.h includes
rename fence_ptr local variable to fence
add sanity check to OADijkstra's set_fence_margin
add sanity check to OABendyRuler's set_config
BendyRuler's test_bearing local constants changed to be float constants
BendyRuler's ahrs_home made local constant
BendyRuler's proximity margin calcs lose margin_found local variable (use FLT_MAX instead)
BendyRuler's calc-margin-from-circular-fence performance improvement by removing one sqrt
AP_OABendyRuler: fix probe directions to be 5deg offsets from dir to destination
AP_OADijkstra: fixes after peer review
remove unnecesary initialisations
replace safe_sqrt(sq()) with length()
remove unnecessary block
comment fixes
AP_OAPathPlanner: add logging of final an intermediate location
2019-06-11 13:13:22 +09:00
Randy Mackay
c7b1ad3443 AP_Logger: add Write_OA 2019-06-11 13:13:22 +09:00
Randy Mackay
beb9ecbdcb AC_Fence: add get_boundary_update_ms
this allows callers to detect changes in the underlying polygon fence
2019-06-11 13:13:22 +09:00
Randy Mackay
0f6e61bc33 AC_Fence: add is_polygon_valid accessor 2019-06-11 13:13:22 +09:00
Randy Mackay
9c3812e384 AP_Proximity: move copy_locations to backend
also remove unused get_locations
also fix comment for copy_locations method
2019-06-11 13:13:22 +09:00
Tom Pittenger
b792fe4b26 AP_Proximity: add Location* object and accessors 2019-06-11 13:13:22 +09:00
Randy Mackay
c2bcc0d5f0 AP_Math: define Vector2f::perpendicular 2019-06-11 13:13:22 +09:00
Randy Mackay
071e340827 AP_Math: Polygon_closest_distance_line returns neg numbers
value is negative distance from intersection to p2
2019-06-11 13:13:22 +09:00
Andrew Tridgell
6eb816fd3b AP_Math: add Polygon_closest_distance_line
Also add optimisations
2019-06-11 13:13:22 +09:00
Andrew Tridgell
a5fd7ac5ca AP_Math: add vector2f::closest_distance_between_line_and_point_squared
also add vector2f::closest_distance_between_line_and_point and vector2f::closest_distance_between_lines_squared
2019-06-11 13:13:22 +09:00
Andrew Tridgell
2457bf71d4 AP_Math: add simplified vector2f::closest_point
this simpler version assumes the line segment originates at the origin
2019-06-11 13:13:22 +09:00
Andrew Tridgell
c8e49259a0 AP_Math: add vector2f::closest_distance_between_radian_and_point_squared 2019-06-11 13:13:22 +09:00
Andrew Tridgell
dbf337e1b3 AP_Math: move closest_point to cpp 2019-06-11 13:13:22 +09:00
Andrew Tridgell
bfc28dfde9 AP_Math: move normalize, reflect, project and perpendicular to cpp 2019-06-11 13:13:22 +09:00
Andrew Tridgell
01e541b7d1 AP_Math: minor formatting changes to length method 2019-06-11 13:13:22 +09:00
Andrew Tridgell
4c4de1f021 AP_Math: vector2f::length_squared always returns float 2019-06-11 13:13:22 +09:00
Andrew Tridgell
46617e6c72 AP_Math: remove unused include from Vector2 2019-06-11 13:13:22 +09:00
Andrew Tridgell
69781cda42 AP_Math: add Vector2::angle 2019-06-11 13:13:22 +09:00
Rajat Singhal
bc22aeb4da GCS_Mavlink: Correct format specifier in UART panic message 2019-06-11 13:36:03 +10:00
Peter Barker
68d7e0c22f AP_RangeFinder: correct macro being used for parameter definition 2019-06-11 12:47:56 +10:00
Peter Barker
8cd5e3103f AP_RangeFinder: remove use of removed AP_PARAM_FLAG_IGNORE_ENABLE 2019-06-11 11:38:10 +09:00
Michael du Breuil
40753ab14e AP_Param: Remove non functional AP_Param ignore flags 2019-06-11 10:28:45 +10:00
Michael du Breuil
cc7d13e9ef AP_BattMonitor: Remove param ignore flags 2019-06-11 10:28:45 +10:00
heitiane
931367a7ea AP_HAL: fix RCOutput, RCOutput2 and RCInputToRCOutput examples to prevent the failure of reading and writing channels. 2019-06-11 10:27:44 +10:00
Peter Barker
a025794bae GCS_MAVLink: correct is_streaming check and update of is-streaming mask 2019-06-11 09:26:10 +10:00
Andrew Tridgell
51e187342b HAL_ChibiOS: move the power control changes to be only CubeBlack
This aims to fix #11455. I have been unable to reproduce the issue,
which leaves me thinking it is either a bootloader difference or a hw
difference between pixhawk1 clones and real pixhawk1 boards
2019-06-09 16:56:14 +10:00
Andrew Tridgell
df4fc0fff0 AP_NavEKF2: default EK2_MAG_EF_LIM to 50
this was supposed to be part of the original PR (agreed with Paul to
enable by default)
2019-06-08 20:24:58 +10:00
Siddharth Purohit
a926effee5 hwdef: iomcu set pin mode to input for autodetecting heater control level 2019-06-08 14:31:01 +10:00
Siddharth Purohit
f23746053d AP_IOMCU_FW: autodetect active high/low on heater control pin 2019-06-08 14:31:01 +10:00
Peter Hall
aa32a0d143 AP_Windvane: fix NMEA vehicle to earth frame 2019-06-08 09:48:03 +09:00
Randy Mackay
607f996232 AC_Avoid: restructure logic of adjust_velocity_circle_fence 2019-06-08 09:35:36 +09:00
Randy Mackay
a96c146758 AR_AttitudeControl: set-throttle-out-stop considered same as running speed controller
update the speed-last-ms time when set-throttle-out-stop runs or else the desired throttle will not be acceleration limited when the desired speed is next increased above zero
2019-06-08 09:35:36 +09:00
Randy Mackay
e846840a52 AC_Avoid: fix stopping at circular fence 2019-06-08 09:35:36 +09:00
Peter Barker
e061df0f6d AP_HAL_SITL: attempt to dump stack trace as part of segv handler 2019-06-07 22:03:41 +10:00
Andrew Tridgell
02403d9b93 HAL_SITL: added support for exit on panic()
used by autotest server
2019-06-07 20:33:13 +10:00
Peter Barker
35d4555be0 AC_Avoid: improve documentation of AVOID_ENABLE options 2019-06-07 17:37:00 +09:00
Lucas De Marchi
e66de36016 HAL_ChibiOS: fix I2C transaction without stop condition
Start using i2cSoftStop() instead of i2cStop() so the peripheral
continues to be enabled and with non-gated clock.  This allows time for
the I2C peripheral to continue the ack or stop.
2019-06-06 09:27:47 -07:00
Andy Piper
31ea3466af AP_InertialSensor: Post-filter logging takes precedence over sensor-rate logging. 2019-06-06 17:09:17 +10:00
Andy Piper
52e4676564 Filter: Allow all filter frequencies to be 16bit. 2019-06-06 17:09:17 +10:00
Andy Piper
36878e9b3c AP_InertialSensor: Allow all filter frequencies to be 16bit. 2019-06-06 17:09:17 +10:00
Andy Piper
fff81a2163 AP_InertialSensor: Make sure the LPF output is used by the notch input. 2019-06-06 17:09:17 +10:00
Andy Piper
1a8475cf9f Filter: Decouple notch filter configuration from the filter itself.
Allow multiple notch filters to be instantiated using the same configuration.
2019-06-06 17:09:17 +10:00
Andy Piper
18d403c3ac AP_InertialSensor: Rework notch filter allocation and sampling
https://github.com/ArduPilot/ardupilot/issues/11346

Allocate a notch filter per-IMU.
Update the notch filters in the backend at the sensor sample rate.
Allow raw logging of post-filtered gyro and accel values.
2019-06-06 17:09:17 +10:00
Andrew Tridgell
045bdf3478 AP_InternalError: removed unused internal error 2019-06-06 16:35:22 +10:00
Andrew Tridgell
91f80613dd AP_Logger: removed internal error for logging without sem 2019-06-06 16:35:22 +10:00
Peter Barker
dce472745e AP_NavEKF3: take EAS2TAS from AHRS rather than airspeed 2019-06-06 12:44:36 +10:00