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

容器之间ros2可发现topic没有数据

Date:2026.05.31
Author:aimage

一、简介

应用docker-compose进行不同容器的管理,容器间用ros2进行通讯,发现只能发现topic,但是没有数据。

docker-compose.yaml为:

services: get_rtsp: image: ${IMAGE} container_name: get_rtsp restart: on-failure privileged: true network_mode: "host" working_dir: /home/aimage/Workspace/dev/get_rtsp_ws environment: - DISPLAY=:0 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /home/aimage/Workspace/dev/get_rtsp_ws:/home/aimage/Workspace/dev/get_rtsp_ws command: ./run.sh logging: driver: "local" options: max-size: "10m" max-file: "10" push_stream: image: ${IMAGE} container_name: push_stream restart: on-failure privileged: true network_mode: "host" working_dir: /home/aimage/Workspace/dev/push_stream_ws environment: - DISPLAY=:0 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /home/aimage/Workspace/dev/push_stream_ws:/home/siasun/Workspace/dev/push_stream_ws command: ./run.sh logging: driver: "local" options: max-size: "10m" max-file: "10"

二、原因

1)ROS2 Humble 默认 FastDDS 开启共享内存传输;
2)同一台机器、同一 ROS_DOMAIN_ID 的进程,优先走 本地共享内存 收发消息,不走网络套接字;
3)所有容器都是 network_mode: host,共享宿主机内存空间,但容器 PID 命名空间隔离;
因此:
DDS 发现机制(基于 UDP 广播)正常, ros2 topic list 能看到话题
共享内存句柄 / PID 对端不可见, 消息无法通过SHM 投递,回调不触发

三、解决

所有容器共享宿主机的 /dev/shm、System V 共享内存、信号量。

在docker-compose.yaml中增加选项
ipc: host

问题完美解决。

学习记录系列文章,难免有纰漏,欢迎您的宝贵意见!!!

四、参考

[1] https://blog.csdn.net/qq_36176663/article/details/159388384

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

相关文章:

  • 3分钟完成GTNH中文汉化:新手完整安装指南
  • 小学期第三周
  • 第一篇:uniapp+Django 互动功能全流程(登录缓存→点赞 / 收藏 / 评论列表显示)
  • HTML5 新特性概览:探索现代 Web 的强大能力
  • 从手动混乱到智能有序:Irony Mod Manager如何让Paradox游戏模组管理效率提升3倍?
  • 给你的 Agent 上一场“砍价考试“:用 Cattle Trade 思路搭一个最小博弈测评
  • VoxCPM 语音模型新手部署与调用全指南
  • Django+Vue智慧农业管理系统源码+论文
  • QGIS新手避坑指南:从高德路网数据到空间分析的全流程实操
  • 云成本治理框架:优化云计算成本
  • 别再当‘黑盒’模型受害者了!用Python的shap库5分钟看懂你的XGBoost模型决策
  • AI自进化的可能与形态:一种结构工程的推演
  • 2026年国产质量流量计TOP5排行 核心参数实测对比 - 优质品牌商家
  • 避坑指南:高通SA8255P平台Nor Flash烧录全流程与‘先擦后写’的血泪教训
  • Masa Mods中文汉化包:为你的Minecraft 1.21模组体验注入母语力量!
  • 剧本逻辑断层?角色扁平?对话生硬?,Gemini剧本辅助系统5大诊断模块+实时修复建议全披露
  • 2026年苏州本地防水补漏行业三家合规经营服务机构信息梳理分析 专业防水公司排名推荐(2026年5月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026年5月地热网片选购指南:实体厂家综合实力与选型要点解析 - 2026年企业资讯
  • C51代码银行空间保留技术详解与实践
  • spice模型导入simulink时遇到标识符 n70ru未在 ‘definitions‘ 部分中定义
  • 结构化编程:AI工业化编程的探索
  • 2026年当下,河北铁艺护栏实力厂家如何实现高性价比? - 2026年企业资讯
  • 【Gemini印度语言工程白皮书】:从Devanagari脚本识别到低资源方言微调的5层技术栈
  • 2026年高评价硅酮胶实测评测:广东胶粘剂oem厂家/广东食品级硅酮胶/广东高温硅酮胶/性能与场景适配对比 - 优质品牌商家
  • 2026年推荐网站设计实力公司,哪家性价比高? - myqiye
  • 2026年q2四川聚氨酯地坪专业厂家技术能力解析:四川地坪翻新/四川室外地坪/四川无溶剂聚氨酯/优选指南 - 优质品牌商家
  • 从生物学视角解析智能本质:AI与人类认知的鸿沟
  • 2026年5月新消息:寻找行业内比较好的铠装通信电缆品牌,这几家值得关注 - 2026年企业资讯
  • 【路径规划】基于人工势场法实现多机器人系统的群集编队控制附matlab代码
  • 【统计法规】3.6服务人民原则 ★ ★ ★