Robotics StackExchange | Archived questions

Deterministic replay and debugging

EDIT: Reposted here, with some responses.


I need to build a ROS system that can log its inputs and node communication such that all calculations can be reproduced exactly during analysis later. The system needs to have two modes:

Operation

Analysis

For example there may be a system with this topology A --[/x]--> B --[/y]--> C where A,B,C are nodes and x,y are topics. All three nodes are implemented with a polling loop (using ros::Rate and ros::spinOnce).

During analysis the node B is stopped in a debugger. Now A needs to pause because otherwise the topic queue x would overflow and messages would be dropped that were not dropped during operation. Same with C: It needs to pause because it is not getting the messages from B that it did get during operation.

This seems like a standard problem, yet I cannot find anything in the ROS ecosystem that addresses this.

I have some ideas for developing this myself, but I'd rather use an existing solution.

rosbag appears to be unsuitable: The limitations of rosbag record/play

Asked by janismac on 2017-02-10 13:53:09 UTC

Comments

Answers