< >
Home » ROS2与Navigation2入门教程 » ROS2与Navigation2入门教程-配置航点跟随者(Waypoint Follower)

ROS2与Navigation2入门教程-配置航点跟随者(Waypoint Follower)

说明:

  • 介绍如何配置航点跟随者(Waypoint Follower)

配置航点跟随者(Waypoint Follower)

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

  • 航点跟随者(Waypoint Follower)模块实现了一种使用NavigateToPose动作服务器进行航点跟随的方法。

  • 它会接收一组有序的航点,然后尝试按顺序依次导航到这些航点。

  • 它还托管了一个航点任务执行器插件,可用于在航点上执行自定义行为,例如等待用户指令、拍照或者捡取盒子。

  • 如果某个航点无法到达,则stop_on_failure参数可以决定是继续移动到下一个航点还是停止。

参数

  • stop_on_failure参数:
数据类型:bool
默认值:true
描述:如果单个航点失败,该参数用于决定是否使动作任务失效。如果设置为false,则会继续移动到下一个航点。
  • loop_rate参数:
数据类型:int
默认值:20
描述:检查当前导航任务结果的频率。
  • waypoint_task_executor_plugin参数:
数据类型:string
默认值:‘wait_at_waypoint’
描述:一个插件,用于定义当机器人到达某个航点时要执行的任务。
  • 定义的插件命名空间需要有一个plugin参数,以定义在该命名空间中要加载的插件类型。
  • 例如:
waypoint_follower:
  ros__parameters:
    waypoint_task_executor_plugin: "wait_at_waypoint"
    wait_at_waypoint:
      plugin: "nav2_waypoint_follower::WaitAtWaypoint"
      enabled: True
      waypoint_pause_duration: 0

提供的插件

  • 下面列出了命名空间nav2_waypoint_follower中的插件:

WaitAtWaypoint

  • 该插件能让机器人到达每个航点后暂停指定长度的时间。

  • 相关参数

    • <nav2_waypoint_follower_plugin>参数:在Waypoint Follower中的waypoint_task_executor_plugin_id参数中定义的nav2_waypoint_follower插件名称。

    • <nav2_waypoint_follower plugin>.enabled参数:数据类型为bool,默认值为true。参数描述—用于指定是否启用waypoint_task_executor插件。

    • <nav2_waypoint_follower plugin>.waypoint_pause_duration参数:数据类型为int,默认值为0。参数描述—用于指定机器人到达每个航点后休眠/等待的时间(以毫秒为单位)。如果为0,则机器人将会直接继续移向下一个航点。

PhotoAtWaypoint

  • 该插件为运行时插件,在使用航点跟随者节点时可以在到达航点时拍照。

  • 会将拍摄的照片保存到指定目录中。所拍摄照片的名称由航点索引和时间戳(秒)确定。

  • 例如,/home/atas/0_1602582820.png是一个拍摄的图像示例,其中0_1602582820是由航点索引和时间戳确定的文件名。

  • 文件名中的前导数字表示航点索引,右侧的其余数字表示拍摄照片时的时间戳。

  • 参数:

    • <nav2_waypoint_follower plugin>:在Waypoint Follower中的waypoint_task_executor_plugin_id参数中定义的nav2_waypoint_follower插件名称。

    • <nav2_waypoint_follower plugin>.enabled参数:数据类型为bool,默认值为true。参数描述—用于指定是否启用waypoint_task_executor插件。

    • <nav2_waypoint_follower plugin>.camera_image_topic_name参数:数据类型为string,默认值为“/camera/color/image_raw”。参数描述—用于订阅的相机图像话题名称。

    • <nav2_waypoint_follower plugin>.save_images_dir参数:数据类型为string,默认值为“/tmp/waypoint_images”。参数描述—用于指定在到达航点所拍摄照片的保存目录路径。

    • <nav2_waypoint_follower plugin>.image_format参数:数据类型为string,默认值为“png”。参数描述—用于指定想要保存的图像格式。

InputAtWaypoint

  • 该插件允许机器人在某个航点等待外部输入,但具有超时参数。

  • 参数:

    • <nav2_waypoint_follower plugin>:在Waypoint Follower中的waypoint_task_executor_plugin_id参数中定义的nav2_waypoint_follower插件名称。

    • <nav2_waypoint_follower plugin>.enabled参数:数据类型为bool,默认值为true。参数描述—用于指定是否启用waypoint_task_executor插件。

    • <nav2_waypoint_follower plugin>.timeout参数:数据类型为double,默认值为10.0。参数描述—用于指定在移动到下一个航点之前等待用户输入的时间(以秒为单位)。

    • <nav2_waypoint_follower plugin>.input_topic参数:数据类型为string,默认值为“input_at_waypoint/input”。参数描述—发布话题输入以指示机器人移动到下一个航点,消息类型为std_msgs/Empty。

默认插件

  • 命名空间:“wait_at_waypoint”

  • 插件:“nav2_waypoint_follower::WaitAtWaypoint”

  • 示例

waypoint_follower:
  ros__parameters:
    loop_rate: 20
    stop_on_failure: false
    waypoint_task_executor_plugin: "wait_at_waypoint"
      wait_at_waypoint:
        plugin: "nav2_waypoint_follower::WaitAtWaypoint"
        enabled: True
        waypoint_pause_duration: 0

参考:

  • https://navigation.ros.org/configuration/packages/configuring-waypoint-follower.html

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

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


标签: ros2与navigation2入门教程