Utilisation de packages Python avec ROS 2
Objectif : Expliquer comment interagir avec d’autres packages Python de l’écosystème ROS2.
Contenu
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 :
https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml
https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml
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.