GithubHelp home page GithubHelp logo

cmusatyalab / steeleagle Goto Github PK

View Code? Open in Web Editor NEW
5.0 9.0 4.0 129.42 MB

Automated drone flights for visual inspection tasks

License: GNU General Public License v2.0

Python 58.15% Jinja 0.36% Dockerfile 0.57% Shell 1.79% Kotlin 5.36% Java 29.32% OpenSCAD 2.87% HTML 0.66% Groovy 0.59% Lex 0.32%

steeleagle's Introduction

SteelEagle: Edge-Enabled Drone Autonomy

Introduction

SteelEagle is a software suite that transforms commercial-off-the-shelf (COTS) drones into fully-autonomous, beyond-visual-line-of-sight (BVLOS) UAVs. This allows users to develop complex autonomous UAV applications without needing to purchase or configure expensive aircraft hardware. SteelEagle drones are easy to deploy and importantly, are drone agnostic. This means that SteelEagle can be adapted to work with any drone control API, as long as it supports control over WiFi. Of particular interest to us are extremely lightweight drones because of the simplified regulatory approval process.

Democratizing Drone Autonomy Via Edge Computing published in ACM SEC 2023

Quickstart

Documentation

License

Unless otherwise stated in the table below, all source code and documentation are under the GNU Public License, Version 2.0. A copy of this license is reproduced in the LICENSE file.

Portions from the following third party sources have been modified and are included in this repository. These portions are noted in the source files and are copyright their respective authors with the licenses listed.

Project Modified License
cmusatyalab/openscout Yes Apache 2.0
bytedeco/javacv Yes Apache 2.0
xianglic/droneDSL Yes GPL 3.0

Design

SteelEagle is separated into three distinct parts: the local commander client, the cloudlet server, and the onboard software. The commander client is intended to run on a personal computer close to the RPIC (Remote Pilot-in-Command) with an internet connection. It gives an interface to receive telemetry and upload a mission script to the drone. It also provides tools to assume manual control of the drone while it is in-flight. The cloudlet server is the bridge between the onboard drone software and the commander client. It relays messages between the two and also publicly hosts flight scripts. Additionally, the server runs compute engines for the drone which will be executed on the offloaded sensor data/video stream. Finally, the onboard software consists of an app that runs on the drone-mounted Android or router device. This app relays telemetry and offloads sensor data/video frames to the cloudlet server. In the Android case, it is also responsible for running the mission script and directly sending control commands to the drone. In the router case, the cloudlet runs the mission script and sends control commands over the network to the drone.

Architecture

drawing

Workflow

  1. A planner utilizes Google MyMaps to define the mission in a graphical UI by creating tasks. A task is created by drawing a polygon/marker, naming it, and defining the actions associated with that task by adding these to the description textbox.

  2. Once defined, the planner exports the mission as a KML file.

  3. The planner generates a mission script (.ms file) from the KML file using the Hermes compiler.

  4. The pilot powers on the drone, starts the onboard software, connects to the drone through the commander, and sends the .ms file.

  5. The drone executes its mission.

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.