ROS on Intel Edison using Ubilinux and Porting to Yocto

In order to expand the robotics capabilities of the Intel Edison integrating a Robot Operating System (ROS) is necessary. While Node.js has many modules like Johnny5 and Cylon.js, they are still limited when compared to ROS in terms of computer vision processing and sensor integration. I will be starting with the install instructions for Ubilinux at: http://wiki.ros.org/wiki/edison . Once I have an idea of the packages that are needed and the installation procedure I can begin considering how to install ROS on Yocto. Ubilinux was installed on the Edsion following: https://learn.sparkfun.com/tutorials/loading-debian-ubilinux-on-the-edison

First step is installing screen and git to make life easier. I'm also creating a new user and installing sudo so that I won't have to use root to install.

First enter root by typing su and enter "edison" as the password.

apt-get install screen git sudo
adduser edison sudo
exit
logout

You can now log in with username edison password edison and have access to sudo.

Ok then, lets dive into it. I'm going to be following the instructions for installing ROS Indigo on Raspbian: http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi (Debian for Raspberry Pi) with the suggested changes of:

edit /etc/apt/sources.list and add line:

deb http://http.debian.net/debian wheezy-backports main

and install liblz4 with:

sudo apt-get update
sudo apt-get install liblz4-dev

1. Prerequisites

Any commands with the code font are what I imputed into the terminal
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu wheezy main" > /etc/apt/sources.list.d/ros-latest.list'

wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools python-pip python-yaml python-argparse python-distribute python-docutils python-dateutil python-setuptools python-six
sudo pip install rosdep rosinstall_generator wstool rosinstall
sudo rosdep init
rosdep update
sudo apt-get install liblz4-dev

2. Installation

mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-ros_comm-wet.rosinstall
wstool init src indigo-ros_comm-wet.rosinstall

terminal outputs: update complete

Since I will be using ROS_Comm I only need to install libconsole-bridge-dev and liblz4-dev and since linlz-dev was installed earlier I will only install libconsole-bridge-dev.

mkdir ~/ros_catkin_ws/external_src
sudo apt-get install checkinstall cmake
sudo sh -c 'echo "deb-src http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi" >> /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
sudo apt-get update
cd ~/ros_catkin_ws/external_src
sudo apt-get build-dep console-bridge
apt-get source -b console-bridge
sudo dpkg -i libconsole-bridge0.2_*.deb libconsole-bridge-dev_*.deb
cd ~/ros_catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:wheezy

 

ERROR: the following rosdeps failed to install
  apt: command [sudo -H apt-get install -y python-rospkg] failed
  apt: command [sudo -H apt-get install -y python-catkin-pkg] failed
  apt: command [sudo -H apt-get install -y python-rosdep] failed
  apt: Failed to detect successful installation of [python-rospkg]
  apt: Failed to detect successful installation of [python-catkin-pkg]
  apt: Failed to detect successful installation of [python-rosdep]

From wiki: Note: Rosdep may report that python-rosdep, python-catkin-pkg, python-rospkg, and python-rosdistro failed to install; however, you can ignore this error because they have already been installed with pip.

Now time to install ROS:

sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo

Once complete source the ROS install:

source /opt/ros/indigo/setup.bash

ROS is now installed and ready to use

 

I2C Seeed Motor Driver on Intel Edison using UPM with Javascript