Giter VIP home page Giter VIP logo

wadl's Introduction

WADL

build docs License: GPL v3

Coverage Path Planner

WADL is a python package for planning surveys over large areas using one or more UAV (Unpersoned Aerial Vehicle). WADL take in a geofence and desired gird spacing and produces a series of routes to survey the area inside the geofence.

The project was motivated by the need for efficient route planning for multi-robot systems. WADL was designed and used in a 2019-2020 survey of Adélie penguins over Cape Crozier, Ross Island, Antarctica If you are interested in the technical details please see our paper To cite wadl please use the following citation:

Shah, G. Ballard, A. Schmidt, M. Schwager, Multidrone aerial surveys of penguin colonies in Antarctica. Sci. Robot. 5, eabc3000 (2020). 

This work was supported by grant NSF grant 1834986 with logistical support provided by the United States Antarctic Program

Install

pip

pip install wadl-planner

source

git clone https://github.com/k2shah/wadl.git
pip install -r requirements.txt

Usage

Quick Start

from wadl.survey import Survey
survey = Survey()
survey.addTask(<path_to_geofence.csv>, step=100)
survey.plan()

Where step is the desired grid spacing.

See the example for a complete demonstration or the tutorial

Issues

For any suggestions or bugs please open an issue

License

This software is licensed under GNU GENERAL PUBLIC LICENSE verion 3

wadl's People

Contributors

k2shah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wadl's Issues

priority area

feature for setting area of higher priority. Survey agents will slow down over these areas

Add ability to provide multiple LZs

So if provide 3 locs for LZs, will automatically select which routes will take off and land from those locs? Not sure if this is worthwhile or if it makes more sense to provide separate geofences

Consolidate Parameters

Make a Parameters module and subclass it for other types of parameters.

Include default options where appropriate.

Generate CSV from KML

work around for importing KMLs directly, add method to Area class to export CSV from KML . Since KML files can hold multiple geofences, this should generate one CSV per geofence with file name found in the KML tag <name> under <Placemark>.

Should probably use a real xml parser, maybe lxml.etree?

add camera on descent waypoint

:-) This is fine tuning, but nice to have it start on the end of the transfer leg so get a few seconds heads up if it's not going to trigger

pathlib

use pathlib instead of os.path

SAT problem timeout

Spawn thread to watch SAT problem and timeout if it exceeds some set limit.

add offset for take off and landing locs

When you provide a single take off and landing point to the solver, it gets offset by ~10m for each mission sector. So each drone will have a slightly different take off and landing spot. We had a couple close calls at the LZ at hicks that would have been less likely if drones had slightly offset waypoint 1 and LZs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.