No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.

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 2020-02-13
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A package that generates an optimal path to cover a given area with a cyber physical system (CPS).

Additional Links

Maintainers

  • Micha Sende

Authors

  • Micha Sende

coverage_path

Build Status

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: * geometry_msgs * nav_msgs * cpswarm_msgs

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: * roscpp * tf2

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 CPSs with the same behavior state join or leave the swarm. A regeneration of the path also triggers a new area division among the CPSs. 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

Published Topics

  • coverage_path/path (nav_msgs/Path) The generated path for visualization purposes. Only published if the parameter visualize is set to true.
  • coverage_path/waypoint (geometry_msgs/PointStamped) The current waypoint of the generated path for visualization purposes. Only published if the parameter visualize is set to true.
  • coverage_path/mst (geometry_msgs/PoseArray) The minimum spanning tree of the area for visualization purposes. Only published if the parameter visualize is set to true.

Services

Services Called

  • area/get_map (nav_msgs/GetMap) Get the map of the environment. Only called if divide_area=false.
  • area/assigned (nav_msgs/GetMap) Get the map of the area assigned to this CPS. Only called if divide_area=true.

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.
  • ~swarm_timeout (real, default: 5.0) Time in seconds after which it is assumed that a swarm member has left the swarm if no position update has been received.
  • ~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. If true, 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

coverage_path package code API documentation

CHANGELOG

Changelog for package coverage_path

1.1.0 (2019-10-31)

  • Initial release of coverage_path
  • Contributors: Micha Sende

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

Launch files

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged coverage_path at answers.ros.org

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.