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
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号