This page documents the ROS implementation on the BeagleBone and the BeagleBone Black.

BeagleBone (BB) and BeagleBone Black (BBB)

The BeagleBone is an $89 MSRP, credit-card-sized Linux computer that connects to the Internet and runs software such as Ångström, Android 4.0 and Ubuntu. With plenty of I/O and processing power for real-time analysis provided by an AM335x 720MHz ARM® processor, BeagleBone can be complemented with cape plug-in boards to augment functionality. It has an very active community and a large user base.

The BeagleBone Black is a $45 MSRP community-supported development platform for developers and hobbyists. It is the evolution of the original BeagleBone, boots Linux in under 10 seconds and gets started on development in less than 5 minutes with just a single USB cable.

BB and BBB comparison


BeagleBone Black


AM335x 720 MHz ARM Cortex-A8

AM335x 1 GHz ARM Cortex-A8


256MB DDR2


Video out




2Gb eMMC, uSD


Onboard JTAG

Yes, over USB






300-500 mA@5V

210-460 mA@5V

(It's important to note that although similar, they're not the same. Check the BeagleBone Black Wiki)


The BB or the BBB can also run Ubuntu. Take a look here to see how.

You can get ROS running on Ubuntu for the BB and the BBB following UbuntuARM (Precise 12.04) or UbuntuARM (Raring 13.04) or UbuntuARM (Trusty 14.04).


The Ångström distribution is a Linux distribution for a variety of embedded devices. The distribution is the result of a unification of developers from the OpenZaurus, OpenEmbedded, and OpenSIMpad projects. Ångström is a distribution that aims at fitting on a small NAND. It's designed for ARM devices, and choose the best solution for this architecture.

ROS Hydro Medusa can be used in the BB or in the BBB together with Ångström through the Beagle-ROS project.

Beagle-ROS project

Beagle-ROS project aims to integrate the Robot Operative System (ROS) and the BeagleBone through the meta-ros layer.

Getting roscore running

  •  cd beagle-ros/scripts
    • run roscore.

First steps

Getting started with Ångström (or OpenEmbedded) and bitbake might be a bit tough at the beggining but it gets better and after a while you will love it, promised ;). First, take a look at the FAQ.

Beagle-ROS makes use of the meta-ros project, an OpenEmbedded layer that provides ROS to embedded devices. In order to get comfortable with meta-ros the diving-meta-ros repo aims to give you some aid with the first steps (take into account that this tutorial assumes that you are already comfortable with ROS. If not take a look at the ROS Tutorials.

Installing the recipes

The easiest way to install the bitbake recipes provided is to git clone the beagle-ros code directly into the Ångström sources/ directory and add the beagle-ros as a layer:

  • Edit conf/bblayers.conf

  • add ${TOPDIR}/sources/beagle-ros \ to the BASELAYERS variable

It's also possible to add the recipes inside of the meta-ros code. There're instructions in of how to put these recipes in the meta-ros file structure. (Here you can see the recipes available).

Cross-compiling the recipes

From the TOPDIR of Ångström run bitbake <recipe-name>.

  • For example: bitbake beginner-tutorials

(Refer to the FAQ if you wish to cross-compile all the neccessary recipes to have ROS in your machine.)

BeagleBone ROS Packages

Some ROS Packages designed for the BeagleBone:

  • bb_sharp_ir: BeagleBone Sharp IR sensors ROS Package.

  • bb_dc_motors: ROS package that launches a node to control a DC motor connected to the BeagleBone.

  • bb_mpu9150: BeagleBone ROS package that publishes the Invensense MPU-9150 data into a Topic.

  • bb_altimeter: ROS package for the BeagleBone that publishes the altimeter MPL3115A2 values to a Topic.

(recipes to cross-compile these packages are available here)


Wiki: BeagleBone (last edited 2014-12-19 00:25:29 by CraigBidstrup)