CLion 2025.2 Help

ROS 设置教程

ROS (机器人操作系统)是一组为机器人应用设计的库和工具。 它主要面向 C++ 和 Python 开发,并使用基于 CMake 和 Python 脚本的 catkin 构建系统。 ROS 软件 发行版可用于 Linux、Windows,并在 macOS 上以实验模式提供。

您可以将 CLion 用作 ROS 项目的集成开发环境(IDE)。 本教程描述了如何设置工作流程,并提供了一个在 CLion 中创建和使用 ROS 包的示例。 请注意,此设置过程已在 Ubuntu 上测试。

在已 source 的环境中启动 CLion

CLion 需要了解 ROS 特定的环境变量。 当您通过运行以下命令从工作空间目录 source 工作空间时,这些变量会在当前 shell 中被检索。

source ./devel/setup.bash

为 CLion 提供 ROS 环境变量的最简单方法是 从同一个 shell 启动 IDE。 在加载工作空间后,您可以在同一个终端中输入:

sh <PATH_TO_CLION>/bin/clion.sh

在 CLion 中打开一个 ROS 项目

在已 source 的环境中启动 CLion 后,执行以下操作之一以打开您的 ROS 项目:

  • 点击 文件 | 打开 ,并在 ROS 工作空间的 源代码 目录中选择 CMakeLists.txt ,然后选择 作为项目打开

  • 点击 文件 | 从源代码新建 CMake 项目 并选择工作空间的 源代码 目录以导入项目。

CMake 工具窗口 将显示项目加载的状态:

成功加载 CMake 项目

将构建路径设置为 catkin 工作空间

默认情况下,CLion 将构建输出放置在 cmake-构建-debug cmake-构建-release 目录中,这些目录会自动创建。 对于 ROS 开发,这意味着您将在 CLion 和运行 catkin_make 的控制台中有两个不同的构建。

要拥有一个 在 IDE 和控制台之间进行单次构建 ,您需要将 CLion 构建路径设置为 catkin 工作空间目录。 为此,请转到 文件 | 设置 Ctrl+Alt+S | 构建、执行、部署 | CMake 并更改两个字段:

  • 构建目录 中,设置 <WORKSPACE_DIRECTORY>/构建

  • CMake 选项 中,添加 -DCATKIN_DEVEL_PREFIX:PATH=<WORKSPACE_DIRECTORY>/devel

使用 launch 文件

您可以在 CLion 中像常规应用程序一样 运行调试 ROS 节点。

Launch 文件无法直接执行,但您可以使用 XML 语法高亮和补全功能编辑它们,并将 调试器附加到正在运行的节点。

将调试器附加到正在运行的节点

  1. 从命令行运行您的 .启动 文件。 例如

    roslaunch roscpp_tutorials talker_listener.launch

    您可以通过 rosnode list 命令检查当前正在运行的节点列表。 在我们的示例中,列表将包含 talkerlistener

    ros 节点列表
  2. 从主菜单调用 运行 | 附加到进程 或按 Ctrl+Alt+F5

  3. 通过其 PID 或名称连接到所需节点:

    附加到 ros 节点

示例:创建一个基本的 ROS 节点,在 CLion 中编辑并运行

在本示例中,我们将创建一个简单的 ROS 包,编辑源代码,并从 CLion 运行该节点。 我们将使用 Ubuntu 18.04 上的 ROS Melodic 和 publisher节点,该节点来自 编写一个简单的发布者和订阅者(C++)教程,可在 ROS wiki上找到。

创建一个基本的 ROS 包

  1. 创建并构建一个 ROS 工作空间:

    mkdir -p ros_workspace/src cd ros_workspace catkin_make
  2. 在工作空间中创建一个名为 my_package 的包:

    cd src catkin_create_pkg my_package roscpp rospy std_msgs

启动 CLion

  1. 加载工作空间:

    cd ../../../ source ./devel/setup.bash
  2. 并在同一终端中启动 CLion:

    sh /opt/clion-2018.2/bin/clion.sh

将包作为项目在 CLion 中打开

  • 在 CLion 中,转到主菜单中的 文件 | 打开 ,选择位于包文件夹内的 CMakeLists .txt 文件,并选择将其作为项目打开:

    打开 ros 项目

添加源文件并编辑 CMakeLists.txt

  1. 向项目添加一个新的源文件:右键点击项目树中的 源代码 ,选择 新建 | C/C++ 源文件 ,并将其命名为 my_package.cpp

  2. 将整个 talker.cpp文件从 发布者和订阅者教程复制到 my_package.cpp

  3. 将新创建的源文件添加到 CMakeLists.txt ,并 链接catkin 库:

    add_executable(my_package src/my_package.cpp) target_link_libraries(my_package ${catkin_LIBRARIES})

    之后, 重新加载 CMake 项目,并在运行/调试配置列表中注意到 my_package

    将源文件添加到 CMakeLists 并重新加载

运行一个 ROS 节点

  1. 在从 CLion 运行节点之前,在新终端中打开 ROS master:

    roscore
  2. 在 CLion 中,运行 my_package 配置。 运行工具窗口 将显示节点输出:

    运行节点的输出
  3. 在单独的终端中,检查当前活动的 ROS 主题。

    如果我们打印来自 chatter 的消息,输出将类似于我们在 CLion 中看到的内容:

    ros chatter 节点正在运行

    现在,如果我们在 CLion 中停止应用程序, rostopic echo /chatter 命令将没有输出。

最后修改日期: 2025年 9月 26日