Windows (source)

Ce guide explique comment configurer un environnement de développement pour ROS 2 sous Windows.

Configuration requise

Seul Windows 10 est pris en charge.

Support linguistique

Assurez-vous d’avoir une locale qui supporte UTF-8. Par exemple, pour une installation de Windows 10 en chinois, vous devrez peut-être installer un package de langue anglaise.

Installation des prérequis

Installer Chocolatey

Chocolatey est un gestionnaire de paquets pour Windows, installez-le en suivant leurs instructions d’installation :

https://chocolatey.org/

Vous utiliserez Chocolatey pour installer d’autres outils de développement.

Installer Python

Ouvrez une invite de commande et tapez ce qui suit pour installer Python via Chocolatey :

choco install -y python --version 3.8.3

Install Visual C++ Redistributables

Ouvrez une invite de commande et tapez ce qui suit pour les installer via Chocolatey :

choco install -y vcredist2013 vcredist140

Installer OpenSSL

Téléchargez le programme d’installation OpenSSL Win64 OpenSSL v1.1.1n à partir de cette page. Faites défiler vers le bas de la page et téléchargez Win64 OpenSSL v1.1.1n. Ne téléchargez pas les versions Win32 ou Light, ni les programmes d’installation v3.X.Y.

Exécutez le programme d’installation avec les paramètres par défaut, car les commandes suivantes supposent que vous avez utilisé le répertoire d’installation par défaut.

Cette commande définit une variable d’environnement qui persiste au fil des sessions :

setx /m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg"

Vous devrez ajouter le dossier bin OpenSSL-Win64 à votre PATH. Vous pouvez le faire en cliquant sur l’icône Windows, en tapant « Variables d’environnement », puis en cliquant sur « Modifier les variables d’environnement système ». Dans la boîte de dialogue résultante, cliquez sur « Variables d’environnement », puis cliquez sur « Chemin » dans le volet inférieur, enfin cliquez sur « Modifier » et ajoutez le chemin ci-dessous.

  • C:\Program Files\OpenSSL-Win64\bin\

Installer Visual Studio

Installez Visual Studio 2019.

Si vous disposez déjà d’une version payante de Visual Studio 2019 (Professional, Enterprise), ignorez cette étape.

Microsoft fournit une version gratuite de Visual Studio 2019, nommée Community, qui peut être utilisée pour créer des applications utilisant ROS 2. Vous pouvez télécharger le programme d’installation directement via ce lien.

Assurez-vous que les fonctionnalités Visual C++ sont installées.

Un moyen simple de s’assurer qu’ils sont installés est de sélectionner le flux de travail Développement de bureau avec C++ lors de l’installation.

../../_images/windows-vs-studio-install.png

Assurez-vous qu’aucun outil C++ CMake n’est installé en les désélectionnant dans la liste des composants à installer.

Installer OpenCV

Certains exemples nécessitent l’installation d’OpenCV.

Vous pouvez télécharger une version précompilée d’OpenCV 3.4.6 à partir de https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip .

En supposant que vous l’avez décompressé dans C:\opencv, tapez ce qui suit sur une invite de commande (nécessite des privilèges d’administrateur) :

setx /m OpenCV_DIR C:\opencv

Puisque vous utilisez une version ROS précompilée, nous devons lui indiquer où trouver les bibliothèques OpenCV. Vous devez étendre la variable PATH à C:\opencv\x64\vc16\bin.

Installer les dépendances

Il existe quelques dépendances non disponibles dans la base de données du package Chocolatey. Afin de faciliter le processus d’installation manuelle, nous fournissons les packages Chocolatey nécessaires.

Comme certains packages chocolatés en dépendent, nous commençons par installer CMake

choco install -y cmake

Vous devrez ajouter le dossier CMake bin C:\Program Files\CMake\bin à votre PATH.

Veuillez télécharger ces packages depuis ce référentiel GitHub.

  • install.1.12.1.nupkg

  • puce.3.17.nupkg

  • cunit.2.1.3.nupkg

  • propre-3.3.4.nupkg

  • tinyxml-usestl.2.6.2.nupkg

  • tinyxml2.6.0.0.nupkg

Une fois ces packages téléchargés, ouvrez un shell d’administration et exécutez la commande suivante :

choco install -y -s <PATH\TO\DOWNLOADS\> asio cunit eigen tinyxml-usestl tinyxml2 bullet

Veuillez remplacer <PATH\TO\DOWNLOADS> par le dossier dans lequel vous avez téléchargé les packages.

Premier pip de mise à niveau et setuptools :

python -m pip install -U pip setuptools==59.6.0

Installez maintenant quelques dépendances Python supplémentaires :

