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 :
- Matériel : reComputer J3010 (Nvidia Jetson Orin Nano), écran, clavier et souris.
- Logiciels : Jetpack 5.1.1, Ubuntu 20.04, ROS Noetic, Python et C++.
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.
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 :
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 version | Distribution | Date de sortie | Date de fin de support |
|---|---|---|---|
| Boxturtle | ROS 1 | Mars 2010 | Mars 2011 |
| C Turtle | ROS 1 | Août 2010 | Août 2011 |
| Diamondback | ROS 1 | Mars 2011 | Novembre 2012 |
| Electric Emys | ROS 1 | Août 2011 | Janvier 2013 |
| Fuerte | ROS 1 | Avril 2012 | Juillet 2013 |
| Groovy Galapagos | ROS 1 | Décembre 2012 | Mai 2014 |
| Hydro Medusa | ROS 1 | Septembre 2013 | Mai 2015 |
| Indigo Igloo | ROS 1 | Juillet 2014 | Avril 2019 |
| Jade Turtle | ROS 1 | Mai 2015 | Mai 2017 |
| Kinetic Kame | ROS 1 | Mai 2016 | Avril 2021 |
| Lunar Loggerhead | ROS 1 | Mai 2017 | Mai 2019 |
| Melodic Morenia | ROS 1 | Mai 2018 | Mai 2023 |
| Noetic Ninjemys | ROS 1 | Mai 2020 | Mai 2025 |
| Foxy Fitzroy | ROS 2 | Juin 2020 | Juin 2023 |
| Galactic Geochelone | ROS 2 | Mai 2021 | Novembre 2022 |
| Humble Hawksbill | ROS 2 | Mai 2022 | Mai 2027 |
| Rolling Ridley | ROS 2 | En cours | En 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.
-
Créer un espace de travail ROS
bashmkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make -
Sourcer le fichier setup
bashsource devel/setup.bash -
Exécuter une démo
bashroscoreOuvrez un autre terminal et exécutez :
bashrosrun turtlesim turtlesim_nodeOuvrez encore un autre terminal et exécutez :
bashrosrun 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
-
Pour l'installation de VSCode, veuillez consulter le tutoriel précédent : 3.1-Python et notions fondamentales de programmation
-
Installez des outils tels que
Python,ROS,C++etCMake Toolsdepuis la marketplace d'extensions de VSCode.
Installer le terminal multifonction Terminator.
-
Installer
bashsudo apt-get update sudo apt install terminator
-
Afficher les applications ---> Rechercher « Terminator » ---> Clic droit et sélectionner « Ajouter aux favoris »
-
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