Coverage Server

Source code on Github.

“opennav_coverage” 中的 Coverage Server 使用 Fields2Cover 库实现了处理给定字段或区域集(以笛卡尔或 GPS 坐标表示)的完整覆盖规划请求的服务器。 它还可以使用“opennav_row_coverage”服务器,使用预先计算的一组行计算覆盖路线和计划。 它位于“opennav_coverage”项目中,而不是直接位于 Nav2 中,但计划在 Fields2Cover 中提供一些关键功能后进行长期集成。如果您希望为此做出贡献,请告知维护者!

Note: 所有以 default_ 为前缀的参数都可以在操作请求字段中覆盖。当操作目标中未设置模式时,将使用默认值。

参数

action_server_result_timeout:

Type

Default

double

10.0

Description

rclcpp 在将操作结果缓存为完成之前保持操作结果处于活动状态的超时时间。由于这是一个运行时间较长的任务服务器,因此请将其设置为高于 ROS 2 默认值。

coordinates_in_cartesian_frame:

Type

Default

bool

true

Description

进入服务器的请求是否采用笛卡尔坐标(例如米)或 GPS 坐标。如果采用 GPS,则会自动将其转换为 UTM 框架(以米为单位)以计算覆盖路径,然后再为客户端转换回 GPS。

robot_width:

Type

Default

double

2.1

Description

机器人的宽度(以米为单位)。

operation_width:

Type

Default

double

2.5

Description

机器人的作业宽度(清洁、种植等),用于计算覆盖幅宽

min_turning_radius:

Type

Default

double

0.4

Description

机器人计算连接路线带的路径的最小转弯半径(米)

linear_curv_change:

Type

Default

double

2.0

Description

机器人计算连接路线带的路径的最大线性曲率变化(1/m^2)

default_allow_overlap:

Type

Default

bool

false

Description 是否默认允许覆盖计划中的最后一行重叠以获得远边缘的覆盖。仅适用于“opennav_coverage”。

default_headland_type:

Type

Default

string

“CONSTANT”

Description

默认的岬角生成方法。Constant 是当前唯一有效的方法。仅适用于“opennav_coverage”。

default_headland_width:

Type

Default

double

2.0

Description

从覆盖规划中移除田地或区域的默认田头宽度。仅适用于“opennav_coverage”。

default_swath_type:

Type

Default

string

“LENGTH”

Description

使用“BRUTE_FORCE”幅宽角度类型时,用于对不同角度的幅宽生成候选者进行评分的目标。选项:“opennav_coverage”的“LENGTH”、“COVERAGE”、“NUMBER”。选项:“opennav_row_coverage”的“OFFSET”、“CENTER”、“ROWSARESWATHS”。 请注意,“Coverage”所需的时间是其他的 10 倍。

default_swath_angle_type:

Type

Default

double

1.7e-2

Description

用于生成条带的模式。如果未指定,则需要通过条带生成器目标找到最佳角度。选项:BRUTE_FORCESET_ANGLE。仅适用于``opennav_coverage``。

default_step_angle:

Type

Default

double

1.7e-2

Description

使用“BRUTE_FORCE”幅宽角度类型时,尝试找到路线目标的最佳角度的角度步长。默认值为 1 度(以弧度为单位)。仅适用于“opennav_coverage”。

default_swath_angle:

Type

Default

double

N/A

Description

使用“SET_ANGLE”幅宽角度类型时,路线目标的最佳角度。默认值为 1 度(以弧度为单位)。仅适用于“opennav_coverage”。

default_route_type:

Type

Default

string

“BOUSTROPHEDON”

Description

计算路线时对条带进行排序的默认顺序。选项:BOUSTROPHEDONSNAKESPIRALCUSTOM

default_custom_order:

Type

Default

vector<int>

N/A

Description

“自定义”模式下路线规划器的默认自定义幅宽顺序。此自定义顺序的长度必须为“>= swaths.size()”。仅在使用“自定义”路线类型时相关。

default_spiral_n:

Type

Default

int

4

Description

跳过并折返以在路线中创建螺旋图案的默认条带数。仅在使用“螺旋”路线类型时相关。当螺旋 N = 2 时,“蛇形”是特殊情况。

default_path_continuity_type:

Type

Default

string

“CONTINUOUS”

Description

计算连接路线的路径时的默认连续性类型。选项“DISCONTINUOUS”、“CONTINUOUS”。

default_path_type:

Type

Default

string

“DUBIN”

Description

计算使用曲线连接路线的路径时的默认类型。选项:“DUBIN”、“REEDS_SHEPP”。

default_turn_point_distance:

Type

Default

double

0.1

Description

计划和路线上各点之间的距离,用于发送回路径(例如 0.1 米)。这会影响输出转弯路径和整体导航路径的密度。

default_offset:

Type

Default

double

0.0

Description

用于计算注释行中的条带的偏移量。仅适用于“opennav_row_coverage”。

order_ids:

Type

Default

bool

0.0

Description

对于“opennav_row_coverage”,是否按照“id”的顺序重新排序已解析的行。

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