Git Product home page Git Product logo

cppauvsi_searchpath_2019-2020's Introduction

Search Path Algorithm for Cal Poly Pomona AUVSI 2019-2020

Based on the minimum width sum greedy recursive method outlined in the paper by Yan Li et al.

Table of Contents

  1. Documentation
  2. Dependencies
  3. Compilation Notes
  4. Usage
  5. Configuration
  6. Notes for Debugging

Documentation

For detailed documentation, click here.

Dependencies

None. But it is not standard for compilers to provide atof() under the cctype header so it may throw an error depending on the system. If this is a problem, replace calls to atof() with std::stof().

Compilation Notes

  • Make sure not to forget the O2 flag when calling the compiler to enable compiler optimizations since it's free speed
  • To compile on Windows, open the developer command prompt from Visual Studio and type cl \O2 main.cpp
  • To compile on UNIX systems, just use g++ or clang

Usage

Make sure all files are present in their expected paths and run the executable. To use naive path generation with no decomposition, pass the optional argument naive when calling the executable. This will generate a predictable East-West sweep that does not attempt to stay within the boundary of the search area. To use path generation with decomposition, pass no argument or pass the optional argument decomp.

Configuration

To configure behavior, edit Config.h.
Note: Make sure to recompile for changes to take effect.

  • To change the output file path, change the #define statement for OUT_FILE
  • To change the MissionPointsParsed file path, change the #define statement for MISSION_FILE
  • To change the BoundaryPointsParsed file path, change the #define statement for BOUNDS_FILE
  • To change the SearchGridPoints file path, change the #define statement for SEARCH_FILE
  • To change the output altitude in feet, change the #define statement for ALTITUDE
  • To change the assumed turn radius (in METERS) of the drone, change the #define statement for RADIUS
  • To change the offset spacing between each parallel sweep of a traversal (in METERS), change the #define statement for OFFSET
  • To change the distance waypoints are scaled inward to avoid exiting the boundary, change the #define statement for CORRECTION
  • In the case that lines from mission files overflow the character buffer used in main.cpp, increase the value of the #define statement for BUFF_MAX

Notes for Debugging

  • main.cpp is the main driver and handles file I/O and calls the necessary functions for search path generation
  • Conversions.cpp contains functions for handling conversions from GPS lat long coordinates to 2-D Cartesian coordinates and vis versa
  • Polygon.cpp contains structs and functions for implementing polygon decomposition and search path generation. The most relevant functions for client code are searchPath(), naivePath(), and pathTo()

cppauvsi_searchpath_2019-2020's People

Contributors

hlin91 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

dodgeho

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.