如何设置CLion for ROS?


13

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

Answers:


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

调试:

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

您还可以执行几个其他步骤来加深集成:

  • 将“构建,...-> CMake->生成路径”中的CMake生成路径设置为工作区的生成目录,以便您只能在IDE中编译一次并在控制台中提供结果(否则,您将拥有两种不同的版本,一种在IDE中,一种在控制台中)。不幸的是,直到https://youtrack.jetbrains.com/issue/CPP-1887被修复,您才能在默认的生成路径中使用任何变量,因此设置柔cat布景需要一些手动工作。
  • 要在启动CLion时自动提供ROS,可以将源添加到~/.xsessionrc。但是,这可能会产生意外的后果。如果您不想这样做,请使用以下方法。
  • 创建一个桌面启动器,使用正确的环境(如果在中获取ROS)从系统菜单(仪表板,启动器面板等)启动CLion .bashrc:我编辑了桌面文件~/.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进行编码。


1
或者,在自动启动Jetbrains Toolbox的情况下,可以将桌面文件更改为使用bash启动工具箱,因此,通过Jetbrains Toolbox应用程序打开项目或CLion时,还将设置环境。
Stefan Fabian

@StefanFabian好主意。您能否将路径发布到启动时启动的工具箱的桌面文件中?我什至都不知道桌面文件可以在启动时启动:)
Martin Pecka

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

6

实际上,将CLion与ROS集成起来很简单,并且只要知道如何做到就可以立即使用:

  1. 使用控制台进入ROS工作区并获取相应setup.bash文件。
  2. 转到src您的工作区目录。
  3. src目录中的控制台启动CLion 。
  4. 在CLion中关闭所有打开的项目,然后选择 Import Project from Sources
  5. 在工作区中选择src要导入的目录。
  6. 如果CLion抱怨CMakeList.txt已经存在,只需单击Open Project
  7. CLion将构建符号几分钟,然后就可以开始使用了。

如果仍然不起作用,请确保.idea从工作空间中删除所有文件,这些文件可能是在先前尝试将CLion与ROS结合使用时创建的。


您能否介绍一下如何运行带有启动文件的程序以及clion的调试支持?
艾瑞克(Eric)

我实际上只是使用CLion来编写代码。其余的我使用ROS命令行工具。我不知道您是否可以在这方面将CLion配置为与ROS一起使用。
亚诺


0

您还可以直接在CLION中运行roslaunch文件,如下所述:http ://wiki.ros.org/IDEs#CLion 但是,当我在IDE中启动启动文件时,出现以下错误:roslaunch:error:no such选项:--master-logger-level

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

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

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


0

新的和最简单的方法:

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

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

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

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


参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.