Aller au contenu

Installation native (Ubuntu / WSL)

ROS 2 Kilted Kaiju cible Ubuntu 24.04 LTS (Noble Numbat).

Récupérez l’image officielle Ubuntu Desktop 24.04 LTS :

Rufus est l’outil le plus simple sous Windows.

  1. Téléchargez Rufus : rufus.ie. La version portable suffit.

  2. Branchez votre clé USB (≥ 8 Go). Sauvegardez son contenu, elle sera effacée.

  3. Lancez Rufus, puis :

    • Périphérique : votre clé USB.
    • Sélection du démarrage : cliquez sur SELECTION et choisissez l’ISO Ubuntu téléchargée.
    • Schéma de partition : GPT.
    • Système de destination : UEFI (non CSM).
    • Système de fichiers : FAT32.
  4. Cliquez sur DÉMARRER. Si Rufus demande le mode d’écriture, choisissez mode image ISO.

  5. Attendez la fin de l’écriture (5 à 15 minutes selon la clé), puis éjectez proprement.

  1. Insérez la clé sur la machine cible, allumez-la, et entrez dans le menu de boot (touche au démarrage selon le constructeur : F12, F10, F2, Suppr, Esc).

  2. Sélectionnez l’entrée correspondant à votre clé USB (souvent préfixée UEFI:).

  3. Si l’écran reste noir : désactivez Secure Boot dans le BIOS/UEFI, puis réessayez.

Au démarrage du live USB, choisissez Try or Install Ubuntu, puis :

  • Langue : English.
  • Disposition clavier : French selon votre clavier physique.
  • Mises à jour pendant l’installation : Téléchargements normaux + cocher Logiciels tiers.
  • Type d’installation :
    • Poste dédié au cours → Effacer le disque et installer Ubuntu.
    • Dual-boot avec Windows → Autre chose (partition manuelle), prévoir au moins 40 Go pour / + une swap.
  • Compte : créez un utilisateur, mot de passe robuste.

L’installation dure 10 à 20 minutes. Redémarrez, retirez la clé USB quand demandé.

Une fois sur le bureau Ubuntu, ouvrez un terminal (Ctrl+Alt+T) et appliquez les mises à jour :

Fenêtre de terminal
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y curl git build-essential

Rebootez si le noyau a été mis à jour :

Fenêtre de terminal
sudo reboot

ROS 2 et Gazebo s’installent ensemble : le bridge ros_gz fait le lien entre les deux et c’est la combinaison utilisée tout au long du cours.

  1. Locale UTF-8. Configurez la locale du système en en_US.UTF-8 :

    Fenêtre de terminal
    locale # vérifie la locale courante
    sudo apt update && sudo apt install -y locales
    sudo locale-gen en_US en_US.UTF-8
    sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
    export LANG=en_US.UTF-8
  2. Ajouter le dépôt ROS 2.

    Fenêtre de terminal
    sudo apt install -y software-properties-common
    sudo add-apt-repository universe
    sudo apt update && sudo apt install -y curl
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
    -o /usr/share/keyrings/ros-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
    http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \
    | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
  3. Installer les paquets. Le métapaquet ros-kilted-desktop inclut RViz 2, les démos, et la majorité des paquets utiles ; on y ajoute joint-state-publisher (visualisation URDF, sliders de joints), foxglove-bridge (pont WebSocket pour Foxglove) et ros2controlcli (le CLI ros2 control pour lister et inspecter les contrôleurs ros2_control, utilisé au Jour 3 Manipulation et en Navigation — ros-kilted-desktop ne l’inclut pas), moveit-py (le binding Python moveit.planning.MoveItPy du pick & place au Jour 3 Manipulation, non tiré par ros-kilted-desktop) et la stack image cv-bridge / image-transport / image-publisher (acquisition et conversion d’images au Jour 4 Vision), tous utilisés tout au long du cours.

    Fenêtre de terminal
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y \
    ros-kilted-desktop \
    python3-argcomplete \
    ros-kilted-joint-state-publisher \
    ros-kilted-joint-state-publisher-gui \
    ros-kilted-foxglove-bridge \
    ros-kilted-ros2controlcli \
    ros-kilted-moveit-py \
    ros-kilted-cv-bridge \
    ros-kilted-image-transport \
    ros-kilted-image-publisher
  4. Sourcer ROS 2 dans votre ~/.bashrc, puis vérifier que ros2 répond.

    Fenêtre de terminal
    echo "source /opt/ros/kilted/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    ros2 --help

Dans deux terminaux différents :

Fenêtre de terminal
ros2 run demo_nodes_cpp talker

Le listener doit afficher en continu les messages Hello World: N publiés par le talker. Si oui, ROS 2 est opérationnel.

  1. Ajouter le dépôt OSRF et installer Gazebo Ionic.

    Fenêtre de terminal
    sudo curl -sSL https://packages.osrfoundation.org/gazebo.gpg \
    -o /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] \
    http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" \
    | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
    sudo apt update && sudo apt install -y gz-ionic
  2. Tester Gazebo seul. Une fenêtre doit s’ouvrir avec quelques formes ; fermez-la (Ctrl+C dans le terminal).

    Fenêtre de terminal
    gz sim shapes.sdf
  3. Installer le bridge ros_gz, qui permet à ROS 2 et Gazebo de s’échanger des messages.

    Fenêtre de terminal
    sudo apt install -y ros-kilted-ros-gz

Test rapide du bridge, dans trois terminaux :

Fenêtre de terminal
gz sim -r shapes.sdf

Vous devez voir le /clock ROS avancer pendant que Gazebo simule.

Le workspace ~/ros2_bootcamp_ws/ est votre dossier de travail local pour tout le cours : vous le construisez sur votre machine et vous y tirez les repos robots via vcstool.

L’étape 1 (outils + rosdep init) est à faire une seule fois sur votre machine ; les suivantes constituent le workspace.

  1. Installez les outils workspace, puis initialisez rosdep :

    Fenêtre de terminal
    sudo apt install -y \
    python3-colcon-common-extensions \
    python3-rosdep \
    python3-vcstool \
    git
    sudo rosdep init
    rosdep update
  2. Créez le dossier et placez-vous dedans :

    Fenêtre de terminal
    mkdir -p ~/ros2_bootcamp_ws/src
    cd ~/ros2_bootcamp_ws
  3. Récupérez bootcamp.repos (la liste des repos robots, hébergée sur le site du cours) et importez les repos avec vcstool :

    Fenêtre de terminal
    wget https://ros2.etienne-schmitz.com/bootcamp.repos
    vcs import src < bootcamp.repos
  4. Installez les dépendances système des packages, puis lancez le premier build :

    Fenêtre de terminal
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install

Le flag --symlink-install permet de modifier les fichiers Python / launch sans rebuilder.

À chaque ouverture de terminal, deux choses doivent être sourcées : d’abord ROS 2, puis votre workspace. La source ROS a déjà été ajoutée à votre ~/.bashrc à l’étape ROS ; il ne reste qu’à y ajouter le workspace :

Fenêtre de terminal
echo "source ~/ros2_bootcamp_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

Votre ~/.bashrc doit alors contenir les deux lignes, dans cet ordre :

Fenêtre de terminal
source /opt/ros/kilted/setup.bash # ajouté à l'étape ROS
source ~/ros2_bootcamp_ws/install/setup.bash # ajouté ici

Vérifier l’environnement.

Cours conçu et animé par Etienne Schmitz