带有ROS 2和rviz2的Eclipse Oxygen [社区贡献] [待校准@7387]

设置 [待校准@7388]

本教程假设Eclipse Oxygen、git和Egit (http://www.eclipse.org/egit/download/) 已经安装 [待校准@7389]

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

提示: 我们为每个ROS-2包使用嵌套项目和一个Eclipse工作区。 [待校准@7391]

月食-launcher `[待校准@7392] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7392>`_

创建一个cproject项目。 [待校准@7393]

eclipse-1 `[待校准@6957] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=6957>`_ eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_

选择ROS 2包名称作为项目名称。选择Makefile项目和其他工具链。 [待校准@7395]

eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_

点击完成 [待校准@7396]

eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_

我们的项目应该在 "Project Explorer" 中展示。 [待校准@7397]

eclipse-3 `[待校准@7398] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7398>`_

在我们的项目中创建一个调用ed "src" 的文件夹。 [待校准@7399]

eclipse-4 `[待校准@7400] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7400>`_

导入git仓库。 [待校准@7401]

eclipse-5 `[待校准@7402] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7402>`_

放入仓库URL。 [待校准@7403]

eclipse-6 `[待校准@7404] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7404>`_

重要提示: 使用我们之前创建的项目的源文件文件夹作为目标文件夹。 [待校准@7405]

提示: 如果在选择目标文件夹路径时遇到问题,则Eclipse对话框需要在name字段中输入名称。 [待校准@7406]

eclipse-7 `[待校准@7407] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7407>`_

使用新建项目向导导入。 [待校准@7408]

eclipse-8 `[待校准@7409] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7409>`_

创建常规-> 项目。 [待校准@7410]

eclipse-9 `[待校准@7411] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7411>`_

使用git仓库名称作为项目名称。重要提示: 使用我们克隆的git仓库的文件夹作为 "Location" 。 [待校准@7412]

eclipse-10 `[待校准@7413] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7413>`_

git项目和新项目应在项目资源管理器视图中可见。相同的文件被多次列出,但只有一个项目与Egit链接。 [待校准@7414]

eclipse-11 `[待校准@7415] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7415>`_

再次重复此过程。导入git仓库pluginlib。 [待校准@7416]

eclipse-12 `[待校准@7417] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7417>`_

重要提示: 将源文件中的文件夹用作 “目标-> 目录”。 [待校准@7418]

eclipse-13 `[待校准@7419] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7419>`_

重要提示: 使用我们克隆git仓库的文件夹作为新项目的位置。 [待校准@7420]

eclipse-14 `[待校准@7421] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7421>`_

对tinyxml2_vendor git仓库运行相同的存储过程。 [待校准@7422]

eclipse-15 `[待校准@7423] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7423>`_

重要提示: 再次使用源文件中的文件夹。 [待校准@7424]

eclipse-16 `[待校准@7425] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7425>`_

重要提示: 使用我们克隆的文件夹的位置作为新项目文件夹。 [待校准@7426]

eclipse-17 `[待校准@7427] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7427>`_

现在,所有四个项目都应该在项目资源管理器视图中可见。 [待校准@7428]

日食-18 `[待校准@7429] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7429>`_

单击项目资源管理器视图的右上角,我们可以将项目演示文稿更改为分层视图。现在它看起来像一个ROS-2的项目,就像它在硬盘上一样。但是这种观点失去了与Egit的联系,所以使用平面项目演示。如果你想知道,例如哪个作者写了哪个代码行,等等,那么Egit链接是很好的。 [待校准@7430]

eclipse-19 `[待校准@7431] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7431>`_

转到 “C/C + + build” 部分,将 "ament" 放入 "Build command" 。 [待校准@7432]

eclipse-26 `[待校准@7433] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7433>`_

转到 "Behavior" 选项卡,取消选择 "clean" ,并将 "build" 放入构建文本框中。 [待校准@7434]

eclipse-26 `[待校准@7433] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7433>`_

在 "Build project" 发挥作用之前,我们需要关闭日食。打开外壳并源文件ROS-2安装程序。bash文件,然后将cd放入eclipse项目的目录 (此处: /home/ubu/rviz2_ws),并从此目录内启动Eclipse。 [待校准@7435]

eclipse-27 `[待校准@7436] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7436>`_

现在,代码完成、egit注释、eclipse C/C Tools工具等都应该可以工作。 [待校准@7437]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

Eclipse索引器 [待校准@7439]

打开rviz2的main.cpp可能会显示很多 "unresolved inclusion" 警告。要解决此问题,请转到项目-> 属性-> cgeneral常规-> 路径和符号。点击 "References" 标签并选择 "ros2_ws" 。 [待校准@7440]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

转到C/C ++-常规-> 路径和符号,单击 "Source locations" 选项卡,然后单击 "Link folder" 。选择qt5包含的位置。 [待校准@7441]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

应该显示下一张图片。将排除添加到源文件位置是一个好主意,这样一些目录 (如 "Build" 和 "Install" ) 就不会被索引。 [待校准@7442]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

转到cgeneral常规-> 预处理器包括,选择 “CDT GCC内置编译器设置 [共享] " and enter in the " 命令获取编译器规格” 文本框如下: [待校准@7443]

-std=c++14
eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

转到 “C/C General->Indexer”,然后在图像中选择以下内容。例如解决例如QApplication的 "index unused headers as c files" ,因为QApplication标头内容仅包含 “qapplication.h”。 [待校准@7444]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

运行索引器后 (稍后会发生,所以您稍后也会看到这一点),您可以看到它添加了什么 [待校准@7445]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

之后,右键单击rviz2项目,然后选择 “索引器-> 重建”,这将开始重建索引 (右下角有一个图标显示进度)。一旦索引完成重建,它应该能够解析所有包含。 [待校准@7446]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

使用eclipse调试 [待校准@7447]

转到 “C/C ++-Build” 并添加到build命令: [待校准@7448]

-DCMAKE_BUILD_TYPE=Debug
eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_

然后在eclipse中转到 “运行-> 调试配置 " and add the following and click on " 调试”。 [待校准@7449]

eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_