Wiki

Only released in EOL distros:  

swarm_functions: area_division | coverage_path | kinematics_exchanger | state_exchanger | target_monitor | task_allocation

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)

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:

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

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)

output (string, default: screen)

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: target_fsm.png 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)

Subscribed Topics

pos_provider/pose (geometry_msgs/PoseStamped) target_tracking (cpswarm_msgs/TargetTracking) cps_selected (cpswarm_msgs/TaskAllocatedEvent) target_done (cpswarm_msgs/TargetPositionEvent) bridge/events/target_found (cpswarm_msgs/TargetPositionEvent) bridge/events/target_update (cpswarm_msgs/TargetPositionEvent) bridge/events/cps_selected (cpswarm_msgs/TaskAllocatedEvent) bridge/events/target_lost (cpswarm_msgs/TargetPositionEvent) bridge/events/target_done (cpswarm_msgs/TargetPositionEvent) bridge/uuid (cpswarm_msgs/TargetPositionEvent)

Published Topics

target_tracking (cpswarm_msgs/TargetTracking) target_found (cpswarm_msgs/TargetPositionEvent) target_update (cpswarm_msgs/TargetPositionEvent) target_lost (cpswarm_msgs/TargetPositionEvent) target_done (cpswarm_msgs/TargetPositionEvent)

Parameters

~loop_rate (real, default: 1.5) ~queue_size (integer, default: 10) ~tracking_timeout (real, default: 5.0) ~target_tolerance (real, default: 0.1) ~fov (real, default: 0.5) ~simulation (boolean, default: false) ~targets_x (real list, default: []) ~targets_y (real list, default: [])

Acknowledgements

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

Wiki: target_monitor (last edited 2019-11-05 21:40:10 by MichaSende)