Only released in EOL distros:  

swarm_functions: area_division | coverage_path | kinematics_exchanger | state_exchanger | target_monitor | task_allocation

Package Summary

A package that exchanges behavioral states between multiple cyber physical systems (CPSs) in a swarm.

  • Maintainer status: developed
  • Maintainer: Micha Sende <sende AT lakeside-labs DOT com>
  • Author: Micha Sende <sende AT lakeside-labs DOT com>
  • License: Apache License 2.0
  • Source: git (branch: kinetic-devel)


This package depends on the following message definitions:

The communication between CPSs is based on the CPSwarm Communication Library.

The state that is exchanged is read from a SMACH state machine.


Run the launch file

roslaunch state_exchanger state_exchanger.launch

to launch the state_exchanger node.

The launch file can be configured with following parameters:

id (integer, default: 1)

  • The identifier (ID) of the CPS used for name spacing in simulation.

output (string, default: screen)

  • Whether to show the program output (screen) or to write it to a log file (log).

In the param subdirectory there is the parameter file state_exchanger.yaml that allows to configure the behavior of the state_exchanger node.



The state_exchanger node publishes behavioral states of this CPS to the rest of the swarm and publishes the state received from the other swarm members locally. The state is taken from a locally running SMACH state machine. If the CPS is in multiple states, only the first one is considered.

Subscribed Topics

smach_server/smach/container_status (smach_msgs/SmachContainerStatus)
  • The current state of this CPS.
bridge/events/state (cpswarm_msgs/StateEvent)

Published Topics

state (cpswarm_msgs/StateEvent) swarm_state (cpswarm_msgs/ArrayOfStates)


~loop_rate (real, default: 1.5)
  • The frequency in Hz at which to run the control loops.
~queue_size (integer, default: 10)
  • The size of the message queue used for publishing and subscribing to topics.
~timeout (real, default: 20.0)
  • The time in seconds after which another CPS is considered to have left the swarm.
~sm_path (string, default: /SM_TOP)
  • The path of the smach state machine whose state shall be exchanged.


This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.

Wiki: state_exchanger (last edited 2019-11-05 16:02:49 by MichaSende)