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

Revision history [back]

click to hide/show revision 1
initial version

That's a good observation. As pointed out by @Orhan Gazi Hafif, networking (TCP/IP in particular in your question) is one form of IPC. On your computer, ROS relies on your operating system's localhost network interface (i.e., 127.0.0.1) for single-host communication. As a "bonus" , ROS has the (nearly transparent) capability for _distributed_ computing, which isn't possible for other forms of IPC (e.g., shared memory -- although, see nodelets for one way to handle that).

You've found a rather rich topic with a lot of history -- for instance, the (unfortunately confusingly named) ipc package came out of CMU (used in CARMEN robotics software) in the mid-90s. Note that this topic is still relevant -- ROS2 is going to use DDS as its middleware layer.

That's a good observation. As pointed out by @Orhan Gazi Hafif, networking (TCP/IP in particular in your question) is one form of IPC. On your computer, ROS relies on your operating system's localhost network interface (i.e., 127.0.0.1) for single-host communication. As a "bonus" , ROS has the (nearly transparent) capability for _distributed_ distributed computing, which isn't possible for other forms of IPC (e.g., shared memory -- although, see nodelets for one way to handle that).

You've found a rather rich topic with a lot of history -- for instance, the (unfortunately confusingly named) ipc package came out of CMU (used in CARMEN robotics software) in the mid-90s. Note that this topic is still relevant -- ROS2 is going to use DDS as its middleware layer.