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 guide (this README)
- Architecture overview
- Benchmark script overview
- Benchmark script tutorial
- Configuration documentation
- Utility scripts documentation
- Smartif HAD documentation
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.
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.
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.
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.
The robots and the RSBB must be on the same network. The following graph shows an example of a possible network setup:
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 theBcast
of the interface you want to use, as reported byifconfig
. From the example of the network reported before, the broadcast address would be10.2.0.255
.base_results_directory
andbase_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.
To run the full RSBB (including the devices node), execute this command in the terminal:
roslaunch rsbb_etc rsbb.launch
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
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).
If you have any questions, please add them as issues on this repo.