Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Simuladores de robots en java

Enero 22nd, 2004 - [Enlace local]

Recientemente, para hacer unas prácticas de la asignatura “Robótica Perceptual”, he buscado en internet software para la simulación de robots con el fin de encontrar una alternativa programable en java a los que posiblemente sean los simuladores más conocidos: el simulador de los robots Nomadic y el simulador del robot Khepera, ambos programables en los lenguajes C/C++

Una de las cosas que he aprendido en esta pequeña incursión en el mundo de la robótica es que C sigue siendo el rey, aunque java se está introduciendo poco a poco y ya tiene una posición importante. Atras quedan los mitos que clasificaban a java como un lenguaje no apto para tareas de tiempo real, de hecho los creadores del simulador TeamBots afirman lo siguiente:

“Concerns about Java: some researchers are concerned that Java is too slow to support real time robot control. Our experience contradicts this conclusion. As an example, in simulation (without graphics) our Java coded behavior-based control systems run at up to 30 KHz rates on conventional 200 MHz Pentium machines. The primary bottleneck to runtime efficiency on real robots is sensor and control I/O. On Nomad 150 robots for instance, we are limited to 10Hz control rates because this is the maximum rate control commands can be transmitted to the robot (control programs written in C cannot run any faster). In our experience the benefits of Java (correctness, ease of use, rapid development) far outweigh the negligible runtime overhead.”

Una de las características que han de tener estos simuladores es que el mismo software que corre sobre ellos luego ha de funcionar sobre los robots físicos, aunque siempre hay pequeñas diferencias sobre todo en la precisión de los sensores, que hacen que posteriormente sea necesario ajustar el programa para que funcione correctamente en el mundo real. El resultado de mi pequeña búsqueda es el siguiente:

WSU Khepera Simulator: es un simulador gráfico en lenguaje java para el robot Khepera fabricado por la compañía suiza K-Team. Este simulador, desarrollado por la universidad de Wright State (WSU), permite que los controladores desarrollados en la plataforma puedan ejecutarse en un robot Khepera.

TeamBots: es un conjunto de paquetes y aplicaciones java destinados a la investigacion con robots móviles multiagente. Soporta los robots de la serie Nomad 150 de la extinta compañía Nomadic Technologies. También soporta además de la ejecución en entorno de simulación, la ejecución en robots reales.

JCye: es un subproyecto de TeamBots para soportar los robots Cye

Webots: probablemente el producto mas completo pero también de caracter comercial (la versión pro cuesta unos 1500 €). Es un entorno que permite la construcción de prototipos, el modelado, la programación y la simulación de robots móviles en los lenguajes C, C++ y Java. Soporta la transferencia de los controladores desarrollados a varios modelos de robots reales como: Aibo, Lego Mindstorms, Khepera, Koala y Hemisson.

Solo he trasteado con el WSU Khepera Simulator, y aunque la documentación es muy escasa (escasísima), al final he hecho alguna cosilla. Es muy sencillo de utilizar, básicamente el controlador que creamos es un thread que se ejecuta constantemente. En el método doWork() tenemos que programar la lógica del robot a partir de la lectura de los 8 sensores de infrarrojos que nos proporcionan información sobre la proximidad de objetos o sobre la intensidad de luz, de los encoders de las ruedas que nos permiten determinar la posición del robot o del sensor que hay en el brazo del robot, que nos informa de la presencia o no de objetos entre las patillas del brazo. A su vez podemos controlar el robot con los actuadores: dos motores (uno para cada rueda) y el brazo (podemos moverlo y cambiar su estado abierto/cerrado)

No he incluído la programación de Lego Mindstorms con lejOS aunque sin duda es algo a tener en cuenta (aunque no es un simulador). Agradecería que si alguien conoce algún otro simulador que se me haya escapado lo hiciera constar en los comentarios. Y por otra parte una preguntilla ¿Algún kit de construcción de robots programable en java y de precio asequible (además de Mindstorms)?

» Leer más, comentarios, etc...