< >
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置恢复器服务器(Recovery Server)

ROS2与Navigation2入门教程-配置恢复器服务器(Recovery Server)

说明:

  • 介绍如何配置恢复器服务器(Recovery Server)

概述

  • 其源代码位于Github网站上。

  • 恢复器服务器实现了用于处理恢复请求的服务器,并托管了实现各种C++恢复器的插件向量。也可以为每个自定义恢复器实现独立的恢复器服务器,但该服务器允许多个恢复器共享诸如成本地图和TF缓冲区等资源,以降低新行为的增量成本。

  • 等待(wait)恢复器没有参数,等待的持续时间会在动作请求中给出。

恢复器服务器参数

  • 恢复器服务器具有以下7个参数:

  • costmap_topic参数:

数据类型:string
默认值:“local_costmap/costmap_raw”
描述:设置用于发布碰撞检测原始成本地图的话题。
  • footprint_topic参数:
数据类型:string
默认值:“local_costmap/ published_footprint”
描述:设置用于发布成本地图坐标系中的足迹的话题。
  • cycle_frequency参数:
数据类型:double
默认值:10.0
描述:用于设置运行恢复器插件的频率。
  • transform_tolerance参数:
数据类型:double
默认值:0.1
描述:用于设置TF坐标变换的容差。
  • global_frame参数:
数据类型:string
默认值:“odom”
描述:用于设置参考坐标系。
  • robot_base_frame参数:
数据类型:string
默认值:“base_link”
描述:用于设置机器人的底座坐标系。
  • recovery_plugins参数:
数据类型:vector<string>
默认值:{“spin”, “back_up”, “wait”}
描述:要使用的插件名称列表,也要与动作服务器名称匹配。
  • 注:此列表中定义的每个插件命名空间下都要有一个plugin参数来定义要在该命名空间中加载的插件类型。
  • 例如:
recoveries_server:
  ros__parameters:
    recovery_plugins: ["spin", "backup", "wait"]
    spin:
      plugin: "nav2_recoveries/Spin"
    backup:
      plugin: "nav2_recoveries/BackUp"
    wait:
      plugin: "nav2_recoveries/Wait"

默认插件

  • 当recovery_plugins参数未被覆盖时,会加载以下默认插件:
命名空间(Namespace)默认插件(Plugin)
“spin”“nav2_recoveries/Spin”
“backup”“nav2_recoveries/BackUp”
“wait”“nav2_recoveries/Wait”

旋转恢复器(Spin Recovery)参数

  • 旋转距离会在动作请求中给出。旋转恢复器具有以下4个参数:

  • simulate_ahead_time参数:

数据类型:double
默认值:2.0
描述:用于设置等待碰撞的时间长度(单位为秒)。
  • max_rotational_vel参数:
数据类型:double
默认值:1.0
描述:用于设置最大旋转速度(单位为弧度/秒)。
  • min_rotational_vel参数:
数据类型:double
默认值:0.4
描述:用于设置最小旋转速度(单位为弧度/秒)。
  • rotational_acc_lim参数:
数据类型:double
默认值:3.2
描述:用于设置最大旋转加速度(单位为弧度/秒2)。

后退恢复器(Backup Recovery)参数

  • 后退距离会在动作请求给出。后退恢复器只有1个参数:

  • simulate_ahead_time参数:

数据类型:double
默认值:2.0
描述:用于设置等待碰撞的时间长度(单位为秒)。

示例

recoveries_server:
  ros__parameters:
    costmap_topic: local_costmap/costmap_raw
    footprint_topic: local_costmap/published_footprint
    cycle_frequency: 10.0
    recovery_plugins: ["spin", "backup", "wait"]
    spin:
      plugin: "nav2_recoveries/Spin"
    backup:
      plugin: "nav2_recoveries/BackUp"
    wait:
      plugin: "nav2_recoveries/Wait"
    global_frame: odom
    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

参考:

  • https://navigation.ros.org/configuration/packages/configuring-recovery-server.html

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与navigation2入门教程