Objectifs de la conception du système ROS
Avec les progrès rapides et la complexité croissante de la robotique, la demande de réutilisation du code et de modularité est devenue de plus en plus pressante. Certains systèmes robotiques à code source ouvert ont eu du mal à répondre de manière adéquate à ces besoins. En 2007, Willow Garage a publié le système d'exploitation de robots (ROS), qui a rapidement suscité une vague d'apprentissage et d'adoption au sein de la communauté des chercheurs en robotique.
The ROS system originated from a collaboration between a 2007 project at Stanford University’s Artificial Intelligence Laboratory and Willow Garage’s Personal Robots Program. After 2008, development was led by Willow Garage. With the remarkable feats of early ROS robots like the PR2—such as folding clothes, plugging in devices, and preparing breakfast—ROS gained increasing attention. Willow Garage expressed its ambition to leverage open-source development to transform PR2 into a “universal” robot.
PR2 came with a hefty price tag, retailing for $400,000 in 2011. It is now primarily used for research. Equipped with two arms, each featuring seven joints, PR2’s end effectors are grasping grippers. Mobility is provided by four wheels mounted on its base. High-resolution cameras, laser rangefinders, inertial measurement units, tactile sensors, and other advanced sensing equipment are mounted on the PR2’s head, chest, elbows, and grippers. Two 8-core computers at the base serve as the control and communication hub for the robot’s hardware. Both computers run Ubuntu and ROS.
Objectifs de la conception de ROS
ROS est un logiciel libre qui sert de système d'exploitation secondaire pour les robots. Il offre des fonctions similaires à celles d'un système d'exploitation, notamment l'abstraction matérielle, la gestion des pilotes de bas niveau, l'exécution de fonctions partagées, la messagerie inter-programmes et la gestion des paquets. Il offre également des outils et des bibliothèques pour l'acquisition, la construction, l'écriture et l'exécution de programmes collaboratifs multi-robots. ROS est un logiciel libre et sert de système d'exploitation dorsal, ou système d'exploitation secondaire, pour les robots. Il offre des fonctions similaires à celles d'un système d'exploitation, notamment l'abstraction matérielle, la gestion des pilotes de bas niveau, l'exécution de fonctions partagées, la messagerie inter-programmes et la gestion des paquets. Il propose également des programmes utilitaires et des bibliothèques pour l'acquisition, la construction, l'écriture et l'exécution de programmes collaboratifs multi-robots.
Principales caractéristiques du ROS
L'architecture d'exécution ROS est un cadre de traitement qui utilise les modules de communication ROS pour établir des connexions réseau pair-à-pair à couplage lâche entre les modules. Elle met en œuvre plusieurs types de communication, notamment la communication RPC (Remote Procedure Call) synchrone basée sur les services, la communication de flux de données asynchrone basée sur les sujets et le stockage de données sur le serveur de paramètres. Cependant, ROS lui-même ne possède pas intrinsèquement de capacités en temps réel.
Les principales caractéristiques des ROS peuvent être résumées comme suit :
-
Conception Peer-to-Peer
Un système utilisant ROS consiste en une série de processus qui existent sur plusieurs hôtes distincts et qui communiquent pendant le fonctionnement à travers une topologie pair-à-pair. Bien que les cadres logiciels basés sur des serveurs centraux puissent également bénéficier des avantages des environnements multiprocessus et multihôtes, ces cadres rencontrent des problèmes avec le serveur de données central lorsque les ordinateurs sont connectés via différents réseaux. Un système utilisant ROS consiste en une série de processus qui existent sur plusieurs hôtes différents et qui communiquent pendant le fonctionnement à travers une topologie pair-à-pair. Bien que les cadres logiciels basés sur un serveur central puissent également bénéficier des avantages des environnements multiprocessus et multihôtes, dans ces cadres, des problèmes se posent avec le serveur de données central lorsque les ordinateurs sont connectés via différents réseaux.
-
Support multilingue
Lorsqu'ils écrivent du code, de nombreux programmeurs ont tendance à privilégier certains langages de programmation. Ces préférences découlent de facteurs tels que le temps passé à programmer dans chaque langage, l'efficacité du débogage, la syntaxe, l'efficacité d'exécution et diverses considérations techniques et culturelles. Pour répondre à ces questions, nous avons conçu ROS comme un cadre de travail neutre sur le plan linguistique. ROS supporte maintenant de nombreux langages différents, y compris C++, Python, Octave, et LISP, et inclut également de multiples implémentations d'interfaces pour d'autres langages.
Le caractère unique de ROS se manifeste principalement dans la couche de communication des messages plutôt qu'à des niveaux plus profonds. Les connexions et les configurations de bout en bout sont mises en œuvre à l'aide du mécanisme XML-RPC, qui comprend également des mises en œuvre bien documentées pour la plupart des principaux langages de programmation. Nous souhaitons que ROS soit mis en œuvre de manière plus naturelle dans différents langages, en s'alignant sur leurs conventions syntaxiques respectives, plutôt que de fournir des interfaces basées sur C pour d'autres langages. Cependant, dans certains cas, il est pratique d'utiliser les bibliothèques existantes pour encapsuler le support de nouveaux langages. Par exemple, le client Octave est implémenté à l'aide d'une bibliothèque C++.
To support cross-language development, ROS employs a simple, language-agnostic interface definition language (IDL) to describe message exchanges between modules. The IDL uses concise text to define each message’s structure and allows message composition. For example, the following diagram illustrates a point message described using IDL:
Les générateurs de code pour chaque langue produisent des fichiers de code natif correspondants. Pendant la transmission et la réception des messages, ROS compile et exécute automatiquement ces fichiers en parallèle. Cela permet d'économiser du temps de programmation et de réduire les erreurs : le fichier IDL de trois lignes se développe automatiquement en 137 lignes de code C++, 96 lignes de code Python, 81 lignes de code Lisp et 99 lignes de code Octave. Comme les messages sont automatiquement générés à partir de simples fichiers texte, de nouveaux types de messages peuvent être facilement énumérés. Au moment de la rédaction du présent document, les bibliothèques de code connues basées sur ROS contiennent plus de quatre cents types de messages. Ces messages transmettent des données de capteurs, permettant aux objets de détecter leur environnement.
Le résultat final est un traitement des messages agnostique sur le plan linguistique, qui permet de mélanger et d'assortir librement plusieurs langues.
-
Rationalisation et intégration
La plupart des projets existants d'ingénierie logicielle en robotique contiennent des pilotes et des algorithmes qui peuvent être réutilisés en dehors du projet. Malheureusement, pour diverses raisons, les couches intermédiaires de la plupart des codes sont excessivement désordonnées, ce qui rend difficile l'extraction de leur fonctionnalité et leur application au-delà du prototypage.
Pour contrer cette tendance, nous encourageons l'évolution progressive de tous les pilotes et algorithmes vers des bibliothèques autonomes indépendantes des dépendances de ROS. Les systèmes construits par ROS se caractérisent par leur modularité, où le code de chaque module peut être compilé séparément. L'outil CMake utilisé pour la compilation facilite le concept de minimalisme. ROS encapsule essentiellement le code complexe dans des bibliothèques, ne créant que de petites applications pour démontrer la fonctionnalité des bibliothèques. Cela permet au code simple d'être porté et réutilisé au-delà du prototypage. Un nouvel avantage est que les tests unitaires deviennent beaucoup plus faciles lorsque le code est distribué dans les bibliothèques. Un seul programme de test peut vérifier plusieurs fonctionnalités au sein d'une bibliothèque.
ROS exploite le code de nombreux projets open-source existants. Par exemple, il emprunte le pilote, le contrôle des mouvements et le code de simulation du projet Player ; les algorithmes de vision d'OpenCV ; les algorithmes de planification d'OpenRAVE ; et bien d'autres. Dans chaque cas, ROS fournit diverses options de configuration et facilite la communication de données entre les composants logiciels tout en appliquant des enveloppes et des modifications minimales. ROS évolue continuellement grâce à la maintenance de la communauté, en incorporant dans son code source des mises à jour d'autres bibliothèques logicielles et des correctifs d'application.
-
Boîte à outils complète
Pour gérer le cadre logiciel complexe de ROS, nous avons utilisé de nombreux utilitaires pour compiler et exécuter divers composants de ROS, en les concevant comme un noyau plutôt que de construire un environnement de développement et d'exécution massif. Ces outils gèrent diverses tâches, telles que l'organisation des structures du code source, la récupération et le réglage des paramètres de configuration, la visualisation des connexions topologiques de bout en bout, la mesure de l'utilisation de la bande passante, la représentation vivante des données d'information et la génération automatique de la documentation. Bien que nous ayons testé des services de base tels que l'horloge globale et l'enregistreur pour les modules de contrôle, nous visons toujours à modulariser l'ensemble du code. Nous pensons que toute perte d'efficacité est largement compensée par les avantages de la stabilité et de la réduction de la complexité de gestion.
-
Gratuit et libre
Tout le code source de ROS est rendu public. Nous pensons que cela favorisera inévitablement le débogage à tous les niveaux du logiciel ROS et la correction continue des erreurs. Bien que les logiciels non libres comme Microsoft Robotics Studio et Webots possèdent de nombreux attributs louables, nous maintenons qu'une plateforme libre reste irremplaçable. Cela est particulièrement vrai lorsque le matériel et le logiciel à tous les niveaux sont conçus et débogués simultanément. Tout le code source de ROS est rendu public. Nous pensons que cela favorisera inévitablement le débogage à tous les niveaux du logiciel ROS et la correction continue des erreurs. Bien que les logiciels non libres comme Microsoft Robotics Studio et Webots possèdent également de nombreux attributs louables, nous considérons qu'une plateforme libre est irremplaçable. Cela est particulièrement vrai lorsque le matériel et le logiciel à tous les niveaux sont conçus et débogués simultanément.
Robots représentatifs des ROS typiques sur le marché
Des robots représentatifs utilisant ROS sur le marché montrent comment ce cadre open-source prend en charge diverses applications. En voici un exemple, robots mobiles such as TurtleBot and Husarion ROS bot are widely used for education and research; service robots like Fetch and PR2 highlight advanced manipulation and navigation capabilities; while industrial platforms such as Clearpath’s Husky demonstrate ROS integration in rugged environments. These examples reflect the flexibility and scalability of ROS in both academic and commercial robotics.
La liste suivante présente des robots ROS quadrupèdes, des robots ROS à roues et des robots ROS à chenilles représentatifs.
Best Quadruped Robots Powered by ROS
| Nom de Copmay | Pays | Image du robot | Application | Site officiel |
| Unitree Robotics | Chine | ![]() |
l'éducation, la recherche et les tâches industrielles | https://www.unitree.com/go2 |
| Boston Dynamics | ÉTATS-UNIS | ![]() |
Inspection industrielle | https://bostondynamics.com/products/spot/ |
Top 5 des robots à roues utilisant ROS
| Nom de Copmay | Pays | Image du robot | Chargement de la lecture | Site officiel |
| MiR | Danemark | ![]() |
600 kg | https://www.mobile-industrial-robots.com |
| Robotnik Robot | Espagne | ![]() |
150 kg | https://bostondynamics.com/products/spot/ |
| Robotnik | Espagne | ![]() |
250 kg | |
| Clearpath Robotics | Canada | ![]() |
100 kg | https://clearpathrobotics.com |
| Fdata Robot | Chine | ![]() |
1000KG | https://www. fdatabot.com |
Best Tracked Robots with ROS Integration
| Nom de Copmay | Pays | Image du robot | Application | Site officiel |
| Superdroid
Robots |
Canada | ![]() |
Robot tactique Robot tactique | https://www.superdroidrobots.com/store/tracked-robots |
Vous recherchez des solutions robotiques personnalisées ? Contactez nous
Prendre contact
Fdata est un fabricant de robots mobiles en Chine, nous sommes spécialisés dans les solutions de robots mobiles personnalisées, aidant les clients de l'idée à la production de masse.








