Niryo One et ROS (Robot Operating System)

ROS signifie Robot Operating System (système d’exploitation de robot). Il s’agit d’un cadre robotique pour les développeurs. Si vous l’avez déjà essayé, vous savez que ROS est assez difficile pour les débutants. Il comporte beaucoup de difficultés, et la plupart du temps, vous devez apprendre à travers un robot virtuel, car les robots industriels sont trop chers.

Que vous soyez un débutant ou un utilisateur avancé de ROS, avec Niryo One (maintenant disponible) vous pourrez prendre plaisir à l’apprendre, et tester quelques applications industrielles intéressantes.

Dans ce billet, nous allons expliquer pourquoi et comment nous utilisons ROS pour faire de Niryo One un robot parfait pour apprendre et tester des processus industriels à la maison ou à l’école. 

Pourquoi avons-nous choisi d’utiliser ROS ?

Nous voulions que Niryo One soit plus intelligent et autonome. Au tout début, nous avons pensé à simplement utiliser Arduino pour contrôler le robot, mais il s’est avéré que ce n’était pas suffisant pour un environnement robotique complet, surtout pour un bras robotique à 6 axes.

C’est pourquoi nous avons ajouté une carte Raspberry Pi 3, afin que nous puissions exécuter ROS dessus, ajouter beaucoup plus de fonctionnalités et rendre Niryo One autonome. Vous n’avez pas besoin d’installer de logiciel sur votre ordinateur pour contrôler Niryo One, tout ce dont vous avez besoin est un navigateur web ou une application mobile.

Voici quelques raisons pour lesquelles nous avons choisi d’utiliser ROS :

  • ROS est de plus en plus utilisé dans des applications réelles : l’industrie, mais aussi les voitures autonomes, les drones, la recherche… Enfin, ROS est vraiment utile et a un bel avenir.
  • Il y a une communauté énorme et croissante, à partir de laquelle vous pouvez obtenir de l’aide et apprendre la robotique avec d’autres passionnés.
  • La plupart du code ROS est open source, ce qui nous permet de développer plus de fonctionnalités plus rapidement.
  • Avec ROS, vous pouvez faire des choses bien plus intéressantes que simplement faire clignoter une LED : perception de l’environnement avec une caméra et des capteurs, planification de mouvements, gestion de système complexe…

Comment utilisons-nous ROS sur Niryo One ?

________________________________________ 

Nous utilisons ROS sur une version Raspberry Pi d’Ubuntu. La base de ROS est très légère et fonctionne parfaitement sur la carte Raspberry Pi 3.

Architecture logicielle de Niryo One – ROS et tout ce qui l’entoure

________________________________________

 

Voici quelques packs ROS que nous utilisons :

  • Moveit, qui est un framework de planification de mouvement intégré à ROS. Moveit vous permet de planifier une trajectoire pour votre robot, en fonction d’une représentation spécifique (format URDF).
  • Rosbridge : ROS fonctionnant principalement sur des systèmes Ubuntu, il peut être assez difficile de communiquer entre un système ROS et un système non-ROS. Avec rosbridge, c’est désormais possible ! Rosbridge va créer un serveur websocket sur votre système ROS. Avec quelques bibliothèques disponibles (java, javascript, …), vous pouvez connecter une interface web à votre robot !
  • Joy, qui est un package simple pour interfacer un contrôleur xbox avec un système ROS.
  • Et bien d’autres packages ROS ou Niryo…

Pour accéder au système ROS sur le Raspberry Pi 3, il suffit d’utiliser ssh ou une connexion ethernet ! Vous pourrez également exécuter la pile ROS de Niryo One sur votre ordinateur portable Ubuntu, pour développer plus rapidement et obtenir une simulation 3D du robot (paquet Rviz).

Et… Le code sera open source !

Nous publierons le code Arduino et Raspberry Pi en septembre, après les premiers envois des récompenses de notre campagne Kickstarter. (Si vous n’êtes pas encore abonné à notre  newsletter, inscrivez-vous dès maintenant pour être le premier à être informé des nouveautés et des offres spéciales).

Le code sera disponible sur github, avec des efforts pour le rendre très clair et documenté, afin que vous puissiez apprendre ROS, poser des questions, et contribuer si vous voulez améliorer certaines parties ou ajouter de nouvelles fonctionnalités. Nous serons très ouverts à ce sujet, et nous ouvrirons un forum en ligne. 

Niryo One et ROS : ce que vous pouvez apprendre

Comme le code sera lisible et documenté, vous aurez l’opportunité d’apprendre ROS sur un système physique réel. Nous vous fournirons des tutoriels pour comprendre les bases de ROS et apprendre à :

  • Gérer plusieurs packages, nœuds, fichiers de lancement, …
  • Communiquer entre tous vos nœuds (sujets, services, actions).
  • Utiliser le framework de planification de mouvement Moveit
  • Communiquer avec une carte Arduino via I2C, et laisser le système ROS la commander.
  • Obtenir des données à partir de capteurs (I2C ou SPI) sur un Raspberry Pi et publier les données avec des topics ROS.
  • Communiquer avec d’autres systèmes non ROS via Wi-Fi et Bluetooth

Conclusion

Nous simplifions les choses pour les débutants et les utilisateurs avancés de ROS, en fournissant un vrai robot, un code source ouvert et le soutien de notre équipe.

Mais ce n’est pas tout : en septembre, nous publierons également une série de vidéos tutorielles sur comment apprendre ROS, y compris des exemples prêts à l’emploi avec Niryo One. Et nous serons ouverts à toute demande de votre part, pour vous aider à profiter de l’utilisation de Niryo One avec ROS.