将 Eclipse Oxygen 与“rviz2”结合使用 [社区贡献]

设置

本教程假设已安装 Eclipse Oxygen、git 和 Egit (http://www.eclipse.org/egit/download/)。

在整个教程中,我们将 eclipse 工作区命名为与 ros2 包相同的名称,但这不是必需的。

提示:我们为每个 ROS-2 包使用嵌套项目和一个 Eclipse 工作区。

../../_images/eclipse-oxygen-01.png

创建一个 C++ 项目。

../../_images/eclipse-oxygen-02.png ../../_images/eclipse-oxygen-03.png

选择 ROS 2 包名称作为项目名称。 选择 Makefile 项目和其他工具链。 .. image:: images/eclipse-oxygen-04.png

单击完成

../../_images/eclipse-oxygen-05.png

我们的项目应该显示在“项目浏览器”中。

../../_images/eclipse-oxygen-06.png

在我们的项目中创建一个名为“src”的文件夹。

../../_images/eclipse-oxygen-07.png

导入 git 存储库。

../../_images/eclipse-oxygen-08.png

输入存储库 URL。

../../_images/eclipse-oxygen-09.png

重要提示:使用我们之前创建的项目的源文件夹作为目标文件夹。

提示:如果您在选择目标文件夹路径时遇到问题,Eclipse 对话框需要在名称字段中输入一个名称。

../../_images/eclipse-oxygen-10.png

使用新项目向导导入。

../../_images/eclipse-oxygen-11.png

创建一个 General->Project。

../../_images/eclipse-oxygen-12.png

使用 git 存储库名称作为项目名称。 重要提示:使用我们克隆 git 存储库的文件夹作为“位置”。

../../_images/eclipse-oxygen-13.png

git 项目和新项目应该在 Project Explorer 视图中可见。 相同的文​​件列出多次,但只有一个项目与 Egit 链接。

../../_images/eclipse-oxygen-14.png

再次重复此过程。 导入 git 存储库 pluginlib。

../../_images/eclipse-oxygen-15.png

重要提示:使用源文件夹内的文件夹作为“目标->目录”。

../../_images/eclipse-oxygen-16.png

重要提示:使用我们克隆 git 存储库的文件夹作为新项目的位置。

../../_images/eclipse-oxygen-17.png

使用 tinyxml2_vendor git 存储库运行相同的过程。

../../_images/eclipse-oxygen-18.png

重要提示:再次使用源文件夹内的文件夹。

../../_images/eclipse-oxygen-19.png

重要提示:使用我们克隆的文件夹的位置作为新项目文件夹。

../../_images/eclipse-oxygen-20.png

现在,所有四个项目都应该在 Project Explorer 视图中可见。

../../_images/eclipse-oxygen-21.png

单击“项目资源管理器”视图的右上角,我们可以将项目演示更改为分层视图。 现在它看起来像硬盘上的 ROS-2 项目。 但此视图失去了与 Egit 的链接,因此请使用平面项目演示。 如果您想查看哪位作者编写了哪行代码等,Egit 链接非常有用。

../../_images/eclipse-oxygen-22.png

转到“C/C++ build”部分并将“ament”输入到“Build command”中。.

../../_images/eclipse-oxygen-23.png

转到“行为”选项卡并取消选择“清理”并将“构建”放入构建文本框中。

../../_images/eclipse-oxygen-24.png

在“构建项目”运行之前,我们需要关闭 Eclipse。 打开 shell 并获取 ROS-2 setup.bash 文件,然后进入 eclipse 项目的目录(此处:/home/ubu/rviz2_ws/rviz2_ws)并从该目录内启动 Eclipse。

../../_images/eclipse-oxygen-25.png

现在代码完成、egit 注释、eclipse C/C++ 工具等都应该可以工作了。

../../_images/eclipse-oxygen-26.png

Eclipse-indexer

打开 rviz2 的 main.cpp 可能会显示大量“未解决的包含”警告。 要解决此问题,请转到“项目”->“属性”->“C++ 常规”->“路径和符号”。 单击“引用”选项卡并选择“ros2_ws”。

../../_images/eclipse-oxygen-27.png

转到 C/C++-General->Path-and-Symbols,单击“源位置”选项卡,然后单击“链接文件夹”。 选择 qt5 包含的位置。

../../_images/eclipse-oxygen-28.png

应显示下一张图片。 最好将排除项添加到源位置,以便某些目录(如“Build”和“Install”)不会被编入索引。

../../_images/eclipse-oxygen-29.png

转到 C++General->Preprocessor includes,选择“CDT GCC Built in Compiler Settings [Shared]”,然后在“获取编译器规范的命令”文本框中输入以下内容:

-std=c++14
../../_images/eclipse-oxygen-30.png

转到“C/C++-General->Indexer”,然后选择图中的以下内容。 例如“index unused headers as c files”来解析例如 QApplication,因为 QApplication 头文件内容只有“#include “qapplication.h”。

../../_images/eclipse-oxygen-31.png

运行索引器后(稍后会发生,因此您稍后也会看到这一点),您可以看到它添加了什么

../../_images/eclipse-oxygen-32.png

之后,右键单击 rviz2 项目并选择“Indexer->Rebuild”,这将开始重建索引(右下角有一个图标显示进度)。 索引重建完成后,它应该能够解析所有包含内容。

../../_images/eclipse-oxygen-33.png

使用 eclipse 进行调试

转到“C/C++-Build”并添加到构建命令:

-DCMAKE_BUILD_TYPE=Debug
../../_images/eclipse-oxygen-34.png

然后在 eclipse 中转到“运行->调试配置”并添加以下内容并单击“调试”。

../../_images/eclipse-oxygen-35.png