Recording data with rc_visard¶
This tutorial shows how to record sample data sets with the rc_visard.
Before we start¶
Before going through this tutorial, the following prerequisites should be met.
The rc_visard is up and running:
- The rc_visard is running and connected properly to the host. One can verify that with our discovery tool.
- One should know the serial number or user defined name of the rc_visard.
The serial number is of the format 029xxxxx.
It will be referred to as
rc_visard_idin the remainder of this tutorial.
Download and install the following required client software:
Optional software for viewing the recorded images can be installed:
The network configuration is optimized:
Enable “Jumbo frames” by setting the MTU to 9000.
We provide scripts for Linux and Windows to record data in our
rc_visard_offboard_record GitHub repository.
The script offers two modes:
An interactive mode that is started if the script is launched via a double-click
or called without any arguments from a terminal/command line window.
In that mode, the user is asked by the script for the
In standard mode, in contrast, the
rc_visard_id is passed to the
script as command line argument, optionally next to other arguments.
Each time, the script runs, it creates a new folder in the working
directory (i.e. the place the script was started in) and writes all data to
The folder’s name is of the format
<SN> is replaced by the
<T> by the current time.
The images are stored in PGM or PPM format, which are supported
by many image viewers.
All other files are stored as text.
On Windows, proper configuration of the firewall is important.
On the first run of the script, the user will be asked whether the
rc_dynamics_api tools should be allowed to
access the network.
This needs to be allowed, otherwise the script will not work properly.
In case of problems with data recording, temporarily disabling the firewall
can help to pinpoint the source of the problem.
It may be necessary to manually whitelist
gc_stream.exe that are located in the folder
rcdynamics_stream.exe that can be found in the folder
Start the script via double-click.
The script asks for the
rc_visard_id, i.e. the serial number
(which is of the format 029xxxxx) or user defined name.
L, all available rc_visard devices are listed.
Interactive mode does not allow changing of script parameters other than
If that is required, the standard mode should be chosen, as it offers more
In standard mode, the script is called from a terminal/command line window.
The basic usage is as follows:
The script offers optional arguments, which can be listed with the -h flag:
By default, the script will run until it is stopped with
Enter and record
images from the left camera, disparity images, confidence images and error images.
This behavior can be changed by passing different arguments to the script. For example, to record only the left camera images and stop after 10 images, the following command can be used:
cam-params argument allows to also record the current camera parameters
including the camera calibration.
It will write the parameters to the given file, below called params.txt.
The script also supports recording of the SLAM trajectory,
which can be enabled with the
The script will automatically start and stop SLAM, and eventually write
the trajectory to the given file (trajectory.json in the example).
The trajectory is written when image grabbing is finished, which is either
when the user presses
Enter or enough data sets are recorded
according to the
The script writes “gc_stream is not found” or “gc_info is not found”
rc_genicam_apiis not installed properly.
The script writes “rcdynamics_stream is not found”
rc_dynamics_apiis not installed properly.
The script writes “Cannot find device: 01234567” or “Device 01234567 not found”
The script could not find the rc_visard with the given serial number. Are serial number and network configuration correct?
The script writes “storeBuffer(): Received incomplete buffer”
The network configuration may be slow or not optimized properly. Is the rc_visard connected via a 1 GBit/s wired ethernet connection? Please follow network optimization. Try to connect the rc_visard to the host directly.
The script writes “Device::open() failed”
The rc_visard may have not booted completely yet, or another client may already be connected to the rc_visard.
The script writes “Cannot grab images”
The network may not be configured properly. On Windows, the firewall may block the network connection. Temporarily disabling the firewall can help to pinpoint the source of the problem. Try to connect the rc_visard to the host directly.