= BeagleBone = {{http://beagleboard.org/static/images/product_beaglebone.jpg|beaglebone.png|align="right",width="15%"}} {{http://www.ti.com/ww/en/beagleboard/product_detail_black_sm.jpg|beaglebone_black.png|align="right",width="15%"}} This page documents the ROS implementation on the [[http://beagleboard.org/Products/BeagleBone|BeagleBone]] and the [[http://beagleboard.org/Products/BeagleBone%20Black|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''' ||'''BeagleBone Black''' || ||'''Processor''' ||AM335x 720 MHz ARM Cortex-A8 ||AM335x 1 GHz ARM Cortex-A8 || ||'''RAM''' ||256MB DDR2 ||512MB DDR3L || ||'''Video out''' ||None ||HDMI || ||'''Flash''' ||2Gb eMMC, uSD ||uSD || ||'''Onboard JTAG''' ||Yes, over USB ||Optional || ||'''Serial''' ||Via USB ||Header || ||'''Power''' ||300-500 mA@5V ||210-460 mA@5V || (''It's important to note that although similar, they're not the same. Check the [[http://circuitco.com/support/index.php?title=BeagleBoneBlack|BeagleBone Black Wiki]]'') == Ubuntu == The BB or the BBB can also run Ubuntu. Take a look [[http://elinux.org/BeagleBoardUbuntu|here]] to see how. You can get ROS running on Ubuntu for the BB and the BBB following [[groovy/Installation/UbuntuARM|UbuntuARM (Precise 12.04)]] or [[hydro/Installation/UbuntuARM|UbuntuARM (Raring 13.04)]] or [[indigo/Installation/UbuntuARM|UbuntuARM (Trusty 14.04)]]. == Ångström == 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 [[http://vmayoral.github.io/beagle-ros/|Beagle-ROS project]]. === Beagle-ROS project === [[http://vmayoral.github.io/beagle-ros/|Beagle-ROS project]] aims to integrate the Robot Operative System (ROS) and the BeagleBone through the [[https://github.com/bmwcarit/meta-ros|meta-ros]] layer. ==== Getting roscore running ==== * Get an Ångström distribution following http://www.angstrom-distribution.org/building-angstrom. * Put the MLO, u-boot and FS in the SD card as explained in http://downloads.angstrom-distribution.org/demo/beaglebone/. * Update the Ångström feed through `opkg update`. * Install git using `opkg install git`. * Get the ''beagle-ros'' code: `git clone git://github.com/vmayoral/beagle-ros.git`. * Install all the packages for ROS in Ångström (30 minutes): {{{ cd beagle-ros/scripts source minimal-ros-install-angstrom.sh }}} * 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 [[https://github.com/vmayoral/beagle-ros/wiki/FAQ|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 [[https://github.com/vmayoral/diving-meta-ros|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|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 https://github.com/vmayoral/beginner_tutorials/blob/master/README.md of how to put these recipes in the meta-ros file structure. ([[https://github.com/vmayoral/beagle-ros/tree/master/recipes-ros|Here]] you can see the recipes available). ==== Cross-compiling the recipes ==== From the `TOPDIR` of Ångström run `bitbake `. For example: `bitbake beginner-tutorials` (Refer to the [[https://github.com/vmayoral/beagle-ros/wiki/FAQ#is-it-possible-to-cross-compile-ros-for-other-arm-processors|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: * [[https://github.com/vmayoral/bb_sharp_ir|bb_sharp_ir]]: BeagleBone Sharp IR sensors ROS Package. * [[https://github.com/vmayoral/bb_dc_motors|bb_dc_motors]]: ROS package that launches a node to control a DC motor connected to the BeagleBone. * [[https://github.com/vmayoral/bb_mpu9150|bb_mpu9150]]: BeagleBone ROS package that publishes the Invensense MPU-9150 data into a Topic. * [[https://github.com/vmayoral/bb_altimeter|bb_altimeter]]: ROS package for the BeagleBone that publishes the altimeter MPL3115A2 values to a Topic. (recipes to cross-compile these packages are available [[https://github.com/vmayoral/beagle-ros/tree/master/recipes-ros|here]]) ==== Resources ==== * [[http://vmayoral.github.io/beagle-ros/|Beagle-ROS web]] * [[https://github.com/vmayoral/beagle-ros|Beagle-ROS code]] * [[https://github.com/vmayoral/beagle-ros/wiki/FAQ|Beagle-ROS FAQ]] * [[http://beagleros.wordpress.com/|Beagle-ROS blog]]