[Jde-dev] [Jde] Simulación de robots modulares

JoseMaria jmplaza en gsyc.es
Sab Dic 27 14:19:43 CET 2008


Hola Juan,

magnífica hoja de ruta! Algunas ideas:

[APIs estables]
Sobre los robots modulares, mooola el simulador que has hecho! ¿En qué
medida se usa el mismo API para programar el robot ápodo real o el robot
ápodo de tu simulador con ODE? Lo ideal sería que tuvieran exactamente
el mismo interfaz, para que la aplicación pudiera gobernar el robot real
o el simulado indistintamente, sin recompilar ni nada, sólo cambiando su
configuración.

Por ejemplo, el interfaz del sensor láser, la cámara o los motores es el
mismo en JDE tanto si se maneja el sensor láser real, el simulado por
Stage o por Gazebo. Del mismo modo el API para la cámara no varía si es
la cámara USB, una cámara firewire, un video enlatado mpg, una cámara IP
o una simulada en Gazebo. Que la aplicación funcione con unas o con
otras es simplemente cuestión de configuración, la aplicación no hay ni
que recompilarla. Esta portabilidad es muy ventajosa. Clarificar y
unificar el interfaz natural para usar los robots ápodos, o de los
servos aislados, ayudará.

[drivers]
Para los dispositivos reales (servos aislados, los robots ápodos y para
las plataformas de hardware libre como Skypic), la primera opción que
viene a la cabeza es la que comentas: hacer "drivers" para manejarlos
desde una aplicación 'de alto nivel' escrita en JDE, donde sea cómodo
incorporar otros sensores, algoritmos de comportamientos, etc. Por
ejemplo, en JDE hay drivers para la pantilt de Sony-EVI, el wiimote,
cámaras, láser, etc. Dándole alguna vuelta, quizá convenga más hacer un
"driver" para Player directamente (que también es sw libre [1]). Por un
lado tiene mucha más visibilidad y por otro, se podría utilizar desde
aplicaciones hechas en JDE igualmente (sólo habría que extender el
driver-jde para player para que incluya los nuevos APIs de servos,
robots ápodos, etc.). ¿Cómo lo ves?

Para el simulador de servos o robots ápodos que has hecho se podría
programar un driver específico en jde que tuviera los mismos APIs que el
anterior (para que las aplicaciones funcionen igual sobre
simulado/real). Otra alternativa es incorporar los módulos oportunos en
el simulador Gazebo (para ápodos, para Flatbot...), y usar los drivers
existentes en JDE (extendiendolos como antes). Esto último igual es más
trabajoso y no merece la pena...

Empezar paso a paso, como sugieres en las minitareas, me parece muy
inteligente. 

Un lujo contar contigo Juan, bienvenido.

