Erle-brain, an open hardware Linux autopilot

Following up from BeaglePilot which meant to port APM to Linux both in the hardware and software side. I am happy today to announce that after several months of improvements, flight tests and pre-series with manufacturers we are launching a commercial Linux hardware autopilot based on this work: Erle-brain.

Erle-brain is sold at 269 € and puts together a BeagleBone Black (rev. C) and the PixHawk Fire Cape in a single package that weights about 75 grams and includes 25+ sensors. The hardware designs are open to anyone that wishes to improve them.


The autopilot has a 4 GB eMMC flash memory that comes pre-flashed and provides:

  • Linux 3.8 kernel compiled with the PREEMPT option (best results we measured)
  • Debian Wheezy file system
  • ROS Hydromedusa
  • mavros ROS package
  • APM running natively in Linux (and linked with ROS through mavros)
  • preconfigured daemons for launching everything automatically, WiFi dongles support



Here’s the final video of Beagle-ROS:

I’m currently working on the recipes to merge some of them with the meta-ros repository so stay tuned to that repo if you’re interested. For now i’ll update the beagle-ros code but eventually I’ll move into the meta-ros code. I’ll keep contributing with code and recipes through this layer (off-GSOC).

Furthermore, i’d like to thank BeagleBoard for letting me participate in this summer session. Really glad.

Special thanks to Koen Kooi.

ROS Tutorials I

For the next two weeks, according to the schedule i’ll try to complete the ROS Tutorials.

Tutorial 1. Installing and Configuring Your ROS Environment 

    - Initial issues with catkin_make
    - Completed

Tutorial 2. Navigating the ROS Filesystem

    - In order to work with rosbash suite, it's necessary to source setup.bash (surprisingly if is sourced it doesn't get in the PATH)
    - Necessary to set up ROS_WORKSPACE
         export ROS_WORKSPACE="/home/root/catkin_ws"
    -  $ROS_PACKAGE_PATH correctly set if the setup.bash sourced is the one in the workspace
    - Completed

Tutorial 3. Creating a ROS Package

    - rospack depends1 beginner_tutorials (or roscpp) not working properly
    - error. see issue
    - Answered at
    rosdep is a tool for managing the package dependencies in various distributions uniformly. To get rosdep working, you would have to know which package manager your distribution uses (I think Angstrom uses ipkg), and them add support for that tool in rosdep. Furtermore, you would have to provide a mapping from ubuntu package names to ipkg package names in the yaml file.
    I consider this a lot of work for just a minor point, namely to use rosdep instead of using ipkg, which works nicely anyway. Maybe, it is better when you look into the more advanced ROS application tutorials and try to cross-compile those and make a documentation how to write recipes for those. The system/developer tools, like catkin_make and rosdep, do not need to run on the beagleboard anyway when you cross-compile.

Tutorial 4. Creating a workspace for catkin

    - Completed

Tutorial 5. Building a ROS Package

    - Error. See issue
    - Answer at
    This is a clone of #103. As I said there, it is difficult and of low priority. 
You do not want to compile on the target anyway, but you want to compile the 
beginner tutorials on the host system for the target and then only run the tutorials o
n the target system. How about creating a recipe for the beginner_tutorials?

Tutorial 6. Creating a ROS Package (seems to be same as Tutorial 3)

Tutorial 7. Understanding ROS Nodes
If you wish to keep posted about the updates check the beagle-ros repository.