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

MoveIt2 整套控制数据流拓扑图

整体层级划分

plaintext

【上层应用层】 ├─ MoveGroupInterface / RViz 目标规划 └─ 键盘遥操 / 视觉跟随 / 手动微调 【中间调度层】 ├─ /move_group 节点(全局规划) └─ /servo_node 节点(实时伺服) 【底层执行层】 └─ ros2_control 控制器组 └─ joint_trajectory_controller ├─ FollowJointTrajectory Action Server └─ 实时位置/速度指令 Topic

数据流 1:MoveGroup + ActionClient 标准规划流程(离线整段轨迹)

plaintext

应用程序 ↓ MoveGroupInterface ↓ 1. 调用 move_group 规划器做无碰撞路径规划 2. 生成完整 JointTrajectory 轨迹 ↓ move_group 内部内置 **FollowJointTrajectory Action Client** ↓ ===== Action 通信链路 ===== joint_trajectory_controller 内部 Action Server ↓ 解析整条轨迹 → 插值 → 逐点执行 ↓ 机器人硬件驱动 → 关节运动

特点

  • Action 协议,有状态反馈、可暂停 / 取消
  • 先规划再执行,运动平顺、全局避障
  • 低频调用,适合定点抓取、点位搬运

数据流 2:MoveIt2 Servo 实时伺服流程(在线动态控制)

plaintext

键盘遥操节点 / 视觉节点 ↓ 发布话题: /delta_joint_cmds (JointJog 关节速度) /delta_twist_cmds (TwistStamped 末端速度) /servo_node/joint_trajectory (伺服模式轨迹) ↓ /servo_node 节点 1. 实时IK逆解 2. 实时碰撞/奇异点校验 3. 速度平滑、限幅 4. 不经过move_group,**自有下发逻辑** ↓ servo 直接下发高频控制指令(Topic为主) ↓ joint_trajectory_controller 实时接收指令 ↓ 硬件驱动 → 机械臂实时微动/拖动

特点

  • 话题高频通信,无 Action 握手
  • 无全局重规划,只做局部实时修正
  • 100~1000Hz 低延迟,适合手拖、键盘操控、视觉跟随
  • 完全独立,不调用 move_group 的任何 ActionClient

双模式并行关系图

plaintext

应用层指令 ├─ 点位规划 → move_group → 内置ActionClient → 控制器ActionServer └─ 实时微调 → servo_node → 高频Topic指令 → 控制器实时入口 底层控制器(唯一执行端) ┌─────────────┴─────────────┐ ActionServer入口(整段轨迹) 实时Topic入口(速度/微动)

核心区别对照表

表格

项目move_group + ActionClientmoveit2_servo
通信方式Action 服务ROS Topic 高频发布
控制形式整条预规划轨迹实时速度 / 增量 / 短轨迹
延迟高 (规划耗时)极低 (微秒~毫秒级)
是否依赖对方互不依赖,平行运行互不依赖
能否手拖柔顺不行原生支持零重力拖动
适用场景定点作业、批量点位键盘操控、视觉跟随、示教
你当前代码走哪条不走这条完全走 servo 链路

关键结论

  1. move_group自带的FollowJointTrajectory ActionClient只负责规划后整段轨迹执行
  2. moveit2_servo独立实时控制单元,内部没有借用 move_group 的 Action 客户端
  3. 同一套机械臂可同时启两个节点:定点用 move_group,微调拖动用 servo
  4. 你发送JointTrajectory/servo_node/joint_trajectory,属于伺服短轨迹跟随,依旧属于 servo 体系,和 move_group 的 Action 通路无关
http://www.cnnetsun.cn/news/2453008.html

相关文章:

  • 杰理之开启AAC使能,插卡播放AAC音频失败【篇】
  • Efinity RISC-V IDE实战指南:从环境搭建到深度调试
  • 终极炉石传说自动对战脚本:轻松完成日常任务与卡组测试
  • STM32MP1异构多核核心板实战:从Linux到RTOS的工业应用开发指南
  • 国产PN8715H/PN8712H芯片:高可靠工业辅源设计实战解析
  • FontCenter:让AutoCAD字体管理变得智能化的终极解决方案
  • 3PEAK思瑞浦 TP2261-TR SOT23-5 运算放大器
  • 从精度陷阱到正确选择:深入解析浮点数比较与abs/fabs的实战应用
  • 深入理解Tokio Channel:Rust异步编程中的消息传递机制
  • 从Noise2Noise到Neighbor2Neighbor:图解自监督去噪的演进与核心思想
  • 【审计专栏】【管理科学】第八十八篇 企业违法违规情况分析00
  • TMOS红外传感器:从原理到实战,实现精准静态人体存在检测
  • 给无人机装上‘眼睛’:手把手教你用Python+OpenCV实现像素坐标到NED坐标的完整转换
  • ESP32驱动BL0942踩坑实录:SPI时序、数据校验与常见问题排查
  • Linux系统登录用户查看全解析:从w、who到last命令的运维实战
  • linux下载和VMware Workstation搭建环境
  • New API实战指南:企业级AI模型聚合网关架构设计与实施
  • 如何在浏览器中一键转换图片格式:Save Image as Type完整使用指南
  • 对比自行维护多个API与使用Taotoken聚合平台在运维复杂度上的差异
  • 书匠策AI降重降AIGC:我拿这工具“洗“了一遍论文,查重从48%直接干到6%
  • 不止于电量检测:用HI35XX的LSADC玩点新花样(附按键与传感器读取示例)
  • 用LoRA微调LLaMA2时,你的显存和参数到底省在哪了?一个公式讲明白
  • 3步完成图片转3D模型:ImageToSTL让平面照片变立体雕塑
  • SolidWorks 中使用方程式驱动曲线画齿轮的计算软件
  • 如何在OBS Studio中使用VST插件实现专业级音频处理:免费直播音质提升完整指南
  • 多相机融合算法|跨镜轨迹全域跟踪-透明化-无感定位智慧场景解决方案
  • 免费下载中国大学MOOC视频课程:MoocDownloader完整使用指南
  • 5分钟拯救你的B站缓存视频:m4s-converter终极使用教程
  • 深耕 AI 全域布局,探词科技凭硬核实力领跑 GEO 新赛道
  • FlatLaf:Java Swing现代化设计重构的架构级解决方案