Raúl
Moderador
 Moderador
| Mensajes: 444 |  | Karma: 6
|
Re:Preguntas generales sobre Robotics Studio - 2007/11/21 13:47
A veces es un poco difícil entender a simple vista qué es Robotics Studio. Hay gente que piensa que simplemente es un simulador (como por ejemplo Webots). Sin embargo, Robotics Studio es mucho más. Lo que pasa es que no hay muchos productos de este tipo con los que comparar (lo que más se parece hoy en día es Urbi [1]).
Robotics Studio nace con la vocación de ser un entorno de desarrollo para aplicaciones robóticas que permita reusabilidad, escalabilidad y portabilidad. Típicamente el desarrollo de aplicaciones robóticas conlleva lidiar con múltiples problemas relacionados con la entrada/salida asíncrona y el control de la concurrencia. La idea es que usando MSRS, te puedas centrar en la lógica de programación gracias a unas bibliotecas que permiten gestionar de forma fácil la concurrencia, la coordinación de la entrada/salida asíncrona y la distribución de la carga de procesamiento entre diferentes nodos.
Por lo tanto, al hablar de Robotics Studio yo distinguiría entre dos bloques principales:
1.- El entorno de ejecución o Runtime (que incluye el DSS y el CCR). 2.- Herramientas de desarrollo y simulación (VPL, Visual Simulation Environment y Visual Studio).
Nota: Visual Studio no es parte de MSRS, pero si desarrollas aplicaciones de forma programática (es decir, sin usar el entorno de programación visual VPL, es lo que usarás).
Con respecto a la elección del sistema físico que comentas en tu pregunta. Lo importante es tener claro que una aplicación desarrollada en MSRS debería ser independiente del sistema físico sobre el que va a actuar en última instancia (siempre que este tenga los componentes hardware o simulados requeridos por la aplicación). Es decir, si yo escribo un programa de control para un robot con un sensor infrarrojo y dos motores formando una tracción diferencial, el mismo programa funcionará con un Lego NXT real, con un Lego NXT simulado, con un Fishertechnic real, o con cualquier robot que tenga un DifferentialDrive y un sensor infrarrojo.
La clave es usar contratos genéricos, que definen el comportamiento básico de cada uno de los componentes de un robot. Luego, en tiempo de ejecución, se ejecutarán los servicios concretos para el robot que se especifique. Por lo tanto si vas a trabajar con un brazo robótico puedes empezar mirando el contrato genérico que hay definido para ArticulatedArm.
Tienes razón en cuanto a la distribución de la información en la página de MSRS. A veces es difícil organizarse y encontrar las cosas… Me alegro que te haya sido útil mi guía, por eso la escribí También tienes una guía específica para VPL:
Aprendiendo MSRS http://www.conscious-robots.com/es/robotics-studio/robotics-studio-howto/getting-started-with-
microsoft-robotics-studio.html
Aprendiendo VPL http://www.conscious-robots.com/es/robotics-studio/robotics-studio-howto-c-mo-hacer-/aprendiendo-a-
usar-el-lenguaje-de-programaci-n-visual.html
Otro aspecto que tienes que tener siempre en cuenta es que toda la programación en MSRS está orientada a servicios, por lo tanto tienes que entender qué es un servicio y como se usa. (Es útil en este sentido seguir todos los tutoriales de servicios). Cada servicio tiene un estado y unas operaciones asociadas. La coordinación (u orquestación) de servicios es lo que da lugar a la aplicación final. DSS es el componente que proporciona la posibilidad de definir estos servicios. El CCR es el encargado de que las operaciones definidas en cada servicio se definan y coordinen adecuadamente.
Espero haberte aclarado un poco más qué es MSRS. Si tienes cualquier pregunta adicional no dudes en escribir en este foro.
[1] http://www.conscious-robots.com/es/an-lisis/herramientas-de-rob-tica/urbi.-universal-real-time-
behavior-inte-3.html
Raúl Arrabales Moreno. conscious-robots.com/raul |