You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下如何用CLion调试ROS2发布话题命令?

在Windows 10的CLion中调试ros2 topic pub及naoqi_driver2底层逻辑

一、调试naoqi_driver2的/speech话题处理逻辑

你已经部署好naoqi_driver2,先从驱动端的C++代码入手:

  1. 导入项目到CLion
    打开CLion,选择File > Open选中naoqi_driver2的本地源码目录。在File > Settings > Build, Execution, Deployment > CMake的Environment里添加ROS2环境变量:

    • CMAKE_PREFIX_PATH:指向你的ROS2安装根目录(比如C:\dev\ros2_humble)
    • PATH:追加C:\dev\ros2_humble\bin
      等待CMake构建完成,解决依赖报错。
  2. 设置断点
    在naoqi_driver2的源码里找到订阅/speech话题的C++文件(通常在src目录下,比如命名类似speech_subscriber.cpp的文件),在处理std_msgs::String消息的回调函数处设置断点。

  3. 启动驱动节点调试
    在CLion的运行配置中添加ROS Node配置:指定节点可执行文件为naoqi_driver2对应的节点(比如naoqi_speech_node.exe),选择你的ROS2环境。点击Debug按钮启动节点,此时节点会等待接收话题消息。

二、调试ros2 topic pub的底层C++逻辑

ros2 topic pub上层是Python实现,但底层依赖rclcpp的C++发布接口,调试这部分需要:

  1. 导入rclcpp源码
    克隆与你本地ROS2版本匹配的rclcpp仓库(切换到对应分支,比如Humble分支),导入CLion后同样配置ROS2环境变量确保CMake构建成功。

  2. 定位核心发布代码
    rclcpp的消息发布核心逻辑在rclcpp/src/rclcpp/publisher.cpp的publish方法,以及rclcpp/src/rclcpp/node.cpp中的相关调用处,在这些位置设置断点。

  3. 触发调试
    在CLion中启动rclcpp的调试会话,选择附加进程模式。打开Windows终端运行ros2 topic pub --once /speech std_msgs/String "data: hello",CLion会触发断点,此时可以逐步跟踪底层发布逻辑。

三、完整流程调试(可选)

如果想跟踪消息从发布到驱动接收的全流程:

  • 先启动naoqi_driver2节点的调试会话
  • 再启动rclcpp的调试会话并附加到ros2 topic pub关联的进程
  • 运行ros2 topic pub命令,即可逐步查看每一步的代码执行逻辑

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 05:13:16