[Documentation] [TitleIndex] [WordIndex

  Show EOL distros: 

common: actionlib | bfl | bond | bondcpp | bondpy | filters | nodelet | nodelet_topic_tools | pluginlib | smclib | tinyxml | xacro | yaml_cpp

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

bond_core: bond | bondcpp | bondpy | smclib

Package Summary

A bond allows two processes, A and B, to know when the other has terminated, either cleanly or by crashing. The bond remains connected until it is either broken explicitly or until a heartbeat times out.

Libraries

Bond is implemented in the following languages:

Motivation

Bond exists to ensure that two processes can monitor each other's termination. This is useful in several situations.

Spawning nodelets/controllers/robots in gazebo

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 (<<Ticket(ros-pkg 4221)>>). Creating a bond between the spawner and the container allows each to know when the other crashes and to implement appropriate recovery behaviors.

This applies to controllers (re-loading when the realtime_loop goes down) and to gazebo (re-creating the robot if gazebo crashes).

Resource ownership

Bonds can be used to track resource ownership. The creation of a bond indicates a lease on the resource, and breaking a bond indicates that the lease is broken.

You could, for example, request that the laser scan at a particular frequency. By passing a bond id along with the request, the laser scanner controller will form a bond based on the request. When it receives a new request, it breaks the bond. Whether the laser controller receives a new request or the controller crashes, you will be informed that the laser is no longer scanning as you desired.


2024-03-16 12:26