Utilisation de packages Python avec ROS 2

Objectif : Expliquer comment interagir avec d’autres packages Python de l’écosystème ROS2.

Note

Une mise en garde, si vous avez l’intention d’utiliser des binaires pré-emballés (soit des fichiers deb, soit les distributions binaires « fat »), l’interpréteur Python doit correspondre à ce qui a été utilisé pour construire les binaires d’origine. Si vous avez l’intention d’utiliser quelque chose comme virtualenv ou pipenv, assurez-vous d’utiliser l’interpréteur système. Si vous utilisez quelque chose comme conda, il est très probable que l’interpréteur ne correspondra pas à l’interpréteur système et sera incompatible avec les binaires ROS2.

Installation via rosdep

Le moyen le plus rapide d’inclure des packages python tiers consiste à utiliser leurs clés rosdep correspondantes, si elles sont disponibles. Les clés rosdep peuvent être vérifiées via :

Ces clés rosdep peuvent être ajoutées à votre fichier package.xml, ce qui indique au système de construction que votre paquet (et les paquets dépendants) dépendent de ces clés. Dans un nouvel espace de travail, vous pouvez également installer rapidement toutes les clés rosdep avec :

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

S’il n’y a pas actuellement de clés rosdep pour le package qui vous intéresse, il est possible de les ajouter en suivant le guide de contribution des clés rosdep.

Pour en savoir plus sur l’outil rosdep et son fonctionnement, consultez la documentation rosdep.

Installation via un gestionnaire de paquets

Si vous ne souhaitez pas créer de clé rosdep, mais que le package est disponible dans votre gestionnaire de packages système (par exemple, apt), vous pouvez installer et utiliser le package de cette manière :

sudo apt install python3-serial

Si le package est disponible sur The Python Package Index (PyPI) et que vous souhaitez l’installer globalement sur votre système :

python3 -m pip install -U pyserial

Si le package est disponible sur PyPI et que vous souhaitez l’installer localement chez votre utilisateur :

python3 -m pip install -U --user pyserial

Installation via un environnement virtuel

Tout d’abord, créez un espace de travail Colcon :

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

Configurez ensuite votre environnement virtuel :

# 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

Ensuite, installez les packages Python que vous souhaitez dans votre environnement virtuel :

python3 -m pip install gtsam pyserial… etc

Vous pouvez maintenant créer votre espace de travail et exécuter votre nœud python qui dépend des packages installés dans votre environnement virtuel.

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

Note

Si vous souhaitez publier votre package sur Bloom, vous devez ajouter les packages dont vous avez besoin à rosdep, voir le rosdep key contribution guide.