解决RTPS_TRANSPORT_SHM Error

解决以下报错

bash 复制代码
[spawn_entity.py-2] 2026-06-13 14:06:23.338 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7419: open_and_lock_file failed -> Function open_port_internal
[spawn_entity.py-2] 2026-06-13 14:06:23.338 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7423: open_and_lock_file failed -> Function open_port_internal
[spawn_entity.py-2] 2026-06-13 14:06:23.338 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7425: open_and_lock_file failed -> Function open_port_internal
[spawn_entity.py-2] 2026-06-13 14:06:23.338 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7427: open_and_lock_file failed -> Function open_port_internal
[spawn_entity.py-2] 2026-06-13 14:06:23.339 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7431: open_and_lock_file failed -> Function open_port_internal

这是 ROS 2 FastDDS(FastRTPS)共享内存(SHM)端口冲突/残留 的典型报错,不是 Gazebo 本身的错,是 ROS 2 底层通信层的问题。

一、报错含义

复制代码
Failed init_port fastrtps_port7419: open_and_lock_file failed
  • FastDDS 想用 共享内存文件 /dev/shm/fastrtps_portXXXX 做进程间通信。
  • 但这个文件已经存在、被锁、或权限不够,导致新节点抢不到,直接报错。
  • 常见于:之前没正常退出、多次启动/关闭、Gazebo+ROS2 反复启停。

二、最快解决(直接复制执行)

1)杀干净所有残留 ROS2/Gazebo 进程
bash 复制代码
pkill -9 gazebo gzserver gzclient ros2 rclcpp
pkill -9 fastrtps
2)删除所有残留共享内存文件(关键)
bash 复制代码
rm -f /dev/shm/*fastrtps*

三、根本原因(简单说)

  1. 残留文件没清:上次关仿真时没正常退出,/dev/shm 里留下 fastrtps_port 文件,新进程打不开。
  2. 权限不够:当前用户对 /dev/shm 没有读写权限。
  3. Domain ID 冲突:同一机器多个 ROS2 实例用同一个 ID(默认0),互相抢端口。
  4. FastDDS 版本 bug:特定版本(如 Humble 默认)SHM 稳定性差。

相关推荐
兜里只有三分钱~3 小时前
从 URDF 到 SDK:开发者视角拆解启元 T1/Q1 机器人架构
机器人·sdk·仿真·ros2·urdf
特立独行的猫a4 天前
ROS 2 主流DDS中间件入门:Cyclone DDS 与 Fast DDS 完全指南
中间件·ros2·dds·fast dds·cyclone dds
轻口味7 天前
启元无真机二开实战1:54 个接口能做什么、不能做什么——启元 Q1/T1 SDK 能力全景与版本矩阵
线性代数·矩阵·ros2·具身智能·启元机器人
热金鼠10 天前
2.ROS2 核心机制与命令行实操
ros2
大雨歌15 天前
笛卡尔坐标 → 自然坐标(Frenet) 逐步推导全解 -2
ros2
米糕闯编程19 天前
鱼香ros2(十七)C++小海龟巡逻
开发语言·c++·机器人·ros2·服务·小海龟
风合星语20 天前
2026 机器人工程实例(七):Nav2 到站了,任务却没完成——AMR 载货导航中的托盘滑移与验收闭环
人工智能·机器人·ros2·机器人仿真·nav2·mujoco·amr
米糕闯编程1 个月前
鱼香ros2(十二)C++话题订阅与发布
开发语言·c++·ros2·话题
朝朝辞暮i1 个月前
C++ 第 36 课:Action——机械臂/VLA 非常重要
开发语言·c++·算法·ros2
朝朝辞暮i1 个月前
C++ 第 39 章: 阶段性总复习——类、对象、构造、继承、this、指针与智能指针
开发语言·c++·算法·ros2