在ROS 2中使用Python包

**目标:**解释如何与ROS 2生态系统中的其他Python包进行互操作。

注解

请注意,如果您打算使用预编译的二进制文件(无论是``deb``文件还是“fat”二进制发行版),Python解释器必须与用于构建原始二进制文件的解释器相匹配。如果您打算使用类似于``virtualenv``或``pipenv``的工具,请确保使用系统解释器。如果您使用类似于``conda``的工具,很可能解释器与系统解释器不匹配,且与ROS 2的二进制文件不兼容。

通过``rosdep``进行安装

包含第三方Python包的最快方法是使用它们对应的``rosdep``键(如果可用)。可以通过以下方式检查``rosdep``键:

这些``rosdep``键可以添加到您的``package.xml``文件中,指示构建系统您的软件包(以及依赖软件包)依赖于这些键。在新的工作空间中,您还可以使用以下命令快速安装所有rosdep键:

rosdep install -yr ./path/to/your/workspace

如果您感兴趣的软件包目前没有相应的``rosdep``键,可以按照`rosdep键贡献指南`_进行添加。

要了解更多关于``rosdep``工具及其工作原理的信息,请参阅`rosdep文档`_。

通过软件包管理器安装

如果您不想创建一个 rosdep 键,但是该软件包在系统的软件包管理器中可用(例如 apt),您可以通过以下方式安装和使用该软件包:

sudo apt install python3-serial

如果该软件包在 Python Package Index (PyPI) 上可用,并且您想要在系统上进行全局安装:

python3 -m pip install -U pyserial

如果该软件包在 PyPI 上可用,并且您想要在本地安装到您的用户目录下:

python3 -m pip install -U --user pyserial

通过虚拟环境安装

首先,创建一个 Colcon 工作空间:

mkdir -p ~/colcon_venv/src
cd ~/colcon_venv/

然后设置您的虚拟环境:

# Make a virtual env and activate it
virtualenv -p python3 ./venv
source ./venv/bin/activate
# Make sure that colcon doesn’t try to build the venv
touch ./venv/COLCON_IGNORE

接下来,在您的虚拟环境中安装所需的 Python 包:

python3 -m pip install gtsam pyserial… etc

现在你可以构建你的工作空间并运行依赖于虚拟环境中安装的包的 Python 节点。

# Source Humble and build
source /opt/ros/humble/setup.bash
colcon build

注解

如果你想使用 Bloom 发布你的包,你应该将你所需的包添加到 rosdep 中,请参阅 rosdep 关键字贡献指南