See also
See also
Problem
I tried to record events with wire schema rst.kinematics.JointAngles using bag-record. This does not seem to work - at least bag-record reports:
WARNING: Payload serialization format for wire schema :|.rst.kinematics.JointAngles| is not known. Channel format will only describe outer event serialization; not inner payload serialization.
Solution
bag-record should record all events despite the warning but the resulting log file will not contain information about the types of the recorded event payloads and will thus not be self-describing. bag-record usually tries to make all recorded log files self-describing. That is the reason for the warning.
For recording and replaying events, bag-record and bag-play do not require this additional information. Did you try to replay the recorded data?
If you want to avoid the warning and/or store the type information in the log file to make it self-describing, you can add commandline options to load the respective data type definitions:
bag-record -IPATH-TO-RST/proto/stable/ -lPATH-TO-RST/proto/stable/rst/kinematics/JointAngles.proto …
Problem
Calling any of the bag-* tools, the following happens:
$ bag-cat my-log-file.tide WARNING: Failed to load Spread library: Unable to load any of the alternatives: ("libspread-without-signal-blocking.so" "libspread.so" "libspread.so.2" "libspread.so.2.0" "libspread.so.1"). Did you set LD_LIBRARY_PATH? Spread transport will now be disabled. [execution continues, but Spread transport does not work]
Solution
Place one of the mentioned Spread libraries (typically libspread.so.2.0) on the system library search path or set LD_LIBRARY_PATH appropriately.
Problem
We would like also to know how to record with bag-record. We have tried:
$ bag-record -o test.tide \ 'spread://remote:4803/nao/vision/0' \ 'spread://remote:4803/nao/vision/1' \ 'spread://remote:4803/nao/audio/all'with no success: ILLEGAL SPREAD.
Solution
Problem
When recording with bag-record using the Spread transport, bag-record exist after a short amount of time with an error like:
Error receiving: CONNECTION-CLOSED
Solution
This problem occurs because more data is sent to bag-record than it can receive and/or write to disk. Although this problem should be much less common in recent versions (>= 0.9) of bag-record, it can still happen with large volumes of data or problematic Spread configurations.
There several options to mitigate the problem:
- When the data which should be recorded is sent to several scopes, separate bag-record processes can be created for these scopes - maybe even on different machines.
- The socket-based transport is sometimes faster than the Spread transport.
- An unmodified Spread daemon sometimes delivers events slower than necessary, which can lead to the problem described above. We provide a patched Spread Debian package in the CoR-Lab package repository.
Problem
Solution
We suggest the following procedure to investigate the problem:
See also
Problem
Is it possible to have bag-play use a playback strategy like recorded-timing but to adapt the create timestamps of the data to correspond to the current system time and not the recorded original creation time?
Solution
This can be achieved by calling bag-play like this:
$ bag-play --replay-strategy 'recorded-timing :adjustments ((:create :now))' ...