Only released in EOL distros:
Package Summary
A package that performs optimal coverage with a swarm of unmanned aerial vehicles (UAVs). The UAVs optimally divide the area to be covered among each other.
- 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_behaviors.git (branch: kinetic-devel)
Contents
Dependencies
This package depends on the following message definitions:
The following library packages of the swarm behaviors library are required:
The following packages of the swarm functions library are required:
target_monitor (only if single_target=true)
Further required packages are:
Execution
Run the launch file
roslaunch uav_optimal_coverage uav_optimal_coverage.launch
to launch the uav_optimal_coverage 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 uav_optimal_coverage.yaml that allows to configure the behavior of the uav_optimal_coverage node.
Nodes
uav_optimal_coverage
The uav_optimal_coverage performs coverage with a swarm of UAVs. The coverage is optimal in a sense that the area to be covered is divided among the UAVs to avoid overlapping regions to be covered multiple times. Within each region, the assigned UAV sweeps the area using simple back and forth (boustrophedon) motion. Once the region has been sweeped completely, it aborts the coverage. When the parameter single_target is set to true, it succeeds once a target has been found and returns the target ID and position. The area division and coverage path generation are provided by the swarm_functions library.Action Goal
uav_coverage/goal (cpswarm_msgs/CoverageGoal)- A goal that starts the optimal coverage behavior. It contains the altitude at which to operate.
Action Result
uav_coverage/result (cpswarm_msgs/CoverageResult)- ID and position of the target that has been found.
Subscribed Topics
target_found (cpswarm_msgs/TargetPositionEvent)- Position and ID of a target detected by the target monitor. Only subscribed when single_target is set to true.
Services Called
coverage_path/waypoint (cpswarm_msgs/GetWaypoint)- Get the current waypoint to navigate to.
Parameters
~loop_rate (real, default: 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.
- Whether the algorithm will succeed / terminate once a target has been found.
Acknowledgements
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.