The OpenVulture project is a free and open source software package for controlling autonomous vehicles brought to you by the fantabulous 757 Labs team and the open source community. The primary purpose of this project is to provide a simple, free and nearly-dependency-free application (Vulture) and library (libvulture) to facilitate the software needs of an autonomous platform. Free, in the former case, refers to both freedom and cost. Such platforms (e.g. UAV, automated R/C car, etc) can be constructed cheaply and employ aspects of the OpenVulture software to act as the "brain" of the platform, steering it to waypoints and directing the platform in following pre-planed patterns/paths.
The OpenVulture application (vulture) is released under the GNU GPLv3 license. The OpenVulture library (libvulture) and library modules are released under the Lesser GNU GPLv3 license. The OpenVulture manual is released under the GNU FDLv1.3 license. So have at 'em!
February 1, 2009
Initial public release is available via SourceForge. Special thanks to all at 757Labs.com, and Mike Logan!
January 27, 2009
This site was launched in preparation for the OpenVulture presentation, which is to be held at Shmoocon 2009.
The concept behind OpenVulture is to:
- Keep things pretty simple
- Keep things cheap! (Everyone needs their own drone!)
- Avoid numerous dependencies required to build the software (e.g. avoid using libraries not defined by a POSIX or C99 standard)
- Provide flexibility to support numerous autonomous vehicle types
OpenVulture is both an application and a library. The application (Vulture) is merely a framework that calls routines defined in the library (libvulture). This separation of library and controlling application allows others to utilize the library for their own purposes without having to be chained into using the application. To clarify, the Vulture application is responsible for initializing the hardware modules (e.g. GPS , Servo controllers, etc). Such modules are built following an API defined in libvulture. By following such an API, other libvulture based applications can use the same modules. The Vulture application also provides the main control-loop driving the platform and determining if such a platform has met one aspect of a pre-defined "flight-plan." Vulture also provides a terminal-based server allowing for a platform to be queried remotely via a shell.
For any kind of vulture-based applications/modules to work, the libvulture library is required. The library provides:
- API for creating modules (e.g. IMU, GPS, servo) allowing the communication between your vulture-based application and hardware
- Parser for reading-in a route-plan for your platform to follow
- Error handler
- Configuration manager for managing configuration options for a vulture application
The Vulture application is an optional application built on the required libvulture. Even if you have decided that you want to create your own platform-controlling-application and ignore the "brain" application (Vulture) that comes with the OpenVulture package, looking at how things are conducted in this application can be useful. The application provides:
- Steering a platform to a waypoint or set of waypoints
- Server that can be shelled into via network socket (think telnet)
- Platform status queries
 OpenVulture Software Package
 Additional OpenVulture Libvulture Modules
|No additional hardware modules available at this time|
 OpenVulture Documentation
This project was originally written by Matt Davis (enferex) and Ethan O'Toole (telmnstr). The current maintainers are Matt Davis and Ethan O'Toole. Questions, suggestions, comments should be directed to the mailing lists at the OpenVulture SourceForge project site.