Over last few years, the core technologies of stabilization and control of drones, turning them into fully-autonomous systems (way point navigation), have matured and have received wide adoption. A variety of drones and off-the-shelf autopilots are available today. Large part of the effort now is focused on putting these machines to some good use (different commercial/research applications). This means, development of high-level applications on top of the core layers, adding more intelligence, and making them "connected", safe and reliable.
Several developers/researchers have already been working on independent projects to make this happen. Commercial use of drones for inspection, surveys, delivery, agriculture has already begun. Developers are integrating a variety of payloads, writing their custom automation algorithms, integrating their drones with cloud, building mobile/web apps to control/monitor their missions, and so on.
However, how much effort/expertise does it take to build a high-level drone application today? Let me give you some examples of the kind of applications I am talking about:
Suppose, I want to integrate a weather sensor with my drone and generate a point-cloud map (geo-referenced), which is to be made available live, to users in multiple locations. How long would it take me to put this application together? Suppose, I am building a specialized drone for photography, and would like to implement selfie, point-of-interest, cable-cam, and some other custom modes on my drone, and expose a user-interface on a mobile app. How do I do it? Or, suppose, I would like to build next-gen photography drones – swarms of drones that coordinate with each other to capture multiple perspectives of a live event (just like multiple human photographers cover an important event). How do I start building it?
We we see an explosion of such creative/innovative drone applications over next few years. Do we have the right platforms/frameworks in place to make this happen?
FlytOS is an effort in this direction. We are rethinking the way drones/apps are built, and are imagining the future of these applications. FlytOS is being built for drone application developers and researchers. It provides them with a framework to enable faster and efficient development of powerful next-gen drone applications. It provides the following key features:
- Powerful APIs to access the core drone capabilities, from low-level access, such as, gain-tuning, calibration, to high-level access, such as, image processing, cloud/mobile/web communication. APIs are available for building both, onboard and offboard/web/mobile apps. It also provides the framework for sharing data between multiple such apps, running simultaneously on different onboard/offboard platforms.
- Abstraction: FlytOS allows applications to be independent of the hardware (electronics and mechanical).
- Extensibility: Plugin architecture to allow extension of core capabilities, such as, collision avoidance, air-traffic management/communication, payloads management.
- Dev Tools: FlytOS provides a set of powerful development tools, purpose built for drone application development. Some of these include, integrated software-in-simulation environment, web-based setup console, debug and data-log utilities.
The first version of FlytOS has recently been released for drone application developers, to help them start building their applications on FlytOS. It has been thoroughly tested at our lab. FlytSIM, the software-in-loop simulator for FlytAPIs, is also available to build and test your applications, without the need for any hardware.
We are inviting other community members to try it out, submit their results and suggest how to make it better for their use-cases. We are also looking for more contributors to this project.
Please do submit your views/suggestions below!