Installation Docker
Quand choisir Docker
Section intitulée « Quand choisir Docker »- Vous ne voulez pas toucher à l’OS hôte (pas de dual-boot, pas de paquets apt).
- Vous travaillez sur macOS (pas de dual-boot ni de WSL pour faire tourner ROS nativement).
- Vous voulez un environnement jetable et reproductible, identique pour tout le monde.
Installer Docker
Section intitulée « Installer Docker »Installez Docker Engine en suivant la doc officielle, puis ajoutez votre utilisateur au groupe docker pour éviter sudo :
sudo usermod -aG docker $USERnewgrp dockerInstallez Docker Desktop. Il s’appuie sur WSL2 (activez l’intégration WSL dans les réglages).
Installez Docker Desktop (Apple Silicon ou Intel selon votre Mac).
Vérifiez que Docker fonctionne :
docker run hello-worldRécupérer le Dockerfile
Section intitulée « Récupérer le Dockerfile »L’image du cours part de l’image officielle ROS 2 Kilted et y ajoute Gazebo Ionic, le bridge ros_gz et les outils workspace. Le Dockerfile est hébergé sur le site :
mkdir -p ~/ros2_bootcamp_docker && cd ~/ros2_bootcamp_dockerwget https://ros2.etienne-schmitz.com/DockerfileBuilder l’image
Section intitulée « Builder l’image »cd ~/ros2_bootcamp_dockerdocker build -t ros2-bootcamp .Le build télécharge l’image de base et installe Gazebo + les paquets (quelques minutes la première fois).
Activer l’affichage GUI
Section intitulée « Activer l’affichage GUI »Gazebo et RViz ont besoin d’un serveur d’affichage. La marche à suivre dépend de l’OS hôte.
Autorisez les conteneurs locaux à accéder à votre serveur X :
xhost +local:dockerLe conteneur sera lancé avec -e DISPLAY et le montage de /tmp/.X11-unix (voir commande docker run ci-dessous).
Avec Docker Desktop sur WSL2, l’affichage est géré automatiquement par WSLg : aucune configuration nécessaire. La variable DISPLAY est déjà définie dans l’environnement WSL.
Installez XQuartz, puis dans ses Préférences → Sécurité, cochez Autoriser les connexions des clients réseau. Redémarrez XQuartz, puis :
xhost +localhostLe conteneur utilisera -e DISPLAY=host.docker.internal:0.
Lancer le conteneur
Section intitulée « Lancer le conteneur »On monte le workspace hôte ~/ros2_bootcamp_ws en volume pour que le code et les builds persistent entre deux lancements.
mkdir -p ~/ros2_bootcamp_wsdocker run -it --rm \ --name ros2-bootcamp \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v ~/ros2_bootcamp_ws:/root/ros2_bootcamp_ws \ ros2-bootcampDepuis un terminal WSL (Ubuntu) :
docker run -it --rm \ --name ros2-bootcamp \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v ~/ros2_bootcamp_ws:/root/ros2_bootcamp_ws \ ros2-bootcampdocker run -it --rm \ --name ros2-bootcamp \ -e DISPLAY=host.docker.internal:0 \ -v ~/ros2_bootcamp_ws:/root/ros2_bootcamp_ws \ ros2-bootcampVous obtenez un shell dans le conteneur, avec ROS 2 déjà sourcé. Testez l’affichage :
gz sim shapes.sdfUne fenêtre Gazebo doit s’ouvrir sur votre bureau.
Préparer le workspace dans le conteneur
Section intitulée « Préparer le workspace dans le conteneur »Le workspace est monté sur /root/ros2_bootcamp_ws. À l’intérieur du conteneur, la préparation est identique au parcours natif :
cd /root/ros2_bootcamp_wswget https://ros2.etienne-schmitz.com/bootcamp.reposvcs import src < bootcamp.reposrosdep install --from-paths src --ignore-src -r -ycolcon build --symlink-installProchaine étape
Section intitulée « Prochaine étape »Cours conçu et animé par Etienne Schmitz