GithubHelp home page GithubHelp logo

drone_field's Introduction

Drone_field

Final Drone Repository Ashley Peake and Joe McCalmon WFU 2020-Present

This repository contains everything neccessary to run our drone navigation algorithm based on two deep learning networks.

Running

To run the code using the provided network weights, simply run run.py. If neccessary, you can test drone navigation using different weights by changing the arguments --search_weights and --trace_weights accordingly. Our trained weights can be found in the Weights folder

Basic episode configuration values are set in configurationSimple.py, including the envionment image that the simulation is run on. This file needs to be updated based on your testing needs.

The Episode

Running run.py calls Testing/full_testing.py. This file contains a function for excecuting a complete episode. In an episode, the drone navigates an area by repeating a sequence of subtasks: target selection, search, and trace. The implementation of these subtasks, along with other functions relating to testing, can be found in Testing/testing_helper.py. Details of the episode and subtasks can be found in comments in these files.

The Environment

Episodes are run according to the environment for each subtask. At its most fundamental level, the environment provides the state and reward for the agent at each timestep based on the action it takes. The environments for the subtasks can be found in the Environment folder. Each subtask environment is a subclass of the base Env class found in base_env.py. The specifics of these environments are included as comments in their respective files.

For SLAM (Simultaneous Localization and Mapping), we keep track of the path taken by the drone and save the information it collects at each timestep as a map. Its path is recorded in a Visited object, defined in Environment/visited.py. Similarly, the cumulative information seen by the drone is stored as a Map object, defined in Environment/map.py. Greater details of these classes are explained as comments in their files.

Updating for Field Implementation

The simulated drone navigates its environment according to array indices. Updating this to gps coordinates will be the most substantial change for field use. The drone also currently gets classsification information based on RGB classification of an image. This happens in ICRSsimulator.py, but will need to be altered to instead be based on images taken by the drone. Comments throughout the code further note obvious changes that should be made, but there are likely more than what we've indicated. Primarily pay attention to the drone position and state information, and updates shouldn't be that complicated.

drone_field's People

Contributors

mccajl avatar ashleypeake23 avatar sarraalqahtani avatar

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.