macOS(源码) [7770]
目录 []
安装先决条件 [7772]
构建ROS 2需要安装以下内容: [7773]
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
**brew**(需要安装其他工具;您可能已经安装了此工具): [7778]
按照 http://brew.sh/ 上的安装说明进行安装。 [7779]
可选: 运行以下命令检查
brew
是否满意您的系统配置: [7780]brew doctor
解决任何它识别出的问题。 [7781]
使用
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
设置一些环境变量: [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
使用
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]可选: 如果您想构建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
构建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]
其他RMW实现(可选) [7603]
ROS 2使用的默认中间件是“Fast DDS”,但是中间件(RMW)可以在运行时替换。请参阅:doc:指南 <../../How-To-Guides/Working-with-multiple-RMW-implementations>`以了解如何使用多个RMW。 `[7604]