The BeaglePilot project started three years ago, when Víctor Mayoral Vilches (DIY page), researcher at the Italian Institute of Technology and co-founder of Erle Robotics, decided to create his own Linux flying robot. Víctor understood that drones were the future, but he wanted to make the development of that technology accessible to the global public, not just to a small group of talented people as it was at the time with the ArduPilot community. The Linux operating system was the obvious way to go: free and open-source, and ported to more computer hardware platforms than any other operating system on the planet.
Open-source to his core, Víctor built his work around the BeagleBone Black, an open-hardware, community-supported embedded computer. Six months ago he linked up with developers Anuj Deshpande and Siddharth Purohit, and together the triumvirate officially launched BeaglePilot, a project pledged to creating the first-ever Linux-based autopilot for flying robots. The BeaglePilot crew landed a spot at last year’s Google Summer of Code, and today they’re supported by Google, BeagleBoard, and 3D Robotics, and they count crack developers Andrew Tridgell and Phillip Rowse among their community of collaborators.
The how:
Like Athena leaping fully-formed out of the head of Zeus, BeaglePilot springs out of ArduPilot. The ArduPilot code has several abstraction layers, which act as “translators” that allow the autopilot to be portable and platform independent. BeaglePilot runs on the AP_HAL_Linux abstraction layer, which provides all the necessary tools for the APM code to interface with Linux-based systems. For its hardware, BeaglePilot employs the PixHawk Fire Cape—a board developed by Philip Rowse that turns the BeagleBone into a more powerful Pixhawk—and the flying robot Erle, of Víctor's own design.
Because Víctor’s team is trying to make a computer fly, they needed to modify the Linux kernel to give priority to the critical needs for flight. And because the project is ultimately utilitarian, the system also needs to maintain space available for practical applications. For these practical applications, BeaglePilot will rely on the most robust and flexible robotics framework, the Robot Operating System (ROS).
The why:
Víctor is quick to point out that BeaglePilot is not just a programmer’s dream. From inception, the project has had loftier goals than merely interfacing with sensors through Linux; Víctor wants to make a platform that will allow real people to develop real solutions to real-world issues.
The untapped power is evident. Chris Anderson, who’s also pursuing Linux integration full-stop with 3D Robotics, points out that a Linux autopilot would not only assimilate all the power of Linux systems—web servers, network applications, Python scripting—but it also serves as an easy bridge that will connect the huge Linux developer community to UAV technology. On the programmer’s side, this means a lower barrier to entry for users around the world who want to add functionality to the platform. On the drone side it means new access to a panoply of pre-existing software, including state-of-the art image processing, as well as portability to a wide range of powerful hardware platforms, from up to and including full PCs.
“Imagine the changes that a Linux-integrated flying robot could bring,” Víctor said. “We could have small and mobile flying web servers, integrated systems used in healthcare, environmental monitoring robots—you can see that BeaglePilot is not just a technological enabler, but also a business one.”
Víctor tells me that BeaglePilot is “really open to new brains.” The team’s coding efforts are available at this ardupilot fork, and they also publish their progress on the Erle Robotics blog. The group holds weekly meetings, and you can review their code roadmap here. Everyone is welcome to contribute at drones-discuss.
Comments
As someone who developed an open-source Linux-based autopilot back in 2004-2005 (Albatross) I can assure you this isn't the first Linux-based autopilot...
@Jesse: The challenge with Linux (and other traditional OS's) when used for autopilot tasks, is not in finding small and lightweight hardware. The smartphone has solved that for us, making small ARM based Linux computers dime a dozen.
The main obstacle is making sure that real-time critical tasks like control input, motor control and sensor data aqecition have microsecond level accurate timing and are always completed in a timely fashion regardless of what happens in user space.
Well, the last blog post was in April. They were trying to move more of the realtime tasks into the kernel than ever before. My Linux based autopilots all did the PWM & rate damping on a realtime microcontroller while doing the attitude hold & GPS in Linux. Beaglepilot is probably going to resort to the same thing. It still has all the advantages of airborne Linux, but is no longer a single chip.
The AR Drone is linux based is it not?
With a simple to use tool-chain, BeaglePilot could become the Adruino in the UAV world. Excellent news, looking forward to the first stable release.
Victor and several other developers are working at full steam to integrate the various sensors the autopilot needs and have been making terrific progress.
I think this is a fantastic project and it should make programming easier and much more practical for a much larger audience.
Thank You all,
Gary
Thanks for the background. I've been just watching from the sidelines but it seems to be making fairly speedy progress. Looking forward to the first flight videos and boards for the community.
Wow! Tha'ts going to be amazing. I am ready to support [and use] it. Great job!