Urbi
# Urbi

Urbi es una plataforma de programación para el desarrollo de aplicaciones en los campos de la robótica y los sistemas complejos.

Se compone de una arquitectura de componentes C++ distribuidos llamada UObject, y de urbiscript, un lenguaje interpretado, concurrente y dirigido por eventos. UObject facilita la integración de objetos C++ con el lenguaje urbiscript, ya sea de manera local o a través de una red. Por otro lado, urbiscript se encarga de orquestar los diferentes componentes y sus interacciones.

Desarrollado por Gostai, una empresa emprendedora fundada en 2006 con sede en Francia, la aplicación funciona en Windows, GNU/Linux y Mac OS X. El SDK es de código abierto, está publicado bajo licencia AGPLv3. Urbi es independiente del sistema robótico empleado. Actualmente Urbi tiene controladores para simuladores y robots reales como el humanoide Nao, los nuevos NXT de Lego Mindstorms o en el robot aspiradora Roomba.

## El lenguaje urbiscript

Urbi fue creado por Jean-Christophe Baillie en 1999 en el laboratorio de robótica cognitiva de la Escuela Nacional Superior de Técnicas Avanzadas de París. Desde 2006 la sociedad Gostai se encarga del desarrollo de Urbi.

El lenguaje urbiscript es un lenguaje interpretado que actúa como lenguaje de orquestación: al igual que Lua en el dominio de los videojuegos, Urbi permite integrar los componentes C++ — normalmente, aquellas partes que requieren más CPU — mientras que los modelos de comportamiento generales son escritos en urbiscript, que es más flexible, más fácil de mantener y que permite interacciones dinámicas durante la ejecución del programa.WAKA

El lenguaje urbiscript incluye otros útiles para el desarrollo, tal como la programación concurrente y la programación dirigida por eventos. Dado que la especificación de comportamientos en paralelo y la reacción a eventos suelen ser exigencias clave para las aplicaciones robóticas y de inteligencia artificial, Urbi está especialmente adaptado a estos campos.

Además de su flexibilidad y modularidad, la otra ventaja principal de urbiscript es su simplicidad, con una interfaz intuitiva para principiantes y funciones avanzadas para desarrolladores más avanzados

