Vue d'ensemble de ROS et configuration de l'environnement

Introduction

Ce tutoriel offre une vue d'ensemble concise de ROS (Robot Operating System) et vous guide dans l'installation rapide et la prise en main de ROS sur le reComputer J3010 Nvidia Jetson Orin Nano. À la fin de ce tutoriel, vous disposerez d'un environnement ROS opérationnel et serez capable d'exécuter une simple démo ROS.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin du matériel et des logiciels suivants :

J3010

Introduction au développement de ROS

Qu'est-ce que ROS ?

ROS (Robot Operating System) est un framework open source pour le développement logiciel de robots. Il fournit une couche de communication structurée au-dessus des systèmes d'exploitation hôtes d'un cluster de calcul hétérogène. ROS est conçu pour être aussi léger que possible et se compose de deux parties :

  • Système ROS (ROS) : La plomberie qui gère la communication entre les processus. Il s'agit du middleware permettant aux différentes parties d'un robot de communiquer entre elles.
  • Paquets ROS : Bibliothèques et outils nécessaires pour écrire des applications robotiques.

J3010

Pourquoi ROS ?

ROS simplifie la création de comportements robotiques complexes et robustes sur une grande variété de plateformes robotiques. Voici quelques-uns des principaux objectifs et avantages de ROS :

  • Développement rapide : Fournit une plateforme standard qui accélère le développement, de la recherche à la production.
  • Communauté mondiale : Soutenu par une communauté large et active qui contribue à améliorer le logiciel.
  • Bilan éprouvé : Largement utilisé dans la robotique académique et commerciale.
  • Délai de mise sur le marché : Aide à réduire le temps de développement produit grâce à des outils et bibliothèques complets.
  • Polyvalence : Prend en charge plusieurs domaines et plateformes, y compris les systèmes embarqués.
  • Open source : Libre d'utilisation, de modification et d'extension, favorisant l'innovation et la collaboration.
  • Compatible avec un usage commercial : Distribué sous des licences permissives comme Apache 2.0.

Histoire et développement de ROS

L'histoire de ROS (Robot Operating System) est intimement liée à l'évolution plus large de la robotique :

J3010

Premiers développements en robotique

  • 1959 : L'aventure de la robotique a commencé avec la mise au point du premier robot automatisé.
  • 1972 : Apparition de robots capables d'interagir avec leur environnement.
  • 1982 : Intégration des robots dans les systèmes informatiques pour des tâches complexes.
  • 1988 : Avancées dans l'automatisation robotique et les systèmes de contrôle.
  • 2002 : Introduction de robots grand public, comme le Roomba, pour les tâches ménagères.
  • 2003 : Extension de l'exploration robotique à Mars avec des rovers.
  • 2005 : Rôles cruciaux dans l'automatisation industrielle, illustrés par les robots d'entrepôt.

Histoire et développement de ROS

Premiers développements en robotique

  • 1959 : L'aventure de la robotique a commencé avec la mise au point du premier robot automatisé.
  • 1972 : Apparition de robots capables d'interagir avec leur environnement.
  • 1982 : Intégration des robots dans les systèmes informatiques pour des tâches complexes.
  • 1988 : Avancées dans l'automatisation robotique et les systèmes de contrôle.
  • 2002 : Introduction de robots grand public, comme le Roomba, pour les tâches ménagères.
  • 2003 : Extension de l'exploration robotique à Mars avec des rovers.
  • 2005 : Rôles cruciaux dans l'automatisation industrielle, illustrés par les robots d'entrepôt.

La naissance de ROS

  • 2007 : Le développement de ROS a débuté sous le nom de « Switchyard » au Stanford Artificial Intelligence Laboratory par Morgan Quigley, Eric Berger et Andrew Ng. L'objectif était de remédier au manque d'infrastructure logicielle partagée dans la recherche en robotique.
  • 2008 : Le développement s'est poursuivi à Willow Garage, un laboratoire de recherche en robotique.
  • 2009 : Établissement officiel de ROS, marqué par la première version publiée.

Croissance et évolution

  • 2010 : Sortie de ROS 1.0, Willow Garage jouant un rôle crucial dans son développement et la croissance de la communauté.
  • 2014 : Apparition de robots sociaux et de service comme Pepper, mettant en avant les avancées dans l'interaction homme-robot.
  • 2021 : ROS évolue pour prendre en charge des systèmes robotiques sophistiqués et polyvalents pour diverses applications.

Calendrier des versions de ROS

Nom de la versionDistributionDate de sortieDate de fin de support
BoxturtleROS 1Mars 2010Mars 2011
C TurtleROS 1Août 2010Août 2011
DiamondbackROS 1Mars 2011Novembre 2012
Electric EmysROS 1Août 2011Janvier 2013
FuerteROS 1Avril 2012Juillet 2013
Groovy GalapagosROS 1Décembre 2012Mai 2014
Hydro MedusaROS 1Septembre 2013Mai 2015
Indigo IglooROS 1Juillet 2014Avril 2019
Jade TurtleROS 1Mai 2015Mai 2017
Kinetic KameROS 1Mai 2016Avril 2021
Lunar LoggerheadROS 1Mai 2017Mai 2019
Melodic MoreniaROS 1Mai 2018Mai 2023
Noetic NinjemysROS 1Mai 2020Mai 2025
Foxy FitzroyROS 2Juin 2020Juin 2023
Galactic GeocheloneROS 2Mai 2021Novembre 2022
Humble HawksbillROS 2Mai 2022Mai 2027
Rolling RidleyROS 2En coursEn cours

