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

软件集成ROS2(支持离线示教机械臂)逻辑记录

一、整体架构总览
三层结构:Qt 前端(交互层) → rosbridge(通信中转) → ROS2 后台(运算控制层)(我用的是windows的wsl2)
全程数据流:拖拽生成目标位姿 → 网络转发 → 逆运动学 + 路径规划 + 避障 → 结果回传前端展示
二、各模块详细职责

  1. Qt 前端(运行在 Windows,用户操作界面)
    核心工作:人机交互加载 3D 仿真场景、机械臂模型,支持鼠标拖拽机械臂末端做离线示教。生成并发送指令数据,拖拽后实时算出末端空间位姿(坐标 + 姿态),封装为 PoseStamped 消息,通过 WebSocket 发给 rosbridge,对应话题:/bp/teach_target_pose。
    接收后端数据 + 界面展示:接收 /bp/preview_joint_states:解析 6 轴关节角度,界面展示IK 解算结果、实时驱动 3D 机械臂模型姿态变化;
    接收 /bp/planned_trajectory:解析运动轨迹,界面标记规划路径、统计轨迹接收次数;区分系统原生关节状态和 IK 预览数据,做状态提示。
    简单概括:只做 “操作 + 发请求 + 显结果”,不做任何复杂计算。
  2. rosbridge(通信中间层,跑在 ROS2 服务器 192.16.10.238)
    核心工作
    Windows Qt 无法直接使用 ROS2 原生 DDS 通信,它是协议 & 数据格式转换器:
    一侧对接 Qt:使用 WebSocket 协议(端口 9090),接收 Qt 传来的 JSON 格式数据;
    格式转换:把 JSON 转为 ROS2 标准消息,通过 ROS2 DDS 发布对应话题;
    反向转发:把 ROS2 后端输出的话题数据,转回 JSON,通过 WebSocket 回传给 Qt。
    简单概括,纯 “传话翻译”,不参与计算、不处理业务逻辑。
  3. ROS2 后台(核心运算层,跑在 Ubuntu 22.04 + ROS2 Humble)由自定义业务节点 + MoveIt2 组合而成,整条链路的计算核心:订阅话题:监听/bp/teach_target_pose,拿到前端发来的机械臂末端目标位姿。逆运动学 IK 解算:根据末端位姿,反推机械臂每个关节的角度。碰撞检测 + 路径规划 + 避障,结合场景里的设备外壳、摇臂、转台等障碍物,用 MoveIt2 算法算出整条安全运动轨迹。发布结果话题,发布 /bp/preview_jo:int_states:IK 算出的关节角度,供前端预览姿态;发布 /bp/planned_trajectory:完整运动轨迹数据,供前端展示路径。简单概括:接收请求、做 IK 解算、避障、路径规划,把计算结果发回前端。

三、正常完整数据流(闭环)
用户拖拽 Qt 里的机械臂末端 → 前端生成目标位姿 → 发 /bp/teach_target_pose
rosbridge 转协议 + 格式 → ROS2 后台收到位姿数据,后台执行:IK 解算 → 碰撞 / 避障检测 → 路径规划后台主动发布两个结果话题:
/bp/preview_joint_states(关节角)
/bp/planned_trajectory(运动轨迹)
rosbridge 再次转译数据 → 回传给 Qt 前端,前端解析数据,更新 3D 模型、界面状态、计数,流程走完。

http://www.jsqmd.com/news/1105732/

相关文章:

  • YOLOv10模型改进-注意力机制-第33篇:YOLOv10改进策略【注意力机制】| EfficientAttention高效注意力
  • 2026上海APP开发公司实力榜:哪家好?深度评测与项目避坑
  • IDEA AI Assistant 真实性能压测报告:代码补全准确率92.7%、上下文理解延迟≤380ms,但93%开发者忽略了这3个关键配置
  • 化工易燃易爆区域普通测风设备有隐患?防爆风速风向仪防爆结构安全可靠
  • 如何3分钟掌握全网小说离线阅读:novel-downloader终极指南
  • 好吧,既然是概述,那么就先说点什么,光一个表格个人感觉表现力太有限了。如果对笔者的自报家门没啥兴趣的话,可以直接跳到下一节。
  • 3分钟将智能手机变成专业直播摄像头:DroidCam OBS插件全攻略
  • 基于Si4731与PIC18F86J10的DIY数字收音系统开发指南
  • 暗黑3解放双手:5分钟打造专属技能连点器的终极指南
  • Python自动化测试实战:图像识别与控件操作混合方案解析
  • 大语言模型为何是随机鹦鹉?从原理到工程实践的深度解析
  • SeamlessM4T:端到端多语言语音翻译基础模型解析
  • 终极指南:如何用Deep3D在5分钟内将普通视频变成立体3D电影
  • 从抓包到算法逆向:实战解析复杂系统API接口安全与数据流转
  • 从源码角度解析C++20新特性如何简化线程超时取消
  • 调查研究-207 Claude Sonnet 5 发布:Agent 能力下放后,模型路由要从“强弱分层“改成“执行分层“
  • WorkshopDL:跨平台游戏模组获取的终极解决方案
  • 铜钟音乐:零广告干扰的现代Web音乐播放器技术实现全解析
  • 调查研究-208 OpenAI GPT-5.6 Sol / Terra / Luna 解读:AI 模型竞争正在从“更聪明“转向“能长期干活“
  • 5分钟快速上手:中国车牌生成器终极指南 - 免费开源车牌图像生成工具
  • IntelliJ IDEA AI插件性能压测实录:单次请求响应延迟<187ms、上下文窗口突破16K tokens、IDE无卡顿加载——仅3款通过 JetBrains 官方TCK认证(第2名意外落榜)
  • ComfyUI-WanVideoWrapper终极指南:零基础到实战的AI视频生成完整方案
  • 自研ChaCha20-Poly1305加密模块:移除时间戳匹配,性能提升30%+
  • 基于STM32F745VG与TPAFE0808的多通道信号采集系统设计
  • SQL查询结果导出总报错、乱码、截断?,深度解析IDEA 2023.3+版本导出引擎底层机制
  • Redis Bitmap 实现北极星日淘用户签到与活跃度统计(极致省内存)
  • STM32与A5000加密芯片实现安全物联网连接实战
  • B站视频转文字终极指南:5分钟快速获取视频文本内容
  • Typora LaTeX主题:3种应用场景深度解析与学术写作效率革命
  • 免费音乐解锁工具Unlock-Music:3步完成加密音乐格式转换