Diferencia entre revisiones de «Cube Simulator»

De WikiRobotics
Saltar a: navegación, buscar
(Licencia)
(Características)
 
(No se muestran 31 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
[[Imagen:Cube-simulator-pantallazo1.png|right|thumb|250px|‎]]
+
[[Imagen:Cube simulator-pant1.jpg|thumb|right|400px|‎]]
  
 
== Introducción ==
 
== Introducción ==
 +
'''Cube Simulator''' son una serie de herramientas para '''el estudio de la locomoción de los robot ápodos''' (topologías de 1D) de los grupos cabeceo-cabeceo y cabeceo-viraje. Se desarrollaron inicialmente para la realización de los experimentos de la tesis doctoral "[[Juan_Gonzalez:Tesis|Robótica Modular y Locomoción: Aplicación a Robots Ápodo]]"
  
 
== Características ==
 
== Características ==
 +
* '''Plataforma''': Debian GNU/Linux
 +
* '''Motor físico''': [http://www.ode.org/ Open Dynamics Engine] (ODE)
 +
* '''Lenguaje''' C
 +
* '''Representación 3D''': OpenGL
 +
* '''Algorítmos genéticos''': [http://www-fp.mcs.anl.gov/CCST/research/reports_pre1998/comp_bio/stalk/pgapack.html Pgapack], versión 1.0
 +
* '''Representación de los datos''': [http://www.gnu.org/software/octave/ Octave]
 +
* '''Robots''': Movimiento de los robots: [[Cube Revolutions]], [[Hypercube]] y [[MiniCube]]
  
 
== Pantallazos ==
 
== Pantallazos ==
  
 +
{|
 +
| [[Imagen:Cube simulator-pant1.jpg|thumb|200px|Locomoción de un robot ápodo de 32 módulos del grupo cabeceo-cabeceo]]
 +
|| [[Imagen:Cube simulator-pant2.jpg|thumb|200px|Locomoción de un robot ápodo de 20 módulos del grupo cabeceo-viraje]]
 +
|| [[Imagen:Cube simulator-pant3.jpg|thumb|200px|Locomoción de tres robots ápodos de 8 módulos, del grupo cabeceo-cabeceo]]
 +
|}
 +
 +
== Herramientas ==
 +
El simulador lo constituyen diferentes aplicaciones y librerías, cada una con un propósito. Las principales son:
 +
* '''Librería RTK'''. Es la librería principal que permite definir los robots ápodos, construirlos, renderizarlos en 3D y simularlos.
 +
* '''View'''. Visualización en 3D de la locomoción de los robots ápodos.
 +
* '''Osciloscopio'''. Obtención de datos (velocidad, posición, rotaciones...)
 +
* '''GA'''. Búsquedas mediante algoritmos genéticos
 +
* '''Play'''. Movimiento de robots reales
 +
 +
== Ejemplos de simulación ==
 +
 +
=== Grupo cabeceo-cabeceo ===
 +
 +
{|  {{tablabonita}}
 +
! Comando !! Descripción
 +
|-----------------------
 +
|  ''./View `./Pn 32 12 32 23 0`''
 +
|| Línea recta. 32 Módulos
 +
|-------------------
 +
|  ''./View `./Pn 8 85 32 90 0` ''
 +
|| Línea recta. 8 módulos ([[Cube Revolutions]])
 +
|-------------------
 +
|  ''./View `./Pn 2 60 32 110 0`  ''
 +
|| Línea recta. 2 módulos. Configuración mínima PP. ([[MiniCube|Minicube-I]])
 +
|---------------------
 +
|}
 +
 +
=== Grupo cabeceo-viraje ===
 +
 +
{| {{tablabonita}}
 +
! Comando !! Descripción
 +
|-------------------
 +
|  ''./View `./PYn 32 32 20 0 0 0 45 0 0`''
 +
||  Línea recta. 32 módulos.
 +
|--------------------
 +
|  ''./View `./PYn 8 32 45 0 0 0 135 0 0` ''
 +
|| Línea recta. 8 Módulos. [[Hypercube]]
 +
|-------------------
 +
|  ''./View `./PYn 3 32 60 0 0 0 110 0 0`''
 +
|| Línea recta. 3 Módulos. Configuración mínima. [[MiniCube|Minicube-II]]
 +
|--------------------
 +
|  ''./View `./PYn 18 32 70 0 0 10 120 0 0` ''
 +
|| Giro. 18 Módulos
 +
|-------------------
 +
|  ''./View `./PYn 8 32 20 0 0 22 120 0 0`''
 +
||  Giro. 8 Módulos.  [[Hypercube]]
 +
|--------------------
 +
|  ''./View `./PYn 20 32 10 10 0 0 0 0 90` ''
 +
|| Rodar. 20 Módulos
 +
|-------------------
 +
|  ''./View `./PYn 8 32 30 30 0 0 0 0 90` ''
 +
|| Rodar. 8 Módulos.  [[Hypercube]]
 +
|--------------------
 +
|  ''./View `./PYn 3 32 60 60 0 0 0 0 90`''
 +
|| Rodar. 3 Módulos. Configuración mínima. [[MiniCube|Minicube-II]]
 +
|-------------------
 +
|  ''./View `./PYn 32 32 15 40 0 0 90 45 0` ''
 +
|| Rotación. 32 Módulos
 +
|--------------------
 +
| ''./View `./PYn 8 32 20 40 0 0 180 90 -45`''
 +
|| Rotación. 8 Módulos.  [[Hypercube]]
 +
|-------------------
 +
| ''./View `./PYn 3 32 30 40 0 0 180 0 90`''
 +
|| Rotación. 3 Módulos. Configuración mínima. [[MiniCube|Minicube-II]]
 +
|--------------------
 +
| ''./View `./PYn 16 32 10 20 0 0 90 0 90` ''
 +
|| Rotación en U. 16 módulos
 +
|-------------------
 +
| '' ./View `./PYn 8 32 10 40 0 0 180 0 90`''
 +
|| Rotación en U. 8 Módulos.  [[Hypercube]]
 +
|--------------------
 +
| ''./View `./PYn 32 20 7 40 0 0 -45 -45 112`''
 +
|| Desplazamiento lateral. 32 Módulos.
 +
|-------------------
 +
| ''./View `./PYn 8 32 10 40 0 0 90 90 45`  ''
 +
|| Desplazamiento lateral. 8 Módulos.  [[Hypercube]]
 +
|--------------------
 +
|  ''./View `./PYn 32 32 20 20 0 0 -22 -22 0` ''
 +
|| Lateral Inclinado. 32 Módulos.
 +
|--------------------
 +
|  ''./View `./PYn 8 24 40 40 0 0 -90 -90 60`''
 +
|| Lateral inclinado.  8 Módulos.  [[Hypercube]]
 +
|-------------------
 +
|  ''./View `./PYn 16 32 2 2 0 0 0 0 90`  ''
 +
|| Remero. 16 Módulos
 +
|--------------------
 +
|  ''./View `./PYn 8 32 7 7 0 0 0 0 90` ''
 +
|| Remero.  8 Módulos.  [[Hypercube]]
 +
|-------------------
 +
|  ''./View `./PYn 3 100 30 30 0 0 0 0 90`  ''
 +
|| Remero. 3 Módulos. Configuración mínima. [[MiniCube|Minicube-II]]
 +
 +
|}
 +
 +
== Vídeos ==
 +
{| {{tablabonita}}
 +
| [[Imagen:Cube-Revolution-Sim1-thumb.jpg]]
 +
|| [http://www.youtube.com/watch?v=9Bcl_bbBtDw VER VIDEO]<br>
 +
Simulación del robot [[Cube Revolutions]] (8 módulos, grupo cabeceo-cabeceo). Se muestran la variación en la locomoción del robot al aplicar diferentes parámetros.
 +
 +
|  [[Imagen:Hypercube Sim1 thumg.jpg]]
 +
|| [http://www.youtube.com/watch?v=_3IfJaMWs_o VER VIDEO] <br>
 +
Simulación del robot [[Hypercube]] (8 módulos, grupo cabeceo-viraje). Se muestran diferentes modos de locomoción
 +
|}
 +
 +
{| {{tablabonita}}
 +
|
 +
* Se pueden encontrar [[Juan_Gonzalez:Tesis#Simulaciones |más vídeos de las simulacicones en esta página]]
 +
|}
 +
=== Generando videos ===
 +
Para obtener vídeos de las simulaciones seguir los siguientes pasos:
 +
* Crear el diretorio ''frame'' desde donde se esté invocando la herramienta de simulación.
 +
* Arrancar la simulación.
 +
* Para comenzar la captura pulsar control-W. Se empezarán a crear imágenes comenzando por frame0001.ppm. Se almacenan en el directorio frame.
 +
* Pulsar control-W para finalizar la captura.
 +
* Entrar en el directorio frame y ejecutar:
 +
ffmpeg -f image2 -i frame%04d.ppm misimulacion.mpg
 +
Es necesario tener instalada la aplicación '''ffmpeg''' (paquete ffmpeg en Debian)
 +
=== Concatenación de vídeos ===
 +
Si se tienen varios vídeos separados y se quieren concatenar para obtener un vídeo que los incluya a todos, se puede usar el '''comando cat''':
 +
cat video1.mpg video2.mpg video3.mpg > mi_video_largo.mpg
 
== Descargas ==
 
== Descargas ==
 +
 +
=== Versión: 1.1 ===
 +
{|{{tablabonita}}
 +
!Fichero!!Descripción
 +
|--------------------
 +
| [http://www.iearobotics.com/wiki/images/2/20/Cube_simulator-1.1.tar.gz Cube_simulator-1.1.tar.gz]
 +
|| Fuentes
 +
|--------------------
 +
| [http://www.iearobotics.com/wiki/images/c/c3/Cube_simulator-1.1-bin.tar.gz Cube_simulator-1.1-bin.tar.gz]
 +
|| Binarios compilados para Linux (Debian Lenny 5.0), con ODE 0.9
 +
|}
 +
 +
 +
=== Versión: 1.0 ===
 +
{|{{tablabonita}}
 +
!Fichero!!Descripción
 +
|--------------------
 +
| [http://www.iearobotics.com/wiki/images/3/3c/Cube_simulator-1.0.tar.gz Cube_simulator-1.0.tar.gz]
 +
|| Fuentes
 +
|--------------------
 +
| [http://www.iearobotics.com/wiki/images/a/ab/Cube_simulator-1.0-bin.tar.gz Cube_simulator-1.0-bin.tar.gz]
 +
|| Binarios compilados para Linux (Debian Etch 4.0), con ODE 0.5
 +
|}
 +
 +
== Dependencias ==
 +
* Para el funcionamiento del simulador tiene que estar instalado el [http://www.ode.org/ Open Dynamics Engine] (ODE).
 +
* Instalación en '''Debian/Lenny''':
 +
** Es necesaria la version 0.9 del ODE. Instalación:
 +
''apt-get install libode0debian1''
 +
 +
* Instalación en '''Debian/Etch''':
 +
** Es necesaria la versión 0.5 del ODE. Instalación:
 +
''apt-get install libode0c2''
  
 
== Licencia ==
 
== Licencia ==
Línea 14: Línea 181:
 
||Cube Simulator es '''Software libre''' distribuido bajo la [http://www.viti.es/gnu/licenses/gpl.html licencia GPL v3.0]
 
||Cube Simulator es '''Software libre''' distribuido bajo la [http://www.viti.es/gnu/licenses/gpl.html licencia GPL v3.0]
 
|}
 
|}
 +
 +
== Cambios ==
 +
=== Version 1.1 ===
 +
* Migración a ODE 0.9 y Debian Lenny (5.0).
 +
* Las simulaciones funcionan ahora mucho más rápidas
 +
* Bug solucionado: Ya no se produce el segmentation fault cuando hay muchos puntos de contacto con el suelo
 +
* Ya no se usan articulaciones para la unión entre módulos, sino objetos rígidos constituidos por dos geometrías
 +
 +
=== Version 1.0 ===
 +
* Versión inicial. Creada para la realización de los experimentos de la tesis doctoral: "[[Juan_Gonzalez:Tesis|Robótica Modular y Locomoción: Aplicación a Robots Ápodo]]"
 +
* La plataforma de desarrollo es una Debian Gnu/Linux Etch (4.0), con la versión 0.5 del ODE
 +
* '''Bugs''':
 +
** Cuando existen muchos puntos de contacto con el suelo, el simulador da un "segmentation fault".
  
 
== Autor ==
 
== Autor ==
Línea 22: Línea 202:
 
=== Acceso al repositorio ===
 
=== Acceso al repositorio ===
 
* SVN del proyecto [http://svn.iearobotics.com/cube_simulator/ http://svn.iearobotics.com/cube_simulator/]
 
* SVN del proyecto [http://svn.iearobotics.com/cube_simulator/ http://svn.iearobotics.com/cube_simulator/]
La versión actual se puede obtener así:
 
  
  svn co http://svn.iearobotics.com/cube_simulator/
+
Obtener la '''versión 1.1''' del SVN:
 +
  svn co http://svn.iearobotics.com/cube_simulator/cube_simulator-1.1/
 +
 
 +
'''versión 1.0''' :
 +
 
 +
svn co http://svn.iearobotics.com/cube_simulator/cube_simulator-1.0/
  
 
== Noticias ==
 
== Noticias ==
 +
* '''29/Dic/2008''': Publicada versión 1.1
 +
* '''26/Dic/2008''': Publicada versión 1.0.
 
* '''21/Dic/2008''': Comenzada esta página
 
* '''21/Dic/2008''': Comenzada esta página
  
Línea 32: Línea 218:
 
[[Categoría:Software]]
 
[[Categoría:Software]]
 
[[Categoría:Robots modulares]]
 
[[Categoría:Robots modulares]]
 +
[[Categoría:Videos]]

Revisión actual del 03:07 29 dic 2008

Introducción

Cube Simulator son una serie de herramientas para el estudio de la locomoción de los robot ápodos (topologías de 1D) de los grupos cabeceo-cabeceo y cabeceo-viraje. Se desarrollaron inicialmente para la realización de los experimentos de la tesis doctoral "Robótica Modular y Locomoción: Aplicación a Robots Ápodo"

Características

Pantallazos

Locomoción de un robot ápodo de 32 módulos del grupo cabeceo-cabeceo
Locomoción de un robot ápodo de 20 módulos del grupo cabeceo-viraje
Locomoción de tres robots ápodos de 8 módulos, del grupo cabeceo-cabeceo

Herramientas

El simulador lo constituyen diferentes aplicaciones y librerías, cada una con un propósito. Las principales son:

  • Librería RTK. Es la librería principal que permite definir los robots ápodos, construirlos, renderizarlos en 3D y simularlos.
  • View. Visualización en 3D de la locomoción de los robots ápodos.
  • Osciloscopio. Obtención de datos (velocidad, posición, rotaciones...)
  • GA. Búsquedas mediante algoritmos genéticos
  • Play. Movimiento de robots reales

Ejemplos de simulación

Grupo cabeceo-cabeceo

Comando Descripción
./View `./Pn 32 12 32 23 0` Línea recta. 32 Módulos
./View `./Pn 8 85 32 90 0` Línea recta. 8 módulos (Cube Revolutions)
./View `./Pn 2 60 32 110 0` Línea recta. 2 módulos. Configuración mínima PP. (Minicube-I)

Grupo cabeceo-viraje

Comando Descripción
./View `./PYn 32 32 20 0 0 0 45 0 0` Línea recta. 32 módulos.
./View `./PYn 8 32 45 0 0 0 135 0 0` Línea recta. 8 Módulos. Hypercube
./View `./PYn 3 32 60 0 0 0 110 0 0` Línea recta. 3 Módulos. Configuración mínima. Minicube-II
./View `./PYn 18 32 70 0 0 10 120 0 0` Giro. 18 Módulos
./View `./PYn 8 32 20 0 0 22 120 0 0` Giro. 8 Módulos. Hypercube
./View `./PYn 20 32 10 10 0 0 0 0 90` Rodar. 20 Módulos
./View `./PYn 8 32 30 30 0 0 0 0 90` Rodar. 8 Módulos. Hypercube
./View `./PYn 3 32 60 60 0 0 0 0 90` Rodar. 3 Módulos. Configuración mínima. Minicube-II
./View `./PYn 32 32 15 40 0 0 90 45 0` Rotación. 32 Módulos
./View `./PYn 8 32 20 40 0 0 180 90 -45` Rotación. 8 Módulos. Hypercube
./View `./PYn 3 32 30 40 0 0 180 0 90` Rotación. 3 Módulos. Configuración mínima. Minicube-II
./View `./PYn 16 32 10 20 0 0 90 0 90` Rotación en U. 16 módulos
./View `./PYn 8 32 10 40 0 0 180 0 90` Rotación en U. 8 Módulos. Hypercube
./View `./PYn 32 20 7 40 0 0 -45 -45 112` Desplazamiento lateral. 32 Módulos.
./View `./PYn 8 32 10 40 0 0 90 90 45` Desplazamiento lateral. 8 Módulos. Hypercube
./View `./PYn 32 32 20 20 0 0 -22 -22 0` Lateral Inclinado. 32 Módulos.
./View `./PYn 8 24 40 40 0 0 -90 -90 60` Lateral inclinado. 8 Módulos. Hypercube
./View `./PYn 16 32 2 2 0 0 0 0 90` Remero. 16 Módulos
./View `./PYn 8 32 7 7 0 0 0 0 90` Remero. 8 Módulos. Hypercube
./View `./PYn 3 100 30 30 0 0 0 0 90` Remero. 3 Módulos. Configuración mínima. Minicube-II

Vídeos

Cube-Revolution-Sim1-thumb.jpg VER VIDEO

Simulación del robot Cube Revolutions (8 módulos, grupo cabeceo-cabeceo). Se muestran la variación en la locomoción del robot al aplicar diferentes parámetros.

Hypercube Sim1 thumg.jpg VER VIDEO

Simulación del robot Hypercube (8 módulos, grupo cabeceo-viraje). Se muestran diferentes modos de locomoción

Generando videos

Para obtener vídeos de las simulaciones seguir los siguientes pasos:

  • Crear el diretorio frame desde donde se esté invocando la herramienta de simulación.
  • Arrancar la simulación.
  • Para comenzar la captura pulsar control-W. Se empezarán a crear imágenes comenzando por frame0001.ppm. Se almacenan en el directorio frame.
  • Pulsar control-W para finalizar la captura.
  • Entrar en el directorio frame y ejecutar:
ffmpeg -f image2 -i frame%04d.ppm misimulacion.mpg

Es necesario tener instalada la aplicación ffmpeg (paquete ffmpeg en Debian)

Concatenación de vídeos

Si se tienen varios vídeos separados y se quieren concatenar para obtener un vídeo que los incluya a todos, se puede usar el comando cat:

cat video1.mpg video2.mpg video3.mpg > mi_video_largo.mpg

Descargas

Versión: 1.1

Fichero Descripción
Cube_simulator-1.1.tar.gz Fuentes
Cube_simulator-1.1-bin.tar.gz Binarios compilados para Linux (Debian Lenny 5.0), con ODE 0.9


Versión: 1.0

Fichero Descripción
Cube_simulator-1.0.tar.gz Fuentes
Cube_simulator-1.0-bin.tar.gz Binarios compilados para Linux (Debian Etch 4.0), con ODE 0.5

Dependencias

  • Para el funcionamiento del simulador tiene que estar instalado el Open Dynamics Engine (ODE).
  • Instalación en Debian/Lenny:
    • Es necesaria la version 0.9 del ODE. Instalación:
apt-get install libode0debian1
  • Instalación en Debian/Etch:
    • Es necesaria la versión 0.5 del ODE. Instalación:
apt-get install libode0c2

Licencia

150px Cube Simulator es Software libre distribuido bajo la licencia GPL v3.0

Cambios

Version 1.1

  • Migración a ODE 0.9 y Debian Lenny (5.0).
  • Las simulaciones funcionan ahora mucho más rápidas
  • Bug solucionado: Ya no se produce el segmentation fault cuando hay muchos puntos de contacto con el suelo
  • Ya no se usan articulaciones para la unión entre módulos, sino objetos rígidos constituidos por dos geometrías

Version 1.0

  • Versión inicial. Creada para la realización de los experimentos de la tesis doctoral: "Robótica Modular y Locomoción: Aplicación a Robots Ápodo"
  • La plataforma de desarrollo es una Debian Gnu/Linux Etch (4.0), con la versión 0.5 del ODE
  • Bugs:
    • Cuando existen muchos puntos de contacto con el suelo, el simulador da un "segmentation fault".

Autor

Desarrolladores

Acceso al repositorio

Obtener la versión 1.1 del SVN:

svn co http://svn.iearobotics.com/cube_simulator/cube_simulator-1.1/

versión 1.0 :

svn co http://svn.iearobotics.com/cube_simulator/cube_simulator-1.0/

Noticias

  • 29/Dic/2008: Publicada versión 1.1
  • 26/Dic/2008: Publicada versión 1.0.
  • 21/Dic/2008: Comenzada esta página