[ros2学习]-CLI Tools - 了解ROS 2动作(action)

① 背景

动作是ROS 2中用于长时间运行任务的通信类型之一。它们由三部分组成:目标,结果和反馈。

动作基于主题和服务。它们的功能与服务相似,但动作是可抢占的(您可以在执行时将其取消)。与返回单个响应的服务相反,它们还提供稳定的反馈。

操作使用类似于发布者-订阅者模型(在主题教程中进行描述)的客户端-服务器模型。“动作客户端”节点将目标发送到“动作服务器”节点,该节点确认目标并返回反馈和结果流。
意思就是topic是没有反馈的,action是有反馈的长连接

② 前提

  • 装ros2
  • 配置环境
  • 装小乌龟

③ 任务

Ⅰ准备

启动小乌龟
命令:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Ⅱ 使用actions

键盘控制节点这个地方就是action,使用f键周围的来控制小乌龟到指定方向,F键取消作用
在这里插入图片描述
演示:
在这里插入图片描述
是通过这个action 发送的
在这里插入图片描述

actions 命令

ros2 action list

列出 action
在这里插入图片描述

ros2 action info

看详细信息
在这里插入图片描述

ros action show(ros2 interface show–eloquent 这个版本有)

详细信息

dashing 版本
ros2 action show turtlesim/action/RotateAbsolute

在这里插入图片描述

eloquent 版本
ros2 interface show turtlesim/action/RotateAbsolute.action

在这里插入图片描述

ros2 action send_goal

命令行发送action ros2 action send_goal <action_name> <action_type> <values>
例子:

  • 没有feedback
ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute {'theta: 1.57'}
  • 有 feedbaxk
ros2 action send_goal /turtle1/rotate_absolute turtlesim/action/RotateAbsolute {'theta: -1.57'} --feedback

在这里插入图片描述

④ 总结

动作就像服务,可让您执行长时间运行的任务,提供定期反馈并可以取消。

机器人系统可能会使用动作进行导航。一个行动目标可以告诉机器人去某个位置。当机器人导航到该位置时,它可以沿途发送更新(即反馈),一旦到达目的地,便发送最终结果消息。

Turtlesim有一个动作服务器,动作客户端可以将目标发送给旋转的乌龟。在本教程中,您对动作进行了自省/turtle1/rotate_absolute,以更好地了解什么是动作以及它们如何工作。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越来越胖了_mengleijin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值