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

Revision history [back]

The bond wiki page has more details on what Bond is used for. I think the following from that wiki page addresses their use case for nodelets:

When spawning a nodelet (or anything else), two processes, the spawner and the container, communicate to bring the nodelet up, however, the current system does not cleanly deal with all termination possibilities (#4221). Creating a bond between the spawner and the container allows each to know when the other crashes and to implement appropriate recovery behaviors.

As to why they are using TCPROS as opposed to INTRAPROCESS, not sure. Perhaps bond isn't publishing shared_ptrs (which IIRC is the requirement for the intraprocess zero-copy roscpp magic). I could imagine using zero-copy to be a bad thing for this particular case - if one side dies after publishing a shared_ptr, is that shared_ptr still going to be valid? I can see using the standard copy-publish helping to avoid that type of question.