macOS (来源)

系统要求

我们目前支持 macOS Mojave (10.14)。

安装先决条件

您需要安装以下内容来构建 ROS 2:

  1. Xcode

    xcode-select --install
    # This command will not succeed if you have not installed Xcode.app
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    # If you installed Xcode.app manually, you need to either open it or run:
    sudo xcodebuild -license
    # To accept the Xcode.app license
    
  2. brew (needed to install more stuff; you probably already have this):

    • 按照 http://brew.sh/ 上的安装说明进行操作

    • Optional: 通过运行以下命令检查“brew”是否适合您的系统配置:

      brew doctor
      

      修复其发现的任何问题。

  3. 使用“brew”安装更多东西:

    brew install asio assimp bison bullet cmake console_bridge cppcheck \
      cunit eigen freetype graphviz opencv openssl orocos-kdl pcre poco \
      pyqt@5 python qt@5 sip spdlog osrf/simulation/tinyxml1 tinyxml2
    
  4. 设置一些环境变量:

    # Add the openssl dir for DDS-Security
    # if you are using BASH, then replace '.zshrc' with '.bashrc'
    echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.zshrc
    
    # Add the Qt directory to the PATH and CMAKE_PREFIX_PATH
    export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$(brew --prefix qt@5)
    export PATH=$PATH:$(brew --prefix qt@5)/bin
    
  5. 使用“python3 -m pip”(仅“pip”可以安装 Python3 或 Python2)来安装更多东西:

    python3 -m pip install --upgrade pip
    
    python3 -m pip install -U \
      --config-settings="--global-option=build_ext" \
      --config-settings="--global-option=-I$(brew --prefix graphviz)/include/" \
      --config-settings="--global-option=-L$(brew --prefix graphviz)/lib/" \
      argcomplete catkin_pkg colcon-common-extensions coverage \
      cryptography empy flake8 flake8-blind-except==0.1.1 flake8-builtins \
      flake8-class-newline flake8-comprehensions flake8-deprecated \
      flake8-docstrings flake8-import-order flake8-quotes \
      importlib-metadata lark==1.1.1 lxml matplotlib mock mypy==0.931 netifaces \
      nose pep8 psutil pydocstyle pydot pygraphviz pyparsing==2.4.7 \
      pytest-mock rosdep rosdistro setuptools==59.6.0 vcstool
    

    请确保 $PATH 环境变量包含二进制文件的安装位置 ($(brew --prefix)/bin)

    #. 可选:如果您想要构建 ROS 1<->2 桥接,则还必须安装 ROS 1:

    当您到达调用 rosinstall_generator 来获取源代码的步骤时,这里有一个替代调用,它只引入生成有用桥接所需的最少内容:

    rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall
    wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall
    

    否则,只需按照正常说明进行操作,然后在继续构建 ROS 2 之前获取生成的“install_isolated/setup.bash”。

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

macOS/OS X 版本 >=10.11 默认启用系统完整性保护。 为了使 SIP 不会阻止进程继承动态链接器环境变量(例如“DYLD_LIBRARY_PATH”),您需要按照以下说明禁用它 <https://developer.apple.com/library/content/documentation/Security/Conceptual/System_Integrity_Protection_Guide/ConfiguringSystemIntegrityProtection/ConfiguringSystemIntegrityProtection.html>`__。

获取 ROS 2 代码

创建一个工作区并克隆所有存储库:

mkdir -p ~/ros2_rolling/src
cd ~/ros2_rolling
vcs import --input https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos src

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

如果您想使用除默认供应商之外的其他 DDS 或 RTPS 供应商,您可以在 此处 找到说明。

构建 ROS 2 代码

运行 colcon 工具来构建所有内容(有关使用 colcon 的更多信息,请参阅 本教程):

cd ~/ros2_rolling/
colcon build --symlink-install --packages-skip-by-dep python_qt_binding

注意:由于 SIP、Qt@5 和 PyQt5 存在未解决的问题,我们需要禁用“python_qt_binding”才能成功构建。 问题解决后,它将被删除,请参阅:https://github.com/ros-visualization/python_qt_binding/issues/103

环境设置

获取 ROS 2 设置文件:

. ~/ros2_rolling/install/setup.zsh

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

尝试一些示例

在一个终端中,按照上述说明设置 ROS 2 环境,然后运行 ​​C++“talker”:

ros2 run demo_nodes_cpp talker

在另一个终端中获取安装文件,然后运行 ​​Python“监听器”:

ros2 run demo_nodes_py listener

您应该看到 talker 说它正在 Publishing 消息,并且 listenerI heard 这些消息。 这验证了 C++ 和 Python API 均正常工作。 万岁!

安装后的后续步骤

继续使用 tutorials and demos 来配置您的环境,创建您自己的工作区和包,并学习 ROS 2 核心概念。

使用 ROS 1 桥

ROS 1 桥可以将主题从 ROS 1 连接到 ROS 2,反之亦然。有关如何构建和使用 ROS 1 桥,请参阅专用的 documentation

附加 RMW 实现(可选)

ROS 2 使用的默认中间件是“Fast DDS”,但中间件(RMW)可以在运行时替换。 有关如何使用多个 RMW,请参阅 guide

保持最新状态

请参阅 维护源签出 以定期刷新您的源安装。

故障排除

故障排除技术可在 此处 找到。

卸载

  1. 如果您按照上述说明使用 colcon 安装了工作区,则“卸载”可能只是打开一个新终端而不是获取工作区的 setup 文件。

这样,您的环境将表现得好像系统上没有安装 Rolling。

  1. 如果您还想释放空间,可以使用以下命令删除整个工作区目录:

    rm -rf ~/ros2_rolling