Package Summary

Tags No category tags.
Version 1.0.0
License Apache License 2.0
Build type CATKIN

Repository Summary

Checkout URI
VCS Type git
VCS Version noetic-devel
Last Updated 2023-06-01
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A package that assigns regions of interest (ROIs) to multiple cyber physical system (CPSs) without central instance in distributed manner.

Additional Links


  • Micha Sende


  • Micha Sende


This package centrally assigns regions of interest (ROIs) to multiple cyber physical system (CPSs) without central instance in distributed manner. It is part of the swarm functions library.


This package depends on the following message definitions: * geometry_msgs * cpswarm_msgs

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

The following packages of the sensing and actuation library are required: * area_provider

The following packages of the central functions library are required: * roi_division_cent

The following packages of the swarm functions library are required: * kinematics_exchanger * state_exchanger

Further required packages are: * roscpp * actionlib


Run the launch file

roslaunch roi_assignment roi_assignment.launch

to launch the roi_assignment 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: log) 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 roi_assignment.yaml that allows to configure the behavior of the ROI assignment with further parameters.



The roi_assignment node provides an action server that assigns all available ROIs to a set of CPSs. The ROIs are retrieved from the area_provider package. The set of CPSs is determined by communication through the CPSwarm communication library, specifically using the kinematics_exchanger and state_exchanger packages. The assignment procedure can follow different criteria, currently implemented are the following: * Simple assignment: Each CPS is assigned to the spatially closest ROI. If multiple CPSs are assigned to the same ROI, the ROI is divided among them.

Subscribed Topics

  • swarm_position (cpswarm_msgs/ArrayOfPositions) The positions of all CPSs in the swarm. They allow assignment based on spatial metrics.
  • swarm_state (cpswarm_msgs/ArrayOfStates) The behavior states of all CPSs in the swarm. They allow assignment based on the behavior executed by the different CPSs.

Published Topics

  • rois/assignment (cpswarm_msgs/PointArrayEvent) The division result. It is an event message that can be forward through the CPSwarm communication library. For each CPS, a separate message with a vector of coordinates is published.

Services Called

Action Servers

  • rois/assign (cpswarm_msgs/RoiAssignmentAction) The action server that implements a simple action client. Both goal and result are empty. The CPSs and ROIs are retrieved independently by the roi_assignment node. The result is published through a topic so it can be forwarded through the CPSwarm communication library. The progress of the division is provided as feedback of the action server.

Actions Clients


  • ~loop_rate (real, default: 1.5) The frequency in Hz at which to run the control loops.
  • ~queue_size (integer, default: 1) The size of the message queue used for publishing and subscribing to topics.
  • ~states (string list, default: []) A list that allows to specify the behavior states in which CPSs are considered for the assignment process.

Code API

roi_assignment package code API documentation


Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files


No message files found.


No service files found


No plugins found.

Recent questions tagged roi_assignment at