Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
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.
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: Used to build the graphical interface to monitor and instruct the refbox.
- ncurses: Used to build the textual interface to monitor and instruct the refbox.
- MongoDB: 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 https://github.com/robocup-logistics/rcll-refbox/releases. 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 rcll-refbox-0.6.0.tar.bz2 cd rcll-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 https://github.com/robocup-logistics/rcll-refbox.git $ cd rcll-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 rcll-refbox $ git pull --ff-only
Compiling the refbox
To compile change to the base directory of the refbox, e.g.
rcll-refbox-0.5.0 for tarball
installations or just
rcll-refbox for git clones. Then just type:
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.