|
It is possible to easily record and replay any topic available in ArmarX. For recording a topic use the app TopicRecorderAppRun like this:
$ARMARX_CORE/build/bin/TopicRecorderAppRun --ArmarX.TopicRecorder.Outputfile=test.bag --ArmarX.TopicRecorder.TopicsToLog=* --ArmarX.TopicRecorder.TimestampedFilename=false
This will log any topic that was running, when the recorder was started and write it to the file test.bag.
To replay this file, use the GUI TopicReplayer or use the command line tool TopicReplayerrAppRun like this:
$ARMARX_CORE/build/bin/TopicReplayerAppRun --ArmarX.TopicReplayer.RecordFile=test.bag
This will replay the recorded topics in the same speed as they were recorded.
You can add the optional values
--ArmarX.TopicRecorder.StorageMode="database" --ArmarX.TopicReplayer.StorageMode="database"
or
--ArmarX.TopicRecorder.StorageMode="file" --ArmarX.TopicReplayer.StorageMode="file"
to the Recorder and Replayer to switch between the available storage modes, which currently are sqlite3 database and simple file storage in JSON format with base64 data-encoding. If you do not specify the storage mode, the default value 'database' is used.
If you want to play the topic alongside their normal components you need to redirect their topic output. You can do this by adding the following property to all or some components:
--ArmarX.TopicSuffix=/dev/null
This will add a topic suffix to all topics this component requested with the armarx::IceManager convenience functions (does not work if the component used Ice directly).