Maison  >  Article  >  Opération et maintenance  >  Quelle version de Linux est ros ?

Quelle version de Linux est ros ?

青灯夜游
青灯夜游original
2023-04-12 16:13:061340parcourir

ros est une distribution Linux. Le nom complet de ROS est Robot Operating System, qui se traduit par système d'exploitation robot ; il est basé sur le noyau Linux et ne peut fonctionner que sous Linux. ROS fournit certains services standard du système d'exploitation, tels que l'abstraction matérielle, le contrôle des périphériques sous-jacents, l'implémentation de fonctions communes, la messagerie inter-processus et la gestion des paquets. ROS peut être divisé en deux couches. La couche inférieure est la couche du système d'exploitation décrite ci-dessus, et la couche supérieure est constituée des différents progiciels fournis par la large base d'utilisateurs pour mettre en œuvre différentes fonctions, telles que la cartographie de positionnement, la planification d'actions, la perception, etc. .

Quelle version de Linux est ros ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Introduction à la définition de ROS

ROS signifie Robot Operating System, qui se traduit par système d'exploitation de robot. Basé sur le noyau Linux, il ne fonctionne actuellement que sous Linux.

Les concepteurs de ROS décrivent ROS comme « ROS = Plumbing + Tools + Capabilities + Ecosystem », c'est-à-dire que ROS est un ensemble de mécanismes de communication, de progiciels d'outils, de compétences robotiques de haut niveau et d'écosystèmes robotiques.

Comme son nom l'indique, ROS est un système. Il est similaire au système d'exploitation ordinaire que nous utilisons. ROS encapsule le matériel sous-jacent du robot. En d'autres termes, les différents paramètres sous-jacents contenus dans les différents robots sont les mêmes aux yeux de ceux qui utilisent ROS pour développer. Il convient également de mentionner ici que ROS ne dispose actuellement pas d'interface visuelle. Les Windows et Linux que nous utilisons peuvent voir et faire fonctionner directement l'interface d'image car ils ont une interface visuelle, mais pas ROS. Ce que nous appelons un système d'exploitation ne doit pas nécessairement avoir une interface visuelle. Si vous êtes intéressé, vous pouvez jeter un œil aux premiers systèmes d'exploitation, qui n'avaient que des lignes de commande et aucune interface colorée.

