警告

您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.

在 macOS 上构建 ROS 2

系统要求

我们支持 macOS 10.12.x。

不过,已知一些新版本(如 10.13.x)和一些旧版本(如 10.11.x 和 10.10.x)也可以使用。

安装先决条件

要构建 ROS 2,您需要安装以下设备:

  1. Xcode

    • 如果尚未安装,请安装 Xcode 和命令行工具:

      xcode-select --安装
      
  2. (需要安装更多东西;您可能已经有了这个)。:

    • 请按照以下网址的安装说明进行操作 http://brew.sh/

    • 可选:检查 运行

       医生
      

      修复它发现的任何问题。

  3. 使用 安装更多东西:

     安装 cmake cppcheck 本征 pcre poco python3 tinyxml wget
    
    # 如果使用 Fast-RTPS,则为其安装依赖项 安装 秋叶 tinyxml2 brew 安装 opencv
    
    # 为 rosbag2 安装 console_bridge 安装 控制台桥
    
    # 为 DDS-Security 安装 OpenSSL 安装 opensl
    # 如果使用 ZSH,则用 '.zshrc' 替换 '.bashrc';
    回响 export OPENSSL_ROOT_DIR=$( --前缀 opensl)"; >>; ~/.bashrc
    
    # 为 rcl_logging_log4cxx 安装依赖项 安装 log4cxx
    
    # 为 Cyclone DDS 安装 CUnit 安装 单元
    
  4. 安装 rviz 依赖项

    # 为 Rviz 安装依赖项 安装 qt 自由类型 屁股
    
    # 在 PATH 和 CMAKE_PREFIX_PATH 中添加 Qt 目录
    出口 cmake_prefix_path=$cmake_prefix_path:/usr/local/opt/qt
    出口 路径=$PATH:/usr/local/opt/qt/bin
    
  5. 安装 rqt 依赖项

    安装 图形化 pyqt5 啜饮

    在安装过程中查找 sip 文件时,修正了一些路径名(请参阅 ROS 1 维基百科):

    ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5

  6. 使用 python3 -m 核心 (只是 核心 可能安装 Python3 或 Python2)来安装更多的东西:

    python3 -m 核心 安装 -U argcomplete catkin_pkg Colcon-common-extensions 覆盖率 空虚 flake8 鳞片8-盲点-例外 flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes 云雀解析器 调侃 鼻子 pep8 pydocstyle  pygraphviz 解析 设置工具 vcstool
    
  7. 可选如果您想构建 ROS 1<->2 桥接器,则必须同时安装 ROS 1:

    • 从正常的安装说明开始: https://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source

    • 当您在调用 生成器 来获取源代码,下面是另一种调用方式,只需调入产生有用桥接所需的最低限度的代码:

      生成器 柔荑花序 共同 msgs roscpp rosmsg --rosdistro 动力学 --侦探 --纯水 -焦油 >; kinetic-ros2-bridge-deps.rosinstall wstool 启动 -j8 来源 kinetic-ros2-bridge-deps.rosinstall
      

      否则,只需按照正常说明操作,然后将生成的 install_isolated/setup.bash 然后再继续构建 ROS 2。

禁用系统完整性保护 (SIP)

macOS/OS X 版本 >=10.11 默认启用了系统完整性保护。这样,SIP 就不会阻止进程继承动态链接器环境变量,例如 dyld_library_path您需要禁用它 根据这些说明.

获取 ROS 2 代码

创建工作区并克隆所有软件仓库:

mkdir -p ~/ros2_dashing/src
CD ~/ros2_dashing wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos vcs 舶来品 来源 <; ros2.repos

安装其他 DDS 供应商(可选)

除了默认的 eProsima 快速 RTPS 之外,如果您还想使用其他 DDS 或 RTPS 供应商,可以查看相关说明 这里.

构建 ROS 2 代码

运行 胶管 工具来构建一切(关于使用 胶管本教程):

CD ~/ros2_dashing/ colcon 构建 --symlink-install

环境设置

源 ROS 2 设置文件:

. ~/ros2_dashing/install/setup.bash

这将自动为支持的任何 DDS 供应商设置环境。

举例说明

在一个终端中,如上所述设置 ROS 2 环境,然后运行 C++ 话匣子:

玫瑰2 运行 演示节点 话匣子

在另一个终端中输入设置文件的源代码,然后运行 Python 听众:

玫瑰2 运行 演示节点 听众

您应该看到 话匣子 说它是 出版 信息和 听众 成语 I 听说 这些信息。这就验证了 C++ 和 Python API 都能正常工作。万岁

安装后的下一步

继续 教程和演示 来配置环境、创建自己的工作区和软件包,并学习 ROS 2 的核心概念。

使用 ROS 1 桥接器

ROS 1 桥接器可将主题从 ROS 1 连接到 ROS 2,反之亦然。请参阅专用的 文献资料 如何构建和使用 ROS 1 桥接器。

其他 RMW 实施(可选)

ROS 2 使用的默认中间件是 快速 RTPS但中间件 (RMW) 可以在运行时更换。参见 向导 如何使用多个 RMW。

了解最新信息

参见 维护 ROS 2 的源检查 定期刷新源安装。

故障排除

可以找到故障排除技术 这里.

卸载

  1. 如果您按照上述说明使用 colcon 安装了工作区,那么 "卸载 "可能只是打开一个新终端,而不是从工作区的 设置 文件。这样,您的系统就会像没有安装 Dashing 一样运行。

  2. 如果你也想释放空间,可以用以下方法删除整个工作区目录:

    rm -rf ~/ros2_dashing