uav_optimal_coverage package from swarm_behaviors reposwarm_behaviors_position swarm_behaviors_velocity swarm_behaviors uav_local_coverage uav_optimal_coverage uav_random_direction uav_simple_tracking ugv_random_walk
|Tags||No category tags.|
|License||Apache License 2.0|
|CI status||Continuous Integration|
|Package Tags||No category tags.|
Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)
- Micha Sende
- Micha Sende
This package performs coverage with a swarm of unmanned aerial vehicles (UAVs). The UAVs optimally divide the area to be covered among each other. It is part of the swarm behaviors library.
This package depends on the following message definitions: * cpswarm_msgs
The following library packages of the swarm behaviors library are required: * swarm_behaviors_position
The following packages of the swarm functions library are required:
* target_monitor (only if
Run the launch file
roslaunch uav_optimal_coverage uav_optimal_coverage.launch
to launch the
The launch file can be configured with following parameters:
id (integer, default:
The identifier (ID) of the CPS used for name spacing in simulation.
output (string, default:
Whether to show the program output (
screen) or to write it to a log file (
param subdirectory there is the parameter file
uav_optimal_coverage.yaml that allows to configure the behavior of 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.
uav_coverage/goal(cpswarm_msgs/CoverageGoal) A goal that starts the optimal coverage behavior. It contains the altitude at which to operate.
uav_coverage/result(cpswarm_msgs/CoverageResult) ID and position of the target that has been found.
target_found(cpswarm_msgs/TargetPositionEvent) Position and ID of a target detected by the target monitor. Only subscribed when
single_targetis set to
coverage_path/waypoint(cpswarm_msgs/GetWaypoint) Get the current waypoint to navigate to.
5.0) The frequency in Hz at which to run the control loops.
1) The size of the message queue used for publishing and subscribing to topics.
true) Whether the algorithm will succeed / terminate once a target has been found.
Changelog for package uav_optimal_coverage
- Changed: Refactor library structure
- Changed: Use position setpoint
- Changed: Return state aborted once coverage finishes
- Changed: Use current position to determine next waypoint
- Changed: Targets handled by swarm functions library
- Fixed: Correctly handle state of behavior algorithm
- Fixed: Stop moving when behavior finishes
- Fixed: Completely traverse path
- Fixed: Force C++11
- Fixed: Returning of target
- Initial release of uav_optimal_coverage
- Contributors: Micha Sende
- id [default: 1]
- output [default: log]