ROS的IDE们

从研一接触ROS到现在, 一直在被两件是折腾着, 1.怎么编译, 2. 怎么degug.一开始用的roboware, 能够自动添加CMakeLists, 一些小动能如自动启动launch文件等. 后来开源了但是也不更新了, 自身有些bug也没能修复.

关于IDE ros.wiki[1] 上由列举如: Eclipse,qtcreat, kDevelop, vscode, roboware,Clion等。在answers.ros [2]上面关于IDE的讨论,最后题主选择的是Eclipse。我就我尝试的使用过的IDE进行简单的总结,目前我使用的是qtcreator,与Clion。

kDevelop ,vscode

kDevelop 与vscode 都是开源免费软件,其中vscode平时看代码用的很多,而且跨平台,另提供了关于ROS 的插件,但遗憾的是不能调试,github上有人给出了关于调试的方法,大致思路如下,具体没有尝试:

  1. 启动ros,运行节点;
  2. 查看当前进程号,然后在launch文件中修改原本调试进程为当前运行进程.

qtcreator

qt提供了ros的插件,而且有详细的wiki[3]。 其本身又是跨平台的软件。在ros中做UI的时候用qt,在创客智造中有详细的关于如何在linux下安装qt 关于ros插件的教程,关于编译配置方法也讲述的比较详细,但是在debug的过程中还是出了问题.然后换了一个方法,这个的思路和vscode 中调试的方法本质应该是一样的.

qt 编译环境配置好之后,可以选择已经启动的节点进行调试,以及未启动的节点进行调试。我采用的通常是先启动节点。具体步骤如下:

  1. 启动roscore,运行需要调试节点;
  2. qt 工具栏选择 debug ->starting debug -> attach to running application
  3. 在合适的地方设置断点,即可进行调试.

clion

clion 是一款基于Cmake的C++ IDE ,教程[4]写的挺好的,收费,平时学习的过程中很都是用的它,就在网上搜了搜,果然支持ros的编译调试,而且出了官方的手册. 以下是主要的配置步骤:

1. 配置桌面入口
1
2
cd ~/.local/share/applications
sudo vim jetbrains-clion-*.desktop

在文件中添加Exec=bash -i -c **"PATH_TO_CLION/bin/clion.sh"** %f之后的文件应该长这个样子.

1
2
3
4
5
6
7
8
9
10
[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
Icon=/opt/clion-2018.2/bin/clion.svg
Exec=bash -i -c "/opt/clion-2018.2/bin/clion.sh" %f
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-clion
2. 在Clion中打开ROS工作区

直接选择CMakeLists.txt 然后以工程方式打开就行了.打开之后长这样子:注意最后会有提示完成的文字,当然出错了也会提醒你的.

successfully load cmake project

3. 将Clion生成的编译文件放到catkin工程中

Clion会生成自己的编译文件的文件夹, 因此要将两个结合一下.

  • In Generation path, set workspace_folder/build.
  • In CMake options, add -DCATKIN_DEVEL_PREFIX:PATH=workspace_folder/devel.

cmake settings for ros projects

4. 使launch采用xml格式的文件打开
  1. Go to File | Settings (Ctrl+Alt+S) | Editor | File Types and select XML from the list of Recognized File Types.
  2. Add .launch extension to the list of *Registered Patterns**.
5. debug
  1. 启动master, 然后运行需要调试的节点
  2. Run | Attach to Proces,,然后选择你需要调试的节点.

参考链接

  1. http://wiki.ros.org/IDEs
  2. https://answers.ros.org/question/9068/which-ides-do-ros-developers-use/
  3. https://ros-qtc-plugin.readthedocs.io/en/latest/
  4. https://www.jetbrains.com/help/clion/ros-setup-tutorial.html