Skip to content

Matlab code for designing flight paths for UAVs scanning fields in wind

Notifications You must be signed in to change notification settings

arthurrichards77/drone_scans

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drone_scans

Matlab code for designing flight paths for UAVs scanning fields in wind.

Publication

Results and method are described in "Flight Optimization for an Agricultural Unmanned Air Vehicle" by A. Richards, European Control Conference, 2018, available at: https://ieeexplore.ieee.org/document/8550307

About the Code

Each of the scripts "comp...m" runs a sweep of different flight angles for a particular field and wind. For each angle, the function "tspSequence" will divide the field polygon into strips, cutting along the current angle choice, and then find the optimal sequence with with to fly every strip.

Run script "set_paths.m" to get the required subdirectories on your Matlab path.

The travelling salesman solver uses the free GLPSOL utility, either in Linux or via Cygwin on Windows. The rest of the code runs in Matlab, so the whole package can run on Windows or Linux.

By far the slowest bit of the method is the calculation of the fastest flights paths between all pairs of strips, which uses a Dubins-like method with corrections for wind, by Mcgee, Spry and Hedrick. To speed things up, this has been compiled to a MEX file in Matlab. Cross-platform users will have to run the code generation script to compile it for their OS etc.

Dependencies

  • Matlab
  • GLPSOL (part of the GLPK suite)

Source subdirectories:

  • ampltools: utilities for writing the datafiles for the TSP, which share their format with the AMPL language
  • heading: functions to determine aircraft heading to fly a given ground track in wind, plus determine the ground speed
  • sim: a simple simulator for validation, implemented in Simulink
  • strips: robust code for dividing a polygon into strips, which was surprisingly hard!
  • tsp: the AMPL/GLPSOL model file (.mod) and other files should you want to run it in AMPL
  • windpath: determination of fastest path between two poses in wind. Run "codegenWindPath" to compile the MEX.

About

Matlab code for designing flight paths for UAVs scanning fields in wind

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages