wiki:RCLLRefBox/Install
Last modified 21 months ago Last modified on 31.03.2017 14:54:08

Installing the RCLL Referee Box

The RCLL Referee Box (refbox) has been developed on Fedora Linux 22. It was also tested on Ubuntu 14.04. It will work on both systems, but only Fedora comes with all prerequisites out-of-the-box and we recommend it for development and running the refbox. In principal, it should work on any Linux or Unix system that can provide for the required libraries. We would welcome any success reports and instructions to add to this page, but we cannot provide support in these cases.

Prerequisites

The following libraries are required to build and run the refbox. The version numbers are the minimum version required and that we tested. Before posting any issues please make sure you meet these requirements.

libmodbus 3.0.3
Required to communicate with the SPS/PLC that controls the machine signal lights and reads and writes the pucks' RFID chips.
CLIPS 6.30
CLIPS (CLIPS at Wikipedia) is a rule-based production system. It is used to implement the core of the referee box -- the knowledge base, game rules and flow control.
clipsmm 0.3.2
C++ bindings for CLIPS.
protobuf
Used for network communication message structure definition. All communication from and to the refbox uses a simple network protocol with protobuf messages.
Boost 1.46 (1.48 or higher strongly recommended)
Boost is a library used in particular for internal signaling using Boost Signals2 and asynchronous I/O using Boost Asio. Versions older than 1.48 lack certain critical features, for example system signal handling that makes the refbox uninterruptible once started. So we strongly suggest using a recent version of Boost.
yaml-cpp
Library used to read the configuration file.
Gtkmm 3.0
Used to build the graphical interface to monitor and instruct the refbox.
ncurses 5.9
Used to build the textual interface to monitor and instruct the refbox.
MongoDB 2.0
For automated and complete logging of log messages and network traffic to a database (optional).

Further you need GCC 4.6 or higher to support the necessary C++ features of the C++11 standard.

Installing the Prerequisites on Fedora

Fedora has all necessary prerequisites available in their package repository. Some of them are maintained by the refbox authors, so compatibility for Fedora is optimal. You can easily install all prerequisites using the following commands:

sudo yum groupinstall "Development Tools"
sudo yum groupinstall "Development Libraries"
sudo yum install gcc-c++ libmodbus-devel clips-devel clipsmm-devel protobuf-compiler \
                 protobuf-devel boost-devel glibmm24-devel gtkmm30-devel \
                 ncurses-devel yaml-cpp-devel \
                 mongodb-devel mongodb-server webkitgtk3-devel

All the packages are required. It is correct that glibmm is of version 2.4. Afterwards proceed with the compilation instructions.

Installing the Prerequisites on Ubuntu

Ubuntu does not provide all the necessary packages. But we maintain a personal package archive (PPA) with the missing requirements CLIPS PPA. You can enable it using the following commands:

sudo add-apt-repository ppa:timn/clips
sudo apt-get update

Afterwards you can install the prerequisites with the following command:

sudo apt-get install libmodbus-dev libclips-dev clips libclipsmm-dev \
                     protobuf-compiler libprotobuf-dev libprotoc-dev \
                     boost1.54-all-dev libmodbus-dev \
                     libglibmm-2.4-dev libgtkmm-3.0-dev \
                     libncursesw5-dev libyaml-cpp-dev libavahi-client-dev git \
                     libssl-dev

Again note that version 2.4 of glibmm is correct.

Downloading and Compiling the refbox

To use the refbox it must be copied to your machine and then compiled. This assumes that you have all the prerequisites installed as described above.

There are two principal ways to get the refbox: either as a release archive (tarball) or via git.

Installing from tarball

Download the latest version's tarball from http://files.fawkesrobotics.org/llsf-refbox. Then unpack it like the following and continue with the compilation instructions. Replace "0.6.0" with the version number of the latest release.

tar xf llsf-refbox-0.6.0.tar.bz2
cd llsf-refbox-0.6.0

Installing from Git repository

The recommended way is get the source code via Git to make later updates easier. Especially now that the refbox is still very new it might need more frequent updates.

git clone http://git.fawkesrobotics.org/llsf-refbox.git
cd llsf-refbox

This will compile all included libraries, the refbox itself, the shell, and tools. Not that the GUI is currently developed in a separate branch and awaits merging. For now we suggest using the text shell.

To later update your local copy and re-compile it do:

cd llsf-refbox
git pull --ff-only

Compiling the refbox

To compile change to the base directory of the refbox, e.g. llsf-refbox-0.5.0 for tarball installations or just llsf-refbox for git clones. Then just type

make

Configuring the refbox

The default configuration should be usable mostly out-of-the-box. But most certainly you will need to setup the broadcast address of your network. Please see the refbox configuration page for details.