将Python包与ROS 2结合使用 [待校准@6562]

Goal目标: Explain说明如何与ROS2生态系统中的其他Python包进行互操作。 [待校准@6563]

注解

需要注意的是,如果您打算使用预打包的二进制文件 ( deb 文件或 “fat” 二进制发行版),python解释器必须与用于构建原始二进制文件的内容匹配。如果您打算使用 virtualenvpipenv ,请确保使用系统解释器。如果您使用类似 conda 的东西,解释器很可能与系统解释器不匹配,并且与ROS2二进制文件不兼容。 [待校准@6564]

通过 rosdep 安装 [待校准@6565]

包含第三方python包的最快方法是使用其相应的rosdep键 (如果有)。 rosdep 钥匙可以通过以下方式检查: [待校准@6566]

这些 rosdep 键可以添加到您的 package.xml 文件中,这表明您的包 (和依赖包) 依赖于这些键。在新工作区中,您还可以使用以下命令快速安装所有rosdep密钥: [待校准@6569]

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

如果您感兴趣的包目前没有 rosdep 键,可以按照 rosdep key contribution guide 键添加。 [待校准@6570]

要了解更多关于 rosdep 工具及其工作原理的信息,请咨询 rosdep documentation[待校准@6571]

通过包管理器安装 [待校准@6572]

如果您不想创建rosdep密钥,但该包在您的系统包管理器 (例如 apt ) 中可用,您可以通过以下方式安装和使用该包: [待校准@6573]

sudo apt install python3-serial

如果该软件包在 The Python Package Index (PyPi) 上可用,并且您想在系统上全局安装: [待校准@6574]

python3 -m pip install -U pyserial

如果该软件包在PyPi上可用,并且您想向用户安装lo调用y: [待校准@6575]

python3 -m pip install -U --user pyserial

通过虚拟环境安装 [待校准@6576]

首先,创建Colcon工作区: [待校准@6577]

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

然后设置您的虚拟环境: [待校准@6578]

# 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包: [待校准@6579]

python3 -m pip install gtsam pyserial… etc

现在,您可以构建工作区并运行依赖于虚拟环境中安装的包的python节点。 [待校准@6580]

# Source Foxy and build
source /opt/ros/foxy/setup.bash
colcon build

注解

如果你想在Bloom上发布你的包,你应该把你需要的包添加到 rosdep 中,见 rosdep key contribution guide[待校准@6581]