ROS Camera Helper Node and ROS Node Timestamps ISAAC Sim 2022.1

Hi @vanguard478,

  1. The ROS2 Camera Helper node auto-generates a separate post-process Synthetic Data Generation pipeline graph where it sets up the ROS2 Publish Image node to output simulation time. If you open the SDGPipeline graph, you will notice the ROS2 Publish Image node is connected to a Isaac Read Simulation Time node. For more details on the Camera Helper and the SDGPipeline graph, please refer to the Graph Explained section of the ROS2 Camera Tutorial.

  2. It sounds like your syncing issues can be solved using the ROS2 /use_sim_time parameter. Setting the use_sim_time parameter to True for every ROS node outside of Isaac Sim, ensures that they will only synchronise to the /clock topic. You can also set this parameter in launch files so it is automatically set every time you launch. Inside Isaac Sim you would need to setup a ROS2 Publish Clock OmniGraph node so it publishes the simulation time (or whatever time data is connected) to the /clock topic.

However if the aforementioned solution is not viable for you, we provide a Isaac Read System Time node which can connected to most ROS OmniGraph nodes. However since the SDGPipline graph (containing the ROS2 Publish Image node) exists in the session layer, you would need to use OmniGraph Python scripting to access the session layer and then add/connect new nodes in the SDGPipline graph.
For an example on how to do this, refer to Step #4 in the Isaac 2022.1 manual image publishing section of the ROS1 Migration tutorial. In that tutorial, we setup and connect new branch nodes. For your case, you can modify the code to create and connect the Isaac Read System Time node to the ROS2 Publish Image node.
In the future, we will be looking into adding a System Time option to the Camera Helper nodes so that python scripting won’t be necessary.

Hope that helps!

1 Like