YARP  2.3.68+218-20170316.1+git3050aeb
Yet Another Robot Platform
yarpdataplayer: replay recorded data

A module that reproduces in a synchronized way, previously acquired data (using yarpdatadumper: the YARP data recorder) from a source of input.

Description

This module provides the user a simple but informative user-interface in order to manipulate the previously acquired data. When playing it uses the timestamps provided from the time of acquisition to synchronize the sending of the data as if the robot was present.

datasetplayer.jpg

Libraries

  • OpenCV libraries.
  • GTKMM or Qt5 libraries.

Running

yarpdataplayer can run with or without the GUI (for server use and commands are sent via the rpc port) For gui run normally yarpdataplayer . Without GUI run with the extra parameter hidden:

  yarpdataplayer --hidden

yarpdatadumper file example

yarpdatadumper data.log file example:

  9566    1324373535.040288   -2.32967 0.043956 1.450549 -0.56044 1.704894 4.136408
  etc...

yarpdatadumper info.log file example:

  Type: Bottle;
  [1324373535.040288] /foo/state:o [connected]
  etc...

Type: is used to identify what kind of data the player is required to send.

The names of the ports open up by the player are initially set up based on the content of info.log file. This can be then changed using the GUI.

Parameters

--hidden
  • run with or without gui
--withExtraTimeCol index
  • loads the log files created by the datadumper with both rx and tx time. The user must select which timestamp to use (txTime index = 1 or rxTime index = 2)
--name modName
  • The parameter modName identifies the stem-name of the open ports.

Ports Interface

The interface to this module is implemented through dataSetPlayer_IDL .

  • The ports belonging to each of the parts are dynamically created and can be changed using the GUI.

Input Data Files

The player will look, in a recursive way, into directories in order to create the parts needed and retrieve the data.

The data name is the default yarpdatadumper: the YARP data recorder names: data.log and info.log.

An example directory tree containing data (data.log+info.log) can be:

/experiment1/
/head/data.log;info.log
/torso/data.log;info.log;
/images/leftCamera/data.log;info.log
/images/rightCamera/data.log;info.log
/left_leg/data.log;info.log
/right_leg/data.log;info.log

If the directory indicated is either "experiment1" or within experiment, the player will successfully load all required data.

The parts name will be taken from each subdirectory of the /experiment1 forder.

Note
Currently, if the directory selected is (in this example) head, torso etc, the player will not load the files as it will not be able to find subdirs.
Todo:
  • main slider bar selection. This needs an on-click and on-release event in order not to interfere with update and playback
  • when the search for a directory has not provided anything (user selected directory containing only *.log files)

Tested OS

Windows, Linux

See also
yarpdatadumper
yarpdataplayer example application

Copyright (C) 2010 RobotCub Consortium

Author
Vadim Tikhanoff and Ali Paikan

CopyPolicy: Released under the terms of the GNU GPL v2.0.