moveit2 servo -movegroup aciton client arm_controller -rviz2

MoveIt2 Servo → MoveGroup → Action Client → arm_controller → RViz2 这条完整链路。

你现在最关心的:/arm_controller/joint_trajectory 到底发给谁?怎么经过 MoveGroup?怎么到 RViz?

我直接画数据流全链路,每一步都对应你能看到的 topic。


一、终极链路(一句话版)

plaintext

复制代码
MoveIt2 Servo
  ↓(发布)
/arm_controller/joint_trajectory
  ↓(MoveGroup 内部转发,不修改)
MoveGroup 构建 Action 指令
  ↓(Action 发送)
/arm_controller/follow_joint_trajectory (Action)
  ↓(Action Client 发送给)
arm_controller (ros2_control)
  ↓(执行电机)
真实机器人 / 仿真机器人
  ↓(回传状态)
/joint_states → /tf → RViz2 显示机器人动起来

二、逐行详细解释(你一定能看懂)

1. MoveIt2 Servo 计算出轨迹

Servo 实时计算末端 / 关节速度,输出:

plaintext

复制代码
/arm_controller/joint_trajectory

这是轨迹点消息,不是 Action。


2. MoveGroup 不是 "接收者",而是 "转发者"

MoveGroup 做的事情只有一件:把 Servo 发的轨迹消息 → 包装成 Action 指令

不重新规划 ,只是转发


3. MoveGroup 发送 Action 给控制器

MoveGroup 会调用:

plaintext

复制代码
/arm_controller/follow_joint_trajectory

这是一个 Action,不是普通 topic。

结构:

  • Action Client:MoveGroup
  • Action Server:arm_controller(ros2_control)

4. arm_controller 真正执行运动

控制器收到 Action 后:

  • 把轨迹转成电机指令
  • 发给电机 / 仿真器
  • 机器人开始运动

5. RViz2 怎么看到机器人动?

机器人运动后:

  1. 驱动 / 仿真器发布 plaintext

    复制代码
    /joint_states
  2. robot_state_publisher 转成 plaintext

    复制代码
    /tf
  3. RViz2 订阅 /tf/robot_description→ 显示机器人模型实时位置


三、你问的三个核心问题,直接给答案

1. /arm_controller/joint_trajectory 发给谁?

发给 MoveGroupMoveGroup 订阅这个 topic,把它转成 Action。

2. 如何经过 MoveGroup?

不规划,只转发 + 包装成 ActionMoveGroup = 快递中转站,不是工厂。

3. 如何发给 Action Client?

MoveGroup 本身就是 Action Client它直接发送 Action 给控制器的 Action Server。

4. 如何到 RViz2?

通过状态回传:

plaintext

复制代码
机器人 → /joint_states → /tf → RViz2

四、最精简记忆版(背下来就懂)

plaintext

复制代码
Servo 发轨迹
  ↓
MoveGroup 转 Action
  ↓
控制器执行
  ↓
状态回传到 RViz

五、你现在的话题里,真正参与运动的只有 5 个

  1. /servo_demo_node/delta_twist_cmds(你给的指令)
  2. /arm_controller/joint_trajectory(Servo 输出)
  3. /arm_controller/follow_joint_trajectory(Action)
  4. /joint_states(状态回传)
  5. /tf(RViz 显示)

相关推荐
地平线开发者7 小时前
Transformer模型部署之性能优化指南
算法
武子康7 小时前
调查研究-192 AI Agent 之间也需要“信任“:把多 Agent 信任变成可测指标
人工智能·openai·agent
地平线开发者7 小时前
人在途中:从“编译失败”到“模型可落地”——CUDA 自定义算子
算法·自动驾驶
Smoothcloud_润云7 小时前
Hermes Agent 的上下文记忆机制:一个开源 Agent 是怎么"记住"你的
人工智能·agent·gpu
早点睡啊7 小时前
精读 LangChain 官方文档(一)总览、安装与快速开始:从 create_agent 跑通第一个智能体
人工智能
牛奶7 小时前
AI时代裁员后:清零是君子豹变
人工智能·程序员
武子康7 小时前
调查研究-191 SenseVoice 不只是 ASR:把语音从“转文字“升级成“理解状态“
人工智能·深度学习·openai
程序员cxuan9 小时前
Codex 会把磁盘给烧了?完整复盘来了!
人工智能·后端·程序员
甲维斯9 小时前
字节版“Codex”初体验,Seed 2.1pro所有人免费用!
人工智能·ai编程·豆包marscode
半个落月10 小时前
从递归到快速排序:用 JavaScript 把分治思想讲明白
javascript·算法·面试