Only released in EOL distros:  

swarm_behaviors: swarm_behaviors_position | swarm_behaviors_velocity | uav_local_coverage | uav_optimal_coverage | uav_random_direction | uav_simple_tracking | ugv_random_walk

Package Summary

A package that performs local coverage with an unmanned aerial vehicle (UAV).

  • 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 (branch: kinetic-devel)


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:

Further required packages are:


Run the launch file

roslaunch uav_local_coverage uav_local_coverage.launch

to launch the uav_local_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_local_coverage.yaml that allows to configure the behavior of the uav_local_coverage node.



The uav_local_coverage performs coverage locally around the current position of the UAV. This is achieved by generating a spiral movement pattern according to the circle involute. The shape of the circle involute is computed based on the characteristics of the camera of the UAV. It is computed in such a way that a downward facing camera completely covers the area around the current position of the UAV. The UAV follows this path for a predefined number of steps and then 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.

Action Goal

uav_local_coverage/goal (cpswarm_msgs/CoverageGoal)
  • A goal that starts the local coverage behavior. It contains the altitude at which to operate.

Action Result

uav_local_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.


~loop_rate (real, default: 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.
~single_target (boolean, default: true)
  • Whether the algorithm will succeed / terminate once a target has been found.
~fov_hor (real, default: 1.236)
  • Horizontal camera field of view in radian. It is used to compute the path of the UAV.
~fov_ver (real, default: 0.970)
  • Vertical camera field of view in radian. It is used to compute the path of the UAV.
~local_steps (integer, default: 20)
  • Number of steps to do in the local coverage behavior.


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

Wiki: uav_local_coverage (last edited 2020-01-15 14:28:11 by MichaSende)