How to implement offline data synchronization?
Currently I work a lot with ROS and I think, this middleware, provides a good way to produce loosely coupled modules and a very easy way to use frames transformations. But I have a serious issue and I would like to have your opinion.
I would like to tell my "story" first: "As a ROS user, I would like to process each ROS messages in offline mode so that I can run quantitative test of computer vision algorithms. As the running time of an algorithm can be longer than the time between successive images, it would be great that the publisher waits until the algorithm finishes."
With this story is in mind, I would like to know if there is an easy way to process each message in ROS. For example, in online mode, if you have a camera that provides you images at 30Hz (~30ms) and an algorithm which takes 200ms to process, it is not a problem. In this case, you just want to process the latest data.
In contrast, in offline mode (playing data with rosbag play), I would like to evaluate the quality of the algorithm and I need to process each image.
It would be nice to have the same framework/node graph between online and offline mode.
In order to do that I would like to know if someone is aware of a way to implement that? Otherwise, developers from Willow Garage can tell me if it is possible to do that in the core or give me their ideas?
Thanks in advance
First of all thank you for your answers. [Thomas D]( http://answers.ros.org/users/304/thomas-d/ ) proposed to use rosbag play with the -r option but I would like to be sure to process each messages. [demmeln]( http://answers.ros.org/users/1370/demmeln/ ) has a good idea, it could be great if I have just one algorithm connected directly to the rosbag API. In order to clarify my need, I asked a second question: http://answers.ros.org/question/134276/how-to-implement-offline-data-synchronization-on-several-nodes/