![]() |
uav_tracking package from swarm_behaviors reposwarm_behaviors_flocking swarm_behaviors_position swarm_behaviors_velocity swarm_behaviors uav_coverage uav_tracking ugv_random_walk |
|
Package Summary
Tags | No category tags. |
Version | 1.3.0 |
License | Apache License 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cpswarm/swarm_behaviors.git |
VCS Type | git |
VCS Version | noetic-devel |
Last Updated | 2022-04-06 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Micha Sende
Authors
- Micha Sende
uav_tracking
This package tracks a target with an unmanned aerial vehicle (UAV) using different types of algorithms. It is part of the swarm behaviors library.
Dependencies
This package depends on the following message definitions: * geometry_msgs * cpswarm_msgs
The following library packages of the swarm behaviors library are required: * swarm_behaviors_flocking * swarm_behaviors_position * swarm_behaviors_velocity
The following packages of the swarm functions library are required: * target_monitor
Further required packages are: * roscpp * actionlib * random_numbers
Execution
Run the launch file
roslaunch uav_tracking uav_tracking.launch
to launch the uav_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
).
* behavior
(string)
The behavior to use for tracking. See below for more details.
In the param
subdirectory there is the parameter file uav_tracking.yaml
that allows to configure the behavior of the uav_tracking
node.
Nodes
uav_tracking
The uav_tracking
lets a swarm of UAVs track a target. The position of the target is updated by the target monitor from the swarm functions library. It provides an action server that has three outcomes: succeeded
, preempted
, or aborted
. 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.
If the parameters max_trackers
and min_trackers
are set according to
0 <= min_trackers <= max_trackers
0 < max_trackers
the tracking is preempted with a certain probability
p = min(1, 0.5 ⋅ log(trackers / min_trackers) / log(1.0 + (max_trackers - min_trackers) / (2 ⋅ min_trackers)))
where trackers
is the number of UAVs currently tracking the same target. The tracking is performed either individually or cooperatively by employing one of the following algorithms:
* Flocking: The UAVs create a formation while tracking the target.
* Simple: A single UAV moves to the position straight over the target.
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. -
target_trackers
(cpswarm_msgs/TargetTrackedBy) The number of UAVs tracking the same target.
Parameters
-
~loop_rate
(real, default:5.0
) 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. -
~max_trackers
(integer, default:0
) The maximum number of UAVs that should be tracking the same target simultaneously. 0 disables check. -
~min_trackers
(integer, default:0
) The number of UAVs tracking the same target above which a UAV stops tracking with a certain probability. -
/rng_seed
(integer, default:0
) The seed used for random number generation. In the default case, a random seed is generated.
Code API
Changelog for package uav_tracking
Forthcoming
- update api docs
- minor update to readmes
- update uav_flocking documentation
- convert into stack, update documentation
- update flocking to use new cpswarm service files
- return state aborted once coverage finishes
- use coverage action with stamped pose
- correctly handle state of behavior algorithms
- uav flocking: stop when behavior exits
- change behavior library objects to non-pointer
- wait for service
- removed obsolete parameters from launch files
- refactor behavior library structure
- replaced boustrophedon path by coverage path in swarm function library
- removed unneeded libraries, remove dependencies between stacks
- updated documentation
- uav_flocking: fixed computation of repulsive force of area boundary
- Initial commit
- Contributors: Micha Sende
1.3.0 (2020-01-03)
1.2.0 (2019-12-29)
- Fixed: Handling of target rescued event
- Changed: Refactor library structure
- Changed: Check if movement was successful
- Changed: Targets handled by swarm functions library
- Fixed: Correctly handle state of behavior algorithm
- Fixed: Force C++11
- Contributors: Micha Sende
1.1.0 (2018-11-12)
- Contributors: Micha Sende
1.0.0 (2018-10-30)
- Initial release of uav_simple_tracking
- Contributors: Micha Sende
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | catkin | |
2 | roscpp | |
1 | actionlib | |
1 | random_numbers | |
2 | geometry_msgs | |
1 | cpswarm_msgs | |
1 | swarm_behaviors_flocking | |
1 | swarm_behaviors_position | |
1 | swarm_behaviors_velocity |
System Dependencies
Dependant Packages
Name | Repo | Deps |
---|---|---|
swarm_behaviors | github-cpswarm-swarm_behaviors |
Launch files
- launch/uav_tracking.launch
-
- id [default: 1]
- behavior
- output [default: log]