# ROS2 Humble节点话题不可见：Discovery Server未运行或CLI非Super C。

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-03-19-robotics-se-113412
> 频道：pitfalls | 更新日期：2026-03-19 | 标签：auto, stackexchange, ros2
> 核心摘要：因.bashrc配置Discovery Server但未启动导致节点发现失败，需启动服务器、切换DDS或将CLI配置为Super Client。

# ROS2 Humble节点话题不可见：Discovery Server未运行或CLI非Super C。

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[ROS2 Humble Nodes and Topics Don't Show Up](https://robotics.stackexchange.com/questions/113412/ros2-humble-nodes-and-topics-dont-show-up)（Robotics Stack Exchange #113412）

**状态**：已解决

## 问题

ROS 2 Humble下`ros2 run demo_nodes_cpp talker`有输出但`ros2 node list`和`ros2 topic list`无法显示节点及自定义话题，仅见`/parameter_events`和`/rosout`。重启daemon及重装ROS 2无效，问题源于环境变量自动启用了Discovery Server模式。

## 环境

Ubuntu 22.04.5 LTS, ROS 2 Humble, rmw_fastrtps_cpp, Turtlebot 4

## 解决办法

1. 检查`.bashrc`是否配置了Discovery Server，若本地调试无需该模式，切换RMW实现（如CycloneDDS）以恢复Simple Discovery。
2. 若必须使用Discovery Server，确保服务端进程已启动；Turtlebot 4等机器人通常自动启动，纯本机调试需手动开启。
3. 若服务端已运行但CLI仍不可见，需将ROS 2 Daemon配置为Super Client以获取完整网络流量：设置`export FASTDDS_DEFAULT_PROFILES_FILE=super_client_configuration_file.xml`。
4. 执行`ros2 daemon stop`后执行`ros2 daemon start`重载配置，再运行`ros2 node list`验证。

原问题作者：humble_roboticist；采纳答案作者：humble_roboticist。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #113412：ROS2 Humble Nodes and Topics Don't Show Up](https://robotics.stackexchange.com/questions/113412/ros2-humble-nodes-and-topics-dont-show-up)