Vous maîtrisez déjà la programmation et l’utilisation d’un terminal, et vous envisagez de vous lancer dans la robotique ? Ou peut-être êtes-vous en train de rédiger les spécifications d’un tout nouveau projet robotique. Et… vous vous demandez si ROS est la bonne solution.
ROS, pour Robot Operating System, est un ensemble de bibliothèques logicielles et d’outils conçus pour faciliter le développement d’applications robotiques. Son objectif est de standardiser la robotique, vous évitant ainsi de réinventer la roue à chaque nouveau projet logiciel.
Alors, pourquoi utiliser ROS en robotique ?
________________________________________
-
ROS est polyvalent
Le même code de base et les mêmes connaissances peuvent être appliqués à une variété de robots : bras robotiques, drones, bases mobiles… Une fois que vous avez compris comment les nœuds du programme communiquent entre eux, ajouter de nouvelles fonctionnalités à votre application devient très facile. De plus, si vous avez besoin de passer à un projet robotique totalement différent à l’avenir, vous ne serez pas perdu.
Vous pourrez réutiliser vos connaissances et certaines parties de votre code, vous évitant ainsi de repartir de zéro à chaque fois.
-
Les paquets ROS sont très variés
Besoin de calculer une trajectoire pour votre robot ? Il existe un package pour cela. Envie de contrôler votre robot avec un joystick ? Il existe également un paquet pour cela. Ou peut-être souhaitez-vous cartographier une pièce avec un drone ? Plusieurs packages répondent à ce besoin.
Avec un peu de recherche, vous trouverez de nombreux paquets ROS pour quasiment toutes les applications robotiques.
________________________________________
-
ROS fonctionne avec tous les langages
ROS permet la communication entre des nœuds programmés en Python et en C++, offrant ainsi une grande flexibilité et des possibilités de collaboration étendues. De nombreuses bibliothèques vous permettent également d’utiliser d’autres langages (car ROS a principalement ciblé C++ et Python).
Vous pouvez également faire tourner un serveur Websocket sur votre robot (rosbridge_suite) ou un serveur HTTP, et ainsi utiliser n’importe quel langage pour communiquer avec lui.
-
ROS dispose d’excellents outils de simulation
Il n’est pas toujours envisageable d’utiliser votre robot dans des conditions réelles, d‘où l’importance des outils de simulation. ROS dispose de nombreux outils de qualité, tels que Rviz et Gazebo. Avec Gazebo, vous pouvez même ajouter des contraintes physiques à l’environnement, de sorte que lorsque vous exécutez la simulation et le robot réel, le résultat est à peu près le même. Imaginez que vous puissiez cartographier une pièce en 3D à l’aide d’un drone directement sur votre ordinateur, cela pourrait vous faire gagner énormément de temps.
Les outils de simulation vous permettent également de découvrir et d’utiliser d’autres robots que vous ne possédez pas, que ce soit à des fins éducatives ou pour les tester dans un environnement spécifique.
________________________________________
-
Vous pouvez contrôler plusieurs robots avec ROS
ROS peut fonctionner avec plusieurs ROS masters. Cela signifie que vous pouvez avoir de nombreux robots indépendants, chacun avec son propre système ROS, et tous les robots peuvent communiquer entre eux.
-
ROS est léger
La base de ROS requiert peu d’espace et de ressources, ce qui permet une installation rapide des paquets principaux et un démarrage en quelques minutes. De plus, vous pouvez également utiliser ROS sur des ordinateurs embarqués, tels que les cartes Raspberry Pi 3. Vous pouvez donc facilement démarrer un nouveau projet sans trop de difficultés.
________________________________________
-
De plus en plus de produits sont compatibles avec ROS
Lorsque vous construisez un robot, vous n’avez pas forcément besoin de réinventer chaque composant. Vous pouvez vous concentrer sur certains aspects du développement et utiliser des pièces déjà existantes pour le reste. La bonne nouvelle, c’est que de nombreux produits robotiques, tels que les pinces et les cartes de contrôle, disposent déjà d’un paquet ROS. Ainsi, en plus de l’outil physique, le logiciel associé est directement compatible avec votre système ROS.
-
ROS est un projet open source doté d’une licence permissive
L’une des plus grandes forces de ROS est qu’il est open source. La plupart des paquets de base sont publiés sous une licence BSD. Cette licence vous permet de modifier et d’utiliser le code à des fins commerciales, sans avoir à le publier sous une licence open source. Cela peut être un bon point lorsqu’une entreprise décide d’intégrer un logiciel open source. Mais n’oublions pas l’esprit open source🙂.
Un avenir prometteur pour ROS
Créé en 2007, ROS compte aujourd’hui une vaste communauté d’utilisateurs en constante expansion. De plus en plus de paquets sont en développement.
Par ailleurs, une nouvelle version de ROS est sur le point de sortir : ROS 2 ! Logiciel entièrement réécrit, ROS 2 présente de nombreux avantages par rapport à ROS 1 : support multiplateforme, prise en charge des systèmes embarqués, exécution en temps réel, meilleure gestion des ressources, …
ROS est une valeur sûre. Si vous souhaitez vous lancer dans la robotique, apprenez et utilisez ROS. Cela vous permettra d’acquérir de précieuses compétences dans le domaine de la robotique et vous fera gagner énormément de temps en évitant de réinventer la roue à chaque nouveau projet.
Si vous voulez voir gratuitement un exemple de robot qui fonctionne avec ROS, consultez le référentiel GitHub du stack ROS de Niryo One. Vous pouvez facilement installer les paquets Niryo One et lancer une simulation en 5 minutes !