目录
文章目录
参考资料
使用CLion调试ROS节点的正确方式/Clion如何调试ROS/调试ROS的方法
学习SLAM:SLAM进阶(八):如何在Clion下配置ROS项目及Clion常用技巧
Clion官方教程
ROS(机器人操作系统)是一套为机器人应用设计的库和工具。它主要针对 C++和 Python 开发,并使用基于 CMake 的 Python 脚本构建系统。ROS 软件发行版适用于 Linux、Windows,也适用于 macOS 的实验模式。
您可以使用 CLion 作为 ROS 项目的 IDE。本教程描述了如何设置工作流程
,并给出了在 CLion 中创建 ROS 包及其操作
的示例。请注意,此设置过程已在 Ubuntu 上测试过。
以下是一些可用于在 CLion 中进行 ROS 开发的第三方插件:ROS-Robot Operating System
和 Hatchery
。
Launch CLion in the sourced environment
CLion 需要知道ROS特定的环境变量
。这些变量在您从工作空间目录
运行以下命令source
工作空间时,在当前 shell 中检索:
source ./devel/setup.bash
最简单地向 CLion 提供 ROS 环境变量的方法是,从相同的shell启动IDE
。在工作空间被source
后,你可以在同一终端中输入:
sh <PATH_TO_CLION>/bin/clion.sh
Open a ROS project in CLion
在被source
过的环境中启动 CLion 后,执行以下操作之一以打开您的 ROS 项目:
- Click File | Open and select CMakeLists.txt in the src directory of your ROS workspace, then choose Open as Project.
- Click File | New CMake Project from Sources and select the src directory of the workspace to import the project from.
CMake 工具窗口将显示项目加载状态:
Set build paths to the catkin workspace
默认情况下,CLion 将build
放置在自动创建的 cmake-build-debug
或 cmake-build-release
目录中。对于 ROS
开发,这意味着您将在 CLion
和运行 catkin_make
的控制台中有两个不同的build
。
为了在 IDE 和控制台之间有一个单一的build
,您需要将 CLion 的构建路径
设置为 catkin 工作空间的目录
。
为此,请转到文件 | 设置 | 构建、执行、部署 | CMake
并更改两个字段:
- In Build directory, set <WORKSPACE_DIRECTORY>/build.
- In CMake options, add
-DCATKIN_DEVEL_PREFIX:PATH=<WORKSPACE_DIRECTORY>/devel
.
上述设置其实很没必要,按照如下教程来:
-DCMAKE_MODULE_PATH=/opt/ros/noetic/share/catkin/cmake
-DCMAKE_PREFIX_PATH=/opt/ros/noetic -DCATKIN_DEVEL_PREFIX=devel -DCMAKE_INSTALL_PREFIX=bin
# 构建目录设置为build
修改工具链
改成CMAKE的
Work with launch files
您可以在 CLion 中将 ROS节点
作为常规应用程序运行
和调试
。
Launch文件
不能直接执行,但您可以使用 XML 语法高亮
和自动完成
功能编辑它们
,并attach the debugger to a running node.。
Attach the debugger to a running node
1.从命令行运行.launch
文件:
roslaunch roscpp_tutorials talker_listener.launch
可通过 rosnode list
命令检查正在运行的节点列表
。在我们的示例中,列表将包含 talker
和 listener
:
2.从主菜单上选择Run | Attach to Process
或者按 Ctrl+Alt+F5
3.通过其名称或者PID
进程号连接到所需节点:
Example: create a basic ROS node, edit and run it in CLion
在这个例子中,我们将创建一个简单的ROS
软件包,编辑源代码,并从CLion
运行节点。我们将使用Ubuntu 20.04
上的ROS Noetic
和ROS wiki
上提供的“编写简单的发布者和订阅者(C++)”教程中的最基础的发布者节点。
Create a basic ROS package
1.创建并构建一个 ROS 工作空间:
mkdir -p clion_ros_test_ws/src
cd clion_ros_test_ws
catkin_make
2.在工作区中创建一个名为my_package的包:
cd src
catkin_create_pkg my_package roscpp rospy std_msgs
Launch CLion
1.source工作空间:
cd ../../../
source ./devel/setup.bash
2.在相同的终端启动Clion:
sh /opt/clion-2018.2/bin/clion.sh
如果不使用命令行终端打开的话,需要修改Clion的快捷方式:
cd /usr/share/applications
sudo gedit jetbrains-clion.desktop
# 找到Exec选项,修改前:
Exec="/home/xxx/clion/bin/clion.sh" %f
# 修改后
Exec=bash -i -c "/home/xxx/clion/bin/clion.sh" %f
Open the package as a project in CLion
在 CLion 中, 通过File | Open
选择位于包文件夹中的CMakeLists .txt
,然后选择将其作为项目打开。

Add a source file and edit CMakeLists.txt
1.添加一个新的cpp
文件到项目中,命名为my_package.cpp
。
2.复制整个talker.cpp file from the Publisher and Subscriber 到 my_package.cpp
。
3.将新创建的cpp文件添加到CMakeLists.txt
中,并将其链接到catkin
库。
add_executable(my_package src/my_package.cpp)
target_link_libraries(my_package ${catkin_LIBRARIES})
然后重新加载Cmake
项目,并且注意到my_package
在Run/Debug
配置列表中。
Run a ROS node
1.开一个终端运行ros主节点:
roscore
2.在Clion中运行my_package
,运行工具窗口将显示节点输出:
3.在另一个终端中,检查当前活跃的 ROS 主题。如果打印来自主题chatter
的messages
,可以看到类似在Clion中的输出
rostopic list
rostopic echo /chatter