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 (需要安装更多东西;你可能已经有了):

    • 按照 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 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 jsonschema 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)

  6. Optional: 如果要构建 ROS 1<->2 桥,则还必须安装 ROS 1:

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

    • 当你调用 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),您需要按照以下说明 following these instructions

构建 ROS 2

获取 ROS 2 代码

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

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

安装其他 RMW 实现(可选)

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

在工作区中构建代码

运行 colcon 工具来构建所有内容(有关使用“colcon”的更多信息,请参阅 this tutorial):

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

Note: 由于 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 listener

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

保持最新状态

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

故障排除

故障排除技术可在 here 找到。

卸载

1. 如果您按照上述说明使用 colcon 安装了工作区,则“卸载”可能只是打开一个新终端而不是获取工作区的 setup 文件。 这样,您的环境将表现得好像系统上没有安装 Rolling。

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

    rm -rf ~/ros2_rolling