Giter Site home page Giter Site logo

microsoft / frigatebird Goto Github PK

View Code? Open in Web Editor NEW
71.0 20.0 35.0 107.8 MB

AI for autonomous soaring

License: Other

Emacs Lisp 0.01% C 22.18% C++ 65.18% Makefile 0.92% Shell 0.95% Python 8.19% Processing 0.08% Lua 0.57% Assembly 0.25% OpenEdge ABL 0.09% Batchfile 0.07% C# 0.06% Perl 0.09% CMake 0.03% CSS 0.03% HTML 0.06% PowerShell 0.02% MATLAB 0.98% EmberScript 0.26% Dockerfile 0.01%

frigatebird's Introduction

Project Frigatebird

Project Frigatebird is aimed at enabling small fixed-wing UAVs to travel long distances by soaring -- taking advantage of rising air regions the way human sailplane pilots and bird species like frigatebirds do -- using AI planning and learning techniques.

Currenty, this repository contains an implementation of POMDSoar, an algorithm that allows a sailplane UAV to detect and gain altitude in thermals, "columns" of rising air that occur over certain regions of Earth's surface. This approach, based on solving a Partially Observable Markov Decision Process, is described in

I. Guilliard, R. Rogahn, J. Piavis, A. Kolobov. "Autonomous Thermalling as a Partially Observable Markov Decision Process." Robotics: Science and Systems conference, 2018. https://arxiv.org/pdf/1805.09875.pdf

We implemented POMDSoar as a soaring controller integrated into a fork of ArduPlane, the fixed-wing flavor of ArduPilot open-source drone autopilot suite (original ArduPlane code, wiki). The code in the Frigatebird repository allows building this modified version of ArduPlane. Please see BUILD.md for building instructions.

The DATA subdirectory contains ArduPlane parameter files and an example geofenced waypoint course for running POMDSoar on a Radian Pro sUAV as in the experiments in the above paper.

Developer Information

License

Project Frigatebird is licensed under the GNU General Public License, version 3

Maintainers

Acknowledgements

We would like to say a big "thank you!" to the developer community of ArduPilot. Their code and advice has greatly helped in starting Project Frigatebird.

frigatebird's People

Contributors

akolobov avatar iainguilliard avatar microsoft-github-policy-service[bot] avatar samuelctabor 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frigatebird's Issues

waf based builds

What can I do to help flush out waf build issues? Running Ubuntu / WSL on Windows 10 laptop, and everything of late in ArduPlane / ArduCopter is waf based. It's a bit of a step backwards in this ecosystem to have to use make. Also, hoping to fly Frigatebird code on latest ArduPlane master running on ChibiOS HAL on Matek F405-Wing, on Radian Pro. So a highly relevant config, IMHO. Would really like to avoid having to maintain parallel and different build environments/flows.

Kelly

PR the SilentWings SITL backend for ArduPilot master

hi guys, are you interested in bringing the SilentWings SITL backend into ardupilot master? I'd be happy to look at a PR for that, or I could just copy what you've done.
I haven't tried silent wings myself yet, but I just saw the video from Marco. Looks really nice.

Queries

Hi there,

I'm working on a simplified version to act as a starting point to getting the POMDP into the main codebase. For the following settings:

  • POMDP_NORM: Normalises the covariance trace (= 1 in param file)
  • POMDP_EXT: Extends action duration in lift-exploiting mode (= 3 in param file)
  • POMDP_PLAN: Enable deterministic trajectory planning mode (= 0 in param file)

Do you find that a particular configuration gives the best performance?

I'm also wondering about the relationship between N, HORI and K (samples per action trajectory, planning horizon duration and samples per second) - it seems like only two should be needed?

Lastly, the scheduling - there's several entries in the scheduler table calling soaring_policy_computation at 50Hz. This is unlikely to be acceptable - is there another way to achieve this? Would calling it at a higher rate have the same effect?

Cheers!

Segfault when running master on SITL

When running in SITL I get the following segfault:

Program received signal SIGSEGV, Segmentation fault. 0x00000000004ea483 in VarioSavitzkyGolayFilter::prediction ( this=0x7d5c74 <plane+1236>, dt=2.85445094, ekf_buffer=0x7d64b0 <plane+3344>, ekf_buffer_size=300, ekf_buffer_ptr=0, Edot=0x7d6488 <plane+3304>, Edotdot=0x7d648c <plane+3308>) at ../../libraries/AP_Soaring/VarioSavitzkyGolayFilter.cpp:22 22 p1 += SG_FILTER_C[0][i] * ekf_buffer[k][0];

My gcc version is 5.4.0 20160609. The only change I have made is to comment out the soaring-specific mavlink messages.

Mavlink message definitions missing

The soaring specific mavlink message definitions are missing from the repository. Please push the updated mavlink repository and update the submodule spec.

Many thanks.

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.