python -m pip install -U catkin_pkg cryptography empy importlib-metadata lark==1.1.1 lxml matplotlib netifaces numpy opencv-python PyQt5 pillow psutil pycairo pydot pyparsing==2.4.7 pyyaml rosdistro

Installer Qt5

Téléchargez le 5.12.X offline installer depuis le site Web de Qt. Exécutez le programme d’installation. Assurez-vous de sélectionner le composant MSVC 2017 64-bit sous l’arborescence Qt -> Qt 5.12.12.

Enfin, dans une fenêtre administrateur cmd.exe, définissez ces variables d’environnement. Les commandes ci-dessous supposent que vous l’avez installé à l’emplacement par défaut de C:\Qt.

setx /m Qt5_DIR C:\Qt\Qt5.12.12\5.12.12\msvc2017_64
setx /m QT_QPA_PLATFORM_PLUGIN_PATH C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\platforms

Note

Ce chemin peut changer en fonction de la version de MSVC installée, du répertoire dans lequel Qt a été installé et de la version de Qt installée.

Dépendances RQt

Pour exécuter rqt_graph, vous devez télécharger et installer Graphviz. Le programme d’installation vous demandera si vous souhaitez ajouter graphviz à PATH, choisissez de l’ajouter à l’utilisateur actuel ou à tous les utilisateurs.

Installer des implémentations DDS supplémentaires (facultatif)

Si vous souhaitez utiliser un autre fournisseur DDS ou RTPS en plus du Fast DDS par défaut, vous pouvez trouver des instructions ici.

Prérequis supplémentaires

Lors de la construction à partir de la source, vous aurez besoin de quelques prérequis supplémentaires installés.

Installez les prérequis supplémentaires de Chocolatey

choco install -y cppcheck curl git winflexbison3

Vous devrez ajouter le dossier Git cmd C:\Program Files\Git\cmd au PATH (vous pouvez le faire en cliquant sur l’icône Windows, en tapant « Variables d’environnement », puis en cliquant sur « Modifier l’environnement système variables ». Dans la boîte de dialogue résultante, cliquez sur « Variables d’environnement », cliquez sur « Chemin » dans le volet inférieur, puis cliquez sur « Modifier » et ajoutez le chemin).

Installer les prérequis Python

Installation de dépendances Python supplémentaires :

pip install -U colcon-common-extensions coverage flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes mock mypy==0.931 pep8 pydocstyle pytest pytest-mock vcstool

Installer divers prérequis

Installez ensuite xmllint :

Obtenir le code ROS 2

Maintenant que nous avons les outils de développement, nous pouvons obtenir le code source de ROS 2.

Configurez d’abord un dossier de développement, par exemple C:\rolling :

Note

Il est très important que le chemin choisi soit court, en raison des courtes limites de chemin Windows par défaut (260 caractères). Pour autoriser des chemins plus longs, consultez https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry.

md \rolling\src
cd \rolling

Récupérez le fichier ros2.repos qui définit les dépôts à partir desquels cloner :

vcs import --input https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos src

Installer des implémentations DDS supplémentaires (facultatif)

Fast DDS est fourni avec la source ROS 2 et sera toujours construit à moins que vous ne mettiez un fichier COLCON_IGNORE dans le dossier src\eProsima.

Si vous souhaitez utiliser un autre fournisseur DDS ou RTPS en plus du fournisseur par défaut, vous pouvez trouver des instructions ici.

Construire le code ROS 2

Pour construire ROS 2, vous aurez besoin d’une invite de commande Visual Studio (« Invite de commande x64 Native Tools pour VS 2019 ») exécutée en tant qu’administrateur.

Pour construire l’arborescence de dossiers \rolling :

colcon build --merge-install

Note

Nous utilisons ici --merge-install pour éviter une variable PATH trop longue à la fin de la construction. Si vous adaptez ces instructions pour créer un espace de travail plus petit, vous pourrez peut-être utiliser le comportement par défaut qui est l’installation isolée, c’est-à-dire où chaque package est installé dans un dossier différent.

Note

Si vous faites une construction de débogage, utilisez python_d path\to\colcon_executable colcon. Voir Éléments supplémentaires pour le mode débogage pour plus d’informations sur l’exécution de code Python dans les versions de débogage sous Windows.

Configuration de l’environnement

Démarrez un shell de commande et sourcez le fichier de configuration ROS 2 pour configurer l’espace de travail :

call C:\rolling\install\local_setup.bat

Cela configurera automatiquement l’environnement pour tous les fournisseurs de DDS pour lesquels la prise en charge a été conçue.

Il est normal que la commande précédente, si rien d’autre ne s’est mal passé, affiche « Le système ne peut pas trouver le chemin spécifié ». exactement une fois.

Tester et exécuter

