带有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>`_](https://i.imgur.com/ePQaXE3.png)
创建一个cproject项目。 [待校准@7393]
![eclipse-1 `[待校准@6957] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=6957>`_](https://i.imgur.com/XIsATcN.png)
![eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_](https://i.imgur.com/PNVxEJN.png)
选择ROS 2包名称作为项目名称。选择Makefile项目和其他工具链。 [待校准@7395]
![eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_](https://i.imgur.com/yt5WkkN.png)
点击完成 [待校准@7396]
![eclipse-2 `[待校准@7394] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7394>`_](https://i.imgur.com/Ef0tLiP.png)
我们的项目应该在 "Project Explorer" 中展示。 [待校准@7397]
![eclipse-3 `[待校准@7398] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7398>`_](https://i.imgur.com/kYutC7W.png)
在我们的项目中创建一个调用ed "src" 的文件夹。 [待校准@7399]
![eclipse-4 `[待校准@7400] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7400>`_](https://i.imgur.com/6uFtcLT.png)
导入git仓库。 [待校准@7401]
![eclipse-5 `[待校准@7402] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7402>`_](https://i.imgur.com/pae8YOu.png)
放入仓库URL。 [待校准@7403]
![eclipse-6 `[待校准@7404] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7404>`_](https://i.imgur.com/HuPcPx9.png)
重要提示: 使用我们之前创建的项目的源文件文件夹作为目标文件夹。 [待校准@7405]
提示: 如果在选择目标文件夹路径时遇到问题,则Eclipse对话框需要在name字段中输入名称。 [待校准@7406]
![eclipse-7 `[待校准@7407] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7407>`_](https://i.imgur.com/arFZfa4.png)
使用新建项目向导导入。 [待校准@7408]
![eclipse-8 `[待校准@7409] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7409>`_](https://i.imgur.com/ety2Lxf.png)
创建常规-> 项目。 [待校准@7410]
![eclipse-9 `[待校准@7411] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7411>`_](https://i.imgur.com/rpAjqqW.png)
使用git仓库名称作为项目名称。重要提示: 使用我们克隆的git仓库的文件夹作为 "Location" 。 [待校准@7412]
![eclipse-10 `[待校准@7413] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7413>`_](https://i.imgur.com/nEoT0RB.png)
git项目和新项目应在项目资源管理器视图中可见。相同的文件被多次列出,但只有一个项目与Egit链接。 [待校准@7414]
![eclipse-11 `[待校准@7415] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7415>`_](https://i.imgur.com/sSQ8ooN.png)
再次重复此过程。导入git仓库pluginlib。 [待校准@7416]
![eclipse-12 `[待校准@7417] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7417>`_](https://i.imgur.com/hnbscVx.png)
重要提示: 将源文件中的文件夹用作 “目标-> 目录”。 [待校准@7418]
![eclipse-13 `[待校准@7419] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7419>`_](https://i.imgur.com/8Z3hlFL.png)
重要提示: 使用我们克隆git仓库的文件夹作为新项目的位置。 [待校准@7420]
![eclipse-14 `[待校准@7421] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7421>`_](https://i.imgur.com/xySYIQi.png)
对tinyxml2_vendor git仓库运行相同的存储过程。 [待校准@7422]
![eclipse-15 `[待校准@7423] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7423>`_](https://i.imgur.com/izC5Hke.png)
重要提示: 再次使用源文件中的文件夹。 [待校准@7424]
![eclipse-16 `[待校准@7425] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7425>`_](https://i.imgur.com/UR8S3I8.png)
重要提示: 使用我们克隆的文件夹的位置作为新项目文件夹。 [待校准@7426]
![eclipse-17 `[待校准@7427] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7427>`_](https://i.imgur.com/aMu1nNZ.png)
现在,所有四个项目都应该在项目资源管理器视图中可见。 [待校准@7428]
![日食-18 `[待校准@7429] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7429>`_](https://i.imgur.com/36zbuUx.png)
单击项目资源管理器视图的右上角,我们可以将项目演示文稿更改为分层视图。现在它看起来像一个ROS-2的项目,就像它在硬盘上一样。但是这种观点失去了与Egit的联系,所以使用平面项目演示。如果你想知道,例如哪个作者写了哪个代码行,等等,那么Egit链接是很好的。 [待校准@7430]
![eclipse-19 `[待校准@7431] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7431>`_](https://i.imgur.com/vOhRUGB.png)
转到 “C/C + + build” 部分,将 "ament" 放入 "Build command" 。 [待校准@7432]
![eclipse-26 `[待校准@7433] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7433>`_](https://i.imgur.com/vXhRwEb.png)
转到 "Behavior" 选项卡,取消选择 "clean" ,并将 "build" 放入构建文本框中。 [待校准@7434]
![eclipse-26 `[待校准@7433] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7433>`_](https://i.imgur.com/4CegjkC.png)
在 "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>`_](https://i.imgur.com/ZyPGJLa.png)
现在,代码完成、egit注释、eclipse C/C Tools工具等都应该可以工作。 [待校准@7437]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/YUEH3lM.png)
Eclipse索引器 [待校准@7439]
打开rviz2的main.cpp可能会显示很多 "unresolved inclusion" 警告。要解决此问题,请转到项目-> 属性-> cgeneral常规-> 路径和符号。点击 "References" 标签并选择 "ros2_ws" 。 [待校准@7440]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/mp9Pgzu.png)
转到C/C ++-常规-> 路径和符号,单击 "Source locations" 选项卡,然后单击 "Link folder" 。选择qt5包含的位置。 [待校准@7441]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/TYgDACE.png)
应该显示下一张图片。将排除添加到源文件位置是一个好主意,这样一些目录 (如 "Build" 和 "Install" ) 就不会被索引。 [待校准@7442]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/nv9tEAP.png)
转到cgeneral常规-> 预处理器包括,选择 “CDT GCC内置编译器设置 [共享] " and enter in the " 命令获取编译器规格” 文本框如下: [待校准@7443]
-std=c++14
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/9DNXpDD.png)
转到 “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>`_](https://i.imgur.com/Wxeheak.png)
运行索引器后 (稍后会发生,所以您稍后也会看到这一点),您可以看到它添加了什么 [待校准@7445]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/xtxZ4bg.png)
之后,右键单击rviz2项目,然后选择 “索引器-> 重建”,这将开始重建索引 (右下角有一个图标显示进度)。一旦索引完成重建,它应该能够解析所有包含。 [待校准@7446]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/uGZaHau.png)
使用eclipse调试 [待校准@7447]
转到 “C/C ++-Build” 并添加到build命令: [待校准@7448]
-DCMAKE_BUILD_TYPE=Debug
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/KXFYDHg.png)
然后在eclipse中转到 “运行-> 调试配置 " and add the following and click on " 调试”。 [待校准@7449]
![eclipse-28 `[待校准@7438] <http://dev.ros2.fishros.com/calibpage/#/home?msgid=7438>`_](https://i.imgur.com/ywzAxUP.png)