Only released in EOL distros:
Package Summary
A package that manages information about targets in a swarm of cyber physical systems (CPSs).
- 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)
Contents
Dependencies
This package depends on the following message definitions:
The communication between CPSs is based on the CPSwarm Communication Library.
The following packages of the swarm functions library are required:
- task_allocation
The following packages of the sensing and actuation library are required:
- *_pos_provider
Further required packages are:
Execution
Run the launch file
roslaunch target_monitor target_monitor.launch
to launch the target_monitor 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 are two parameter files target_monitor.yaml and targets.yaml that allows to configure the behavior of the target_monitor node. The targets.yaml contains the coordinates of the simulated targets. It is only used when the parameter simulation is set to true. They are given as two list parameters where the list index is the ID of the target.
Nodes
target_monitor
The target_monitor node keeps track of targets and their positions that are being detected by CPSs in the swarm. They are typically detected by a camera. Each target has a unique numeric ID assigned to it which should be a positive integer. Targets that are detected locally by this CPS are reported through the target_tracking topic. It contains the offset between the current position and the target position in form of a transform. This information can either originate from another node or, if simulation is set to true, from this node. In the latter case, the target detection is triggered according to the current position of the CPS and the coordinates given in the targets.yaml parameter file. Targets that are being managed have a certain state associated to them. This is depicted by the following diagram where the transitions are labled with incoming event / outgoing event: The state of the target changes depending on local and remote events that are exchanged between CPSs through the CPSwarm Communication Library.Action Goal
cmd/target_done/goal (cpswarm_msgs/TargetGoal)- Sets the state of a target to done. This invokes the target_done event to be published.
Subscribed Topics
pos_provider/pose (geometry_msgs/PoseStamped)- The current position of this CPS.
- The offset of the target as reported by the camera.
- The event of a target being assigned by this CPS.
- The event of a target being completed by this CPS.
- The event of a target being found by another CPS. Messages are exchanged between CPSs using the CPSwarm Communication Library.
- Target updates from other CPSs. Messages are exchanged between CPSs using the CPSwarm Communication Library.
- The event of a target being assigned by another CPS. Messages are exchanged between CPSs using the CPSwarm Communication Library.
- The event of a target being lost by another CPS. Messages are exchanged between CPSs using the CPSwarm Communication Library.
- The event of a target being completed by another CPS. Messages are exchanged between CPSs using the CPSwarm Communication Library.
- The UUID of this CPS.
Published Topics
target_tracking (cpswarm_msgs/TargetTracking)- The offset of the target that is simulated by this node. Messages are published if simulation is set to true and the distance between the CPS and a simulated target is less than or equal to fov.
- The event of a target being found by this CPS. The event is forwarded by the CPSwarm Communication Library to the other swarm members.
- Target updates from this CPS. The event is forwarded by the CPSwarm Communication Library to the other swarm members.
- The event of a target being lost by this CPS. The event is forwarded by the CPSwarm Communication Library to the other swarm members.
- The event of a target being completed by this CPS. The event is forwarded by the CPSwarm Communication Library to the other swarm members.
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 a target transitions into the state lost when no target information is received.
- The path of the smach state machine whose state shall be exchanged.
- Range of the target tracking camera in meter. It is used to simulate target detection. Targets within this distance are detected by the CPS.
- Whether the targets are detected virtually by position or actually by the camera tracking topic.
- The x-coordinates of the simulated targets.
- The y-coordinates of the simulated targets.
Acknowledgements
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.