Vous avez déjà des notions en programmation et systèmes Unix, et voulez apprendre la robotique. Ou alors vous êtes en train de préparer les spécifications d’un nouveau projet robotique. Et… Vous ne savez pas si vous devez utiliser ROS ou pas.
ROS, qui signifie Robot Operating System, est un ensemble de logiciels et outils qui vous aident à créer des applications robotiques. Le but de ROS est de créer un standard en robotique, pour que vous n’ayiez plus besoin de réinventer la roue à chaque fois que vous commencez un nouveau logiciel pour un robot.
Mais alors, pourquoi utiliser ROS pour des projets robotiques ?
1. ROS est général
La même base de code peut être appliquée pour de nombreux différents robots : bras robotisés, drones, bases mobiles, … Une fois que vous comprenez comment est réalisée la communication entre les différentes parties (appelées “nodes” en anglais) du programme, vous pouvez en créer très facilement.
Si, dans le futur, vous devez commencer un projet robotique totalement différent, vous ne serez pas perdu. Vous pourrez réutiliser le savoir que vous avez emmagasiné, ainsi que certaines briques déjà construites.
2. Des paquets ROS pour à peu près tout
Vous avez besoin de calculer une trajectoire pour votre robot ? Un paquet ROS existe spécialement pour ça. Utiliser un joystick pour contrôler un robot ? Vous trouverez également un paquet ROS. Ou alors vous souhaitez cartographier en 3D une pièce avec un drone ? De nombreux paquets ROS sont disponibles pour cela.
Si vous cherchez bien, vous trouverez des paquets pour à peu près n’importe quelle application robotique.
3. ROS ne dépend pas d’un seul langage de programmation
Vous pouvez très facilement communiquer entre un node Python et un node C++. Cela implique une réutilisation aisée des composants, et un travail en équipe rendu plus souple. Certaines librairies vous permettent aussi d’utiliser d’autres langages (car ROS est principalement basé sur C++ et Python).
Vous pouvez lancer un serveur websocket sur votre robot (rosbridge_suite) ou un serveur HTTP. Ainsi, vous pouvez utiliser n’importe quel langage pour communiquer avec votre robot.
4. ROS a de puissants outils de simulation
Vous ne pouvez pas toujours utiliser votre robot dans de réelles conditions, donc vous aurez besoin d’outils de simulation. Avec ROS, vous pouvez notamment utiliser Rviz et Gazebo. Avec Gazebo vous pouvez même ajouter des contraintes physiques à l’environnement, donc quand vous lancez la simulation ou le robot en situation réelle, le résultat est pratiquement le même. Par exemple vous pourriez faire des tests pour cartographier une pièce entière avec un drone, ce qui vous économisera beaucoup de temps.
Les outils de simulation vous permettent aussi d’utiliser des robots que vous ne possédez pas, pour les tester dans des environnements spécifiques, ou pour une approche pédagogique.
5. Vous pouvez contrôler plusieurs robots avec ROS
ROS peut fonctionner en mode multi-masters. Cela signifie que chaque robot possède son propre système indépendant ROS, et tous les robots peuvent communiquer entre eux.
6. ROS est léger
La base de code de ROS ne prend pas beaucoup de place et de ressources. Vous pouvez installer la base et commencer votre projet en seulement quelques minutes. Vous avez également la possibilité d’utiliser ROS dans des ordinateurs embarqués, tels que des cartes Raspberry Pi 3.
7. De plus en plus de produits compatibles avec ROS
Quand vous construisez un robot, vous ne souhaitez pas forcément créer ou construire toutes les parties. Vous pourriez vouloir vous focaliser sur certains points, et intégrer le reste avec des pièces déjà existantes. La bonne nouvelle, c’est que vous trouverez de nombreux produits robotiques – pinces, cartes de contrôle, … – qui ont déjà un paquet ROS attitré. Donc, en plus de l’outil physique, le logiciel fourni est directement compatible avec votre système ROS.
8. ROS est un projet open source avec une license permissive
Le fait que ROS soit open source est une force. La plupart des paquets de base sont distribués sous une license BSD. Une license BSD vous permet de modifier et d’utiliser le code pour une utilisation commerciale, sans avoir à le redistribuer avec une license open source. C’est donc un point important lorsqu’une entreprise décide d’intégrer un logiciel open source. Mais, attention, n’oubliez quand même pas l’esprit autour de l’open source 🙂
Un bel avenir pour ROS
ROS a été créé en 2007, et a maintenant une grande base d’utilisateurs. De plus en plus de paquets ROS sont développés.
Une nouvelle version de ROS va bientôt voir le jour : ROS 2 ! ROS 2 est un logiciel complètement ré-écrit, et a de nombreux avantages par rapport à ROS 1 : support multi-plateformes, support pour systèmes embarqués, exécution en temps réel, une meilleure gestion des ressources, …
Si vous voulez vous lancer en robotique, vous devriez apprendre et utiliser ROS. Cela vous enseignera beaucoup de choses sur la robotique, et vous économiserez beaucoup de temps en n’essayant pas de réinventer la roue à chaque nouveau projet.
Si vous souhaitez voir un exemple de robot utilisant ROS, n’hésitez pas à aller faire un tour sur le projet github de Niryo One. Vous pouvez installer les paquets ROS de Niryo One et faire tourner une simulation en 5 minutes !