Behavior Server

源代码在 Github.

行为服务器实现了处理各种行为的服务器,例如恢复和对接、请求以及托管实现各种 C++ 行为的插件向量。 也可以为每个自定义行为实现独立的行为服务器,但此服务器将允许多个行为共享资源,例如成本图和 TF 缓冲区,以降低新行为的增量成本。

注意:等待恢复行为没有参数,等待时间在操作请求中给出。 注意:在 Rolling/Humble 之前,这是恢复服务器,而不是行为服务器。启动文件、行为和测试都已重命名。

行为服务器参数

local_costmap_topic:

Type

Default

string

“local_costmap/costmap_raw”

Description

用于在本地代价地图上进行碰撞检查的原始代价地图主题。

global_costmap_topic:

Type

Default

string

“global_costmap/costmap_raw”

Description

用于在全局代价地图上进行碰撞检查的原始代价地图主题。

local_footprint_topic:

Type

Default

string

“local_costmap/published_footprint”

Description

本地代价地图框架中的足迹主题。

global_footprint_topic:

Type

Default

string

“global_costmap/published_footprint”

Description

全球代价地图框架中的足迹主题。

cycle_frequency:

Type

Default

double

10.0

Description

运行行为插件的频率。

action_server_result_timeout:

Type

Default

Unit

double

10.0

seconds

Description

如果未产生结果,则操作服务器丢弃目标句柄的超时值(以秒为单位)。这在 rcl 中默认为 15 分钟,但在此 PR #1012 中更改为 10 秒,这可能小于 Nav2 中某些操作的运行时间。对于大多数应用程序,只要服务器内的操作不超过此期限,就不需要调整。 此问题已向 OSRF 提出,以寻找另一种解决方案来避免记账时出现活动目标超时,因此这是一个半临时的解决方法

transform_tolerance:

Type

Default

double

0.1

Description

TF 变换容差。

local_frame:

Type

Default

string

“odom”

Description

局部参考框架。

global_frame:

Type

Default

string

“map”

Description

全球参考框架。

robot_base_frame:

Type

Default

string

“base_link”

Description

机器人底座框架。

behavior_plugins:

Type

Default

vector<string>

{“spin”, “back_up”, “drive_on_heading”, “wait”}

Description

要使用的插件名称列表,也匹配动作服务器名称。

Note

此列表中定义的每个插件命名空间都需要有一个:code:plugin 参数来定义要在命名空间中加载的插件类型。

Example:

behavior_server:
  ros__parameters:
    behavior_plugins: ["spin", "backup", "drive_on_heading", "wait"]
    spin:
      plugin: "nav2_behaviors::Spin" # In Iron and older versions, "/" was used instead of "::"
    backup:
      plugin: "nav2_behaviors::BackUp" # In Iron and older versions, "/" was used instead of "::"
    drive_on_heading:
      plugin: "nav2_behaviors::DriveOnHeading" # In Iron and older versions, "/" was used instead of "::"
    wait:
      plugin: "nav2_behaviors::Wait" # In Iron and older versions, "/" was used instead of "::"

Default Plugins

Note

在 Iron 和更早的版本中,使用“/”代替“::”。

当未覆盖:code:behavior_plugins 参数时,将加载以下默认插件:

Namespace

Plugin

“spin”

“nav2_behaviors::Spin”

“backup”

“nav2_behaviors::BackUp”

“drive_on_heading”

“nav2_behaviors::DriveOnHeading”

“wait”

“nav2_behaviors::Wait”

自旋行为参数

旋转距离由动作请求给出

:提前模拟:

Type

Default

double

2.0

Description

是时候展望碰撞了。

:最大旋转速度:

Type

Default

double

1.0

Description

最大旋转速度(弧度/秒)。

min_rotational_vel:

Type

Default

double

0.4

Description

最小旋转速度(弧度/秒)。

rotational_acc_lim:

Type

Default

double

3.2

Description

最大旋转加速度(rad/s^2)。

enable_stamped_cmd_vel:

Type

Default

bool

false

Description

是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。

备份行为参数

备份距离、速度和时间余量由行动请求给出。

simulate_ahead_time:

Type

Default

double

2.0

Description

是时候展望碰撞了。

enable_stamped_cmd_vel:

Type

Default

bool

false

Description

是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。

DriveOnHeading Behavior Parameters

DriveOnHeading 距离、速度和 time_allowance 由动作请求给出。

simulate_ahead_time:

Type

Default

double

2.0

Description

是时候展望碰撞了。

enable_stamped_cmd_vel:

Type

Default

bool

false

Description

是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。

bond_heartbeat_period:

Type

Default

double

0.1

Description

生命周期节点债券机制发布周期(在 /bond 主题上)。如果小于或等于 0.0,则禁用。

AssistedTeleop 行为参数

AssistedTeleop time_allowance 在操作请求中给出

projection_time:

Type

Default

double

1.0

Description

是时候展望碰撞了。

simulation_time_step:

Type

Default

double

0.1

Description

投影的时间步长(s)。

cmd_vel_teleop:

Type

Default

string

cmd_vel_teleop

Description

监听远程操作消息的主题。

enable_stamped_cmd_vel:

Type

Default

bool

false

Description

是否使用 geometry_msgs::msg::Twist 或 geometry_msgs::msg::TwistStamped 速度数据。 True 使用 TwistStamped,false 使用 Twist。

Example

behavior_server:
  ros__parameters:
    local_costmap_topic: local_costmap/costmap_raw
    local_footprint_topic: local_costmap/published_footprint
    global_costmap_topic: global_costmap/costmap_raw
    global_footprint_topic: global_costmap/published_footprint
    cycle_frequency: 10.0
    behavior_plugins: ["spin", "backup", "drive_on_heading", "wait", "assisted_teleop"]
    spin:
      plugin: "nav2_behaviors::Spin" # In Iron and older versions, "/" was used instead of "::"
    backup:
      plugin: "nav2_behaviors::BackUp" # In Iron and older versions, "/" was used instead of "::"
    drive_on_heading:
      plugin: "nav2_behaviors::DriveOnHeading" # In Iron and older versions, "/" was used instead of "::"
    wait:
      plugin: "nav2_behaviors::Wait" # In Iron and older versions, "/" was used instead of "::"
    assisted_teleop:
      plugin: "nav2_behaviors::AssistedTeleop" # In Iron and older versions, "/" was used instead of "::"
    local_frame: odom
    global_frame: map
    robot_base_frame: base_link
    transform_timeout: 0.1
    simulate_ahead_time: 2.0
    max_rotational_vel: 1.0
    min_rotational_vel: 0.4
    rotational_acc_lim: 3.2
    enable_stamped_cmd_vel: false