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 https://github.com/cpswarm/swarm_functions.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.
state_exchangerThe 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 Topicssmach_server/smach/container_status (smach_msgs/SmachContainerStatus)
- The current state of this CPS.
- The current state of another CPS. Messages are exchanged between CPSs using the CPSwarm Communication Library.
Published Topicsstate (cpswarm_msgs/StateEvent)
- The current state of this CPS that is forwarded by the CPSwarm Communication Library to the other swarm members.
- The states of the other swarm members received through the CPSwarm Communication Library.
Parameters~loop_rate (real, default: 1.5)
- The frequency in Hz at which to run the control loops.
- The size of the message queue used for publishing and subscribing to topics.
- The time in seconds after which another CPS is considered to have left the swarm.
- 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.