Skip to content

Commit 8f85a3d

Browse files
Coverage server docs (ros-navigation#488)
* adding coverage server docs * moving file
1 parent 9fbc778 commit 8f85a3d

File tree

10 files changed

+444
-1
lines changed

10 files changed

+444
-1
lines changed

behavior_trees/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,6 @@ This tree contains:
4848
- No integration with automatic door, elevator, or other APIs
4949
- No user provided custom BT nodes
5050
- No subtrees for other behaviors like docking, following, etc.
51+
- No use of other types of planners, like complete coverage (where useful)
5152

5253
All of this, and more, can be set and configured for your customized navigation logic in Nav2.

configuration/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ the best navigation performance.
1414
packages/configuring-costmaps.rst
1515
packages/configuring-lifecycle.rst
1616
packages/configuring-planner-server.rst
17+
packages/configuring-coverage-server.rst
1718
packages/configuring-navfn.rst
1819
packages/configuring-smac-planner.rst
1920
packages/configuring-thetastar.rst
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
.. _bt_cancel_coverage:
2+
3+
CancelCoverage
4+
=============
5+
6+
Used to cancel the goals given to the complete coverage action server. The server address can be remapped using the ``server_name`` input port.
7+
8+
Input Ports
9+
-----------
10+
11+
:service_name:
12+
13+
====== =======
14+
Type Default
15+
------ -------
16+
string N/A
17+
====== =======
18+
19+
Description
20+
Service name.
21+
22+
23+
:server_timeout:
24+
25+
====== =======
26+
Type Default
27+
------ -------
28+
double 10
29+
====== =======
30+
31+
Description
32+
Server timeout (ms).
33+
34+
Example
35+
-------
36+
37+
.. code-block:: xml
38+
39+
<CancelCoverage server_name="compute_complete_coverage" server_timeout="10"/>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
.. _bt_compute_path_through_poses_action:
2+
3+
ComputeCoveragePath
4+
===================
5+
6+
Invokes the ComputeCoveragePath ROS 2 action server, which is implemented by the opennav_coverage_ server module.
7+
The server address can be remapped using the ``server_name`` input port.
8+
This server can take in both cartesian and GPS coordinates and is implemented using the ``Fields2Cover`` library.
9+
10+
.. _opennav_coverage: https://github.com/open-navigation/opennav_coverage
11+
12+
Input Ports
13+
-----------
14+
:generate_headland:
15+
16+
===================================== =======
17+
Type Default
18+
------------------------------------- -------
19+
bool true
20+
===================================== =======
21+
22+
Description
23+
Whether or not to generate a headland of the field or polygon to compute coverage of
24+
25+
:generate_route:
26+
27+
============================================= =======
28+
Type Default
29+
--------------------------------------------- -------
30+
bool true
31+
============================================= =======
32+
33+
Description
34+
Whether or not to generate a route, e.g. an ordered set of swaths
35+
36+
:generate_path:
37+
38+
============== =======
39+
Type Default
40+
-------------- -------
41+
bool true
42+
============== =======
43+
44+
Description
45+
Whether or not to generate a path, e.g. adding path connectors to the ordered route
46+
47+
:file_field:
48+
49+
============== =======
50+
Type Default
51+
-------------- -------
52+
string N/A
53+
============== =======
54+
55+
Description
56+
The filepath to the field's GML file to use, if not specifying the field via ``polygons``
57+
58+
59+
:file_field_id:
60+
61+
============== =======
62+
Type Default
63+
-------------- -------
64+
int 0
65+
============== =======
66+
67+
Description
68+
The ID of the field in the GML File to use, if multiple exist in the same file. This is the ordered number of the fields in the file.
69+
70+
:polygons:
71+
72+
=================================== =======
73+
Type Default
74+
----------------------------------- -------
75+
vector<geometry_msgs::msg::Polygon> N/A
76+
=================================== =======
77+
78+
Description
79+
The polygons of the field, if not specifying via a GML file. The first polygon should be the outermost region, whereas additional polygons are voids.
80+
81+
:polygons_frame_id:
82+
83+
=================================== =======
84+
Type Default
85+
----------------------------------- -------
86+
string "map"
87+
=================================== =======
88+
89+
Description
90+
The polygon's frame ID, since the GML file provides the frame ID for its format, this is the frame ID for user-defined input ``polygons``.
91+
92+
Output Ports
93+
------------
94+
95+
:nav_path:
96+
97+
========================== =======
98+
Type Default
99+
-------------------------- -------
100+
nav_msgs::msg::Path N/A
101+
========================== =======
102+
103+
Description
104+
Path created by action server in the form of a navigation path. Takes in a blackboard variable, e.g. "{path}".
105+
106+
:coverage_path:
107+
108+
========================== =======
109+
Type Default
110+
-------------------------- -------
111+
vector<PathComponents> N/A
112+
========================== =======
113+
114+
Description
115+
An ordered set of swaths and turns corresponding to the coverage path when its important to distinguish between turns and swaths for applications. A ``opennav_coverage::utils::PathComponentsIterator`` object is provided to help make this easy to use by iterating through the outputs's path components to return you the next swath and turn one at a time.
116+
117+
:error_code_id:
118+
119+
============== =======
120+
Type Default
121+
-------------- -------
122+
uint16 N/A
123+
============== =======
124+
125+
Description
126+
Compute coverage error code. See ``ComputeCoveragePath`` action message for the enumerated set of error codes.
127+
128+
Example
129+
-------
130+
131+
.. code-block:: xml
132+
133+
<ComputeCoveragePath file_field="{field_filepath}" nav_path="{path}" coverage_path="{cov_path}" server_name="ComputeCoverage" server_timeout="10" error_code_id="{compute_coverage_error_code}"/>
134+
135+
Note: the blackboard IDs for the path, error code, and more may be adjusted,but need to match the corresponding parameters in the ``CoverageNavigator`` plugin to set on the blackboard for use from the action server.

configuration/packages/configuring-bt-navigator.rst

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ in the navigation task and provide a way to easily specify complex robot behavio
1313

1414
Consider checking out the :ref:`groot_introduction` tutorial for using Groot to visualize and modify behavior trees.
1515

16+
Make sure to review all parameters for non-default navigator plugins not discussed on this page (e.g. ``CoverageNavigator`` or custom additions).
17+
1618
Parameters
1719
**********
1820

configuration/packages/configuring-bt-xml.rst

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ Action Plugins
3939
bt-plugins/actions/GoalCheckerSelector.rst
4040
bt-plugins/actions/NavigateThroughPoses.rst
4141
bt-plugins/actions/ComputePathThroughPoses.rst
42+
bt-plugins/actions/ComputeCoveragePath.rst
43+
bt-plugins/actions/CancelCoverage.rst
4244
bt-plugins/actions/RemovePassedGoals.rst
4345
bt-plugins/actions/CancelControl.rst
4446
bt-plugins/actions/CancelBackUp.rst

0 commit comments

Comments
 (0)