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 kinematic properties such as velocity or position 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 following packages of the sensing and actuation library are required:

  • *_pos_provider
  • *_vel_provider

Further required packages are:


Run the launch file

roslaunch kinematics_exchanger kinematics_exchanger.launch

to launch the kinematics_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 kinematics_exchanger.yaml that allows to configure the behavior of the kinematics_exchanger node.



The kinematics_exchanger node publishes position and velocity of this CPS to the rest of the swarm and publishes the position and velocity received from the other swarm members locally. It publishes the swarm position both as relative and absolute coordinates. The swarm velocity is published only as relative coordinates.

Subscribed Topics

pos_provider/pose (geometry_msgs/PoseStamped)
  • The current position of this CPS.
vel_provider/velocity (geometry_msgs/TwistStamped)
  • The current velocity of this CPS.
bridge/events/position (cpswarm_msgs/Position) bridge/events/velocity (cpswarm_msgs/Velocity)

Published Topics

position (cpswarm_msgs/Position) velocity (cpswarm_msgs/Velocity) swarm_position (cpswarm_msgs/ArrayOfPositions) swarm_position_rel (cpswarm_msgs/ArrayOfVectors) swarm_velocity_rel (cpswarm_msgs/ArrayOfVectors)


~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.
~sample_size (integer, default: 5)
  • The number of data samples to average over for reliable results.
~init (integer, default: 30)
  • The number of messages to ignore during initialization. This is because the first messages are inaccurate.


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

Wiki: kinematics_exchanger (last edited 2019-11-05 15:45:20 by MichaSende)