2008-12-29 Juan Gonzalez * Simulador adaptado a ODE 0.9, que viene con Debian Lenny * Modificado Rtk-Chain.cpp y T1D.cpp. Ahora las uniones entre modulos no se establecen mediante articulaciones fijas, sino que se crean cuerpos constituidos por dos geometrias. * Las simulacicones con ODE 0.9 van mucho mas rapidas * Las utilidades View y demas funcionan correctamente con los nuevos cambios. Probados todos los ejemplos del fichero tools/ejemplos.txt * Creados algunos proyectos para anjuta 2.4 * LIBERADO COMO VERSION 1.1------------------------------------------- * Para Debian Lenny (5.0), con ODE 0.9 2008-12-26 Juan Gonzalez * LIBERADO COMO VERSION 1.0----------------------------------------- * Para Debian Etch (4.0), con ODE 0.5 2008-12-23 Juan Gonzalez * Anadidos range/range-Pn.cpp y range/range-PYn.cpp * Anadido osciloscope/Osciloscopio.cpp * Anadido utils/Yn.cpp * Añadido directorio con otros programas para los experimentos -error/error_muestreo_FASE_N.py -error/error_muestreo.py -error/range_error_muetreo.py -modulo/Mod_lin_seq_gen.py -modulo/Espectro_N_modulo.cpp -modulo/Osciloscopio-Y1-escalon.cpp -modulo/Osciloscopio-Y1-escalon2.cpp -modulo/Osciloscopio-Y1.cpp * Anadido tools/ejemplos.txt, con ejemplos del uso de View para visualizar diferentes tipos de locomocion de robots ápodos * Anadido fichero leeme.txt, que indica como compilar 2008-12-22 Juan Gonzalez * Anadido osciloscope/Osciloscopio-file.cpp * Creado directorio robot con las herramientas para el control de robot reales -Todas las utilidades de consola y puerto serie se han metido en el directorio io, y se agrupan en la libreria libio.a. Se han incluido tambien los ficheros de manera de los servos (stargate) para no tener que instalar la libstargate y reducir las dependencias de la instalacion -Anadido play/Play.cpp -Anadido play/Play-file.cpp -Anadido play/Play-3D.cpp. La funcionalidad de simulacion 3D + reproduccion en robot real de momento esta deshabilitada en las RTK -En el directorio robot se han incluido los binarios de las utilidades Pn y PYn para que sea mas facil de utilizar -Anadido manual -Anadidas las herramientas para hacer las demostraciones con los robots Cube-rev, Hypercube, PP y PYP en el directorio Demos * Creado directorio GA con las herramientas para los algoritmos geneticos -Programa GA metido en directorio GA-utils ->De momento se usa libreria estatica libpga0.a, modificada con respecto a la que viene con el paquete original * Anadida la libreria PGAPACK0 1.0.0.1-4 modificada para compilar con el g++. 2008-12-21 Juan Gonzalez * Creado repositorio en: http://svn.iearobotics.com/cube_simulator/ * Comenzada la limpieza de las fuentes. Se va a guardar todo bajo el nombre: Cube-simulator. * Se ha creado un directorio para la drawstuff, con su propio Makefile para compilarlo * Creado directorio Rtk, que contiene sólo las RTK y RTK3D. El Makefile permite crear las librerias librtk.a y librtk3d.a así como los programas de ejemplo: -test-modulos-teclas.cpp -test-robots.cpp -Anadido fichero T1D.cpp a las RTK!! * Creado directorio tools para las herramientas de simulacion -Anadido makefile inicial -Anadido Utils/Pn.cpp -Anadido utils/Pyn.cpp -Anadido utils/sin2file.cpp -Anadido view/View.cpp -Anadidod view/View-fitness.cpp -Anadido view/View-file.cpp -Anadido view/View-file-fitness.cpp ------------------------------------------------------- POST-TESIS. A partir del 2008-11-21 Ya soy doctor ;-) ------------------------------------------------------- 2008-05-07 Juan Gonzalez * Nuevos programas Demo-PP.cpp y Demo-PYP.cpp para hacer pruebas con las configuraciones mínimas 2008-04-29 Juan Gonzalez * Nuevo progrrama Demo-hypercube.cpp para hacer com hypercube. Esta basado en Demo-cube-rev.cpp. 2008-04-17 Juan Gonzalez * Nuevo programa Demo-cube-rev.cpp para hacer demostraciones de movimiento con el robot Cube Revolutions. Está basado en Play.cpp 2008-03-07 Juan Gonzalez * T1D.cpp: Modificada funcion T1D_step() para realizar los calculos de x,y,z usando el centro de masas en vez de el modulo de referencia. El codigo para usar el modulo de referencia no se ha borrado. Basta con descomentar la parte que hace referencia al Centro de masas para tenerlo como antes. 2007-07-09 Juan Gonzalez * Range_Pn.cpp: La normaliacion de algugnos parametros se realiza diviendo entre L/K en vez de solo entre L. 2007-06-10 Juan Gonzalez * View-Fitness.cpp: Anadido parametro DL para visualizar la distancia total recorrida * Range_PYn.cpp, Range_Pn.cpp: Añadida generacion de la funcion para mostrar la distancia total recorrida (DL) 2007-06-03 Juan Gonzalez * Rtk-Chain.h: Puesta la constante RTK_MAX_MOD que indica el numero maximo de modulos que puede tener una cadena. La constante T1D_MAX_MOD ha sido eliminada. * BUG: Para gusanos de mas de 24 segmentos el simulador peta. Se ha cescubierto que es debido a los puntos de contacto con el suelo. Inicial- mente el robot esta en posicion horizontal y hay muchisimos puntos de contacto con el suelo--> peta. Si embargo, si se le da una pequena altura inicial, el robot adopta una forma, disminuyen los puntos de contacto y no peta. Pero siempre que haya muchos puntos de contacto habra un segmentation fault. 2007-06-01 Juan Gonzalez * T1D.cpp: Anadido elemento worm.zmax_ciclo que devuelve la altura maxima en cm a la que se eleva el modulo de referencia. * Osciloscopio.cpp: Anadida visualizacion de zmax, Amplitud global y Amplitud global normalizada. 2007-05-27 Juan Gonzalez * PYn.cpp: Modificada la interpretacion de la DF de la onda horizontal. Un valor positivo indica propagacion hacia la derecha y negativo hacia la izquierda, igual que con la onda vertical. 2007-05-24 Juan Gonzalez * Pn.cpp y PYn.cpp: Modificada la generacion de las diferencias de fase en las articulaciones verticales. Ahora la fase 0 se corresponde con una funcion sin (antes se correspondia con -sin) 2007-05-20 Juan Gonzalez * T1D.cpp: Los ficheros generados para octave incluyen la cabecera: #!/usr/bin/octave para poder ser auto-ejecutables cuando tienen los permisos de ejecucion activados -Modificado el timeout. Ahora no es por numero de ticks sino por el periodo T. Esto permite detectar timeouts con independencia del paso de simulacion empleado (da igual que sean tics de 10ms o 1ms) 2007-05-10 Juan Gonzalez * Osciloscopio.cpp: Nueva version que toma los datos de la linea de comandos en vez de por un fichero (asi se evitan errores de redondeo) 2007-05-08 Juan Gonzalez * Yn.cpp: Version creada a partir de Pn.cpp para trabajar con configuraciones Yn. 2007-05-07 Juan Gonzalez * Range_Pn.cpp: El nombre del parametro T se ha sustituido por N 2007-05-04 Juan Gonzalez * Osciloscopio-file.cpp: Anadida la opcion Yn para visualizar estructuras de tipo Yn, en la que todos los modulos estan en posicion Yaw. 2007-05-02 Juan Gonzalez * error_muestreo_FASE_N.py: Programa que saca en una grafica en 3D la funcion error_m(F,N). Es el error de muestreo en funcion de N y de la fase. 2007-05-01 Juan Gonzalez * Range_Pn.cpp: Anadido parametro F, para hacer range sobre la fase inicial. Solo es para configuraciones de 1 modulo. No se ha programado pensando en mas modulos, aunque podria funcionar 2007-04-24 Juan Gonzalez * Modificado Espectro_N_modulo.cpp para resolucion de 0.001 (1ms). Ahora la grafica que relaciona T y N sale perfecta! :-) * Nuevo error_muestreo.py: Nuevo script para calcular el error de muestreo en funcion de la fase inicial * Nuevo range_error_muetreo.py para calcular el error maximo en funcion del numero de muetras 2007-04-23 Juan Gonzalez * Mod_lin_seq_gen.py: Nuevo script en python para generar una secuencia uniforme entre 0 y 90, con el numero de muestras indicadas. 2007-04-22 Juan Gonzalez * Range_PYn.cpp: Arreglado bug. No funcionaba cuando el numero de modulos era igual a 1. Ahora ya si * Range_Pn.cpp: Version inicial a partir de Range_PYn.cpp. En principio, las aplicaciones Range_Pn_A, Range_Pn_DF, Range_Pn_T quedan obsoletas * Espectro_N_modulo.cpp: Comenzado programa para ver la relacion entre N y T en una secuencia para un modulo. Creado a partir de Range_Pn.cpp 2007-04-18 Juan Gonzalez * Osciloscopio-file.cpp: -Generado nuevo fichero OSC_data_phi_ts.m que incluye las posiciones de refencia 2007-03-16 Juan Gonzalez * GA.cpp: -Implementado cromosoma: Ti_Ai_Oi_Fi 2007-03-15 Juan Gonzalez * Comenzado GA.cpp para unificar todos los programas de algoritmos geneticos -Implementado el paso de los nuevos parametros, incluido el cromosoma -Implementados dos tipos de chromosomas. Los programas GA_Pn1 y GA_PYn quedan obsoletos. Se pueden sustituir por el nuevo GA ->Cromosoma: T_Av_Ah_DFv_DFh_DFvh ->Cromosoma: T_DF_A ->Cromosoma: RAW -Creado nuevo fichero chromosome.cpp para contener las funciones relacionadas con los cromosomas. * Nuevo View-file-fitness para leer el fitness de los individuos que se encuentran en un fichero .mvm 2007-03-14 Juan Gonzalez * Nuevo Osciloscopio-file.cpp. Permite leer todos los datos necesarios para configuraciones Pn y PYn. Este programa unifica todos los anteriores Osciloscopios, que han quedado obsoletos. Los ficheros que se generan son: OSC_data_rot.m : Rotacion del modulo de referencia: pitch, yaw, roll OSC_data_wrot.m : Velocidad de rotacion del mod. de ref. OSC_data_rcm.m : Posicion del mod. de ref. x,y,z OSC_data_vcm.m : Velocidad del mod. de ref. OSC_data_phi.m : Variaciones angulares del servo OSC_data_w.m : Velocidades del servo OSC_data_F.m : Posiciones de refencia enviadas al servo * Nuevo View-file.cpp. Visualizacion de configuraciones Pn y PYn especifi- candose las funciones de los generadores mediante ficheros .mvm. Permite visualizar varias configuraciones Pn y PYn simultaneamente * El antiguo Play.cpp se ha renombrado a Play-file.cpp para seguir la misma notacion que Osciloscopio-file y View-file. * El antiguo Play-sin.cpp se ha renombrado a Play.cpp * Actualizado el manual * Nuevo sin2file.cpp para obtener ficheros .mvm a partir de los parametros de los generadores sinusoidales * Nuevo View.cpp para visualizar cualquier configuracion (PYn o Pn) a partir de generadores sinusoidales * Nuevo View-fitness.cpp para visualizar todos los datos de cada ciclo, asi como la funcion de fitness solicitada. Las aplicaciones View-T1D y View-T1D2 han quedado OBSOLETAS. 2007-03-13 Juan Gonzalez * Primera version de Play operativa. -Anadidos los ficheros consola_io.c, sg-tramas-servos8.c, consola_io.h y sg-tramas-servos8.h. -El puerto serie se puede pasar como parametro -Funcionamiento correcto a traves de conversor USB-serie -Anadidas diferentes teclas para el control: -p: modo pausa -d: cambiar la direccion -t: Modo PASO: el robot se mueve solo un periodo -Anadidos nuevos parametros para especificar la CONEXION. Ahora se puede utilizar cualquier placa: matrix 1, matrix 2, skypic, ct6811.... * Primera version de Play-sin.cpp para reproducir una secuencia sinusoidal en el robot fisico. Se pueden especificar los numeros de los servos. Los parametros de los generadores son los mismos que para el programa View-T1D * El valor aproximado de la pausa utilizada en Osciloscopio_Pn para adaptar lo virtual a lo real es de : * usleep(int (sim.step*314000)); para 1 modulo * usleep(10); Para PP * Creado Pn.cpp para generar los parametros de los generadores de las configuraciones Pn * Actualizado manual.txt * Nuevo Play-3D que mueve el robot real y el virtual. LOS DOS ROBOTS ESTAN SINCRONIZADOS!! ES LA CAÑA!!!!!!! * Rtk-Y1Module.cpp, Rtk-Simulation-Engine.cpp y T1D.cpp modificados para soportar robots fisicos. 2007-03-12 Juan Gonzalez * Comenzado programa Play.cpp para reproducir ficheros .mvm en el robot real ------------------------------------------------------------------------------- --- VERSION 0.4 FINALIZADA. TAG: release_0_4 ------ ------------------------------------------------------------------------------- Todos los experimentos iniciales se han finalizado 2007-03-08 Juan Gonzalez * Range_PYn.cpp: Arreglado un bug al hacer range sobre DFvh. Los resultados que se obtenian (la grafica) NO eran correctos. Ahora se calcula el valor de DFvh y DFh inicialmemnte y se almacena en las variables DFvh_ini y DFh_ini. Luego se recalculan las fases a partir de ellos y del valor del parametro a variar 2007-02-09 Juan Gonzalez * GA_PYn.cpp: Anadido control del volcado mediante una constante defina en el codigo. Se puede habilitar o deshabilitar cambiando esta constante 2007-02-07 Juan Gonzalez * Range_PYn.cpp: Primera version operativa -Anadida grafica del periodo * GA_PYn.cpp: -Modificado para introducir la opcion de volcado. Hay individuos que dentro de un mismo ciclo hacen roll de 90 grados y luego de -90 grados, dando un resultado neto de 0. Ese tipo de soluciones se quieren evitar. Si ocurre eso se dice que el robot "ha volcado". -El volcado se comprueba desde el instante 0. 2007-02-06 Juan Gonzalez * Range_PYn.cpp: Implementados parametros en linea de comandos 2007-02-05 Juan Gonzalez * Range_PYn.cpp: Comenzado programa 2007-02-02 Juan Gonzalez * T1D.cpp: -Anadidas funciones comunes para manejo del fitness * View-T1D2.cpp: -Usa las funciones comunes para el fitness definidas en T1D.cpp * GA_PYn.cpp: -Usa las funciones comunes para el fitness definidas en T1D.cpp -Anadidos como parametros el tipo de fitness, el numero de modulos, el ciclo inicial y el numero de ciclos -Se imprime el genotipo: nm T Av Ah 0 0 DFv DFh DFvh -Algoritmo genetico validado para fitness DX 2007-02-01 Juan Gonzalez * Comenzado View-T1D2.cpp que hace lo mismo que View-T1D.cpp pero se le pasan algunos parametros nuevos 2007-01-31 Juan Gonzalez * T1D.cpp: -Calculo de los incrementos de roll y pitch en un ciclo -Calculo de las velocidades angulares medias por ciclo -Calculados los parametros angulares por intervalo -Posibilidad de construir las configuracicones usando cpgs para los generadores o directamente las funciones. Asi es posible construir las configuraciones a partir de ficheros .mvm * View-T1D: -Hecha limpieza * Primera version de Osciloscopio_PYn.cpp * Programa PYn.cpp para generar los parametros para View-T1D de cualquier confiuracion PYn * Comenzado GA_PYn.cpp para trabajar con algoritmos geneticos y configuraciones PYn. 2007-01-30 Juan Gonzalez * T1D.cpp: Solucionados algunos problemas de calculo del yaw. Tal y como se utiliza ahora, hay ocasiones en las que aparece un error. Hay que tener en cuenta que el metodo no es perfeto y que error hay. TRABAJAR CON ANGULOS DE EULER ES UN INFIERNO. Pero al menos, la aproximacion realizada parece que funciona en la mayoria de los casos. 2007-01-29 Juan Gonzalez * T1D.cpp: -Implementado el nivel de intervalo. -Implementada funcion generica para obtener ficheros octave -Calculados pitch, yaw y roll en todos los casos. Para evitar problemas, cuando hay una singularidad (roll=+-90), pitch y yaw no se calculan. Se deja su valor anterior. En los movimientos normales no deberia haber problemas ya que lo que interesa es el incremento del valor de los angulos en un ciclo y no tanto el valor instantaneo. 2007-01-28 Juan Gonzalez * T1D.cpp: Realizado un poco de limpieza en el codigo. 2007-01-26 Juan Gonzalez * T1D.cpp: Solucionado problema de las Singularidades para YAW. Al calcular el yaw a partir de los quaterniones, la formula empleada no es valida cuando se esta cerca de valores de yaw de 90. En esos casos hay que calcularlo directamente utilizando la definicion de quaternion. -Sin embargo, con una formula, los angulos se obtienen en el intervalo [-90,90], pero con la otra formula (la de la singularidad) se obtienen angulos fuera de ese rango. Por tanto hay que convertir. -El calculo del yaw instantaneo funciona al menos con el individuo T4 cuando realiza rotacion horaria. No se ha probado con la rotacion antihoraria ni con otros movimientos. -El calculo del Paso Yaw en un ciclo tampoco se ha comprobado con las nuevas modificaciones. 2007-01-24 Juan Gonzalez * Realizada limpieza del directorio * Modificado Makefile. Algunos objetivos no se limpiaban con make clean * La version 2.0 se ha llevado al directorio version-2.0, con todos los ficheros de pruebas que se tenian * T1D.cpp: -Los modulos Yaw se dibujan rojos, los pitch amarillos -Implementadas la lectura de posiciones y velocidades lineales * View-T1D.cpp: -Simplificacion del programa -Se imprimen en pantalla las posiciones y velocidades lineales -Primera implementacion de las posiciones angulares ------------------------------------------------------------------------------- --- VERSION 0.3 FINALIZADA. TAG: release_0_3 ------ ------------------------------------------------------------------------------- 2007-01-24 Juan Gonzalez * Congelar la version 0.3. Esta es la version que se ha utilizado para realizar los experimentos de locomocion en 1D. A partir de la siguiente version se trabajara en la locomocion en 2D y en la unificacion de las diferentes herramientas, para englobar tambien la locomocion en 1D 2007-01-22 Juan Gonzalez * Nuevo PXn_param.cpp para generar los parametros para View_Pn y Range_Pn_XXX. * Comenzado View_T1D.cpp, basado en T1D.cpp, para visualizar cualquier topologia de 1D moviendose mediante CPGs sinusoidales -Primera version que ya permite construir robots PYn 2007-01-21 Juan Gonzalez * View_Pn.cpp, Range_Pn_DF.cpp: -Modificados para introducir un TIMEOUT. Si el robot pasa mas de ese tiempo en un ciclo, se aborta. * GA_Pn1.cpp: Anadido un timeout 2007-01-14 Juan Gonzalez * GA_Pn1.cpp: Primera version que parece funcionar. Permite encontrar soluciones en el espacio A-T-DF para configuraciones Pn y PXn. 2007-01-13 Juan Gonzalez * Comenzado GA_Pn1.cpp a partir de GA_PP3.cpp para realizar experimentos geneticos en el espacio A,O,T,DF de las configuraciones Pn y PXn 2007-01-05 Juan Gonzalez * Comenzado Range_Pn_T.cpp a partir de Range_Pn_DF.cpp -Validado. Los datos parece que son fiables * Comenzado Range_Pn_A.cpp a partir de Range_Pn_T.cpp -Validado. Los datos parece que son fiables 2007-01-04 Juan Gonzalez * Rtk-Chain.cpp: -Solucionado BUG "extrano". Las cadenas no se simulaban bien Por ejemplo, en la secuencia: 90 4 0 0 90 4 83 0 de una configuracion PP el modulo derecho no se movia con amplitud de 90. * Comenzado Range_Pn_DF.cpp a partir de Range_PP_DF.cpp -Primera version operativa. Tambien funciona con configuraciones del tipo PXP (utilizando el concepto de modulos activos) 2007-01-03 Juan Gonzalez * Comenzado Osciloscopio-Pn.cpp a partir de Osciloscopio-PP.cpp y View-Pn.cpp -Primera version lista para hacer experimentos * Rtk-Sampled-Function.cpp: Funciones Rtk_Sampled_Function_new_from_mvm_file y Rtk_Sampled_Function_new_from_mvm_file_fd modificadas para devolver un valor entero que indique si la funcion se ha leido o no * Rtk-Chain.cpp: -Nueva funcion Rtk_Chain_set_initial_pos() para establecer la posicion inicial de la configuracion 2007-01-02 Juan Gonzalez * Comenzado View-Pn.cpp para visualizar configuraciones superiores del tipo Pn. Se ha partido del fichero View-PP-sin1.cpp. -Primera version lista * Nuevo programa Pn_param.cpp para generar los parametros para usar con el programa View-Pn. Ejemplo de uso: ./View-Pn `./Pn_param 3 80 10 120 0` Visualizar una configuracion P3 que pertenece al espacio homogeneo+O con A=80, T=10, DF=120 2006-12-29 Juan Gonzalez * Comenzado programa GA_PP3.cpp basado en GA_PP2.cpp para buscar en el espacio A-O-T-DF 2006-12-28 Juan Gonzalez * Comenzado programa GA_PP.cpp basado en Range_PP_A.cpp y GA_PP_locomotion7.cpp. Permite utilizar algoritmos geneticos usando de fitness la velocidad y el paso. -Primera version operativa. Se obtienen los mismos resultados que con GA_PP_locomotion6, lo que implica que esta funcionando bien * Comenzado GA_PP2.cpp basado en GA_PP.cpp para hacer busquedas en el espacio A1-A2-T-DF 2006-12-27 Juan Gonzalez * Primera version de Range_PP_A.cpp, generado a partir de Range_PP_T.cpp 2006-12-25 Juan Gonzalez * Primera versión de GA_PP_locomotion6.cpp para estudiar el espacio Homogeneo: A-T-DF 2006-12-18 Juan Gonzalez * Primera version de Range_PP_DF.cpp, generado a partir de Range_PP_T.cpp 2006-12-12 Juan Gonzalez * Comenzado programa Range_PP_T.cpp para sacar las graficas del periodo, paso y velocidad en funcion del numero de muestras -Motor de la primera version finalizado -Generenados los ficheros octave con los datos -Primera version de Range_PP_T lista 2006-12-07 Juan Gonzalez * View-PP-sin1.cpp: Visualizacion de los angulos de los modulos izquierdo y derecho cuando se pulsa la tecla 3 2006-12-03 Juan Gonzalez * GA_PP_locomotion5.cpp: -Version inicial a partir de GA_PP_locomotion4.cpp 2006-11-13 Juan Gonzalez * GA_PP_locomotion4.cpp: -Version inicial a partir de GA_PP_locomotion3.cpp -Realizados los primeros experimentos 2006-11-07 Juan Gonzalez * Version inicial del Osciloscopio_PP2, para evaluar el movimiento no unif. * Se generan ficheros con la posicion del centro de masas, variacion de los angulos de los servos (phi), tiempo medio, velocidad meia y paso. * Se pasan como parametros el fichero .mvm y el numero de ciclos a simular * Se ha probado con movimiento uniforme y tambien funciona. Es un soft. generico. 2006-11-06 Juan Gonzalez * Nuevo GA_PP_locomotion3 creado a partir del GA_PP_locomotion2, para hacer los experimentos de simetria (experimento 8). * Se devuelve el valor absoluto del fitness, de manera que si el robot se mueve hacia la derecha, no devuelve 0, como antes. 2006-11-02 Juan Gonzalez * GA_PP_locomotion2.cpp: -generacion del fichero exp7_GAX_pob10_iter10_evol.txt 2006-10-30 Juan Gonzalez * GA_PP_locomotion2.CPP: -No se utiliza mas la funcion PGARun: ahora se tiene control del bucle principal del genetico. -La poblacion y el numero de iteraciones se puede pasar como argumento por la linea de comandos -Parametros cambiados: las 2/3 partes de la poblacion son reemplazadas en cada generacion -La seleccion se hace mediante PTOURNAMENT, con probabilidad 0.6 -Generacion de una grafica Octave con la evolucion del Fitness en funcion de las iteraciones: exp7_GAX_pobXX_iterYY_evol.m 2006-10-24 Juan Gonzalez * Nuevo GA_PP_locomotion2.cpp creado a partir de GA_PP_locomotion2. Se van a modificar los parametros del genetico para adecuarlo al problema de la locomocion - Se utilizan enteros para la codificacion, defiendo su rango de validez - La funcion de fitness NO puede ser NEGATIVA!! Esto puede explicar algunos experientes X's encontrados. 2006-10-17 Juan Gonzalez * View-PP-sin1.cpp: Visualizacion del tiempo relativo al ciclo cuando se pulsa la tecla 2 * BUG solucionado: Al leer fichero .mvm, el -0 se interpreta como 2 ceros y por tanto el periodo de las senales se incrementaba en una unidad 2006-10-16 Juan Gonzalez * Nuevo: View-PP-sin1.cpp. Visualizacion de una configuracion PP controlada por CPGs sinusoidales. 2006-10-15 Juan Gonzalez * GA_PP_locomotion1.cpp: Arreglados bugs. Generando diferentes resultados para comparar. - No se usan individuos duplicados. Para establecerlo hay que usar la funcion: PGASetNoDuplicatesFlag(ctx,PGA_TRUE); - Los resultados obtenidos se estan guardando en el log de la tesis. 2006-10-12 Juan Gonzalez * GA_PP_locomotion1.cpp: experimentos con CPGs sinusoidales en la configuracion PP. Un primer resultado preliminar (para probar): Fitness: 15.73cm A:65, T:46, F:21, O:-25 A:69, T:175, F:56, O:-21 [-1, 29, 39, 25, -8, -48, -79, -89, -75, -41, ]; [36, 47, 33, -1, -44, -78, -89, -75, -40, 2, ]; * En esta primera version el periodo se fija a 10 para los dos CPGs, ya que cuando son diferentes "casca" (BUG) * Otro resultado: Fitness: 19.33 cm A:90, T:240, F:27, O:0 A:78, T:201, F:175, O:-12 [40, 88, 14, -80, -63, ]; [-5, -83, -63, 28, 64, ]; Este se parece bastante al generado con los alg. geneticos genericos. Periodo fijado a 5 * Rtk-SampledFunction.cpp: Corregido un bug en Rtk_Sampled_Function_new_from_mvm_file() 2006-09-27 Juan Gonzalez * Osciloscopio-PP. Se muestran los siquientes datos: -Duracion de cada periodo -Distancia recorrida por periodo -Velocidad media 2006-09-26 Juan Gonzalez * Osciloscopio-PP: Generacion del fichero PP_data_rcm.m con los datos de movimiento del centro de masas. 2006-09-25 Juan Gonzalez * Rtk_Sampled_Function_roll_left(): funcion para rotar a la izquierda una funcion sampleada * Rtk_Sampled_Function_new_from_harmonics(): Crear una funcion sampleada a partir de unos armonicos * Creado ejemplo Rtk-test3.cpp a partir de Osciloscopio-PP para hacer pruebas. 2006-09-18 Juan Gonzalez * BUGFIX: Arreglado bug en Rtk-Generator. Al simular los generadores el flag de transicion se activaba con un ciclo de retraso. * Osciloscopio-PP: -Generacion de las posiciones angulares (phi1 y phi2) -Generacion de las velocidades angulares (w1 y w2) 2006-09-14 Juan Gonzalez * (Brussels, at the hotel. 6.33 in the morning) * New Osciloscopio-Y1-escalon2, for testing the response to a doble step stimulus of one Y1 module. * New Osciloscopio-Y1, for testing the response to a general sampled functions, with a generic number of samples. * First version of the program: Osciloscopio-PP. -The sequences can be specified by the command line parameters 2006-09-11 Juan Gonzalez * (Airport T4, Madrid) * New Osciloscopio-Y1-escalon.cpp, for testing the response to the step of one Y1 module. 2006-09-10 Juan Gonzalez * Eliminados todos los ficheros anteriores. Ahora solo se ha dejado todo lo relacionado con RTK * La version anterior se encuentra en el directorio Modulo-Y1-20060910 * Modificado Makefile ------------------------------------------------------------------------------- --- VERSION 0.2 FINALIZADA. TAG: release_0_2 ------ ------------------------------------------------------------------------------- 2006-09-10 Juan Gonzalez * Implementado Rtk_PP_reset(); * Corregido bug en el reset de los generadores. Ahora el efecto es el mismo al hacer un reset que al iniciar la simulacion por primera vez * RTK_SIMULATION_ENGINE: -Funcion Rtk_Simulation_Engine_reset() para llevar la simulacion y todos sus "hijos" al estado inicial. * RTK_FITNESS: -Nueva funcion Rtk-Fitness-distance() y Rtk-3D-Fitness-distance() que funciona para un robot generico, no solo para configuraacion PP -La funcion de evaluacion funciona tanto para 3D como para consola. Se ha detectado que a veces aparece el error: "ODE Message 3: LCP internal error, s <= 0 (s=-0.0000e+00)" -En principio, la funcion de evaluacion esta lista para ser usada * RTK_ROBOT: -Nueva funcion Rtk_robot_get_pos() que devuelve la posicion de un robot generico * Nueva funcion Rtk_3D_Simulation_Loop() que incluye el bucle principal de simulacion. Permite que el usuario pueda hacer una simulacion de manera muy rapida, casi sin escribir nada de codigo. * GA: -GA_hola_mundo: Adaptada la API a RTK. Ejemplo que determina la mejor fase cuando el offset y la amplitud estan fijadas. -GA_generic_locomotion: Adaptado a la nueva API. Se han utilizado funciones genericas de 10 muestras, con una poblacion de 100 individuos y numero de iteraciones 500. Los resultados son: {35, -90, 31, -30, -67, -82, -45, 2, 90, 90, }, {-90, 11, 13, -63, 31, 61, 61, 9, 10, -5, }, y la distancia avanzada es de 23.37cm con 1000 ticks de simulacion de 0.01 seg (10 segundos). (Velocidad de 2.3 cm/seg) -La parte de algoritmos geneticos esta lista para empezar a hacer pruebas 2006-09-09 Juan Gonzalez * Rtk_Sampled_function_new_from_sine_func() Arreglado Bug: faltaba anadir el offset. * Rtk_Generator_set_func() modificada. Ahora se le pasa como parametro un puntero a una RTK_SAMPLED_FUNCTION en vez de a un array de muestras y su tamano. * RTK-FITNESS: Comenzado modulo -La funcion de evaluacion se ha integrado en RTK. De momento solo funciona 1 vez y solo funciona para configuraciones PP * RTK-Y1MODULES: -Nueva funcion Rtk_Y1Module_reset() para llevar el modulo al estado inicial * RTK_GENERATOR: -Nueva funcion Rtk_Generator_reset() para llevar el generar al estado inicial 2006-09-04 Juan Gonzalez * Nueva funcion Rtk_Sampled_function_new_from_sine_func() que permite crear una funcion muestreada a partir de los parametros de una funcion sinusoidal. * COMENZADO SIGUIENTE HITO. De momento no se van a anadir nuevas cosas a RTK (aunque si se haran modificaciones). Ahora hay que adaptar la funcion de fitness a las RTK. * Fitness-pp, fitness-pp-3D, fitness-pp-3D-test y fitness-pp-test. Funcion de evaluacion implementada con el motor de simulacion de RTK, para PP. * RTK_SAMPLED_FUNCTION: - La funcion Rtk_Sampled_function_new_from_mvm_file() puede leer ficheros .MVM de cualquier numero de muestras. - Implementadas funciones para generar ficheros a MRS, C y Octave. * El fichero gmatrix-pp.cpp ya esta OBSOLETO. 2006-09-03 Juan Gonzalez * Implementada funcion Rtk_Simulation_Engine_print() para imprimir el arbol completo del Robogets. * Anadidos mas controles de errores de punteros nulos * Solucionado Bug que causaba "Segmentation fault" * Implementado el RTK_CHAIN para hacer una cadena de modulos 2006-09-02 Juan Gonzalez * RTK_ROBOT_GROUP Implementado!! Ahora se pueden hacer simulaciones de varios robots en paralelo * Primera version de RTK_PP. * Los modulos de la configuracicon PP se pueden controlar de manera centralizada: equivalentes a "gait control tables" o bien de manera independiente. * RTK-PP: -campo de Play * RTK_SAMPLED_FUNCTION: -Nueva clase para controlar funciones muestreadas -Se pueden leer desde un fichero y asignarselas a los generadores 2006-09-01 Juan Gonzalez * Metido en Rtk-3D todo lo posible del acceso a Drawstuff. Simplificado al maximo. * Nuevo Rtk-3D-test-Y1-teclas que sustituye a modulo-y1-3D-teclas * Primera version del generador: Rtk_Generator.cpp -Implementados contador de periodos y senal de transicion de un periodo a otro. El periodo 0 es el transitorio. -El generador es "generico". Puede reproducir senales de cualquier tamano de muestras (no esta solo limitado a 10) -Implementada propiedad de Play. El generador se puede parar o activar 2006-08-31 Juan Gonzalez * Programa pp-3D-seq adaptada a la nueva API de los modulos y1. Ya hay una configuracion PP que se esta movimiento con la nueva API. 2006-08-29 Juan Gonzalez * Modificado modulo-y1-medidas.cpp para funcionar con la nueva API. Los resultados son exactamente los mismo que cuando se usa el programa modulo-y1-3D-medidas. * Documentado con Doxygen * Documentados ficheros gmatrix-pp.cpp y gmatrix-pp.h 2006-08-27 Juan Gonzalez * Documentado comportamiento para entrada sinusoidal de 80 grados. * Documentado comportamiento para entradas sinusoidales de 40 y 20 grados. * modulo-y1-3D-seq.cpp eliminado. El programa modulo-y1-3D-medidas.cpp hace lo mismo, ademas de crear los ficheros con las mediciones. * modulo-y1-3D.cpp: -Cambiada arquitectura. Ahora los parametros relacionados con la visualizacion 3D se encuentran en la estructura ModuleY1_3D que se pasa como parametro. Permite cambiar el color y el factor de visualizacion -Modulo documentado con Doxygen * modulo-y1-seq.cpp eliminado. 2006-08-26 Juan Gonzalez * Documentado comportamiento para doble escalon y un pulso 2006-08-24 Juan Gonzalez * modulo-y1-3D-doble-escalon: -Se imprime el tiempo de establacimiento para cada escalon. -Ahora se especifican las posiciones de refencia mediante los argumentos. 2006-08-21 Juan Gonzalez * modulo-y1-3D-teclas.cpp: -Ahora utiliza el motor de simulacion -Documentado con Doxygen -BUG SOLUCIONADO: Se quedaba "enganchado" el modulo y no se movia. Se ha solucionado estableciendo el parametro soft_cfm a 0.01 y poniendo el modo a dContactBounce | dContactSoftCFM -Anadida tecla 'q' para finalizar la simulacion -Comprobado que el programa modulo-y1-3D-medidas.cpp sigue funcionando correctamente con las secuencias servo_test.mvm y servo_test_sin.mvm. * modulo-y1.cpp: -Nuevo paramero zini para establecer la z inicial del modulo. * modulo-y1-3D-medidas.cpp: -Terminada documentacion con Doxygen * modulo-y1-3D_escalon -Solucionado bug. Ya no se queda enganchado -Documentacion con doxygen -Se pasa como parametro la amplitud del escalon -Programa funciona OK! * modulo-y1-3D-medidas: -Anadida grafica que compara la posicion de referencia con la obtenida -BUG: corregido periodo en posicion referencia -Modificadas las etiquetas de los ejes x e y -Escalado del eje Y fijado a -90,90 * modulo-y1-3D-escalon: -Anadida grafica que compara la posicion de ref con la real * Nuevo programa modulo-y1-3D-doble-escalon -Genera una grafica con dos escalones * modulo-y1-3D-medidas: -Modificada la grafica de comparacion entre posicion de referencia y real. Ahora la de referencia se dibuja como escalones. Esto permite ver muy claramente lo que significa el parametro error_min. 2006-08-19 Juan Gonzalez * Modulo-y1: -Realizado el experimento 3, con ondas sinusoidales -Experimento 3 documentado. -Fichero servo_test_sin.mvm, con funciones sinudoidales de 40 de amp y 120 de desfase añadido al cvs. (es la misma secuencia cableada en el programa modulo-y1-3d-medidas). -Incluido controlador PID, aunque en la simulacion no sirve de mucho ya que no hay inercias. Cuando se le dice al servo que vaya a una velocidad, lo hace instantaneamente. No es necesario un control PID. Sin embago, se deja para aplicaciones futuras. * modulo-y1-3D-escalon.cpp: programa para obtener la grafica de la respuesta al escalon. 2006-08-18 Juan Gonzalez * Modulo-y1: -Parametros Li, Ld incluidos en la estructura Modulo_y1 -Parametros Mi, Md includos en la estructura Modulo_y1 -Renombrado parametro kp a Kp -Renombrado parametro servo_pos a pos_ref 2006-08-17 Juan Gonzalez * Cambiados interfaces de modulo-y1-motor y modulo-y1 para poder modificar facilmente los parametros del modulo-Y1 desde los programas que hacen la simulacion. * modulo-y1: -Nueva funcion ModuloY1_new() para crear e inicializar un modulo Se establecen los parametros por defecto -Nueva funcion ModuloY1_set_data() que permite cambiar los valores por defecto por otros -Parametro accesibles por las aplicaciones * error_min * xini,yini * dimensiones del modulo: grosor, altura, longitud * masa * par * kp * wmax 2006-08-16 Juan Gonzalez * modulo-y1: - Documentado con Doxygen - Error minimo incluido en estructura Modulo_Y1 2006-08-15 Juan Gonzalez * modulo-y1-3D-medidas: -Para solucionar los problemas de la simulacion, se han modificado diferentes parametros, pero la solucion es utilizar pasos de simulacion de 0.01 segundos. Tambien se modificado el valor de ContactSurfaceLayer (en modulo-y1-motor.cpp). Antes tenia un valor de 0.001 y ahora 0.0001. * modulo-y1-motor: - Comenzada documentacion con Doxygen para el motor - Parametros incluidos en el contexto de simulacion: -gravedad -cfm -erp -MaxCorrectingVel -SurfaceLayer -mu -step; -world -space -contactgroup - Ahora en el fichero modulo-y1-motor.cpp no hay ninguna variable global. Todo lo necesario para reflejar el estado de la simulacion esta en el contexto. - Finalizada documentacion doxygen del modulo-y1-motor 2006-08-14 Juan Gonzalez * modulo-y1-3D-medidas: * Generados tres ficheros: -servo_data_pos: posiciones -servo_data_vel: velocidad -servo_data_ref: Posiciones de referencia * Limitada la velocidad maxima del servo * Calculada la velocidad maxima (WMAX) y parametrizada * Ganacia del servo calculada y parametrizada * Con los nuevos parametros se acerca bastante a lo que es el servo real, aunque hay algunos problemas en la simulacion. Hay que modificar algunos parametros para que vaya bien. 2006-07-13 Juan Gonzalez * gmatrix-pp.cpp: Anadida funcion para leer una secuencia de movimiento en formato MRS modulo-y1-3D-medidas: primera version finalizada. Se lee un fichero .mvm y se generan los ficheros: pos_deseada.m y servo_data.m * Nuevo modulo-y1-medidas.cpp, la version para consola de modulo-y1-3D-medidas 2006-07-12 Juan Gonzalez * modulo-y1.cpp: Anadidas funciones para crear modulo Y1 "de pie". Sin embargo hay problemas de "vibraciones".No tengo muy claro a que son debidas, asi que las pruebabs con el servo de verdad se haran en postura yaw. * gmatrix-pp.cpp: Modificada la funcion generador_output_octave(). Ahora saca la salida por un stream en vez de directamente por la salida estandar * modulo-y1-3D-medidas.cpp: -se genera el fichero pos_deseada.m con la grafica octave de las posiciones deseadas. -Se genera el fichero servo_data.m con la grafica octave de las posiciones reales de los servos con cada tick de simulacion * Realizada una prueba con la secuencia obtenida con los algoritmos geneticos. Se puede ver como se llegan a alcanzar velocidades punta de hasta 120 grados/segundo!!! Esta claro que tengo que modificar el controlador del servo. 2006-07-03 Juan Gonzalez * Comenzada fase 2: Refinamiento :-) * Nuevo fichero modulo-y1-motor.cpp, que incorpora las funciones necesarias para hacer la simulacion * Comenzado programa modulo-y1-3D-medidas, para realizar medidas en los modulos. 2006-07-03 Juan Gonzalez * PROBLEMA SOLUCIONADO!!!!! He recompilado la libreria libpga0.a, usando el compilador g++. He cambiado algunas cosas del codigo: -Se usaba la variable new, que en c++ es una palabra reservada -Daba un error en un modulo relacionado con la distancia de hamming, pero en principio no lo estoy utilizando. * Anadida la nueva libreria libpga0.a * Ejemplo GA_hola_mundo: obtiene la mejor fase cuando amplitud es 40, usando CPG's. No tengo "intuicion" sobre el tamano de la poblacion a usar, el numero de iteracciones, etc... * Comenzado prorama GA_generic_locomotion para obtener cuales son las funciones f1 y f2 mejores para la locomocion del robot. Seran sinusoidales?? Que forma tendran?? * GA_generic_locomotion: -Creada funcion para pasar del genotipo al fenotipo (obtener la matriz de movimiento). * Primer experimento con GA realizado! Los resultados son un poco extranos. Los parametros empleados son: Tamano poblacion: 500, Iteraciones 100. Resultado: -68 36 18 -90 58 -9 -41 35 90 -90 90 -16 -66 -12 63 -90 -1 55 -90 -14 * Establecido los siguientes pasos a seguir en el TODO * VERSION 0.1 FINALIZADA. TAG: release_0_1--------------------------------- 2006-07-02 Juan Gonzalez * Comenzado programa GA_hola_mundo.c, para hacer pruebas con los Algoritmos geneticos. Basado en el ejemplo maxbit del paquete pgapack * PROBLEMA!! El paquete PGAPACK esta en C y el ODE en C++. Hay incompatibilidad de librerias (¿?). Un programa compilado con g++ y otro con gcc, no linkan... Que puedo hacer???? 2006-07-01 Juan Gonzalez * Resultado extrano. Hasta ahora pensaba en la simetria de las secuencias de movimiento. De forma que para la misma amplitud, una secuencia de desfase 90 y -90 deberia ser igual. Los resultados obtenidos son estos: Desfase: 0. Distancia: -0.009 Desfase: -10. Distancia: -0.494 Desfase: -20. Distancia: -0.558 Desfase: -30. Distancia: -0.903 Desfase: -40. Distancia: -1.922 Desfase: -50. Distancia: -1.547 Desfase: -60. Distancia: -2.218 Desfase: -70. Distancia: -3.865 Desfase: -80. Distancia: -3.782 Desfase: -90. Distancia: -4.819 Desfase: -100. Distancia: -4.920 Desfase: -110. Distancia: -4.481 Desfase: -120. Distancia: -4.089 Desfase: -130. Distancia: -4.314 Desfase: -140. Distancia: -4.659 Desfase: -150. Distancia: -5.353 Desfase: -160. Distancia: -3.607 Desfase: -170. Distancia: -2.779 Desfase: -180. Distancia: -0.033 Que son diferentes a los equivalente con fase positiva... Tengo que investigar esto más a fondo. La primera hipotesis es que se debe a la posicion inicial de arranque. Se parte de (0,0), que NO es parte de la secuencia. * Programa locomocion-cpg-pp.cpp, para hacer experimentos de locomocion. Recolectados los datos del Clawar 2005. fichero tx.m con x entre 10 y 90, representando x la amplitud. 2006-06-30 Juan Gonzalez * Limpieza de los programas fitness-pp-3D-test.cpp y fitness-pp-3D.cpp * Corregido BUG: al repetir la misma simulacion no salian los mismos resultados. No se habia inicializado cada vez la variable n de comienzo de secuencia. * Los resultados obtenidos del programa fitness-pp-3D-test: $ ./fitness-pp-3D-test > t $ cat t Distancia: 30.6mm. Normalizada: 0.426 Distancia: 20.5mm. Normalizada: 0.285 Distancia: 3.6mm. Normalizada: 0.050 Distancia: 0.1mm. Normalizada: 0.001 Distancia: 30.6mm. Normalizada: 0.426 Distancia: 20.5mm. Normalizada: 0.285 Distancia: 3.6mm. Normalizada: 0.050 Distancia: 0.1mm. Normalizada: 0.001 -Se han evaluado 4 secuencias diferentes dos veces. Ahora, a partir de la linea 5 es una repeticion de la linea 1. Como debia ser. -Comenzado modulo fitness-pp.cpp, para realizar la simulacion sin renderizado en 3D -Modificado fitness-pp-3D.cpp. Ahora solo contiene lo imprescindible para realizar el renderizado. Ahora es un front-end grafico para para las funciones del modulo fitness-pp.cpp. -Nuevo programa de ejemplo fitness-pp-test.cpp, para evaluar secuencias sin renderizado. Se ha probado con 1000 TICKS y 4 secuencias. Los resultados son: $ ./fitness-pp-test Distancia: 366.1mm. Normalizada: 5.084 Distancia: 256.4mm. Normalizada: 3.560 Distancia: -2.4mm. Normalizada: -0.033 Distancia: -0.6mm. Normalizada: -0.009 Distancia: 366.1mm. Normalizada: 5.084 Distancia: 256.4mm. Normalizada: 3.560 Distancia: -2.4mm. Normalizada: -0.033 Distancia: -0.6mm. Normalizada: -0.009 - Experimento de prueba: Obtenidos datos de la distancia en funcion de la fase para amplitud 40 y desfase entre 0 y 180 (1000 ticks) Desfase: 0. Distancia: -0.009 Desfase: 10. Distancia: 0.065 Desfase: 20. Distancia: 1.295 Desfase: 30. Distancia: 1.734 Desfase: 40. Distancia: 2.147 Desfase: 50. Distancia: 2.825 Desfase: 60. Distancia: 3.662 Desfase: 70. Distancia: 3.986 Desfase: 80. Distancia: 4.068 Desfase: 90. Distancia: 3.560 Desfase: 100. Distancia: 4.499 Desfase: 110. Distancia: 4.820 Desfase: 120. Distancia: 5.084 Desfase: 130. Distancia: 4.656 Desfase: 140. Distancia: 4.623 Desfase: 150. Distancia: 5.277 Desfase: 160. Distancia: 3.148 Desfase: 170. Distancia: 2.303 Desfase: 180. Distancia: -0.033 2006-06-29 Juan Gonzalez * Programa gmatrix-pp-test.cpp, un ejemplo de uso del modulo gmatrix-pp. Permite generar secuencias de movimiento sinusoidales para la config. PP Se pueden exportar a los formatos MRS, OCTAVE y ODE. * Añadidos menues con las teclas usadas en los programas de ejemplo * Añadida ayuda a gmatrix-pp-test.cpp * COMIENZO SIGUIENTE HITO: FUNCION DE FITNESS * Comenzado programa fitness-pp-3D-test.cpp * fitness-pp-3D-test: se imprime la distancia recorrida por el gusano * Primeras pruebas de evaluacion de secuencias: -A=40, desfase=120. Ticks: 10000. Distancia Normalizada: 5.08 -A=40, desfase=90. Ticks: 10000. Distancia Normalizada: 3.56 -De momento la "tendencia" es igual que en la realidad: el desfase de 120 grados es mejor que el de 90 :-) * Primera version del modulo fitness-pp-3D.cpp, que contiene la funcion de evaluacion llamada desde fitness-pp-3D-test. 2006-06-28 Juan Gonzalez * modulo-y1: La antigua funcion moduloY1_crear se ha sustituido por modulo_y1_crear_origen: crea un modulo Y1 y lo situa en el origen -La nueva funcion modulo_y1_crear() permite situar el modulo en cualquier coordenada x,y del "suelo". * Primera version del modulo pp.cpp y pp.h para trabajar con la configuracion PP * Programa de ejemplo pp-3D-teclas.cpp, que permite mover la configuracion PP con teclas. * Modulo pp.cpp separado en pp.cpp y pp-3D.cpp. Uno simula y el otro renderiza. * Proyecto metido en el CVS * Primera version del programa pp-3D-seq.cpp, que mueve la configuracion PP segun una secuencia de movimiento almacenada en dos arrays. Incorpora Salida para Octave * Anadida constante para la ganancia del servo * pp-3D-seq.cpp: Creadas funciones para generar matrices de movimiento, asi como las funciones para generar salidas en MRS, octave y C. * El programa pp-3D-seq.cpp funciona con funciones con 10 muestras en vez de 20. * Nuevo gmatrix-pp.c y gmatrix-pp.h para trabajar con las matrices de movimiento para la configuracion PP. * Programa pp-3D-seq.cpp terminado. * Programa pp-seq.cpp, igual que pp-3D-seq pero para consola. La salida de los servos se vuelca para octave. 2006-06-27 Juan Gonzalez * Limpieza modulo-y1.cpp. * Documentacion. * Ejemplo de manejo del modulo Y1 con teclas: modulo-y1-3D-teclas.cpp * Separacion entre modulo-y1.cpp, que contiene la simulacion y modulo-y1-3D.cpp que tiene el renderizado usando la libreria drawstuff * Programa de ejemplo modulo-y1-3D-teclas.cpp, que permite mover un modulo Y1 con las teclas. * Programa de ejemplo modulo-y1-3D-seq.cpp, que hace que el modulo Y1 siga una secuencia de prueba - Como entrada se mete una secuencia sinusoidal, de 20 muestras - La salida se puede redireccionar a un fichero octave que contiene la variacion real del angulo del servo, en funcion de los ticks de reloj de la simulacion (tiempo). * Programa modulo-y1-seq.cpp, que genera un fichero para octave con la posicion del servo, cuando se le hace seguir una secuencia