|
| 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. |
0 commit comments