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 tracks a target 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_simple_tracking uav_simple_tracking.launch

to launch the uav_simple_tracking 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_simple_tracking.yaml that allows to configure the behavior of the uav_simple_tracking node.



The uav_simple_tracking tracks a target with a UAV. The UAV moves to the position straight over the target. The position of the target is updated by the target monitor from the swarm functions library. When the target is lost, i.e., the target is not in the camera field of view anymore, the tracking aborts. When the target is done, i.e., handled by another CPS, the tracking succeeds.

Action Goal

uav_tracking/goal (cpswarm_msgs/TrackingGoal)
  • A goal that starts the tracking behavior. It contains the ID of the target to track and the altitude at which to operate.

Subscribed Topics

target_update (cpswarm_msgs/TargetPositionEvent)
  • Position updates of the target being tracked.
target_lost (cpswarm_msgs/TargetPositionEvent)
  • Whether the target being tracked has been lost.
target_done (cpswarm_msgs/TargetPositionEvent)
  • Whether the target being tracked has been handled by another CPS.


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


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

Wiki: uav_simple_tracking (last edited 2020-01-15 14:29:02 by MichaSende)