A package that generates an optimal path to cover a given area with a cyber physical system (CPS).
- 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: master)
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:
Run the launch file
roslaunch coverage_path coverage_path.launch
to launch the coverage_path 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 coverage_path.yaml that allows to configure the behavior of the coverage_path node.
coverage_pathThe coverage_path node generates a path that allows a CPS to cover a given area. It uses the area assigned by the area_division package. The generated coverage path is based on a minimum spanning tree to optimally sweep the area. The path is regenerated when CPSs with the same behavior state join or leave the swarm. A regeneration of the path also triggers a new area division among the CPSs. The path can be retrieved either as a whole or waypoint after waypoint. In the latter case, the current waypoint is returned, based on the current position of the CPS.
Subscribed Topicspos_provider/pose (geometry_msgs/PoseStamped)
- The current position of this CPS.
- The current behavior states of other CPSs in the swarm.
Published Topicscoverage_path/path (nav_msgs/Path)
- The generated path for visualization purposes. Only published if the parameter visualize is set to true.
- The current waypoint of the generated path for visualization purposes. Only published if the parameter visualize is set to true.
- Provides the complete generated path.
- Provides the current waypoint of the generated path.
Services Calledarea/assigned (nav_msgs/GetMap)
- Get the map of the area assigned to this CPS.
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.
- Time in seconds after which it is assumed that a swarm member has left the swarm if no position update has been received.
- Whether to publish the coverage path on a topic for visualization.
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.