The QtQuick-based GUI for the 'Free-play sandbox' experimental framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs [doc] updated screenshot Jun 27, 2017
res Updated the map (added a 2nd beach) Jun 12, 2017
ColorSample.qml Cosmetic adjustements Apr 20, 2017
VisualAttentionCalibration.qml {playground_builder->freeplay_sandbox} Mar 1, 2017
main.cpp WIP towards giving the robot control of objects Nov 30, 2016
qml.qrc Enable simultaneous drawing and item manipulation May 11, 2017

Free-play Sandbox - QtQuick GUI

This project is part of the 'Free-play Sandbox' experimental framework for Cognitive Human-Robot Interaction research. Check the PInSoRo website for details and documentation.

Screenshot of the playground


First, you need a working installation of Qt5. On Ubuntu, sudo apt install qtdeclarative5-dev qtdeclarative5-qtquick2-plugin.

You also need Box2D for QtQuick >=v2.0 for 2D physics. Download it and install it manually.

Second, you need a working installation of ROS (at time of writing, ROS Kinetic or ROS Lunar are both ok).

Finally, the sandbox GUI requires my own ROS plugin for QtQuick

Install it before attempting to compile the sandbox.


Simply open the Qt project from QtCreator and compile it from there.

Important: because the freeplay sandbox GUI needs ROS to compile, the ROS environment needs to be properly configured when starting QtCreator, so that QtCreator can find the ROS headers & libraries. Assuming your ROS installation is working, the easiest way to ensure that is simply to manually start QtCreator from a terminal.


Before starting the GUI, you need to launch roscore in a different terminal.

When you then launch the application, the screen is blank. This is normal as when we run an experiment, we typically do not want anything on the screen while we welcome the participants.

The supervisor can be used to remotely set the current stage of the experiment (and accordingly control the display).

You can manually trigger the display by opening a terminal and typing:

$ rostopic pub /sandtray/signals/start_freeplay std_msgs/Empty