Coverage Server
Source code on Github.
The Coverage Server in opennav_coverage
implements the server for handling the complete-coverage planning requests of a given field or zone set in cartesian or GPS coordinates using the Fields2Cover library.
It can also compute coverage route and plans using a precomputed set of rows using the opennav_row_coverage
server.
It is within the opennav_coverage
project, not within Nav2 directly, but is planned for a longer-term integration once a few key features are available in Fields2Cover. If you wish to contribute to this effort, please let a maintainer know!
Note: All default_
prefixed parameters can be overwritten in the action request field. When modes are not set in the Action goal, the defaults are utilized.
Parameters
- action_server_result_timeout:
Type
Default
double
10.0
- Description
The timeout for rclcpp to keep action results active before caching them as complete. Set as higher than ROS 2 default since this is a longer-running task server.
- coordinates_in_cartesian_frame:
Type
Default
bool
true
- Description
Whether or not requests coming into the server will be in cartesian (e.g. meters) or GPS coordinates. If GPS, they are automatically converted into UTM frame (for meters) to compute the coverage paths, then converted back into GPS for the client.
- robot_width:
Type
Default
double
2.1
- Description
The robot’s width in meters.
- operation_width:
Type
Default
double
2.5
- Description
The robot’s operational width (cleaning, planting, etc) for computing coverage swath distances
- min_turning_radius:
Type
Default
double
0.4
- Description
The robot’s minimum turning radius for computing paths connecting route swaths (m)
- linear_curv_change:
Type
Default
double
2.0
- Description
The robot’s maximum linear curvature change for computing paths connecting route swaths (1/m^2)
- default_allow_overlap:
Type
Default
bool
false
- Description
Whether, by default, to allow overlapping of the last row in the coverage plan to obtain coverage at the far edge. Only for
opennav_coverage
.
- default_headland_type:
Type
Default
string
“CONSTANT”
- Description
The default headland generation method. Constant is the only valid method currently. Only for
opennav_coverage
.
- default_headland_width:
Type
Default
double
2.0
- Description
The default headland width to remove from the field or zone from coverage planning. Only for
opennav_coverage
.
- default_swath_type:
Type
Default
string
“LENGTH”
- Description
Objective to use to score swath generation candidates at different angles when using
BRUTE_FORCE
swath angle type. Options:LENGTH
,COVERAGE
,NUMBER
foropennav_coverage
. Option:OFFSET
,CENTER
,ROWSARESWATHS
foropennav_row_coverage
. Note thatCoverage
takes 10x longer than others.
- default_swath_angle_type:
Type
Default
double
1.7e-2
- Description
Mode to use for generating swaths. Need to find optimal angle by the swath generator objectives, if not given. Options:
BRUTE_FORCE
,SET_ANGLE
. Only foropennav_coverage
.
- default_step_angle:
Type
Default
double
1.7e-2
- Description
The angular step size to try to find the optimal angle for route objective, when using
BRUTE_FORCE
swath angle type. Default is 1 deg in rad units. Only foropennav_coverage
.
- default_swath_angle:
Type
Default
double
N/A
- Description
The optimal angle for route objective, when using
SET_ANGLE
swath angle type. Default is 1 deg in rad units. Only foropennav_coverage
.
- default_route_type:
Type
Default
string
“BOUSTROPHEDON”
- Description
Default order when computing routes to order swaths. Options:
BOUSTROPHEDON
,SNAKE
,SPIRAL
,CUSTOM
- default_custom_order:
Type
Default
vector<int>
N/A
- Description
The default custom swath order for the route planner in the
CUSTOM
mode. The length of this custom order must be>= swaths.size()
. Only relevant when using theCUSTOM
Route Type.
- default_spiral_n:
Type
Default
int
4
- Description
Default number of swaths to skip and double back on to create a spiral pattern in the route. Only relevant when using the
SPIRAL
Route Type.SNAKE
is a special case when Spiral N = 2.
- default_path_continuity_type:
Type
Default
string
“CONTINUOUS”
- Description
Default continuity type when computing paths to connect routes together. Options
DISCONTINUOUS
,CONTINUOUS
.
- default_path_type:
Type
Default
string
“DUBIN”
- Description
Default type when computing paths to connect routes together using curves. Options:
DUBIN
,REEDS_SHEPP
.
- default_turn_point_distance:
Type
Default
double
0.1
- Description
Distance between points on the plan and route for sending back in paths (e.g. 0.1m). This impacts the density of the output turn paths and the overall nav paths.
- default_offset:
Type
Default
double
0.0
- Description
Offset to use for computing swaths from annotated rows. Only for
opennav_row_coverage
.
- order_ids:
Type
Default
bool
0.0
- Description
For
opennav_row_coverage
, whether to reorder the parsed rows in the order of their ``id``s.
Example
coverage_server:
ros__parameters:
action_server_result_timeout: 10.0
coordinates_in_cartesian_frame: true
robot_width: 2.1
operation_width: 2.5
min_turning_radius: 0.4
linear_curv_change: 2.0
default_allow_overlap: true
default_headland_width: 0.5
default_path_continuity_type: "CONTINUOUS"
default_path_type: "DUBINS"
default_route_type: "BOUSTROPHEDON"
default_swath_angle_type: "BRUTE_FORCE"
default_swath_type: "LENGTH"
default_turn_point_distance: 0.1