Notez que la première fois que vous exécutez un exécutable, vous devrez autoriser l’accès au réseau via une fenêtre contextuelle du pare-feu Windows.

Vous pouvez exécuter les tests à l’aide de cette commande :

colcon test --merge-install

Note

--merge-install ne doit être utilisé que s’il a également été utilisé dans l’étape de construction.

Ensuite, vous pouvez obtenir un résumé des tests à l’aide de cette commande :

colcon test-result

Pour exécuter les exemples, ouvrez d’abord un nouveau fichier cmd.exe et configurez l’espace de travail en sélectionnant le fichier local_setup.bat. Ensuite, lancez un talkerC++ :

call install\local_setup.bat
ros2 run demo_nodes_cpp talker

Dans un shell séparé, vous pouvez faire la même chose, mais à la place, exécutez un Python listener:

call install\local_setup.bat
ros2 run demo_nodes_py listener

Vous devriez voir le locuteur dire qu’il publie des messages et le auditeur dire J'ai entendu ces messages. Cela vérifie que les API C++ et Python fonctionnent correctement. Hourra !

Note

Il n’est pas recommandé de construire dans la même invite cmd que vous avez fourni le local_setup.bat.

Prochaines étapes après l’installation

Continuez avec les tutoriels et démos pour configurer votre environnement, créer votre propre espace de travail et vos packages, et apprendre les concepts de base de ROS 2.

Implémentations RMW supplémentaires (facultatif)

Le middleware par défaut utilisé par ROS 2 est Fast DDS, mais le middleware (RMW) peut être remplacé au moment de l’exécution. Consultez le guide pour savoir comment travailler avec plusieurs RMW.

Trucs supplémentaires pour le mode débogage

Si vous voulez pouvoir exécuter tous les tests en mode débogage, vous devrez installer quelques éléments supplémentaires :

  • Pour pouvoir extraire l’archive source Python, vous pouvez utiliser PeaZip :

choco install -y peazip
  • Vous aurez également besoin de SVN, car certaines des dépendances de construction source Python sont extraites via SVN :

choco install -y svn hg
  • Vous devrez quitter et redémarrer l’invite de commande après avoir installé ce qui précède.

  • Obtenez et extrayez la source Python 3.8.3 du tgz :

  • Maintenant, créez la source Python en mode débogage à partir d’une invite de commande Visual Studio :

cd C:\dev\Python-3.8.3\PCbuild
get_externals.bat
build.bat -p x64 -d
  • Enfin, copiez les produits de construction dans les répertoires d’installation de Python38, à côté de l’exécutable Python en mode Release et des DLL :

cd C:\dev\Python-3.8.3\PCbuild\amd64
copy python_d.exe C:\Python38 /Y
copy python38_d.dll C:\Python38 /Y
copy python3_d.dll C:\Python38 /Y
copy python38_d.lib C:\Python38\libs /Y
copy python3_d.lib C:\Python38\libs /Y
copy sqlite3_d.dll C:\Python38\DLLs /Y
for %I in (*_d.pyd) do copy %I C:\Python38\DLLs /Y
  • Maintenant, à partir d’une nouvelle invite de commande, assurez-vous que python_d fonctionne :

python_d -c "import _ctypes ; import coverage"
  • Une fois que vous avez vérifié le fonctionnement de python_d, il est nécessaire de réinstaller quelques dépendances avec les bibliothèques activées pour le débogage :

python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.18.4-cp38-cp38d-win_amd64.whl
python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.5.1-cp38-cp38d-win_amd64.whl
  • Pour vérifier l’installation de ces dépendances :

python_d -c "from lxml import etree ; import numpy"
  • Lorsque vous souhaitez revenir à la construction des binaires de version, il est nécessaire de désinstaller les variantes de débogage et d’utiliser les variantes de version :

python -m pip uninstall numpy lxml
python -m pip install numpy lxml
  • Pour créer des scripts python exécutables (.exe), python_d doit être utilisé pour invoquer colcon

python_d path\to\colcon_executable build
  • Hourra, vous avez terminé !

Tiens-toi à jour

Voir Maintenir la vérification de la source pour actualiser périodiquement votre installation source.

Dépannage

Les techniques de dépannage peuvent être trouvées ici.

Désinstaller

  1. Si vous avez installé votre espace de travail avec colcon comme indiqué ci-dessus, la « désinstallation » pourrait consister simplement à ouvrir un nouveau terminal et à ne pas rechercher le fichier setup de l’espace de travail. De cette façon, votre environnement se comportera comme s’il n’y avait pas d’installation progressive sur votre système.

  2. Si vous essayez également de libérer de l’espace, vous pouvez supprimer tout le répertoire de l’espace de travail avec :

    rmdir /s /q \ros2_rolling