ROS Camera Helper Node and ROS Node Timestamps ISAAC Sim 2022.1

I am trying to use the ROS2 Omnigraph nodes available in ISAAC Sim 2022.1 to publish stereo camera images and followed the tutorial for ROS2 Cameras
I have the following queries:

  1. I can’t seem to find the timestamps input of the ROS2 Camera Helper node, like it is available in the ROS2 Publish Image node. So what timestamp is actually acquired by this node for the published images?

  2. Can the published timestamp be linked to the current system epoch time? I think the current timestamps are taking the start time as the start of epoch time and not the current local time of the system so the time stamps generally translates to ~ Jan 01 1970 00:41:26 which is an issue when syncing nodes which are not running on Isaac Sim

Although most of the Omnigraph ROS nodes are self explanatory, it would be useful if some documentation for the ROS Omni graph nodes could be provided. I have checked the Omnigraph Documentation also and can’t find anything related to ROS nodes specifically.

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

Thank you @Ayush_G for your reply. It was really helpful.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.