当前位置: 首页 > wzjs >正文

南安市住房和城乡建设部网站全国知名网站排名

南安市住房和城乡建设部网站,全国知名网站排名,濮阳做网站设计,微商加人的24种方法ROS2动作通信详解 1️⃣ 核心概念 动作(Action)是ROS2中用于长时间运行任务的通信机制,包含三个核心部分: Goal:客户端发送的任务目标(如"移动到坐标(5,3)")Feedback:执…

ROS2动作通信详解

1️⃣ 核心概念

动作(Action)是ROS2中用于长时间运行任务的通信机制,包含三个核心部分:

  • Goal:客户端发送的任务目标(如"移动到坐标(5,3)")
  • Feedback:执行过程中的进度反馈(如"当前已移动3米")
  • Result:任务完成后的最终结果(如"成功到达目标")

2️⃣ 与服务/话题的区别

特性服务(Service)话题(Topic)动作(Action)
通信模式同步请求-响应异步发布-订阅异步目标-反馈-结果
适用场景快速完成的简单操作持续数据流长时间运行、需要进度反馈的任务
典型应用开关传感器传感器数据流导航任务、机械臂控制
是否支持取消✔️

3️⃣ 动作文件定义

创建.action文件定义通信结构(示例:MoveRobot.action):

# Goal定义
geometry_msgs/Point target
---
# Result定义
bool success
string message
---
# Feedback定义
float32 progress
string status

4️⃣ 通信流程

在这里插入图片描述

5️⃣ 服务端代码示例

import rclpy
from action_msgs.msg import GoalStatus
from rclpy.action import ActionServerclass MoveRobotServer(Node):def __init__(self):super().__init__('move_robot_server')self._action_server = ActionServer(self,MoveRobot,'move_robot',self.execute_callback)async def execute_callback(self, goal_handle):# 执行任务while not done:# 发送反馈feedback_msg = MoveRobot.Feedback()feedback_msg.progress = current_progressgoal_handle.publish_feedback(feedback_msg)# 返回结果goal_handle.succeed()result = MoveRobot.Result()result.success = Truereturn result

6️⃣ 客户端代码示例

from rclpy.action import ActionClientclass MoveRobotClient(Node):def __init__(self):super().__init__('move_robot_client')self._action_client = ActionClient(self, MoveRobot, 'move_robot')def send_goal(self, target):goal_msg = MoveRobot.Goal()goal_msg.target = targetself._action_client.wait_for_server()self._send_goal_future = self._action_client.send_goal_async(goal_msg,feedback_callback=self.feedback_callback)self._send_goal_future.add_done_callback(self.goal_response_callback)def feedback_callback(self, feedback_msg):print(f'当前进度: {feedback_msg.progress}%')def goal_response_callback(self, future):goal_handle = future.result()if not goal_handle.accepted:returnself._get_result_future = goal_handle.get_result_async()self._get_result_future.add_done_callback(self.get_result_callback)def get_result_callback(self, future):result = future.result().resultprint(f'任务完成! 结果: {result.message}')

7️⃣ 常用命令行工具

# 查看可用动作列表
ros2 action list# 查看动作类型
ros2 action info /move_robot# 手动发送目标
ros2 action send_goal /move_robot MoveRobot "{target: {x: 5.0, y: 3.0}}"

8️⃣ 适用场景建议

✅ 使用动作的时机:

  • 需要超过1秒的长时间任务
  • 需要持续进度反馈
  • 需要支持任务取消
  • 需要处理可能的执行失败

❌ 不使用动作的情况:

  • 瞬时完成的简单请求(改用服务)
  • 单向数据流(改用话题)
  • 需要实时性极高的通信(考虑自定义消息类型)

生命中真正重要的不是你遭遇了什么,而是你记住了哪些事,又是如何铭记的。 —加西亚·马尔克斯-\

http://www.dtcms.com/wzjs/186440.html

相关文章:

  • 兰州做网站服务营销的概念
  • 海南省建设网站的公司电话58网络推广
  • 织梦五彩婚纱源码网_婚庆策划网站php源码星巴克seo网络推广
  • pc蛋蛋网站怎么做搜索关键词怎么让排名靠前
  • wordpress字体哪个好看搜索引擎优化seo专员招聘
  • 中国一级爱做电影网站百度电脑版官网下载
  • 网站快速优化排名网站首页关键词如何优化
  • 下载软件的网站推荐亚马逊关键词优化软件
  • 动态网站的例子百度指数的网址
  • 淮安做网站的公司有哪些公司自媒体平台注册下载
  • ie浏览器网页版南宁网站优化公司电话
  • 网站地图1 500 怎么做优化防疫措施+科学精准防控
  • 临淄网站制作外包公司值得去吗
  • 广西圣泰建设工程有限公司网站适合网络营销的产品
  • 怎么查房产信息查询seo关键词优化外包
  • 石家庄谷歌推广关键词优化排名用什么软件比较好
  • 珠海企业集团网站建设下载百度地图2022最新版官方
  • 南昌企业网站设计建设制作商旅100网页版
  • 研究生计划书模板什么是白帽seo
  • 河南省住房和建设厅网站首页网络营销方案ppt
  • 镇江做网站多少钱微信管理软件哪个最好
  • 广州市疫情防控最新通知徐州seo推广优化
  • 织梦模板网站好优化吗有没有可以代理推广的平台
  • 口碑好的广州做网站域名是什么意思
  • 找人做菠菜网站需要多少钱指定关键词排名优化
  • 自己的网站可以做淘客吗北京seo代理计费
  • 公司网站公众号维护怎么做外贸企业网站设计公司
  • 多城市网站如何做seo海南百度推广公司有哪些
  • wordpress 网店插件上海搜索引擎优化公司
  • 59网站一起做网店普宁seo如何优化关键词上首页