Moviendo un módulo Y1 virtual con JDERobot 5.0

blog-jderobot5-servo1-test1

JDErobot es un software para desarrollo de aplicaciones de robótica, creado en el grupo de robótica de la Universidad Rey Juan Carlos (URJC). Actualmente se está trabajando en la versión 5.0. Yo estoy colaborando para añadir soporte para robots modulares.

JDErobot 5.0 utiliza ICE (the Internet Communications Engine) para interconectar todos sus ‘componentes’. ICE permite realizar sistemas distribuidos, para cualquier plataforma y en muchos lenguajes diferentes.

Para familiarizarme con ICE he programado el componente Servo1, que permite mover un módulo Y1 virtual, igual que si fuera uno real.

[youtube]http://www.youtube.com/watch?v=Dj5p7ndWPfE[/youtube]

El servidor utiliza el plug-in OpenMR de OpenRave para implementar el módulo Y1. Se queda esperando conexiones de los clientes, que pueden estar tanto en el ordenador local, como en cualquier otro de la intranet (por ejemplo un teléfono con Android).

¡Anímate a probarlo! Puedes encontrar las fuentes en este repositorio alojado en la URJC.

Obijuan

OpenMR: Modular Robots plug-in for Openrave

blog-minicube-i-openmr-1

Currently I am working on the OpenMR: an OpenRave Modular Robots plug-in for simulating the locomotion of modular robots. It is in an early stage of development.

It consist of a hierarchy of controllers. At the lowest level is the servocontroller. This controller allow the users or higer leves to set the position of a simulated servos. Above it is the sinoscontroller: sinusoidal oscillations controller. It in charge of generating sinusoidal oscillations on the servos from the parameters: amplitude, initial phase, period and offset. This controller is enough for making the snake or caterpillar robots to move with different gaits: sidewinding, rolling, rotating, etc.

At the top level is executed the user script or another high level controller.

The idea behind OpenMR is to dump all the knoledge generated in my PhD Dissertation into a software tool.

Obijuan

Contribución a OpenRave: Odecontroller

blog-minicube-i-v0-3
La semana pasada implementé el controlador “odecontroller” para OpenRave, siguiendo las directrices que me había dado Rosen Diankov (el autor de Openrave). Lo envié a la lista de usuarios y tras las modificaciones añadidas por Rosen, el parche fue integrado en el svn (r1343).

[youtube]http://www.youtube.com/watch?v=z8dKBB1eiUM[/youtube]

En este vídeo se muestra un ejemplo de locomoción de Minicube-I, usando el odecontroller. Ahora ya no es necesario parchear el openrave para que funcione. Este ejemplo es la versión 0.3. Los ficheros de descarga y las instrucciones para probarlo están disponibles en esta página del wiki.

Odecontroller está dentro del plugin Oderave y permite a los usuarios acceder a “bajo nivel” a la física de ODE. De momento sólo está implementado el comando “setvelocity” para establecer la velocidad de las articulaciones.

Con este controlador, ya puedo empezar a portar mis simulaciones de los robots modulares a OpenRave. Para ello voy a hacer un plug-in para robots modulares.

Obijuan

Simulando robots modulares con OpenRave (II)

blog-minicube-i-open-rave-2

He realizado la simulación de la locomoción de Minicube-I con Openrave, pero usando un modelo real de módulos Y1, en vez del hexaédrico como en la simulación previa.

Las piezas de los módulos Y1 están hechas en Blender y de ahí se han exportado al formato Open Inventor (.iv) que puede importar OpenRave.

[youtube]http://www.youtube.com/watch?v=lsj7H2EGPqM[/youtube]
(Enlace directo al vídeo en Youtube)

Todavía tengo que afinar algunos parámetros de la física, pero está está funcionando bastante bien. Es la primera vez que simulo el modelo real 😉

Todos los ejemplos de prueba que estoy haciendo en c++ los estoy publicando en esta página del wiki: OpenRave y Robots modulares para que cualquiera los pueda probar

Obijuan

Publicada la documentación del montaje de UNIMOD A1

blog-unimod-a1-1-r2
Ya está terminada la documentación del montaje de UNIMOD A1. Unimod es el robot modular mínimo formado por un módulo + skycube + pilas. Tiene la propiedad de poder oscilar de manera autónoma.

A partir de un Unimod se pueden construir robots modulares más largos, tanto del grupo cabeceo-cabeceo como cabeceo-viraje, mediante la unión de más módulos o bien de otros Unimods.

Aquí se muestran las piezas necesarias para el montaje de Unimod A1:

blog-unimod-a1-inicio-r2

* Un módulo MY1
* Una tarjeta Skycube
* Un portapilas
* Una pieza D
* 4 separadores macho-hembra de 12mm y M3
* 4 separadores hembra-hembra de 10mm y M3
* 8 tornillos de M3, entre 5 y 8 mm de largo
* 2 tornillos M3 de cabeza plana
* 2 tuercas M3

Obijuan

Simulando Robots modulares con OpenRave (I)

blog-openrave-pp-conf1
Gracias a Javier González y Juan González (otro Juan que se llama igual que yo) del Robotics Labs de la UC3M me enteré de la existencia del simulador Openrave. Es un entorno para la simulación/planificación de Robots, usado fundamentalmente por investigadores.

Es libre y multiplataforma. Y de ahí que para mi fuese “amor a primera vista“. Decidí aprenderlo y empezar a usarlo para simular los robots modulares.

En este vídeo podéis ver la simulación de la locomoción del modelo hexaédrico de Minicube-I. También podréis ver lo fácil que es usar el visualizar por defecto de OpenRave:

[youtube]http://www.youtube.com/watch?v=SIhvo446M0Y[/youtube]
Enlace directo al vídeo en Youtube

La simulación está programada en C++. En esta página del wiki podéis encontrar el código fuente así como más ejemplos que he hecho y que iré añadiendo en el futuro.

Obijuan

Documentación del montaje de los módulos MY-1

blog-modulo-my1-1

Ya está terminada la primera versión de la documentación del montaje de los módulos MY1.

blog-montaje-my1-inicio-r1

Los módulos MY1 se montan muy fácilmente. Están formados por tres piezas (A,B C) de aluminio de 2mm de espesor, pintadas de negro. Para el montaje se necesita un servo 3003 o compatible, tornillos de métrica 3 con sus tuercas y dos de los tornillos que vienen con el servo.

Obijuan