![]() |
roi_assignment package from swarm_functions repoarea_division battery_exchanger collision_avoidance coverage_path kinematics_exchanger roi_assignment state_exchanger swarm_functions target_monitor task_allocation |
|
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cpswarm/swarm_functions.git |
VCS Type | git |
VCS Version | noetic-devel |
Last Updated | 2023-06-01 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Micha Sende
Authors
- Micha Sende
roi_assignment
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.
Dependencies
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
Execution
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.
Nodes
roi_assignment
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
-
rois/get_all
(cpswarm_msgs/GetMultiPoints) Retrieve all ROIs for assignment.
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 theroi_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
-
rois/divide
(cpswarm_msgs/RoiDivisionAction) Divide ROIs among multiple CPSs.
Parameters
-
~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
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | catkin | |
0 | area_provider | |
2 | roscpp | |
1 | actionlib | |
2 | geometry_msgs | |
1 | cpswarm_msgs |
System Dependencies
Dependant Packages
Name | Repo | Deps |
---|---|---|
swarm_functions | github-cpswarm-swarm_functions |
Launch files
- launch/roi_assignment.launch
-
- id [default: 1]
- output [default: log]