ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

From your question, it seems like you may be confused about the confusing acronym "IPC".

In general, IPC refers to "inter-process communication", communication between processes.

The link you're referring to, points to "intra-process communication", which is communication between nodes in a single process. Note that there's a mistake in your question, you should be passing use_intra_process_comms.

ROS2 uses inter-process communication by default, but by enabling intra-process, you can use zero-copy transport for faster message transport.

If you have two separate ros2 run or ros2 launch, then they are running in separate processes, and you won't be able to have intra process communication between them.

To your other questions:

  • Having multiple executors in one node: intra-proces communication should work (although I haven't actually tried this out).
  • Does IPC support all QoS: yes, it should.

From your question, it seems like you may be confused about the confusing acronym "IPC".

In general, IPC refers to "inter-process communication", communication between processes.

The link you're referring to, points to "intra-process communication", which is communication between nodes in a single process. Note that there's a mistake in your question, you should be passing use_intra_process_comms.

ROS2 communication uses inter-process communication by default, but by enabling intra-process, you can use zero-copy transport for faster message transport.

If you have two separate ros2 run or ros2 launch, then they are running in separate processes, and you won't be able to have intra process communication between them.

To your other questions:

  • Having multiple executors in one node: intra-proces communication should work (although I haven't actually tried this out).
  • Does IPC support all QoS: yes, it should.