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 (需要安装更多东西;你可能已经有了):
按照 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 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 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
)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
消息,并且 listener
说 I 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。
如果您还想释放空间,可以使用以下命令删除整个工作区目录:
rm -rf ~/ros2_rolling