Autres : Connecter ROS et Urbi

Je suis actuellement en stage de milieu d'études depuis maintenant 4 mois chez Gostai, une entreprise parisienne qui développe un Middleware pour la robotique, baptisé Urbi. Gostai compte une 20e de personnes travaillant autour d'Urbi, dont le cœur est lui même développé par une équipe de 5 personnes que j'ai eu la chance d'intégrer. Le noyau Urbi est passé sous licence AGPL V3 (donc Libre) récemment.

Urbi est également un interpréteur pour un langage développé en interne, l'urbiscript. Sa syntaxe est très proche de celle du javascript, d'ailleurs urbiscript est également un langage fonctionnel. Une de ses différence se situe sur la gestion des événements et du temps, que l'on va jusqu'à retrouver au sein de sa syntaxe. Mais là n'est pas le but de ce post, je vous laisse cliquer sur le lien ci-dessus.
En somme Urbi permet de manipuler facilement et en peu de lignes de code des comportements robotiques complexes.

ROS est un Middleware "concurrent" (sous licence BSD) développé par Willow Garage, une entreprise américaine qui dispose de beaucoup de moyens, qui fait parler d'elle de temps en temps sur les sites traitant de l'Informatique et de la Robotique. ROS ne dispose pas de couche haut niveau, mais possède de très nombreux modules (codés en C ou en Python) qui couvrent un large panel de drivers et de programmes spécifiques à la robotique. L'architecture de ROS peut être vue comme un graphe, dans laquelle un noeud principal sert à synchroniser les autres nœuds, le tout communiquant au travers de "topics" (canaux de discussion). Ainsi on lance le nœud principal, on lance le nœud de driver de Joystick, puis on peut créer un nœud qui écoute ce que dit le nœud de joystick, et qui se sert de ces informations pour faire avancer le robot, etc...

La première partie de mon stage consiste à faire communiquer les deux univers, afin de pouvoir depuis le monde Urbi tirer avantage des différents modules de ROS. Mon travail fera en partie l'objet de la prochaine release d'Urbi (2.1), actuellement en cours de préparation.
En théorie la deuxième partie de mon stage porte sur la création d'un système de paquets pour Urbi, permettant d'installer facilement des modules Urbi externes (driver, algorithmes, etc...), un peu de la même façon que CPAN pour perl.

Pour l'instant à part les longs trajets quotidiens, mon stage se passe très bien, et quand je vois d'autres personnes en stage, je suis vraiment content d'avoir échappé au développement web (qui pourtant est inscrit sur mon front depuis des années), et d'avoir intégré une équipe à la fois techniquement très performante, et surtout très sympathique (du geekisme, de l'humour parfois vaseux, des canards, du fun). Je ne suis pas spécialement attiré par la robotique à la base, lui préférant l'administration système, la sécurité, les réseaux (domaines dans lesquels il est difficile de trouver un stage de milieu d'étude). Cependant j'admire le travail réalisé sur d'Urbi, qui rend urbiscript aussi intéressant (même vu de l'intérieur !).

Romain, young girl talking about herself

Posté par Romain le 7 Juin 2010 à 22h42

Commentaires

Aucun commentaire n'a encore été déposé.

Déposer un commentaire  :
 :

NOTE : l'adresse email est facultative et n'apparaîtra pas au public.

Votre message sera soumis à modération avant d'être publié.

 :

Catégories

Infos

Album Photos Sites Créés Liens Me contacter

Chargement... Twitter...

X.i.n.b.

Accueil - Connexion