ArduPlane, ArduCopter, ArduRover, ArduSub source
Go to file
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
.azure azure: fix Cygwin package names 2019-05-15 22:44:21 +01:00
.github github: add support file 2019-02-27 07:03:22 +11:00
APMrover2 Rover: correct get_distance_to_destination in loiter mode 2019-06-05 14:35:30 +09:00
AntennaTracker Tracker: build and link against AP_Arming 2019-05-30 07:37:30 +09:00
ArduCopter Copter: fix user aux functions 2019-06-11 10:28:15 +09:00
ArduPlane Plane: modify FENCE_AUTOENABLE docs 2019-06-11 06:58:47 +10:00
ArduSub Sub: stop setting AC_Avoid in AC_WPNav; it uses singleton now 2019-06-06 11:47:22 +10:00
Tools waf: add -Werror=overflow 2019-06-11 09:12:49 +10:00
benchmarks waf: add gbenchmark Waf tool 2015-12-03 07:54:31 +11:00
docs docs: Add ardusub 2018-05-08 09:58:13 +10:00
libraries AP_OAPathPlanner: path planning around obstacles 2019-06-11 13:13:22 +09:00
mk build: remove remaining make build 2018-12-22 11:06:59 +11:00
modules ChibiOS: update submodule 2019-06-06 09:27:47 -07:00
tests tests: add macro for printing test parameter 2016-05-16 19:08:35 -03:00
.dir-locals.el emacs: add a .dir-locals.el 2016-10-24 09:41:31 -02:00
.editorconfig all: Change the editorconfig so that it won't want to reformat 2014-07-09 19:03:18 -07:00
.flake8 Global: add .flake8 2018-08-15 10:16:13 +10:00
.gitattributes Revert ".gitattributes: automatically clean up newlines in source files" 2015-04-20 11:04:59 +09:00
.gitignore Tools: add support for GCOV code coverage tool and HTML reporting with LCOV. 2019-03-04 23:46:40 +11:00
.gitmodules modules: removed PX4NuttX and PX4Firmware 2018-12-22 11:06:59 +11:00
.pydevproject AP_Relay: add -1:Disabled to list of param values 2014-05-15 17:13:37 +09:00
.travis.yml travis: build all sitl targets under clang++ 2019-04-30 09:29:59 +10:00
BUILD.md CI: removed px4 builds 2018-12-22 11:06:59 +11:00
COPYING.txt cmake overhaul, cleaned up readme, added license 2011-09-30 17:32:51 -04:00
Dockerfile Tools: Update Docker to new pre-reqs folder 2019-04-05 10:31:09 +11:00
Doxyfile.in cfg: Fix typos 2016-05-13 19:20:07 -03:00
Makefile build: default to "make help" 2018-12-22 11:06:59 +11:00
README.md README: add Azure Pipelines 2019-02-22 08:27:08 +11:00
Vagrantfile Vagrant: quieten vagrant/virtualbox window 2019-04-12 14:49:00 +10:00
appveyor.yml CI: Fixed Appveyor error when getting future package 2019-02-20 22:05:57 +11:00
reformat.sh reformat: remove mention to .pde files 2016-05-07 22:55:48 -03:00
uncrustify_cpp.cfg cfg: Fix typos 2016-05-13 19:20:07 -03:00
uncrustify_headers.cfg cfg: Fix typos 2016-05-13 19:20:07 -03:00
waf waf: use Python from environment 2018-11-13 10:30:34 +11:00
wscript waf: add sitl rgbled option 2019-05-21 09:21:56 +10:00

README.md

ArduPilot Project

Gitter

Build Travis Build SemaphoreCI Build Status

Coverity Scan Build Status

Autotest Status

The ArduPilot project is made up of:

User Support & Discussion Forums

Developer Information

Top Contributors

How To Get Involved

License

The ArduPilot project is licensed under the GNU General Public License, version 3.

Maintainers

Ardupilot is comprised of several parts, vehicles and boards. The list below contains the people that regularly contribute to the project and are responsible for reviewing patches on their specific area. See also the list of developers with merge rights.