Skip to content

sw_install_host

Robin D. Knight edited this page Apr 6, 2016 · 5 revisions

Host Software Installation

Target: Hekateros Networked Host

While the Hekateros software may be executed entirely on the embedded computer module (COM) on the Hekateros platform, it is recommended that users interface with the arm through a Host Computer. This page provides detailed configuration and installation instructions for the Hekateros ROS interface on a development host machine.

The Hekateros ROS packages are supported under 64-bit Ubuntu Linux. Effective use of the Hekateros software requires a working knowledge of Linux and the BASH command line. If you're new to Linux, git/github, or the BASH command line, visit these pages first to get your bearings:

⇒ Note: Per each Hekateros host target, the following (subset) of installation instructions must be performed once.

⇒ Note: For the end-of-life Hekateros hardware versions 1.x, only Ubuntu 12.04 is supported.

Prerequisites

  • Computer with x86_64 (amd64) compatible processors.
  • Installation requires host to have network connectivity and DNS services.

▶ 1. Install Ubuntu

Instructions for installing Ubuntu 14.04 Trusy (Long Term Support LTS) 64-Bit can be found here:

  • Ubuntu - (be sure to install the 64-bit version!)

▶ 2. Install ROS

Instructions for installing ROS on you new Ubuntu System can be found here:

Be sure to install additional utilities for the new catkin build system...

sudo apt-get install python-wstool

... and the ROS MoveIt! motion planning framework...

sudo apt-get install ros-indigo-moveit-full

... and the control-msgs package

sudo apt-get install ros-indigo-control-msgs

... don't forget to run rosdep...

sudo rosdep init
rosdep update

... and finally, source the ROS configuration files:

source /opt/ros/indigo/setup.bash

Recommended: If you want the ROS setup.bash script to be sourced automatically whenever a new terrminal is opened, add the previous command to the end of your .bashrc.

echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc

Before moving on, please follow some of the ROS Tutorials.

▶ 3. Install RoadNarrows System SDK Dependencies

RoadNarrows maintains a debian package repository for their core software libraries.

▶ 3.1 Official Repositories

The RoadNarrows repos have moved!

wget -O - http://distro.roadnarrows.com/distro.roadnarrows.key | sudo apt-key add -

Add the RoadNarrows repository to your list of apt-get sources

3.1.1 Stable
sudo sh -c "echo 'deb [arch=amd64] http://distro.roadnarrows.com/repo-stable trusty main' > /etc/apt/sources.list.d/rnr.sources.list" 
3.1.2 Unstable
sudo sh -c "echo 'deb [arch=amd64] http://distro.roadnarrows.com/repo trusty unstable' > /etc/apt/sources.list.d/rnr.sources.list" 

▶ 3.2: Legacy Repositories

The RoadNarrows legacy repos. Only use for RoadNarrows robots with gumstix overo processors and Ubuntu 12.04 hosts.

wget -O - http://roadnarrows.com/packages.roadnarrows.key | sudo apt-key add -

Add the RoadNarrows repository to your list of apt-get sources

sudo sh -c "echo 'deb [arch=amd64] http://roadnarrows.com/distro/apt precise main' > /etc/apt/sources.list.d/rnr.sources.list" 

Apt Update and Install

Update the apt cache

sudo apt-get update

Install the required RoadNarrows packages

sudo apt-get install rnr-hekateros-dev rnr-peripherals-dev

Also install the python-imaging libraries for GUI support.

sudo apt-get install python-imaging python-imaging-tk

Finally - You are ready to install the Hekateros ROS packages!!!

▶ 4. Installing the Hekateros ROS packages

We recommend overlaying the Hekateros ROS packages on your existing ROS installation using a catkin workspace (see Catkin Tutorials).

Create a directory for your catkin workspace (for example in your home directory)

mkdir -p ~/catkin_rnr/src

Initialize the catkin workspace

cd ~/catkin_rnr/src
catkin_init_workspace

Clone the required Hekateros ROS packages inside the catkin_rnr/src directory. These branches should match the branches on the target Hekateros robot.

For the unstable master branch:

git clone https://github.com/roadnarrows-robotics/hekateros
git clone https://github.com/roadnarrows-robotics/peripherals
git clone https://github.com/ros-industrial/industrial_core --branch indigo-devel
git clone https://github.com/bosch-ros-pkg/usb_cam

Build the Hekateros ROS packages:

cd ~/catkin_rnr
catkin_make

Source devel/setup.bash to add this workspace to your ROS search paths:

source ~/catkin_rnr/devel/setup.bash

Recommended: If you want the setup.bash script to be sourced automatically whenever a new terrminal is opened, add the previous command to the end of your .bashrc.

echo "source ~/catkin_rnr/devel/setup.bash" >> ~/.bashrc

Or copy-paste the following shell snippet to the bottom of your .bashrc:

# ROS environment
ros_base=/opt/ros/indigo
ros_ws=~/catkin_rnr
if [[ -f ${ros_ws}/devel/setup.bash ]]
then
  source ${ros_ws}/devel/setup.bash
elif [[ -f ${ros_base}/setup.bash ]]
then
  source ${ros_base}/setup.bash
fi
unset ros_base ros_ws

▶ 5. Optional Packages

GStreamer

Hekateros End Effector camera (EECam) default video access uses GStreamer. GStreamer is a library for constructing mult-media compones, including video streaming across a network. (See GStreamer.)

Install the GStreamer requisites:

sudo apt-get install gstreamer1.0

▶ 6. Perform an Installation Sanity Check

At this point, the Hekateros ROS packages should be installed, and your system should be configured. To verify, please run the hekateros_control sanity check procedures.

Verify Basic ROS

Start the ROS master in a separate window:

roscore

Now run the following node. A graphical user interface should pop-up. It will not connect to a real Hekateros, so no state information is displayed. But the GUI should be displayed after connected with roscore services.

rosrun hekateros_control hek_panel

Now kill (CTRL-C) both roscore and hek_panel.

Verify ROS Connectivity With Hekateros

For any ROS node to run, the ROS master must be running. Each Hekateros is its own ROS master. The environmental variable ROS_MASTER_URI points to desired ROS master. Note the Hekateros is assumed to be connected to the LAN/WAN and has the host name hekateros.

export ROS_MASTER_URI="http://hekateros:11311"

Now rerun the hek_panel and it should automatically connect to the Hekateros and provide active state data and control operations.

rosrun hekateros_control hek_panel