Aller au contenu

Ronoco (ROS no code)

Contexte

Ronoco (ROS no code) est un projet OpenSource proposé par Yoan Mollard et le premier prototype a été créé par Sébastien Delpeuch lors de son stage d’application de 2e année de l’ENSEIRB-MATMECA.

Le projet est ouvert aux contributions et est disponible ici : https://github.com/Eirlab/ronoco

La documentation du projet est disponible ici : https://sdelpeuch.github.io/ronoco/

Présentation

Avec ROS, la création d’un système robotique implique de développer des programmes en C++ ou en Python, ce qui rend ROS inaccessible à tous les experts non développeurs : ingénieurs de procédés, ingénieurs d’industrialisation….

L’écriture de code devient en effet indispensable pour les robots complexes.

Cependant, depuis quelques années, une méthode alternative fait son chemin : le no-code. Elle consiste à concevoir des programmes informatiques sans écrire de code, souvent via une interface graphique. Ce projet consiste à développer un prototype de « no-code ROS » qui peut être utilisé pour programmer des robots manipulateurs sous MoveIt et des robots roulants sous MoveBase.

Ronoco se connecte à l’écosystème ROS et génère des messages ROS standard, en maintenant l’ADN ROS interopérable (robot-agnostique).

Le projet ronoco est divisé en trois modules distincts, chacun remplissant des rôles différents et complémentaires pour fournir une interface graphique pour la conception de programmes de manipulation ROS.

Les trois modules sont ronoco-vm, un paquet ROS composé d’une API flask qui interprète la séquence de blocs dans l’interface graphique et les traduit en code ROS. Le second est ronoco-nodered, une extension de l’application Node-RED qui permet de créer graphiquement des séquences d’action à l’aide d’arbres de comportement.

Le dernier est ronoco-ui un client web permettant d’utiliser les deux modules précédents. Il fournit des utilitaires pour le robot (enregistrement des positions, lancement d’un programme, arrêt du serveur etc). De plus, il permet de définir des programmes en utilisant une interface sans code comme NodeRed ou Scratch (WIP).

Est-ce que ronoco peut être utilisé sur mon robot ?


Pour utiliser ronoco avec votre robot, il est nécessaire qu’il ait les spécifications suivantes :

  1. Pour un robot manipulateur, il est nécessaire qu’il soit compatible avec MoveIt. Ronoco utilise principalement MoveIt pour contrôler les robots manipulateurs et les sujets de visualisation rviz.
  2. Pour un robot roulant, il est nécessaire qu’il soit compatible avec MoveBase. Ronoco utilise le SimpleActionClient de MoveBase pour la navigation. Le robot devra également fournir un topic où il publie sa position actuelle (typiquement /amcl_pose) ainsi qu’un topic lui permettant d’être téléopéré (typiquement /cmd_vel)

Si votre robot répond à ces spécifications, vous pouvez utiliser ronoco avec lui !