JoseMaria
[1] http://playerstage.sourceforge.net/
On Wed, 2008-12-10 at 11:30 +0100, juan wrote:
> Hola,
> 
>   Me presento, soy Juan González, un loco de los robots modulares y del
> software/hardware libres. Hace tiempo que Jose María me enseñó el JDE y
> desde entonces he estado siempre con la idea de utilizarlo para
> implementar comportamientos en mis robots modulares.
> 
>   Voy a escribir las ideas que tengo en la cabeza, para que las
> conozcáis y sobre todo para que no se me olviden y quede constancia de
> ellas en la lista.
> 
> 1) Simulación de robots modulares con JDE
> 
>   Sería genial que el JDE permitiese simular robots modulares e
> implementar con él comportamientos. De momento, yo me he centrado en mi
> tesis sólo en los robots ápodos[1], que tienen una topología de 1D.
> 
>   Aquí os paso un vídeo de una de las simulaciones:
> 
>   http://www.youtube.com/watch?v=gQQus3OcLJk
> 
>   Está realizada con el ODE[2]. Y aunque algunos modos de caminar
> parezcan muy complejos, están realizados simplemente haciendo oscilar
> las articulaciones de manera sinusoidal.
> 
>   Al integrarlo con el JDE, se podría hacer que el robot se moviese
> mediante visión, incorporar diferentes comportamientos, etc.
> 
> 2) Movimiento de robots reales con JDE
> 
>    La robótica es algo más que simulación. Si al final no se pueden
> hacer pruebas en robots reales, las simulaciones no sirve de mucho. Por
> ello, otro tarea a realizar es integrar en el JDE los drivers necesarios
> para controlar robots modulares reales.
> 
>   Aquí podéis ver a un robot ápodo de 8 módulos en acción:
> 
> http://www.youtube.com/watch?v=RJL-buxNiD4
> 
> 
> 3) Plataformas robóticas libres
> 
>   Actualmente el JDE tiene muchos drivers para controlar diferentes
> plataformas robóticas, cámaras, periféricos, etc... Eso está muy bien...
> Pero yo quiero ir un paso más allá. Quiero que exista una plataforma
> robótica totalmente libre, en la que se tenga acceso a las otras partes:
> mecánica y electrónica.  Permitir a cualquiera no sólo entender el
> software, sino también su electrónica y su mecánica, que se puedan
> modificar, mejorar, distribuir.  
> 
>   Por ello, otra tarea es la de crear drivers para el JDE que permitan
> la utilización de hardware libre. 
> 
>   Nosotros tenemos diseñada una tarjeta libre, la Skypic[3], con la que
> controlamos los robots modulares y pequeños robots móviles de
> aprendizaje, como el Skybot[4] o el FlatBot[5].
> 
>   También está el Arduino[6], que es hardware libre, basado en los
> micros AVR de Atmel.
> 
>   Sería fantástico que los estudiantes/ingenieros/investigadores
> pudiesen tener acceso a este bajo nivel y que pudiesen crearse sus
> propias plataformas robóticas o controladores electrónicos.
>  
>   Por ejemplo, para tener una cámara con movimientos pan&tilt hay dos
> opciones:
> 
> 1) Comprarse un pan&tilt comercial, que incluye la mecánica, los servos
> y el controlador.  Esto está muy bien, pero no deja de ser una "caja
> negra". Si se estropea o lo dejan de fabricar, adiós. Hay que comprar un
> modelo diferentes y cambiar todo el software.
> 
> 2) Crearte tu propia pan&tilt, con mecánica y electrónica libres. La
> información de cómo hacerla siempre estará ahí y será independiente del
> fabricante. Bien te la construyes tú mismo o bien contratas a una
> empresa/ingeniero para que lo haga por tí.
> 
>   Para los que no somos ingenieros mecánicos, la mecánica es un problema
> y nos parece algo muy complicado... Pero si es un proyecto libre, pueden
> venir colaboradores de Industriales. En mi caso, la electrónica no es un
> problema: yo hago controladores con microcontroladores y me resulta
> sencillo. En vuestro caso, sois desarrolladores software. Programar esas
> plataformas es un problema abordable. Quizás no tanto para un
> Industrial/Electrónico.
> 
> 4) Ir paso a paso
> 
>   Pero como todo, hay muchas cosas por hacer y poco tiempo/recursos.
> Propongo las siguientes mini-tareas:
> 
>   4.1.- Hacer un driver para JDE que permita posicionar un servo
> utilizando como hardware la tarjeta Skypic
> 
>   4.2.- Hacer un driver para JDE que permite posicionar un servo
> "virtual", modelado con ODE.
> 
>   4.3.- Implementar firmware/driver JDE para controlar el Skybot/Flabot
> 
>   4.4.- Driver JDE para mover un robot ápodo mínimo.
> 
>   4.5.- Driver JDE para simular un robot ápodo mínimo.
> 
> Poco a poco me pondré con ello y os iré informando de los avances.
> 
> 
> Saludos, Juan
> 
> 
> [1]http://www.iearobotics.com/wiki/index.php?title=Juan_Gonzalez:Tesis
> [2]Open Dynamics Engine. http://www.ode.org/
> [3]http://www.iearobotics.com/wiki/index.php?title=Skypic
> [4]http://www.iearobotics.com/wiki/index.php?title=Skybot
> [5]http://www.iearobotics.com/wiki/index.php?title=Robot_FlatBot
> [6]http://www.arduino.cc/
> 
> 
-- 
http://gsyc.es/jmplaza 
Universidad Rey Juan Carlos




More information about the Jde-developers mailing list