在使用ROS时如何设置C ++ IDE CLion以正确显示文档和自动完成?

#1 楼


使用源ROS工作区从命令行启动CLion(例如,调用source devel/setup.bash之后)。
打开项目的CMakeLists.txt,并告诉它以项目而不是文件的形式打开它。
就是这样,您已经集成了工作区:)

调试:


调试构建文件(通过rosrun运行的节点)很容易,您只是通常在IDE中运行它们。调试启动文件更加复杂,因为IDE无法启动它们。您可以从命令行启动启动文件,然后找到要调试的节点的PID,然后将IDE调试器连接到该文件(“运行->附加到本地进程”)。当然,这很难用于捕获初始化错误。
不可能调试壳脚本或不受支持的语言的脚本。 :


在“ Build,...-> CMake-> Generation Path”中将CMake生成路径设置为工作区的生成目录,以便您只能在IDE和在控制台中有可用的结果(否则,您将有两个不同的版本,一个在IDE中,一个在控制台中)。不幸的是,直到https://youtrack.jetbrains.com/issue/CPP-1887被修复之前,您都不能在默认生成路径中使用任何变量,因此设置柔kin花序布局需要一些手动工作。
要自动获取源代码ROS在启动CLion时,可以将源添加到~/.xsessionrc。但是,这可能会带来意想不到的后果。如果您不想这样做,请使用以下方法。
创建一个桌面启动器,以正确的环境(如果您在.bashrc中获取ROS)从系统菜单(仪表板,启动器面板等)启动CLion。 :我编辑了桌面文件~/.local/share/applications/jetbrains-clion.desktop,如下所示。您还必须确保更新程序脚本/ Jetbrains工具箱中的文件不可写,否则每次更新它们都会覆盖该文件。



[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/home/peci1/bin/jetbrains/apps/CLion/.icon.svg
Exec=bash -i -c "/path/to/clion/bin/clion.sh" %f
Comment=A smart cross-platform IDE for C and C++
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion




如果您使用Jetbrains工具箱安装CLion(您应该在IMO中安装),则二进制文件的路径会随着每个更新(直到https://youtrack.jetbrains.com/issue/ALL-653得以解决),但是您可以使用此技巧始终启动最新安装的版本:

Exec=bash -i -c "$(ls -td /path/to/jetbrains/apps/CLion/ch-0/*/ | head -n1)/bin/clion.sh" %f

安装Python支持插件,以便能够通过单个IDE在C ++和Python中进行编码。


评论


$ \ begingroup $
另外,在Jetbrains Toolbox自动启动的情况下,可以将桌面文件更改为使用bash启动工具箱,因此在通过Jetbrains Toolbox应用程序打开项目或CLion时,还将设置环境。
$ \ endgroup $
– Stefan Fabian
17年12月15日在18:39

$ \ begingroup $
@StefanFabian好主意。您能否将路径发布到启动时启动的工具箱的桌面文件中?我什至都不知道桌面文件可以在启动时启动:)
$ \ endgroup $
–马丁·佩卡(Martin Pecka)
17年12月17日在20:24

$ \ begingroup $
当然!桌面文件(如果在工具箱设置中启用了自动启动)应位于〜/ .config / autostart / jetbrains-toolbox.desktop。您只需将Exec = {TOOLBOX-COMMAND}行更改为Exec = / bin / bash -i -c“ {TOOLBOX-COMMAND}”。但是,我认为工具箱应用程序会覆盖此更改(也许每次启动时)。因此,我建议使用sudo chattr + i jetbrains-toolbox.desktop使该文件不可变。
$ \ endgroup $
– Stefan Fabian
17 Dec 17 '20:53



#2 楼

实际上,将CLion与ROS集成起来非常简单,并且可以在不知道如何操作的情况下立即使用:


使用控制台,进入ROS工作区并获取相应的setup.bash文件。
转到工作区的src目录。
从控制台中从src目录启动CLion。
如果CLion抱怨Import Project from Sources已经存在,只需单击src

CLion将构建符号几分钟,那么您就可以开始了。
/>
如果仍然无法正常工作,请确保从工作区中删除所有CMakeList.txt文件,这些文件可能是在先前尝试将CLion与ROS结合使用时创建的。

评论


$ \ begingroup $
您能提供如何运行带有启动文件的程序以及如何通过clion进行调试的支持吗?
$ \ endgroup $
–埃里克
17年7月19日在17:58

$ \ begingroup $
我实际上是在使用CLion编写代码。其余的我使用ROS命令行工具。我不知道您是否可以在这方面将CLion配置为与ROS一起使用。
$ \ endgroup $
–贾诺(Jarno)
17年7月24日在20:18

#3 楼

新的和最简单的方法:



在CLion上安装ROS-Robot Operating System插件:


您必须打开“设置”(从“文件”菜单中);然后从左侧面板中选择插件,以便在右侧显示插件面板,然后选择市场标签。然后搜索ROS-Robot操作系统插件并进行安装。



通过文件菜单中已安装的插件导入ros_workspace:


为了导入现有工作空间,必须使用菜单导入ROS工作空间,选择工作空间文件夹。在这种情况下,该插件将从已配置的ROS版本中进行搜索,并且它将设置项目以解决ROS依赖性。





参考

#4 楼

使用ROS设置CLion

是对ROS Answers的很好描述。

https://answers.ros.org/question/284786/setup-clion-with-ros/

评论


$ \ begingroup $
欢迎使用Robotics Max。感谢您的回答,但我们希望答案尽可能独立存在。链接容易腐烂,因此,如果链接的内容消失了,依赖链接的答案将变得无用。如果您从链接中添加更多上下文,那么人们很可能会发现您的答案很有用。
$ \ endgroup $
– Mark Booth♦
18年11月15日在18:22

#5 楼

您还可以直接在CLION中运行roslaunch文件,如下所述:错误:
roslaunch:错误:无此类选项:--master-logger-level

显然,该插件通过以下方式启动启动文件:

/opt/ros/kinetic/bin/roslaunch --master-logger-level=info FOLDERNAME/FILENAME


但是我自己没有指定此参数。有谁知道为什么要引入它?