Aujourd'hui, ROS est maintenu par Open Robotics, une organisation à but non lucratif dédiée au développement du système central de ROS, y compris ROS 2.0, qui intègre des améliorations pour les systèmes temps réel et embarqués, ainsi que d'autres outils et bibliothèques.

Installation de l'environnement ROS et expérience rapide

Installer ROS1

  • Étape 1 : Ouvrez un terminal et mettez à jour les paquets système.
    bash
    sudo apt update 
    sudo apt upgrade
  • Étape 2 : Installez les outils de base.
    bash
    sudo apt install curl gnupg2 lsb-release
  • Étape 3 : Ajoutez la clé du dépôt ROS.
    bash
    sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
  • Étape 4 : Ajoutez le dépôt ROS.
    bash
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  • Étape 5 : Mettez à jour la liste des paquets.
    bash
    sudo apt update
  • Étape 6 : Installez ros-noetic-desktop-full.
    bash
    sudo apt install ros-noetic-desktop-full
    sudo apt-get install python3-rosdep
  • Étape 7 : Initialisez rosdep.
    bash
    sudo rosdep init
    rosdep update
  • Étape 8 : Configurez les variables d'environnement de ROS.
    bash
    echo "source /opt/ros/noetic/setup.bash">> ~/.bashrc &&
    source ~/.bashrc
  • Étape 9 : Installez les outils de dépendance.
    bash
    sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
  • Étape 10 : Testez l'installation.
    bash
    roscore

Démarrage rapide avec ROS

Pour découvrir ROS rapidement, créons un espace de travail ROS et exécutons une démo simple.

  1. Créer un espace de travail ROS

    bash
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
  2. Sourcer le fichier setup

    bash
    source devel/setup.bash
  3. Exécuter une démo

    bash
    roscore

    Ouvrez un autre terminal et exécutez :

    bash
    rosrun turtlesim turtlesim_node

    Ouvrez encore un autre terminal et exécutez :

    bash
    rosrun turtlesim turtle_teleop_key

Cette démo rapide montre une tortue robot graphique que vous pouvez contrôler au clavier.

Installation de logiciels de développement courants pour ROS

Installation de VSCode et des extensions de développement ROS

  1. Pour l'installation de VSCode, veuillez consulter le tutoriel précédent : 3.1-Python et notions fondamentales de programmation

  2. Installez des outils tels que Python, ROS, C++ et CMake Tools depuis la marketplace d'extensions de VSCode.

Installer le terminal multifonction Terminator.

  1. Installer

    bash
    sudo apt-get update
    sudo apt install terminator
  2. Afficher les applications ---> Rechercher « Terminator » ---> Clic droit et sélectionner « Ajouter aux favoris »

  3. Raccourcis courants de Terminator

    • Alt + Up : Aller au terminal du dessus
    • Alt + Down : Aller au terminal du dessous
    • Alt + Left : Aller au terminal de gauche
    • Alt + Right : Aller au terminal de droite
    • Ctrl + Shift + O : Diviser le terminal horizontalement
    • Ctrl + Shift + E : Diviser le terminal verticalement
    • Ctrl + Shift + Right : Déplacer le séparateur vers la droite dans un terminal divisé verticalement
    • Ctrl + Shift + Left : Déplacer le séparateur vers la gauche dans un terminal divisé verticalement
    • Ctrl + Shift + Up : Déplacer le séparateur vers le haut dans un terminal divisé horizontalement
    • Ctrl + Shift + Down : Déplacer le séparateur vers le bas dans un terminal divisé horizontalement
    • Ctrl + Shift + S : Masquer/Afficher la barre de défilement
    • Ctrl + Shift + F : Rechercher
    • Ctrl + Shift + C : Copier le contenu sélectionné dans le presse-papiers
    • Ctrl + Shift + V : Coller le contenu du presse-papiers
    • Ctrl + Shift + W : Fermer le terminal courant
    • Ctrl + Shift + Q : Quitter la fenêtre courante, fermant tous les terminaux qu'elle contient
    • Ctrl + Shift + X : Maximiser le terminal courant
    • Ctrl + Shift + Z : Maximiser le terminal courant et agrandir la police
    • Ctrl + Shift + N ou Ctrl + Tab : Aller au terminal suivant
    • Ctrl + Shift + P ou Ctrl + Shift + Tab : Aller au terminal précédent
    • F11 : Basculer en plein écran
    • Ctrl + Shift + T : Ouvrir un nouvel onglet
    • Ctrl + PageDown : Aller à l'onglet suivant
    • Ctrl + PageUp : Aller à l'onglet précédent
    • Ctrl + Shift + PageDown : Échanger l'onglet courant avec le suivant
    • Ctrl + Shift + PageUp : Échanger l'onglet courant avec le précédent
    • Ctrl + Plus (+) : Agrandir la taille de la police
    • Ctrl + Minus (-) : Réduire la taille de la police
    • Ctrl + Zero (0) : Rétablir la taille de police d'origine
    • Ctrl + Shift + R : Réinitialiser l'état du terminal
    • Ctrl + Shift + G : Réinitialiser l'état du terminal et effacer l'écran
    • Super + g : Lier tous les terminaux, l'entrée étant dupliquée dans tous
    • Super + Shift + G : Délier tous les terminaux
    • Super + t : Lier tous les terminaux de l'onglet courant, l'entrée étant dupliquée
    • Super + Shift + T : Délier les terminaux de l'onglet courant
    • Ctrl + Shift + I : Ouvrir une nouvelle fenêtre, partageant le processus avec la fenêtre d'origine
    • Super + i : Ouvrir une nouvelle fenêtre avec un processus distinct