macOS (来源)
系统要求
我们目前支持 macOS Mojave (10.14)。
安装先决条件
您需要安装以下内容来构建 ROS 2:
Xcode
如果您尚未安装,请安装 [Xcode](https://apps.apple.com/app/xcode/id497799835)。
注意:macOS Mojave 上不再能安装 11.3.1 以上的 Xcode 版本,因此您需要手动安装旧版本,请参阅:https://stackoverflow.com/a/61046761
此外,如果您尚未安装,请安装命令行工具:
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 (needed to install more stuff; you probably already have this):
按照 http://brew.sh/ 上的安装说明进行操作
Optional: 通过运行以下命令检查“brew”是否适合您的系统配置:
brew doctor
修复其发现的任何问题。
使用“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
设置一些环境变量:
# 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)来安装更多东西:
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
消息,并且 listener
说 I 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。
保持最新状态
请参阅 维护源签出 以定期刷新您的源安装。
故障排除
故障排除技术可在 此处 找到。
卸载
如果您按照上述说明使用 colcon 安装了工作区,则“卸载”可能只是打开一个新终端而不是获取工作区的
setup
文件。
这样,您的环境将表现得好像系统上没有安装 Rolling。
如果您还想释放空间,可以使用以下命令删除整个工作区目录:
rm -rf ~/ros2_rolling