Skip to content

rockin-robot-challenge/rsbb

Repository files navigation

RSBB: Referee, Scoring and Benchmarking Box

This repository contains the ERL-SR (European Robotics League - Service Robots) Referee, Scoring and Benchmarking Box. Note that the name 'rockin' refers to the previous version of the competition.

ℹ️ This package is oriented to the competition organisers. Team members may want to visit the package for communication with the RSBB, available in at_home_rsbb_comm_ros.

Table of Contents:

Installation

RSBB works on:

  • Ubuntu 14.04 + ROS Indigo (indigo branch)
  • Ubuntu 16.04 + ROS Kinetic (master branch)
  • Ubuntu 18.04 + ROS Melodic (master branch)

Make sure you choose the correct branch for your distribution. If you are on Ubuntu 14, you need to git checkout indigo after cloning this repository.

⚠️ Please remember to always update right before the competitions!

git pull
git submodule update --init

Note that the repository RoAH RSBB Comm from https://github.com/rockin-robot-challenge/at_home_rsbb_comm is included as a git submodule. This repo is shared with the roah_rsbb_comm_ros package.

Dependencies

You need to have installed a C++11 compiler, CMake, Boost, Protobuf, OpenSSL and mplayer (to play the sounds).

If you are using Ubuntu, install the dependencies with:

sudo apt-get install build-essential cmake libboost-all-dev libprotoc-dev protobuf-compiler libssl-dev ros-$ROS_DISTRO-map-server mplayer

The RSBB is a collection of ROS packages, and does not depend on other packages or software except the ones listed before.

Compiling

After git clone and after every git pull, please do:

git submodule update --init

Compile as a normal ROS package in your Catkin workspace.

Note on Virtual Machines: If running in a VM, I've encountered a problem where the machine must have at least 2 CPU cores available, otherwise RSBB won't build correctly. Also, you might have network connectivity issues when running inside a VM.

Network Setup

The robots and the RSBB must be on the same network. The following graph shows an example of a possible network setup:

Network Example

Configuration

For the installation and test of the RSBB, configuring the following parameters in rsbb_etc/config/general.yaml should be sufficient:

  • rsbb_broadcast_address should be set to the Bcast of the interface you want to use, as reported by ifconfig. From the example of the network reported before, the broadcast address would be 10.2.0.255.
  • base_results_directory and base_record_directory should be set to the path of the directory where the result files and the ROS bags are saved. These two directories can be the same. For example: ~/rsbb_output/, in this case the directory "rsbb_output" should be created in home.

The configuration parameters are documented in configuration overview.

Running

To run the full RSBB (including the devices node), execute this command in the terminal:

roslaunch rsbb_etc rsbb.launch

Testing

Now all benchmarks can be executed, but since a robot must be availabe on the network, it is often useful to test the communication with the RSBB by running the so called Dummy Robot, from the roah_rsbb_comm_ros package.

For benchmarks that require motion capture, there is a helper package that publishes the required topics, as if they were being published by the mocap system. To run it, call e.g. :

rosrun rsbb_mocap_helpers/FBM4_mock.py

Executing benchmarks

TODO: brief instructions to run benchmarks Running a benchmark is similar to the previous (deprecated) verison of the RSBB. Some instructions are available in the RSBBv1 documentation (deprecated).

Support

If you have any questions, please add them as issues on this repo.