BeagleBoard/GSoC/BeaglePilot

=BeaglePilot=

BeaglePilot project aims to create the first Linux-based autopilot for flying robots using the BeagleBone and the BeagleBone Black as the "hardware blueprint". For this purpose the project will focus on integrating ArduPilot (most popular autopilot) in the BeagleBone (Black). The main tasks performed will be userspace drivers development, the Robot Operative System Integration (ROS), web IDE exploration and security assessment.

Background
Autopilots and control strategies have become a popular research trend in the last 5 years. There are several solutions out there based on microcontrollers however, in order for these technologies to evolve there's a need for a switch from microcontrollers to microprocessor based autopilots. I've contacted the main initiatives in this field (ArduPilot, LinuxDrone) and teamed up with them to assemble a well organized and supported "coding-team".

Coding an autopilot in Linux posts several challenges. A simple autopilot running in the userspace coded in python (available at erlerobot/erle_control) shows that a default Linux can't deal with the realtime requirements on a UAV. Andrew Tridgell illustrated in a recent talk that a scheduler implemented with the default Linux kernel can't deal with the needs (video, slides). After switching to the a kernel with the RT_PREEMPT patches, the performance was much better It's expected that this would be enough however if for some reason there're still a lot of scheduling misses, the Xenomai approach can be explored. Strategies both from the software (RT_PREEMPT, Xenomai) and hardware have been proposed (and discussed, refer to diydrones discussion and google groups/drones-discuss).

The interest for this project is displayed in "A peek into the future of ardupilot".