警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
使用 Eclipse Oxygen 在 Linux 上构建 ROS 2 [社区贡献]
警告
有人报告本教程存在问题。如果这些步骤对你有效,请在 https://github.com/ros2/ros2/issues/495 上留言。如果这些步骤不起作用,请评论不起作用的第一个步骤。
本教程基于干净的 ubuntu-16.04.2 安装和带有 egit 的 eclipse oxygen。它使用 RTI Connext 作为中间件来实现实时性能。本教程 原始安装页面 也许更新得更及时,请查阅该网站了解信息。
安装:
苏都 吁 -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/dashing.list';
苏都 apt-key 建议 --钥匙服务器 ha.pool.sks-keyservers.net --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116
苏都 适切 更新 sudo 适切 安装 笨蛋 wget 基本建设 cppcheck cmake libopencv-dev python-empy python3-dev python3-empy python3-nose python3-pip python3-pyparsing python3-setuptools python3-vcstool python3-yaml libtinyxml-dev libeigen3-dev clang-format pydocstyle 火片 python3-coverage python3-mock python3-pep8 去壳 libasio-dev libtinyxml2-dev libcurl4-openssl-dev libqt5core5a libqt5gui5 libqt5opengl5 libqt5widgets5 libxaw7-dev libgles2-mesa-dev libglu1-mesa-dev qtbase5-dev
然后安装
苏都 管道3 安装 argcomplete flake8 鳞片8-盲点-例外 flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes 测试 pytest-cov 跃马
创建一个名为 ros2_ws 的 eclipse 工作区(名称不必是 ros2_ws)。

在此 eclipse 工作区中创建一个 C++ 项目。该选项可创建一个用于代码自动完成的索引器。

将项目命名为 ros2_ws。

显示的是项目和一些包含项。我们的工作区中没有包含这些内容,所以不要删除它们,它们是为索引器准备的。

在项目中创建一个名为 "src "的文件夹。

文件夹现在存在于项目中。该文件夹也存在于工作区中。接下来进入控制台,切换到 /home/ros/ros2_ws/ros2_ws 目录。在此输入
wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos vcs-import 来源 <; ros2.repos
在 .bashrc 中添加 export RTI_LICENSE_FILE=/home/ros/rti_connext_dds-5.3.1/rti_license.dat,并将其作为源代码。

现在需要 RTI 许可证,我们可以在他们的网站上获取。请参考 Ubuntu Linux 开发设置页面.注册后,我们将通过电子邮件直接发送 RTI 许可证文件。
邮件中有一个 RTI 软件的下载链接。下载文件后,运行 "chmod +x "使其可以运行。


选择要安装的主目录。



在启动的启动器中,选择 RTI 许可证文件并将其复制到全局。

选择安装按钮。

安装 RTI 软件的安全软件包。

还有 openssl 软件包。

解压 openssl-1.0.2n 软件包并将其复制到 RTI 安装目录。在控制台中输入 /home/ros/rti_connext_dds-5.3.1/resource/scripts/rtisetenv_x64Linux3gcc5.4.0.bash,并导出 RMW_IMPLEMENTATION=rmw_connext_cpp。
关闭 eclipse-IDE,然后从我们从上面获取所有脚本的 shell 中打开它。在 Eclipse 中打开 Project->Preferences,然后转到 Environment。

在 Eclipse 中输入环境变量。变量值可通过运行 "env > /tmp/out "获得,然后运行 ROS 2 local_setup.bash,然后运行 "env > /tmp/out1 "和 "diff /tmp/out /tmp/out1"。输出中的差异就是应该输入 Eclipse 环境变量的内容,这样 Eclipse 就能知道新的 PATH 变量。


转到 "建设者 "页面,点击 "新建 "按钮。

输入 ament.py 设置。

取消选择 CDT-Builder。

转到 C++ Build,删除构建命令 make,因为我们将使用 ament.py。

现在右击并运行 "构建项目"。
提示:如果您看到错误信息NDDSHOME 设置为,但既找不到所有优化库,也找不到所有调试库 删除 /home/ros/rti_connext_dds-5.3.1/lib/x64Linux3gcc5.4.0/5.3.1/5.3.1 目录中的重复库。

现在打开两个控制台,在两个控制台中输入 ros2_ws/install/local_setup.bash,然后运行 talker 和 listener

在 Eclipse 项目中,转到 git-repositories-view 并导入本地 repo。

选择我们的目录,然后选择我们有兴趣查看的版本库。这样我们就能获得这些仓库的 git 信息。

在 git-repository-view 中添加 git 仓库后,右击该仓库并选择 "导入项目"。

导入源是我们项目的目录。

在 "项目浏览器 "视图的左侧,我们可以看到这个项目紧挨着我们的 ros2_ws 项目。这两个项目使用相同的文件,但其中一个与 egit 链接,可以显示 git 信息,而另一个则不能。打开与 Egit 链接的项目中的文件。

下面显示的是一个与 Egit 链接的文件。在编辑器中的行号旁单击右键,在弹出的对话框中选择 "显示修订信息",然后将鼠标悬停在行号上就可以看到提交信息。