ROS fournit certains services de système d'exploitation standard, tels que l'abstraction matérielle, le contrôle des périphériques sous-jacents, la mise en œuvre de fonctions communes, la messagerie inter-processus et la gestion des paquets. ROS est basé sur une architecture graphique, de sorte que les processus sur différents nœuds peuvent recevoir, publier et regrouper diverses informations (telles que la détection, le contrôle, l'état, la planification, etc.).

ROS peut être divisé en deux couches. La couche inférieure est la couche du système d'exploitation décrite ci-dessus, et la couche supérieure est constituée des différents progiciels fournis par la large base d'utilisateurs pour mettre en œuvre différentes fonctions, telles que la cartographie de positionnement, la planification des actions, la perception. , simulations, etc.

ROS est un mot polysémique, il peut aussi être un mécanisme de communication. Dans le développement ROS, les applications sont représentées par des nœuds (Node) et un nœud est un programme exécutable. La communication entre les nœuds se fait via ROS. ROS gère chaque nœud via le gestionnaire de nœuds (Maître). Quant à la mise en œuvre spécifique du principe, nous en reparlerons plus tard.

De plus, ROS représente également une série de boîtes à outils, d'algorithmes, de compétences, de plateformes, d'écologie, etc. pour le développement de robots.

L'histoire de ROS. Pour parler franchement, ROS est quelque chose qu'un groupe de grands pensent être meilleur lors du développement de robots (il peut s'agir de bibliothèques et de logiciels utiles, ou d'idées, de protocoles et de normes) qui sont formés après leur rassemblement. Dans le développement de robots, il n'existe pas de norme unifiée pour différents robots. Chaque fois que vous développez un robot que vous n'avez jamais vu auparavant, vous devez réapprendre beaucoup de choses, ce qui est très gênant. Par conséquent, les grands tirent des leçons. du système d'exploitation pour créer, j'ai pensé pourquoi ne pas pouvoir également construire un système permettant aux robots d'encapsuler la couche inférieure ? Ainsi, ROS est né. Après des années de polissage, ROS est devenu de plus en plus parfait et de plus en plus de personnes l'utilisent.

Fonction ROS

Si vous voulez me demander ce que fait ROS, alors vous n'avez besoin de connaître qu'une seule phrase. ROS est utilisé pour le développement de robots ou de bras robotisés.

Dans l'histoire du développement des robots, aucun travail de normalisation n'a été effectué. Différents robots utilisent différents systèmes, programmes, etc., ce qui rend leur développement très difficile tant qu'ils sont multiplateformes. C'est pour résoudre ces problèmes que ROS est né. ROS peut rendre le matériel sous-jacent transparent pour les développeurs grâce à l'encapsulation, réduisant ainsi considérablement la difficulté du développement multiplateforme.

La raison pour laquelle nous choisissons ROS est que tout le monde doit comprendre ce qui a été dit ci-dessus. Ce n'est rien de plus qu'il est utilisé par de nombreuses personnes et qu'il jouit d'une grande popularité. ROS contient beaucoup de champs, de données, de fonctions, de contenus, de connaissances, etc. Vous souhaitez compiler votre propre base de données sans l'utiliser ?

1. Caractéristiques de performance de ROS

Avant d'apprendre formellement ROS, nous présenterons d'abord plusieurs fonctionnalités de ROS, à savoir le méta-système d'exploitation, le mécanisme de communication distribué, le cadre logiciel faiblement couplé, la riche bibliothèque de fonctions open source, etc. pour nous aider Établissons une certaine compréhension perceptive.

ROS est un méta-système d'exploitation dans le domaine de la robotique. En d’autres termes, il ne s’agit pas d’un système d’exploitation au sens propre du terme. La planification des tâches sous-jacentes, la compilation, les pilotes de périphériques, etc. sont toujours complétés par son système d’exploitation natif Ubuntu Linux.

ROS est en fait un sous-système d'exploitation fonctionnant sur Ubuntu Linux, ou un framework logiciel, mais il fournit des fonctions similaires au système d'exploitation telles que l'abstraction matérielle, l'appel de fonctions et la gestion de processus, et fournit également des fonctions d'acquisition, de compilation. et des fonctions et outils multiplateformes.

L'idée principale de ROS est de transformer les fonctions logicielles du robot en nœuds, et les nœuds communiquent en s'envoyant des messages. Ces nœuds peuvent être déployés sur le même hôte, sur des hôtes différents ou même sur Internet. Le nœud maître (maître) du mécanisme de communication du réseau ROS est responsable de la gestion et de la planification du processus de communication entre les différents nœuds du réseau, tout en fournissant un service de configuration des paramètres globaux du réseau.

ROS est un cadre logiciel faiblement couplé qui utilise un mécanisme de communication distribué pour réaliser une communication de processus entre les nœuds. Le code logiciel de ROS est organisé de manière faiblement couplée, avec un processus de développement flexible et une gestion et une maintenance faciles.

ROS dispose d'une riche bibliothèque de fonctions open source. ROS est un logiciel open source basé sur le protocole BSD (Berkeley Software Distribution), qui permet à quiconque de le modifier, de le réutiliser, de le redistribuer et de l'utiliser dans des produits commerciaux et fermés. Grâce à ROS, vous pouvez rapidement créer votre propre prototype de robot.

2. Distribution ROS

Semblable à la distribution Linux, la distribution ROS a intégré une série de packages de fonctions couramment utilisés, qui consistent à empaqueter et à installer le système ROS dans le système natif. ROS a été initialement développé sur la base du système Ubuntu. Le nom de la version finale de ROS adopte également les mêmes règles qu'Ubuntu, c'est-à-dire que le nom de la version se compose de deux mots anglais avec la même première lettre et que les premières lettres de la version sont sélectionnées. par ordre croissant de l'alphabet, la figure 1-1 montre quelques versions majeures de ROS.

Quelle version de Linux est ros ?
Figure 1-1 Versions principales de ROS

Architecture du système ROS

Après avoir installé ROS, de nombreux amis devraient être impatients de commencer à écrire des programmes immédiatement. L'architecture de ROS étant relativement complexe, afin de comprendre facilement les différents concepts rencontrés par la suite, abordons d'abord l'architecture système de ROS afin que chacun puisse avoir une compréhension globale des différents concepts de ROS. Selon le communiqué officiel, l'architecture ROS peut être comprise du point de vue du graphique de calcul, du système de fichiers et de la communauté open source.

1. Comprendre l'architecture ROS du point de vue d'un graphe informatique

L'unité de base des programmes exécutables dans ROS est appelée node (nœud). Les nœuds communiquent via le mécanisme de message, formant ainsi un diagramme de réseau. un graphique de calcul, comme le montre la figure 1-3.

Quelle version de Linux est ros ?
Figure 1-3 Structure du graphique de calcul ROS

Les nœuds sont des programmes exécutables, généralement également appelés processus. Chaque programme exécutable créé dans le package de fonctions ROS devient un nœud ROS après avoir été démarré et chargé dans le processus système, tel que le nœud 1, le nœud 2, le nœud 3, etc. dans la figure 1-3.

Les nœuds communiquent en envoyant et en recevant des messages. Les mécanismes d'envoi et de réception de messages sont divisés en trois types : topic(topic), service(service) et action(action), comme le montre la figure 1-3. Nœud 2 et nœud 3. Les nœuds 2 et 5 utilisent la communication thématique, les nœuds 2 et 4 utilisent la communication de service, et les nœuds 1 et 2 utilisent la communication d'action. Les nœuds, sujets, services et actions dans le graphique de calcul doivent avoir des noms uniques comme identifiants.

ROS utilise des nœuds pour découpler le code et les fonctions, améliorant ainsi la tolérance aux pannes et la maintenabilité du système. Il est donc préférable que chaque nœud remplisse une fonction unique spécifique plutôt que de créer un énorme nœud global. Si vous utilisez C++ pour écrire des nœuds, vous devez utiliser la bibliothèque roscpp fournie par ROS ; si vous utilisez Python pour écrire des nœuds, vous devez utiliser la bibliothèque rospy fournie par ROS.

Les messages sont la clé du graphique de calcul, y compris le mécanisme de message et le type de message. Il existe trois types de mécanismes de message : sujet, service et action. Les données transférées dans chaque mécanisme de message ont un type de données spécifique (c'est-à-dire que les types de message peuvent être divisés en types de message de sujet, types de message de service et types de message d'action). Le mécanisme de message et les types de message seront expliqués dans la section 1.5.

Data package (rosbag) est un fichier dans ROS spécialement utilisé pour enregistrer et lire des données dans des sujets. Certaines données de capteur difficiles à collecter peuvent être enregistrées dans des packages de données, puis lues à plusieurs reprises pour déboguer les performances de l'algorithme.

Le serveur de paramètres peut fournir des paramètres facilement modifiés pour les nœuds de l'ensemble du réseau ROS. Les paramètres peuvent être considérés comme des variables globales dans le nœud pouvant être modifiées en externe, notamment les paramètres statiques et les paramètres dynamiques. Les paramètres statiques sont généralement utilisés pour définir le mode de fonctionnement du nœud au démarrage du nœud ; les paramètres dynamiques peuvent être utilisés pour configurer dynamiquement le nœud ou modifier l'état de fonctionnement du nœud lorsque le nœud est en cours d'exécution, tels que les paramètres de contrôle PID dans le nœud de contrôle du moteur.

Le nœud maître est responsable de la planification et de la gestion du processus de communication entre les différents nœuds. Par conséquent, le nœud maître doit être démarré en premier et peut être démarré via la commande roscore.

2. Comprendre l'architecture ROS du point de vue du système de fichiers

Différents composants du programme ROS doivent être placés dans différents dossiers. Ces dossiers organisent les fichiers selon différentes fonctions. Il s'agit de la structure du système de fichiers de ROS. Comme le montre la figure 1-4.

Quelle version de Linux est ros ?
Figure 1-4 Structure du système de fichiers ROS

Un espace de travail est un dossier qui contient des packages de fonctions, des packages compilés et des fichiers exécutables compilés. Les utilisateurs peuvent créer plusieurs espaces de travail en fonction de leurs besoins, développer des packages fonctionnels pour différents. objectifs dans chaque espace de travail. Dans la figure 1-4, nous avons créé un espace de travail nommé catkin_ws, qui contient trois dossiers : src, build et devel.

  • dossier srcPlacez chaque package de fonctions et le fichier de configuration CMake CMakeLists.txt qui configure le package de fonctions. Pour expliquer ici, puisque le code source dans ROS est compilé à l'aide de l'outil catkin et que l'outil catkin est basé sur la technologie CMake, nous verrons un fichier de configuration CMake CMakeLists.txt dans l'espace du fichier source src et dans chaque package de fonctions. joue un rôle Configurer le rôle de compilation.
  • dossier buildPlacez le cache, la configuration, les fichiers intermédiaires, etc. générés lors de la compilation des packages de fonctions CMake et catkin.
  • dossier develPlacez les programmes exécutables compilés Ces programmes exécutables peuvent être exécutés directement sans installation. Une fois le code source du package de fonctions compilé et testé, ces fichiers exécutables compilés peuvent être directement exportés et partagés avec d'autres développeurs.

Le package de fonctions est la forme de base d'organisation logicielle dans ROS. Il a la structure minimale et le contenu minimum pour créer un programme ROS. Il contient le code source du nœud ROS, les scripts, les fichiers de configuration, etc.

i. CMakeLists.txt est le fichier de configuration du package de fonctions, qui est utilisé pour compiler la configuration de compilation du package de fonctions Cmake.

ii. package.xml est un fichier manifeste de package de fonctions. Il utilise le format de balise XML pour marquer diverses informations associées au package de fonctions, telles que le nom du package, les informations sur le développeur, les dépendances, etc., principalement pour faciliter l'installation. et l'installation du package de fonctions est plus facile.

iii. include/ est le répertoire du fichier d'en-tête du package de fonctions, et les fichiers d'en-tête *.h inclus dans le programme du package de fonctions peuvent être placés ici. La raison pour laquelle le répertoire d'inclusion ajoute également un chemin de premier niveau est de mieux faire la distinction entre les fichiers d'en-tête auto-définis et les fichiers d'en-tête standard du système. Remplacez par le nom du package de fonctions réel. Cependant, ce dossier n'est pas nécessaire. Par exemple, certains programmes n'ont pas de fichiers d'en-tête.

iv. Les trois dossiers msg, srv et action sont utilisés respectivement pour stocker les fichiers de définition des messages de sujet non standard, des messages de service et des messages d'action. ROS aide les utilisateurs à personnaliser les types de messages utilisés dans le processus de communication des messages. Ces messages personnalisés ne sont pas nécessaires, car le programme utilise uniquement des types de messages standard.

v. Le répertoire des scripts stocke Bash, Python et d'autres fichiers de script et n'est pas nécessaire.

vi. Le répertoire de lancement stocke les fichiers de démarrage des nœuds. Le fichier *.launch est utilisé pour démarrer un ou plusieurs nœuds. Il est très utile dans les grands projets avec plusieurs nœuds et n'est pas nécessaire.

vii. Le répertoire src stocke le code source correspondant au nœud du package de fonctions. Il peut y avoir plusieurs programmes de nœuds dans un package de fonctions pour remplir différentes fonctions, et chaque programme de nœud peut être exécuté indépendamment. Le répertoire src stocke ici le code source de ces programmes de nœuds. Vous pouvez créer des dossiers et des fichiers selon vos besoins pour organiser le code source. Le code source peut être écrit en C++, Python, etc.

3. Comprendre l'architecture ROS du point de vue de la communauté open source

ROS est un logiciel open source. Chaque communauté en ligne indépendante partage et propose des logiciels et des didacticiels, formant une puissante communauté open source ROS, comme le montre la figure 1. -5.

Quelle version de Linux est ros ?
Figure 1-5 Structure de la communauté open source ROS

Le développement de ROS repose sur des logiciels open source et partagés. Ces codes sont partagés et publiés par différentes organisations, telles que le partage de code source GitHub, le référentiel de logiciels Ubuntu. libération, etc. Sanfangku et al. Le wiki officiel de ROS est une importante communauté de discussion sur les documents, où vous pouvez facilement publier et modifier les pages de documents correspondantes. La page d'accueil des réponses ROS contient un grand nombre de questions et réponses des développeurs ROS, et les discussions sur divers problèmes rencontrés dans le développement de ROS sont très actives.

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn