控制器服务器

在Github上的源代码

Controller Server实现了用于处理堆栈的控制器请求的服务器,并承载了插件实现的映射表。它将接收控制器、进度检查器和目标检查器的路径和插件名称,并调用相应的插件。

参数

控制器频率

类型

默认

双精度

20.0

描述

控制器运行的频率(Hz)。

controller_plugins

类型

默认

字符串向量

['跟随路径']

描述

用于处理请求和参数的控制器插件的映射名称列表。

注意

此列表中定义的每个插件命名空间都需要有一个:code:`plugin`参数,用于定义要加载到该命名空间中的插件类型。

示例:

controller_server:
  ros__parameters:
    controller_plugins: ["FollowPath"]
    FollowPath:
      plugin: "dwb_core::DWBLocalPlanner"
progress_checker_plugins

类型

默认

字符串向量

["progress_checker"]

描述

检查机器人进度的进度检查插件的映射名称。以前用于Humble和旧版本的``progress_checker_plugin``,使用单个字符串插件。

注意

定义的插件命名空间需要有一个 plugin 参数来定义要在命名空间中加载的插件类型。

示例:

controller_server:
  ros__parameters:
    progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
goal_checker_plugins

类型

默认

string

'goal_checker'

描述

检查目标是否已达到的目标检查插件的映射名称。

注意

定义的插件命名空间需要有一个 plugin 参数来定义要在命名空间中加载的插件类型。

示例:

controller_server:
  ros__parameters:
    goal_checker_plugins: ["goal_checker"]
    goal_checker:
      plugin: "nav2_controller::SimpleGoalChecker"
min_x_velocity_threshold

类型

默认

双精度

0.0001

描述

控制器服务器在将接收到的里程计消息发送给控制器插件之前会过滤速度部分。低于此阈值(以 m/s 为单位)的里程计值将被设置为 0.0。

min_y_velocity_threshold

类型

默认

双精度

0.0001

描述

控制器服务器在将接收到的里程计消息发送给控制器插件之前会过滤速度部分。低于此阈值(以 m/s 为单位)的里程计值将被设置为 0.0。对于非全向移动机器人

min_theta_velocity_threshold

类型

默认

双精度

0.0001

描述

控制器服务器在将接收到的里程计消息发送给控制器插件之前会过滤速度部分。低于此阈值(以 rad/s 为单位)的里程计值将被设置为 0.0。

failure_tolerance

类型

默认

双精度

0.0

描述

被调用的控制器插件在失败之前的最大持续时间(即插件的 computeVelocityCommands 函数抛出异常)允许的时间(以秒为单位),否则 nav2_msgs::action::FollowPath 动作将失败。将其设置为特殊值 -1.0 可以使其无限制,设置为 0 则禁用,设置为正值可设定适当的超时时间。

speed_limit_topic

类型

默认

string

"speed_limit"

描述

Speed limiting topic name to subscribe. This could be published by Speed Filter (please refer to 速度过滤器参数 configuration page). You can also use this without the Speed Filter as well if you provide an external server to publish these messages.

odom_topic

类型

默认

string

"odom"

描述

用于获取瞬时速度测量值的主题。

Provided Plugins

下面列出的插件位于 nav2_controller 命名空间中。

默认插件

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

命名空间

插件

"progress_checker"

"nav2_controller::SimpleProgressChecker"

"goal_checker"

"nav2_controller::SimpleGoalChecker"

"FollowPath"

"dwb_core::DWBLocalPlanner"

示例

controller_server:
  ros__parameters:
    use_sim_time: True
    controller_frequency: 20.0
    min_x_velocity_threshold: 0.001
    min_y_velocity_threshold: 0.5
    min_theta_velocity_threshold: 0.001
    failure_tolerance: 0.3
    odom_topic: "odom"
    progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
    goal_checker_plugin: "goal_checker"
    controller_plugins: ["FollowPath"]
    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
      required_movement_radius: 0.5
      movement_time_allowance: 10.0
    goal_checker:
      plugin: "nav2_controller::SimpleGoalChecker"
      xy_goal_tolerance: 0.25
      yaw_goal_tolerance: 0.25
      stateful: True
    FollowPath:
      plugin: "dwb_core::DWBLocalPlanner"