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.

Recipes update

News regarding the recipes created through the Beagle-ROS project:

Recipe Status (cross-compilation) Test (BeagleBone)
beginner-tutorials Ok Ok
ros-tutorials Turtlesim doesn’t cross-compile. Seems like findQT4 cmake macro is broken Ok*
common-tutorials turtle-actionlib doesn’t cross-compile (turtlesim). Ok*
linux-mpu9150 Ok Ok
bb-mpu9150 Ok Ok
bb-dc-motors Ok Ok
bb-sharp-ir Ok Ok
bb-altimeter Ok Code seems to work but there’re some issues with the sensor data
ros-mpu9150 Ok Ok. Deprecated
ros-bb-dc-motors Ok Ok. Deprecated
WIP: Work In Progress
*Tested what compiles

Also some further work which is not in the scope of the GSOC:

Recipe Status (cross-compilation) Test (BeagleBone)
cmake-modules Ok
control-msgs Ok
control-toolbox Ok
realtime-tools Ok
robot-model collada-urdf and kdl-parser still with issues.
rosconsole-bridge Ok
ros-control Ok
ros-controllers Ok
tinyxml Ok
urdfdom Ok
urdfdom-headers Ok
assimp Ok
orocos-kdl Ok
python-orocos-kdl WIP
libqhull Ok
collada-dom Ok
eigen-stl-containers Ok
geometric-shapes Ok
libglu Ok
octomap Ok
(bold): Packages out of the scope of the GSOC

Most of the recipes are being merget into the meta-ros layer so eventually they’ll all be available from the usual Angstrom sources.

Standard

ROS in Ångström

ROS wiki already has installation instructions for Ångström so hopefully now more users will be able to benefit themselves from the Beagle-ROS project :).

A Pre-release has been pushed to the git repository. Feel free to test it and give feedback about it.

Regarding documentation I believe that the README and the FAQ cover pretty much everything needed but let me know if i missed something and i’ll be pleased to work on it.

 

Standard

Documentation

Documentation has already started. The ROS packages for the Beaglebone created have been documented:

A FAQ has been created and a good place to start is the beagle-ros/README file:

BEAGLE-ROS project

BeagleBoneROS

Integration of the Robot Operative System (ROS) and the BeagleBone through the meta-ros project, a layer for OpenEmbedded Linux.

This project is part of the Google Summer of Code (GSOC) 2013. The aim is to work in the integration of the Robot Operative System (ROS) and the BeagleBone. Both ROS and the BeagleBone are great tools and increasingly being used in robotics. Having both of them working together in a easy way would be a great asset.

A lot of users show their interest for ARM ROS integration. Some made a couple of tutorials about how to install ROS on Ubuntu on the BeagleBoard however this documentation is getting a bit old fashioned and probably not the right way. There’s also some code to use lightweight versions of ROS but again, roboticists might not be looking for a light-ROS device but a fully functional one.


It’s highly recommended to have the last version of Angstrom.


Description of the files:

  • LICENSE: License of the code.
  • README.md: This document.
  • scripts: Scripts to automate processes.
  • docs: Documentation.
  • lib: Libraries used.
  • recipes: OpenEmbedded recipes. These recipes should be used with the meta-ros code.
  • conf: OpenEmbedded configuration directory. This directory is added so that the beagle-ros project can be directly added as a layer in Angstrom/OpenEmbedded systems.

USAGE

Getting roscore running

  • Get an Angstrom 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 Angstrom 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 Angstrom (30 minutes):
    cd beagle-ros/scripts
    source minimal-ros-install-angstrom.sh
    
  • source /usr/setup.bash. Updates in the ROS recipes doesn’t install scripts in the /usr/ directory anymore. To configure the enviroment properly check this bashrc file.
  • run roscore.

First steps

Getting started with Angstrom (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 their tutorials).

Installing the recipes

The easiest way to install the bitbake recipes provided is to git clone the beagle-ros code directly into the Angstromsources/ 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 inhttps://github.com/vmayoral/beginner_tutorials/blob/master/README.md 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 Angstrom run bitbake <recipe-name>. For example: bitbake beginner-tutorials


Please provide feedback.

Standard

GP2Y0D810Z0F finally tested

I previously introducted the changes into the bb_sharp_ir ROS package however due to my bad soldering capabilities they remained untested. I just received today one of the GP2Y0D810Z0F soldered and gave it a try:

GP2Y0D810Z0F worked so the GP2Y0D805Z0F will probably work as well. This means that the following sensors have been beagle-rosified:

  • GP2Y0A21 Distance Sensor (10-80cm) [scripts/GP2Y0A21YK0F.py]
  • GP2Y0D810Z0F Digital Distance Sensor (10cm) [scripts/GP2Y0D810Z0F.py]
  • GP2Y0D805Z0F Digital Distance Sensor (5cm) [scripts/GP2Y0D805Z0F.py]
Standard