macOS(源码) [7770]

系统要求 [7573]

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

安装先决条件 [7772]

构建ROS 2需要安装以下内容: [7773]

  1. Xcode [7774]

    • 如果您尚未安装Xcode,请安装[Xcode](https://apps.apple.com/app/xcode/id497799835)。 [17738]

    • 注意:Xcode 11.3.1 之后的版本无法在 macOS Mojave 上安装,因此您需要手动安装旧版本,参见:https://stackoverflow.com/a/61046761 [7776]

    • 此外,如果您尚未安装命令行工具,请安装: [7777]

      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**(需要安装其他工具;您可能已经安装了此工具): [7778]

    • 按照 http://brew.sh/ 上的安装说明进行安装。 [7779]

    • 可选: 运行以下命令检查 brew 是否满意您的系统配置: [7780]

      brew doctor
      

      解决任何它识别出的问题。 [7781]

  3. 使用 brew 安装更多内容: [7782]

    brew install asio assimp bison bullet cmake console_bridge cppcheck \
      cunit eigen freetype graphviz opencv openssl orocos-kdl pcre poco \
      pyqt5 python qt@5 sip spdlog tinyxml tinyxml2
    
  4. 设置一些环境变量: [7783]

    # 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)安装更多内容: [7784]

    python3 -m pip install -U \
     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)。 [17739]

  6. 可选: 如果您想构建ROS 1<->2桥接器,那么您还必须安装ROS 1: [7786]

    • 按照正常的安装说明开始: http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source [7787]

    • 当您到达调用``rosinstall_generator``以获取源代码的步骤时,下面是一个替代的调用方式,只引入生成有用桥接器所需的最小代码: [7788]

      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``进行源码配置。 [7789]

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

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

获取ROS 2代码 [7731]

创建一个工作空间并克隆所有仓库: [7585]

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

安装额外的DDS供应商(可选) [7792]

如果您想使用默认之外的其他DDS或RTPS供应商,您可以在这里找到说明:这里[7589]

构建ROS 2代码。 [7737]

使用``colcon``工具构建所有内容(有关使用``colcon``的更多信息,请参阅:此教程): [7793]

cd ~/ros2_humble/
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 [7794]

环境设置 [7594]

将ROS 2的设置文件设置为源文件: [7795]

. ~/ros2_humble/install/setup.zsh

这将自动为支持构建的任何DDS供应商设置环境。 [7743]

尝试一些示例 [7597]

在一个终端中,按照上述说明设置ROS 2环境,然后运行一个C++``talker``: [7796]

ros2 run demo_nodes_cpp talker

在另一个终端中,先源文件设置文件,然后运行一个Python listener[7633]

ros2 run demo_nodes_py listener

你应该看到“talker”说它正在“发布”消息,而“listener”说“我听到了”这些消息。这验证了C++和Python API都正常工作。太棒了! [7600]

安装后的下一步 [7601]

继续进行`教程和演示 <../../Tutorials>`,以配置您的环境、创建自己的工作空间和软件包,并学习ROS 2核心概念。 [7797]

使用 ROS 1 桥接器 [7658]

ROS 1 桥接器可以连接 ROS 1 和 ROS 2 的主题。请参阅专门的 文档 以了解如何构建和使用 ROS 1 桥接器。 [7659]

其他RMW实现(可选) [7603]

ROS 2使用的默认中间件是“Fast DDS”,但是中间件(RMW)可以在运行时替换。请参阅:doc:指南 <../../How-To-Guides/Working-with-multiple-RMW-implementations>`以了解如何使用多个RMW。 `[7604]

故障排除 [7611]

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

卸载 [7613]

  1. 如果按照上述指示使用 colcon 安装了工作空间,则“卸载”可能只是打开新终端而不加载工作空间的“setup”文件。这样,您的环境将表现得好像系统中没有安装 Humble。 [7614]

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

    rm -rf ~/ros2_humble