dimanche 3 octobre 2010

Urbi - Langage de programmation open-source pour la robotique

Urbi est uneplateforme logiciel open source utilisée pour controler des robots ou des systèmes complexes. Il inclus une librairie de composant C++ appelé UObject qui est fournit avec une API robotique standard, cette API décrivant des moteurs, des censeurs et bien entendu des algorithmes.
L'environnement inclus également Urbitscript un langage de scripting permettant de faire interagir les composants entre-eux mais surtout, il permet de décrire des comportements de haut-niveau. Pour faciliter les tâches de développement, Urbiscript est un langage de type sémantique et événementiel mais le plus important étant encore que le langage est prévu et tire parti du parallélisme d'exécution.

Faire quelques lectures sur Urbi ramène inévitablement sur paraléllisme coopératif basé sur les coroutines (ou l'on retrouve les notions de Yield return et de générateurs).

Site Officiel: UrbiForge

Le langage Urbi associé au Kit de montage robotique BioLoid semble offrir un environnement d'apprentisage très intéressant. En effet, le kit Bioloid offre de nombreuses possibilités de montages, en témoigne les vidéos présentent sur cette page.

Quelques tutoriaux et documentation


Info complémentaires
En provenance de cet article paru sur Linux.Org :
Urbi est un framework de développement pour la robotique visant à standardiser et simplifier l'écriture de modules et comportements pour les robots, en les rendant réutilisables et en facilitant l'interaction entre robots hétérogènes.

Il comprend:

  • Un modèle de composants C++ avec gestion de dataflow : UObject ;
  • Un middleware permettant aux composants d'interagir localement ou en réseau ;
  • Un langage de script parallèle et événementiel, urbiscript, pour orchestrer les interactions entre composants ;
  • Un environnement d'exécution faisant le lien entre les composants et urbiscript


D'un point de vue technique, Urbi est implémenté en C++ avec un modèle de parallélisme coopératif basé sur les coroutines, et fonctionne sous Linux, Mac OS, et de nombreuses autres variétés d'Unix, et Windows. Les composants se présentent sous forme de bibliothèques dynamiques pouvant être soit chargées à chaud dans un environnement Urbi, soit lancées dans des processus autonomes se connectant par le réseau, ce qui permet par exemple de déporter des calculs de façon transparente. L'environnement permet également d'ouvrir des sessions urbiscript pour exécuter des commandes à la volée, pour modifier les comportements ou piloter ponctuellement le robot par exemple.

Urbi est en développement depuis 2006 au sein de Gostai et provient originellement du monde académique. Seule l'API UObject était jusqu'à maintenant distribuée sous licence open-source, permettant à quiconque de développer des composants C++ utilisables depuis Urbi. Depuis mai 2010, le noyau du framework - comprenant l'interpréteur urbiscript, son scheduler et l'environnement d'exécution des UObjects - est à son tour passé open source sous licence Affero GPL v3.

Ce changement de licence permet aux utilisateurs d'utiliser Urbi avec l'assurance de pouvoir l'adapter à leur besoin et leur offre une indépendance vis-à-vis de Gostai. Gostai accepte les soumissions de patchs venant de l'extérieur pour une intégration éventuelle après revue.

Aucun commentaire: