coverage_path package from swarm_functions repoarea_division coverage_path kinematics_exchanger state_exchanger swarm_functions target_monitor task_allocation |
|
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/cpswarm/swarm_functions.git |
VCS Type | git |
VCS Version | kinetic-devel |
Last Updated | 2021-01-19 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
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
coverage_path
This package generates an optimal path to cover a given area with a cyber physical system (CPS).
Dependencies
This package depends on the following message definitions:
The communication between CPSs is based on the CPSwarm Communication Library.
The following packages of the swarm functions library are required:
- area_division (only if
divide_area=true
) - state_exchanger
The following packages of the sensing and actuation library are required:
- area_provider (only if
divide_area=false
)
Further required packages are:
Execution
Run the launch file
roslaunch coverage_path coverage_path.launch
to launch the coverage_path
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 coverage_path.yaml
that allows to configure the behavior of the coverage_path
node.
Nodes
coverage_path
The coverage_path
node generates a path that allows a CPS to cover a given area. It uses the area assigned by the area_division package. The generated coverage path is based on a minimum spanning tree to optimally sweep the area. The path is regenerated when area to be covered changes. The path can be retrieved either as a whole or waypoint after waypoint. In the latter case, the current waypoint is returned, based on the current position of the CPS.
Subscribed Topics
-
area/assigned
(nav_msgs/OccupancyGrid) The area to be covered by this CPS. Only called ifdivide_area=true
. -
area/map
(nav_msgs/OccupancyGrid) The area to be covered. Only called ifdivide_area=false
.
Published Topics
-
coverage_path/path
(nav_msgs/Path) The generated path for visualization purposes. Only published if the parametervisualize
is set to true. -
coverage_path/waypoint
(geometry_msgs/PointStamped) The current waypoint of the generated path for visualization purposes. Only published if the parametervisualize
is set to true. -
coverage_path/mst
(geometry_msgs/PoseArray) The minimum spanning tree of the area for visualization purposes. Only published if the parametervisualize
is set to true.
Services
-
coverage_path/path
(nav_msgs/GetPlan) Provides the complete generated path. -
coverage_path/waypoint
(cpswarm_msgs/GetWaypoint) Provides the current waypoint of the generated path.
Services Called
-
area/get_area
(cpswarm_msgs/GetPoints) Get the points defining the polygon of the area to be covered.
Parameters
-
~loop_rate
(real, default:1.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. -
~resolution
(real, default:1.0
) The grid map underlying the path planning will be downsampled to this resolution in meter / cell. -
~visualize
(boolean, default:false
) Whether to publish the coverage path on a topic for visualization. -
~divide_area
(boolean, default:false
) Whether to divide the area among the CPSs before generating the path or to generate the path on the complete map. Iftrue
, downsampling is not available. -
~vertical
(boolean, default:false
) Whether the sweeping pattern is vertical or horizontal. -
~turning_points
(boolean, default:false
) Whether there are only waypoints at turning points of the path or also waypoints regularly spaced on straight line segments of the path.
Code API
Changelog for package coverage_path
1.1.0 (2019-10-31)
- Initial release of coverage_path
- Contributors: Micha Sende
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
roscpp | |
tf2 | |
geometry_msgs | |
nav_msgs | |
cpswarm_msgs |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
swarm_functions |
Launch files
- launch/coverage_path.launch
-
- id [default: 1]
- output [default: log]