Você está na página 1de 191

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Agradecimientos
Agradecemos a nuestras familias el esfuerzo que han realizado para permitirnos estudiar una Ingeniera Superior en la Universidad Europea de Madrid y el apoyo incondicional que nos han prestado durante toda nuestra vida. Queremos agradecer tambin el esfuerzo desinteresado y las aportaciones que han realizado al proyecto R4P las siguientes personas. Jos Carlos Cortizo Prez Enrique Fernndez del Ro Pedro J. Lara Bercial Enrique Puertas Lino Garca Morales Francisco Javier del Dedo Rodrguez Violeta Daz del Dedo Abel del Dedo Blasco Kike Nimo Alejandro Alonso Ana Rey Yolanda Benedito Jay Ragsdale

- 1

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Editado en Villaviciosa de Odn, Madrid Lunes 8 de Septiembre de 2008 Versin del documento 2.8 Proyecto R4P. Universidad Europea de Madrid. Pgina web de referencia: http://www.r4p.es

Proyecto R4P por: Luis Ignacio Daz del Dedo y Luis Alberto Prez Garca est licenciado bajo Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Espaa. Este documento se ha impreso a dos caras para ser ms respetuoso con el medio ambiente. Si desea una copia puede obtenerla en formato digital en la web de referencia. Evite utilizar el papel para realizar una copia en la medida de lo posible.

En caso de querer deshacerse de este documento por favor, utilice el contenedor del papel para reciclar.

- 2

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

ndice de Contenido
1. Presentacin General del Proyecto.................................................................................................11 2.Introduccin.....................................................................................................................................13 3.Abstract ...........................................................................................................................................15 4.Estado del arte.................................................................................................................................17 Introduccin...................................................................................................................................17 Clasificacin de los robots.............................................................................................................18 Robtica Mvil..............................................................................................................................19 Robtica Caminante ......................................................................................................................21 Hexpodos VS Cuadrpedos.........................................................................................................24 Robtica Cuadrpeda.....................................................................................................................25 BigDog......................................................................................................................................25 LittleDog...................................................................................................................................26 RIMHO:....................................................................................................................................26 SILO4........................................................................................................................................27 Aibo...........................................................................................................................................29 Kits Cuadrpedos Lynxmotion.................................................................................................31 RoboQuad.................................................................................................................................32 5.Objetivos .........................................................................................................................................33 Introduccin...................................................................................................................................33 Objetivos Cientficos y Tcnicos...................................................................................................33 Objetivos Orientados a la Educacin.............................................................................................33 Objetivos Orientados al Software Libre .......................................................................................33 Objetivos Modificados...................................................................................................................34 6.Diseo del robot..............................................................................................................................35 Estructura general del robot...........................................................................................................35 Esqueleto del robot....................................................................................................................35 Sensores....................................................................................................................................42 Actuadores................................................................................................................................45 Electrnica.....................................................................................................................................46 Estudio de costes de placas de control......................................................................................46 Arquitectura Electrnica...........................................................................................................48 Estudio de Costes Totales..............................................................................................................50 Problemas Encontrados Durante el Desarrollo del Robot.............................................................51 Rotura de Horns de Servo.........................................................................................................51 Ensamblaje de piezas de metacrilato.........................................................................................52 Rotura de Piezas de Metacrilato:...............................................................................................53

- 3

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

7.Software Empotrado........................................................................................................................55 Funciones Bsicas de Control del Robot.......................................................................................57 Funcin de Rotacin de las Patas..............................................................................................57 Funciones de Elevacin de las Patas.........................................................................................58 Funciones de Elevacin del Cuerpo..........................................................................................61 Funciones de Transicin de Estados.........................................................................................63 Funcin Bsica de Traslacin del Centro de Masas..................................................................65 Algoritmos.....................................................................................................................................66 Algoritmo de Estabilidad..........................................................................................................66 Problemas Durante la Fase de Desarrollo......................................................................................69 Problemas con la interrupcin Timer2 de Arduino y el protocolo TWI...................................69 Problemas con Arduino y un extenso cdigo fuente.................................................................69 8.Interfaz de Control ..........................................................................................................................71 Anlisis..........................................................................................................................................71 Especificacin de Requisitos del Sistema (SRS)......................................................................71 Casos de Uso.............................................................................................................................78 Diseo..........................................................................................................................................101 Diagrama de Despliegue.........................................................................................................101 Diagrama de Paquetes.............................................................................................................101 Diagrama de Clases.................................................................................................................102 9.Plan de Pruebas..............................................................................................................................109 Plan de Pruebas del Cdigo Empotrado......................................................................................109 Primitivas Bsicas...................................................................................................................109 Pruebas de Funcionalidades....................................................................................................114 Plan de Pruebas de la Interfaz......................................................................................................117 10.Difusin del Proyecto..................................................................................................................123 Blog del proyecto R4P.................................................................................................................123 Ponencias en Institutos, Eventos y Museos.................................................................................124 Presentacin a Concursos Tcnicos ............................................................................................124 Presentacin al Certamen Arqumedes........................................................................................125 Presentacin a Congresos Nacionales e Internacionales.............................................................125 11.Conclusin y Trabajos Futuros....................................................................................................127 Conclusin...................................................................................................................................127 Trabajos Futuros..........................................................................................................................128 Referencias.......................................................................................................................................129 Anexos..............................................................................................................................................131 Anexo I - Manual de Montaje de Robot R4P..............................................................................131 Anexo II - Especificacin del Protocolo de Comunicacin.........................................................141 Anexo III - Short Paper Publicado al Congreso IADIS Multi Conference 2008........................145 Anexo IV - Planos de las Piezas del Robot R4P..........................................................................149 Anexo V - Datasheets de los Componentes Electrnicos............................................................167 Anexo VI - Licencias del Proyecto..............................................................................................171 Anexo VII - Manual de Usuario..................................................................................................175

- 4

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

ndice Detallado de Contenido


1. Presentacin General del Proyecto.................................................................................................11 Nombre.................................................................................................................................11 Acrnimo..............................................................................................................................11 Logotipos .............................................................................................................................11 Institucin Principal..............................................................................................................11 Tutores y Cotutores...............................................................................................................11 Patrocinadores......................................................................................................................12 Proyectandos........................................................................................................................12 2.Introduccin.....................................................................................................................................13 3.Abstract ...........................................................................................................................................15 4.Estado del arte.................................................................................................................................17 Introduccin...................................................................................................................................17 Clasificacin de los robots.............................................................................................................18 Robtica Mvil..............................................................................................................................19 Robtica Caminante ......................................................................................................................21 Hexpodos VS Cuadrpedos.........................................................................................................24 Robtica Cuadrpeda.....................................................................................................................25 BigDog......................................................................................................................................25 LittleDog...................................................................................................................................26 RIMHO:....................................................................................................................................26 SILO4........................................................................................................................................27 Aibo...........................................................................................................................................29 Kits Cuadrpedos Lynxmotion.................................................................................................31 RoboQuad.................................................................................................................................32 5.Objetivos .........................................................................................................................................33 Introduccin...................................................................................................................................33 Objetivos Cientficos y Tcnicos...................................................................................................33 Objetivos Orientados a la Educacin.............................................................................................33 Objetivos Orientados al Software Libre .......................................................................................33 Objetivos Modificados...................................................................................................................34 6.Diseo del robot..............................................................................................................................35 Estructura general del robot...........................................................................................................35 Esqueleto del robot....................................................................................................................35 Prototipo 1.1.........................................................................................................................37 Prototipo 1.2.........................................................................................................................38 Prototipo 2.0 o Educacional:................................................................................................39 R4P Phoenix:........................................................................................................................40 Sensores....................................................................................................................................42 Brjula .................................................................................................................................42 Inclinmetros........................................................................................................................43 Distancia...............................................................................................................................44 Actuadores................................................................................................................................45 Electrnica.....................................................................................................................................46 Estudio de costes de placas de control......................................................................................46
- 5

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Arquitectura Electrnica...........................................................................................................48 Estudio de Costes Totales..............................................................................................................50 Problemas Encontrados Durante el Desarrollo del Robot.............................................................51 Rotura de Horns de Servo.........................................................................................................51 Ensamblaje de piezas de metacrilato.........................................................................................52 Rotura de Piezas de Metacrilato:...............................................................................................53 7.Software Empotrado........................................................................................................................55 Funciones Bsicas de Control del Robot.......................................................................................57 Funcin de Rotacin de las Patas..............................................................................................57 RotateLeg(leg);.....................................................................................................................57 Funciones de Elevacin de las Patas.........................................................................................58 void legUp(int leg)...............................................................................................................58 void legUp(int leg, int deg)..................................................................................................59 void legDown(int leg)..........................................................................................................59 void legDown(int leg, int deg).............................................................................................59 void legUpDown(int leg, int add).........................................................................................60 Funciones de Elevacin del Cuerpo..........................................................................................61 void bodyUp(int time);.........................................................................................................61 void bodyUpFast(int time);..................................................................................................61 void bodyDown(int time);....................................................................................................61 void bodyDownFast(int time);.............................................................................................62 void bodyUpDown(boolean up,int time,int add);................................................................62 Funciones de Transicin de Estados.........................................................................................63 void iniToBase();..................................................................................................................63 void baseToIni();..................................................................................................................63 void baseToWalk();..............................................................................................................64 void walkToBase();..............................................................................................................64 void baseTo2Feet();..............................................................................................................64 Funcin Bsica de Traslacin del Centro de Masas..................................................................65 void moveYourBody(int leg)................................................................................................65 Algoritmos.....................................................................................................................................66 Algoritmo de Estabilidad..........................................................................................................66 Objetivos del algoritmo de estabilidad.................................................................................66 Sensores y actuadores de los que hace uso......................................................................66 Diagrama de flujo del algoritmo......................................................................................68 Problemas Durante la Fase de Desarrollo......................................................................................69 Problemas con la interrupcin Timer2 de Arduino y el protocolo TWI...................................69 Problemas con Arduino y un extenso cdigo fuente.................................................................69 8.Interfaz de Control ..........................................................................................................................71 Anlisis..........................................................................................................................................71 Especificacin de Requisitos del Sistema (SRS)......................................................................71 Requisitos especficos..........................................................................................................71 Requisitos de las Interfaces Externas..............................................................................71 Interfaz con el Usuario................................................................................................71 Interfaz con el Hardware.............................................................................................71 Interfaz con el software...............................................................................................72 Interfaces de Comunicaciones....................................................................................74 Requisitos Funcionales....................................................................................................74 Modo Monitor.............................................................................................................74
- 6

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Controlador.......................................................................................................74 Modo Editor de Secuencias de Movimiento...............................................................75 Modo Editor de Configuracin...................................................................................75 Requisitos del Desarrollo.................................................................................................76 Casos de Uso.............................................................................................................................78 Diagramas.............................................................................................................................78 Modo Monitor......................................................................................................................81 CASO DE USO: 1-1 Conectar........................................................................................81 CASO DE USO: 1-2 Desconectar...................................................................................82 CASO DE USO: 1-3 Activar/Desactiva Sensores...........................................................83 Modo Controlador................................................................................................................84 CASO DE USO: 2-1 Movimiento hacia Delante............................................................84 CASO DE USO: 2-2 Finalizar Movimiento hacia Delante.............................................85 CASO DE USO: 2-3 Parada de Emergencia...................................................................86 CASO DE USO: 2-4 Pasar a Posicin de Inicio..............................................................87 CASO DE USO: 2-5 Realizar Funcin Predefinida 1/2..................................................88 CASO DE USO: 2-6 Enviar Comando............................................................................89 Modo Editor de Secuencias de Movimientos.......................................................................90 CASO DE USO: 3-1 Cargar Secuencia...........................................................................90 CASO DE USO: 3-2 Guardar Secuencia.........................................................................91 CASO DE USO: 3-3 Reproducir Secuencia....................................................................92 CASO DE USO: 3-4 Enviar Secuencia...........................................................................93 CASO DE USO: 3-5 Reiniciar Secuencia.......................................................................94 CASO DE USO: 3-6 Ajustar Valor de posicin..............................................................95 CASO DE USO: 3-7 Ajustar Marca de Tiempo...................................................................96 Modo Editor de Configuracin.............................................................................................97 CASO DE USO: 4-1 Aplicar Configuracin de Comunicaciones...................................97 CASO DE USO: 4-2 Volver a los Valores por Defecto...................................................98 CASO DE USO: 4-3 Probar Configuracin....................................................................99 CASO DE USO: 4-4 Aplicar Configuracin de Idioma................................................100 Diseo..........................................................................................................................................101 Diagrama de Despliegue.........................................................................................................101 Diagrama de Paquetes.............................................................................................................101 Diagrama de Clases.................................................................................................................102 Clase Messenger.................................................................................................................102 Clase Information ..............................................................................................................103 Clase Sensor.......................................................................................................................104 Clase Sequence, Instant y Position ....................................................................................105 Clases de la Interfaz Grfica..............................................................................................106 Clases del Panel de Configuracin................................................................................107 Clases del Panel de Sensores.........................................................................................107 Clases del Panel de Editor de Secuencias......................................................................108 9.Plan de Pruebas..............................................................................................................................109 Plan de Pruebas del Cdigo Empotrado......................................................................................109 Primitivas Bsicas...................................................................................................................109 Prueba de Control de SD20................................................................................................109 Prueba de Comunicaciones Bluetooth ...............................................................................110 Prueba de Sensor de Distancias..........................................................................................110 Prueba de la Brjula............................................................................................................111 Prueba de los Inclinmetros................................................................................................111
- 7

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Pruebas de Eficiencia Sensor de Distancias.......................................................................111 Prueba de Eficiencia de la Brjula.....................................................................................113 Prueba de los Inclinmetros...............................................................................................114 Pruebas de Funcionalidades....................................................................................................114 Pruebas de Fuerza de Mantenimiento y Estabilidad del Robot..........................................115 Pruebas de Elevacin y Bajada del Cuerpo........................................................................116 Plan de Pruebas de la Interfaz......................................................................................................117 Paquete Bluetooth (r4p.modules.communications.bluetooth)............................................117 Paquete SerialPort (r4p.modules.communications.serialPort)...........................................118 Paquete UsbPort (r4p.modules.communications.usbPort).................................................119 Paquete Communicatinos (r4p.modules.communications)................................................120 Paquete Sensors (r4p.modules.sensors)..............................................................................121 Paquete Servomotor (r4p.modules.servomotors)...............................................................121 10.Difusin del Proyecto..................................................................................................................123 Blog del proyecto R4P.................................................................................................................123 Ponencias en Institutos, Eventos y Museos.................................................................................124 Presentacin a Concursos Tcnicos ............................................................................................124 Presentacin al Certamen Arqumedes........................................................................................125 Presentacin a Congresos Nacionales e Internacionales.............................................................125 11.Conclusin y Trabajos Futuros....................................................................................................127 Conclusin...................................................................................................................................127 Trabajos Futuros..........................................................................................................................128 Referencias.......................................................................................................................................129 Anexos..............................................................................................................................................131 Anexo I - Manual de Montaje de Robot R4P..............................................................................131 Anexo II - Especificacin del Protocolo de Comunicacin.........................................................141 Anexo III - Short Paper Publicado al Congreso IADIS Multi Conference 2008........................145 Anexo IV - Planos de las Piezas del Robot R4P..........................................................................149 Prototipo 1.1.......................................................................................................................149 Pata Prototipo 1.1..........................................................................................................149 Muslo Prototipo 1.1.......................................................................................................150 Cadera 1 Prototipo 1.1...................................................................................................151 Cadera 2 Prototipo 1.1...................................................................................................152 Cuerpo Prototipo 1.1......................................................................................................153 Prototipo 1.2.......................................................................................................................154 Pata Prototipo 1.2..........................................................................................................154 Muslo Prototipo 1.2.......................................................................................................155 Cadera 1 Prototipo 1.2...................................................................................................156 Cadera 2 Prototipo 1.2...................................................................................................157 Cuerpo Prototipo 1.2......................................................................................................158 Prototipo 2.0.......................................................................................................................159 Pata Prototipo 2.0..........................................................................................................159 Muslo Prototipo 2.0.......................................................................................................160 Cadera Prototipo 2.0......................................................................................................161 Cuerpo Prototipo 2.0......................................................................................................162 Prototipo Phoenix...............................................................................................................163 Pata Prototipo Phoenix..................................................................................................163
- 8

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Muslo Prototipo Phoenix...............................................................................................164 Cadera Prototipo Phoenix..............................................................................................165 Cuerpo Prototipo Phoenix.............................................................................................166 Anexo V - Datasheets de los Componentes Electrnicos............................................................167 Inclinometros......................................................................................................................167 Controlador SD20...............................................................................................................168 Brjula Digital CMPS03....................................................................................................170 Anexo VI - Licencias del Proyecto..............................................................................................171 Reconocimiento-NoComercial-Compartir Igual 2.5 Espaa ............................................171 GNU General Public License, Free Software Foundation.................................................174 Anexo VII - Manual de Usuario..................................................................................................175 Introduccin........................................................................................................................175 Primer contacto y tipos de Elementos................................................................................176 Elementos Principales........................................................................................................177 Botones..........................................................................................................................177 Sliders............................................................................................................................177 Spinners.........................................................................................................................177 Clasificacin de Elementos................................................................................................178 Elementos de Control....................................................................................................178 Elementos de Sensores..................................................................................................180 Elementos de Conectividad...........................................................................................181 Elementos de Secuencias...............................................................................................183 Lnea Temporal.........................................................................................................183 Valores de Posiciones................................................................................................184 Conjunto de Botones.................................................................................................184 Elementos de Configuracin..........................................................................................187 Elementos de Configuracin de Comunicaciones....................................................187 Bluetooth..............................................................................................................187 Puerto Serie..........................................................................................................188 Puerto USB...........................................................................................................188 Elementos de Configuracin de Idioma....................................................................189 Elementos de Representacin Grfica de Movimiento.................................................190 Funcionalidades..................................................................................................................191 Funciones de Monitorizacin........................................................................................191 Funciones de Control.....................................................................................................191 Funciones de Edicin.....................................................................................................191

- 9

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

- 10

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

1. Presentacin General del Proyecto


Nombre

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.
Acrnimo

Inicialmente el proyecto tena como acrnimo de jure CoDE ME R4P pero debido a la divulgacin que ha tenido ha aparecido una simplificacin de este que ha sido adoptada por los conocedores de proyecto y por tanto el acrnimo de facto ha sido Proyecto R4P
Logotipos

Institucin Principal

Universidad Europea de Madrid

Tutores y Cotutores

1. Presentacin General del Proyecto - 11

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Directores del Proyecto R4P: Nourdine Aliane Fernando Berenguer Tutora del Proyecto R4P: Pilar Romay Ignacio Girldez

Patrocinadores

Empresa / Institucin / Entidad LaserModel UEM

Descripcin del Apoyo 20% en corte por lser de las piezas en metacrilato. Cesin de uso de material electrnico. Gastos inscripcin en congreso IADIS Gastos Campus Party Valencia

Proyectandos

Luis Ignacio Daz del Dedo estudiante de Ingeniera Informtica Superior y Licenciado en Administracin y Direccin de Empresas en la Universidad Europea de Madrid.

Luis Alberto Prez Garca estudiante de Ingeniera Informtica Superior en la Universidad Europea de Madrid.

1. Presentacin General del Proyecto - 12

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

2.Introduccin
En nuestros das asistimos a la huida de los robots de las fbricas y a su invasin en nuestros hogares, oficinas, calles y campos. La verdadera revolucin de la robtica ha comenzado en los primeros aos del siglo XXI. Unos nuevos robots que se presentan con una imagen y tamao ms amigable se dedican a limpiar nuestras casas, vigilar nuestras pertenencias, cortar el csped, recoger la cosecha, ayudar a los discapacitados y hacernos pasar buenos ratos en su compaa. De este modo tan apasionado suelen comenzar los libros de robtica editados en los ltimos aos. La visin que presentan es muy interesante pero lamentablemente aun no es as. Queda mucho trabajo por realizar para llegar a esta situacin y ms aun cuando se trata de robots con patas. Los esfuerzos en innovacin se llevan a cabo con robots generalmente dotados de ruedas dado que son ms sencillos y baratos de construir y programar. Pero no se debe olvidar la importancia de los robots con patas y sus ventajas. El proyecto fin de carrera de la Universidad Europea de Madrid Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i pretende como su nombre indica disear un robot cuadrpedo, construirlo y desarrollar el software que se encargar de controlarlo. El nombre de facto que se ha impuesto al proyecto ha sido Proyecto R4P dado que el robot se llama R4P de Robot de 4 Patas. Bsicamente el proyecto R4P pretende desarrollar una plataforma robtica libre que permita a quien est interesado construir su propio robot de cuatro patas sin ms gastos que los materiales y se vea provisto de una serie de manuales, esquemas y cdigo que le permitan desarrollar aplicaciones a un nivel mayor de abstraccin. La educacin en materias tecnolgicas es por tanto el rea principal al que se pretende aplicar R4P debido a su bajo coste, sencillez de montaje, facilidad de uso y posibilidades que presenta. El diseo se ha basado en el desarrollo de una serie de ideas existentes, tras realizar un riguroso estado del arte en el cual se han analizado las caractersticas bsicas de los robots cuadrpedos se ha optado por utilizar un enfoque innovador centrado en las patas que permitiera a R4P mantenerse estable sobre dos de sus extremidades dejando libres dos de sus extremidades para poder realizar otras tareas. La construccin como se coment anteriormente debe ser sencilla para poder ser montado por nios o personas sin conocimientos de mecnica. El diseo de las piezas por tanto ha sido un punto crtico evitndose en la medida de lo posible tener que utilizar herramientas peligrosas como pudiera ser un taladro. El modelo final que se presenta a lo largo de este documento tan solo necesita un destornillador para ser montado lo que rebaja el rango de edad de uso y facilita la comprensin de la estructura del robot. Como dicta la sabidura de Confucio Me lo contaron y lo olvid, lo vi y lo aprend, lo hice y lo entend al montarlo no solo se est construyendo el robot sino que se est realizando una tarea de comprensin de la mecnica por parte del usuario. El software es la parte fundamental del proyecto y la que debe proveer al usuario de posibilidades para realizar tareas con R4P. Se han considerado dos partes separadas pues se requieren diferentes elementos fsicos con especificaciones totalmente distintas e individuales. Por un lado se encuentra el software del robot que le dota de capacidad de movimientos, medidas obtenidas del medio externo realizadas por sus sensores, la reaccin a estas y el envo y recepcin de datos. Y por otro lado la interfaz de control del robot por parte del usuario. La primera necesita una placa con un pequeo microcontrolador y la segunda necesita un computador capaz de mostrar datos por pantalla y recibir entradas de interfaces de control como podra ser un teclado, ratn o joystick.

2.Introduccin - 13

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

A da de hoy, R4P es una completa plataforma robtica cuadrpeda y sus resultados han comenzado a difundirse por foros cientficos, como pueda ser la aceptacin de un artculo, describiendo la plataforma robtica, en el congreso International Conference on Intelligent Systems and Agents que se celebr en Amsterdam del 22 al 24 de Julio de 2008. Los resultados del proyecto se han difundido tambin en foros de Software Libre y otros de carcter general, debido a su impacto en la Sociedad. Como resultado de esta difusin,el proyecto R4P ha ganado el primer premio en la categora de Innovacin en el 2 Concurso Universitario de Software Libre de carcter nacional, el primer premio en la categora Robotics del concurso Arduino Contest 2008 de carcter internacional, fue presentado en la primera Campus Party Colombia del 23 al 29 de Julio por invitacin expresa de Kike Nimo, Director de Contenido Internacional de la Campus Party, obtuvo el reconocimiento por parte de la Universidad Europea de Madrid al recibir la mencin especial al mejor proyecto fin de carrera de la promocin, se present en la Campus Party de Valencia el da 2 de Agosto, en el OSWC (Open Software World Conference) que se celebrar en Mlaga en Octubre de 2008 y en Imagintica que se celebrar en Sevilla del 2 al 6 de Marzo. Para comprobar su utilidad en un aula se realiz una prueba piloto con nios de alta capacidad con edades comprendidas entre los 9 y 14 aos en un curso de robtica con lego. Esta fue un xito y los jvenes consiguieron en tan solo unas horas realizar algunas tareas complejas utilizando el software de control de robot y modificando su cdigo para tratar de hacer bailar al robot sin que perdiera la estabilidad.

- 14

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

3.Abstract
Nowadays we can see robots fleeing from factories and invading our homes, offices, streets and fields. The real robotics revolution has started at the first years of the 21 st century. Some new robots that come up with a firendlier look and feel that spent their time cleaning our houses up, having an eye on our belongings, mowing, collecting, helping disabled people and helping us to have fun with them. This, so much passionate, way uses to be the starting of the last year edited books about robotics. The vision they represent is really interesting but unfortunately it isn't that way yet. There is still a lot of work to be done to get to that situation and even more when we are talking about legged robots. Most of the efforts on innovation are spent on wheeled robots because they are easier and cheaper to build and programm. But must not forget how much legged robots are and their advantages. The draft end career of the Europen Univeristy of Madrid titled Desing, Building and Development of Mecanics, Electronics and Control Software for the Quadrupedal Robot R4P v3i pretends, as its name calls, designing a quadrupedal robot, building it and develop the software that will control it. The common name imposed to the project has been R4P Project due to the fact that the robot the name of the robot, R4P, is called after Robot de 4 Patas (in english, 4 Legged Robot). Basically the R4P project pretends to develop an open robotics platform which allows to everyone interested, building his own robot at the only cost of materials and helped by manuals, schemes and source code that allow him to develop applications at a higher abstraction level. Education on technologics is therefore the main area R4P is thought to be applied to due to its low cost, simple assembling, easy use and the capabilities it shows. Design has been based in the development of some already existent ideas, after studying a detailed state of art where basic quadrupedal robots features were analized an innovative point of view has been selected focused on the legs which would allow R4P to get an stable position over two of its limbs, having the other two free for making different things. Building ,as previously commented, must be simple to make it buildable by children or people with no mechanical knowings. Design of parts has been a critical point, it has been as avoided as possible having to use dangerous tools like a drill. The final model presented in this document needs just a screwdriver to be mounted which reduces the age range and makes it easier for understanding the robot's structure. As Confucio said: I was told and I forgot, I saw it and I learnt, I did it and I understood building it, is not just a building process, it a comprehension task of the mechanical desing for the user. Software is the fundamental part of the project and the one that has to give users the posibilities of getting tasks done with R4P. There have been considered two different parts that require phisical elements with totally different and individual specifications. On the one hand there is the robot's embedded software which provides it with the main movement functions, external environment sensor mesures, reactions the this environment and receiving and sending data. On the other hand there is the control software wich provides the user a graphical environment to interact with the robot. The embedded software needs a board with a microcontroller and the control software need a computer capable of showing data on screen and get inputs through some control interfaces such as a keyboard, a mouse o a joystick.

3.Abstract - 15

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Nowadays, R4P is a full featured quadrupedal robotic platform and its results have started to disseminate around scientific forums, as the aprovement of an article describing the platform at the International Conference on Intelligent System and Agents that had place in Amsterdam from the 22nd to the 24th of July 2008. Results of the project have also been disseminated around Open Source forums and some others on general purpouse because of its impact on society. As a result of this publications, the project R4P has been the winner of the first innovation prize at the 2nd Open Source University Contest at a national level, the wiiner of the first robotics prize at the Arduino Contest 2008 at an international level, it was presented on the first Campus Party at Colombia, from the 23 rd to the 29th of July 2008 invited by Kike Nimo, International Content Director of E3Futura which organized Campus Parties all over the world. The project also got a great recognition by the European University of Madrid getting the special mention to the best final career project of its promotion, it was also presented on the Campus Party at Valencia on August the 2nd , on the Open Source World Conference at Mlaga on October 2008 and Imagintica which will be held at Sevilla on March 2009 from the 2 nd to the 6th. To check its utility as an education tool, a pilot was held with high capacity children between 9 and 14 years old in a robotics course teached by the project developers themselves. This experience was a totally success and children were able con get some complex tasks after working with the platform for a few hours using R4P's control software and modifying its source code trying to make the robot dance without loosing stability.

3.Abstract - 16

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

4.Estado del arte


Introduccin
Una fantasa que se encuentra, bajo diversas formas, en todas las pocas, consiste en poseer una mquina capaz de reproducir los movimientos y, hasta cierto punto, el comportamiento, de los seres humanos o de los animales.[1] En tan solo dos siglos se ha producido una evolucin brutal en la tecnologa no siendo as en algunas ramas que por diversos motivos no han evolucionado a tal velocidad. La robtica requera un nivel tcnico y conceptual que ha retrasado el inicio de su desarrollo, pero actualmente asistimos a los primeros pasos de la revolucin de esta disciplina que sin duda supondr el principio de una nueva era para la raza humana. El inicio de la robtica se fija en el siglo XVIII con la construccin de una mquina textil programable mediante tarjetas perforadas. Durante la revolucin industrial estos mecanismos automatizados evolucionaron notablemente as como muecos mecnicos que presentaban algunas caractersticas de los robots. Con la llegada de la imprenta, el cine y la gran difusin de los medios de comunicacin la portentosa imaginacin del ser humano dispara el concepto de la robtica y la cantidad de proyectos relacionados con este campo. La familiaridad con la que la sociedad trata al robot es ms llamativa cuando se compara con el amplio desconocimiento que se puede tener de otras mquinas o aparatos, aun siendo estos de mayor antigedad o utilidad como, por ejemplo, sera el osciloscopio o los parientes cercanos de los robots: las mquinas de control numrico. [3] Ser Devol en 1954 el primero en disear un robot programable y acuar el trmino "autmata universal". Pocos aos despus en 1959 la Planet Corporation se convierte en la primera empresa comercial de robots. Los primeros dispositivos que responden al que hoy se conocer como robot, no adoptaron inicialmente esta denominacin. Los progenitores ms directos de los robots fueron los manipuladores teleoperados. En 1984 R. C. Goertz del Argone National Laboratory desarroll, con el objetivo de manejar elementos radiactivos sin riesgo para el operador, el primer sistema de teleoperacin. [3] Durante las siguientes dcadas la evolucin de la robtica se dispara enfocada generalmente a la industria y aparecen diversas lneas de investigacin. Entre las cuales en este documento destacamos la robtica mvil.

4.Estado del arte - 17

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clasificacin de los robots


Para poder clasificar los robots lo primero que se debe hacer es definir la terminologa. Robot segn la Enciclopedia Britnica: Mquina operada automticamente que sustituye el esfuerzo de los humanos, aunque no tiene por qu tener apariencia humana o desarrollar sus actividades a la manara de los humanos. Robot segn el Diccionario Merrian Webster: Mquina que se asemeja a los humanos y desarrolla como ellos tareas complejas como andar o hablar. Un dispositivo que desarrolla de manera automtica tareas complicadas, a menudo de manera repetitiva Un mecanismo guiado por control automtico. Robot segn el Diccionario de la Real Academia de la lengua Espaola: Mquina o ingenio electrnico programable, capaz de manipular objetos y realizar operaciones antes reservadas slo a las personas. Una vez explicado el trmino robot existen una serie de clasificaciones: Robot Industrial (Robotic Industries Association): Un robot industrial es un manipulador multifuncional reprogramable, capaz de mover materias, piezas, herramientas o dispositivos especiales, segn trayectorias variables, programadas para realizar tareas diversas. Robots de servicio (Federacin Internacional de Robtica): Un robot que opera de manera semi o totalmente autnoma para realizar servicios tiles a los humanos y equipos, excluidas las operaciones de manufactura. Dentro de la robtica de servicio podemos encontrar: Robot domstico: Aquel robot destinado a ser usado por humanos sin formacin tcnica especfica, al objeto de servirle como ayudante o colaborador en sus quehaceres o actividades diarias. Robots teleoperados (NASA): Dispositivos robticos con brazos manipuladores y sensores y cierto grado de movilidad, controlados remotamente por un operador humano de manera directa o a travs de un ordenador. Robot Teleoperado (ISO): Un robot que puede ser controlado remotamente por un operador humano, extendiendo las capacidades sensoriales y motoras de ste a localizaciones remotas. Telerobot: cualquier robot cuya tarea pueda ser monitorizada y reprogramada a distancia por el humano. Cobot: Dispositivo robtico que manipula objetos en colaboracin fsica directa con l. Robot mvil (ISO 8373): Robot que contiene todo lo necesario para su pilotaje y movimiento (potencia, control y sistema de navegacin). Este documento se centra en la robtica mvil y en una de sus variantes en concreto.

4.Estado del arte - 18

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Robtica Mvil
En la actualidad los robots mviles se sirven de diferentes mecanismos de locomocin, entre los que se pueden apreciar los siguientes: Enfoque biolgico: busca concebir un sistema locomotor basado en caractersticas propias de organismos vivos, aprovechando las ventajas que estas puedan obtener de cada caso determinado. Un ejemplo de esto lo constituyen el trabajo de Kingsley [6] en (cockroach-like robots, 2003), y Fielding [7] en el robot (Hamlet, 2001) entre tantos otros. Enfoque aplicativo: trata de encontrar una solucin efectiva, tratando de optimizar algn aspecto del diseo. Este enfoque es ms comn en aplicaciones industriales y comerciales. Algunos ejemplos son los desarrollos de la Nasa en exploracin planetaria, (Bares) [8] con el robot (Dante II, 1999), y la maquina caminante adelantada por Plustech [9], la cual se adapta satisfactoriamente al terreno selvtico. Enfoque innovativo: Este enfoque est orientado a la investigacin, trata de enriquecer las estrategias de locomocin explorando mtodos poco convencionales. Como resultado de los diferentes enfoques, en la actualidad existe una gran cantidad de aplicaciones robticas mviles, que pueden agruparse de acuerdo con el tipo de mecanismo de locomocin que utilizan: Ruedas: La rueda es un mtodo altamente probado, que presenta una gran cantidad de ventajas y es muy eficiente en superficies homogneas poco inclinadas. Su aplicacin en un robot es producto del enfoque aplicativo antes descrito.

Fig. 1. Robot con ruedas, Rovver 400, 2007 Patas: Estos son, evidentemente, mecanismos producto del enfoque biolgico. Sus ventajas, entre otras, son la adaptabilidad al terreno y la posibilidad de omnidireccionalidad. Se encuentra una gran variedad de diseos y aplicaciones, comerciales (robot Aibo de Sony [10] y el robot bpedo de Honda Asimo [11]), industriales (mquina caminante de Plustech [9]) exploratorias (Bares [8] con el robot Dante II) entre otras. Debe ser destacado el robot Nao [15] que ser la nueva plataforma bpeda oficial de la RoboCup [16] a partir del 2008 (vase Fig.2.)

Fig. 2. Robot Bpedo, Nao, 2008

4.Estado del arte - 19

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Hbridos: Algunos mtodos utilizan combinaciones entre ruedas y patas como las (Whegs, 2001) de Quinn [12] (2001) y el robot (Shrimp, 2000) de Eastier [13]. Otros son adaptaciones que han resultado convenientes para algn tipo de terreno o alguna aplicacin, como el robot saltador para exploracin planetaria de Fiorini [14].

Fig. 3. Robot Hbrido Roller-Walker Robots Voladores: se trata de un tipo especial ya que suelen ser robots teleoperados ms orientados a la aeronutica que a la robtica.

4.Estado del arte - 20

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Robtica Caminante
El primer documento de un mecanismo andador aparece sobre 1870 basado en mecanismos de cuatro barras y fue inventado por el Ruso P. L. Chebyshev en un intento por imitar un mecanismo andador de la naturaleza (Artobolevsky, 1964).[2] Como suele ser habitual las primeras investigaciones fueron militares. Inglaterra y los Estados Unidos financiaron gran cantidad de proyectos que estudiaban el uso de mecanismos caminantes como maquinas de guerra. [2] Basados en el nmero de patas que tiene el robot, sern bpedos como los humanos o los pjaros, cuadrpedos como los reptiles y los mamferos, hexpodos como los insectos y octpodos como las araas. Robots con una pata (Raibert`s hopper (1986) MIT Leg Laboratory [17]), con tres patas (OSU Triped (Berns, 2005)), con cinco patas (Hitachi hybrid robot (Todd, 1985), ocho patas (ReCUS (Ishino et al., 1983) o ms patas (Zykov et al., 2004) es poco usual pero no imposible. [2] Los robots caminantes presentan ventajas sobre los que utilizan orugas o ruedas. En los siguientes apartados se explican cada una de estas ventajas: Movilidad: Los robots con patas exhiben mayor movilidad que los que utilizan ruedas por que poseen intrnsecamente mecanismos de direccin omnidireccional. Esto significa que pueden cambiar de direccin sobre el eje principal del cuerpo tan solo moviendo sus apoyos (patas). Tambin pueden girar sobre los ejes de su cuerpo sin necesidad de levantar las patas apoyadas con solo mover sus articulaciones, es decir puede rotar su cuerpo, inclinarlo y cambiar de posicin como se indica en la Fig. 4.

Fig. 4. Movilidad Superacin de obstculos: Un robot con patas puede superar obstculos que estn a baja altura en comparacin con el tamao del robot. Donde un robot con ruedas quedara atascado si el tamao del obstculo fuera mayor que el radio de la rueda.

Fig. 5. Superacin de obstculos

4.Estado del arte - 21

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Suspensin activa: Intrnsecamente un robot con patas posee suspensin por adaptacin mediante la variacin de la altura de su cuerpo con la posicin de sus patas a un terreno irregular. De esta manera su movimiento puede ser ms suave que un robot con ruedas pues este ultimo siempre estar paralelo al suelo adoptando posiciones similares al relieve del terreno. La figura 6 muestra de manera explcita este apartado.

Fig. 6. Suspensin activa Eficiencia Energtica: Se ha vertido mucha tinta respecto a este tema pero fue Bekker quien prob la teora de Hutchinson que fue el primero en atreverse a decir que un robot con patas sera ms eficiente energticamente que uno con ruedas en un terreno altamente irregular. Terreno Natural o Terreno discontinuo: Los robots con ruedas requieren una superficie continua para desplazarse de manera eficiente. En un principio los robots con patas no requieren un terreno continuo y pueden desplazarse por terrenos arenosos , fangoso, escarpado y liso.

Fig. 7. Terreno discontinuo Deslizamientos: Una rueda puede deslizar en una superficie por motivos de adherencia, las patas de un robot suelen depositar el peso del robot de forma directa sobre el suelo y las posibilidades de que resbale son menores. Dado que el movimiento siempre va en la direccin de la resistencia como se puede observar en la figura 8.

Fig. 8. Deslizamientos Dao medioambiental: las ruedas erosionan la superficie de la tierra cuando derrapan y la dejan desprotegida. Los robots con patas no desgarran la tierra de este modo, ya que se posan sobre esta de forma puntual y discreta. Velocidad Media: Un robot con patas puede superar pequeos obstculos manteniendo la velocidad del cuerpo constante con un movimiento uniforme y rectilneo si fuera necesario o si el teleoperador o programador as lo deseara.

4.Estado del arte - 22

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Fig. 9. Velocidad Media Por supuesto los robots con patas no son la solucin general a la locomocin robtica. Presentan una serie de problemas y desventajas que los han mantenido fuera de uso industrial y de servicios. El primer problema es la complejidad, los robots con patas son ms complejos que los que utilizan ruedas sobre todo en lo referente a electrnica y control. Otro problema importante es la velocidad y el ms crtico, el coste. En los siguientes apartados se describirn las desventajas una por una. Mecnica: La rueda es un mecanismo extremadamente sencillo sin embargo una pata consiste en varios enlaces y articulaciones. Una pata requiere al menos tres actuadores para proveerla de direccin y traccin y permitir un movimiento completo. Un robot caminante con equilibrio esttico requiere al menos cuatro patas, por lo tanto el nmero mnimo de actuadores para un robot caminante es de doce. No se est considerando la posibilidad de robots bpedos puesto que el nmero mnimo de actuadores por pata no est concretamente definido y se pretende definir un robot que pueda realizar movimientos en todas direcciones. Con lo cual un sistema de locomocin por patas es ms complejo y ms caro que un sistema de locomocin por ruedas. Electrnica: Cada articulacin del robot est asociada a un controlador y debe ser controlada de manera individual. De nuevo, los robots caminantes requieren ms sensores que un robot con ruedas dado que las ruedas estn en todo momento en contacto con el suelo esto significa que se debe implementar algn mecanismo que permita determinar cuando una pata est en contacto con el suelo. Algoritmos de control: Un robot caminante debe coordinar la posicin de todas sus articulaciones para realizar cualquier movimiento por lo que un robot caminante es sin duda ms complejo que un robot con ruedas o con orugas. Velocidad mxima: Un mecanismo de locomocin por ruedas en superficie terrestre puede alcanzar una velocidad mxima conocida de 1.228 Km/h alcanzada por el (Thrust SSC, 1997) [18] mientras que el mecanismo de locomocin por patas ms veloz conocido es el guepardo que alcanza 113Km/h. El nico inconveniente es que el guepardo aun no puede ser teleoperado. Coste: el coste total de cualquier sistema suele ser siempre proporcional a su complejidad. Por tanto un sistema robtico de locomocin por patas ser ms caro que un sistema de locomocin por ruedas. Una vez conocidas las ventajas y desventajas de los robots caminantes surge la siguiente cuestin, el nmero de patas. En los siguientes apartados se tratan los robots comunes con equilibrio esttico. El equilibrio esttico es aquel en el que el cuerpo del robot puede estar en reposo con velocidad cero. Octpodos: son muy rpidos puesto que pueden mantener cuatro patas apoyadas mientras avanzan las otras cuatro. Muy estables pues podran mantener hasta siete patas apoyadas y realizar avances de una en una. Podran cargar con ms peso pues queda distribuido en muchas patas.

4.Estado del arte - 23

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Desventajas, tantas patas son redundantes, se incrementa el consumo, la complejidad de los algoritmos y requieren ms bateras. Todos estos factores confluyen en el mismo problema crtico, el incremento del coste. Hexpodos: ms rpidos que los cuadrpedos y los bpedos pero menos que los octpodos. Presentan las mismas caractersticas que un octpodo pero con dos patas menos, con todo lo que ello conlleva en cuando a reduccin de estabilidad y costes. Cuadrpedos: Son los ms recomendables pues la estabilidad que presentan mientras caminan es muy superior a la de los bpedos y tan solo un poco inferior a la de los hexpodos y octpodos dado que utilizan tres patas como apoyo mientras realizan el avance de una de las patas. Su velocidad es muy inferior a la de estos dos pero su coste es ms reducido. Bpedos: presentan muy poca estabilidad dado que deben apoyar todo su peso sobre una sola pata mientras realizan el avance de la otra de este modo deben cargar todo el peso de las bateras sobre una sola pata lo que reduce notablemente su autonoma. Se trata de una de las plataformas de locomocin ms desarrolladas por el ser humano principalmente por su latente predisposicin a replicarse a si mismo. Hay un motivo por el cual la robtica cuadrpeda destaca con respecto al resto de las disciplinas. La naturaleza sigue una mecnica de ensayo error sin precedentes. Durante milenios ha probado y desarrollado sistemas de locomocin. Las ruedas no han sido desarrolladas por motivos tcnicos y biolgicos. Las plataformas de locomocin ms desarrolladas por la naturaleza han sido las caminantes. Existen octpodos (araas) hexpodos (insectos) cuadrpedos y bpedos (mamferos). Pero todos se rigen por una serie de reglas:

No existe ningn animal que pese ms de 100 gramos con seis o ms patas. Seran redundantes, el animal chocara constantemente con sus propias patas. La naturaleza con millones de aos de experiencia ha proclamado como mejor plataforma de locomocin caminante a la cuadrpeda. Se trata de un hecho indiscutible. Los mamferos en su inmensa mayora son cuadrpedos y como se coment anteriormente el guepardo es una autntica obra de ingeniera que el ser humano tan solo suea con imitar.

Hexpodos VS Cuadrpedos
A parte de las razones evolutivas de la naturaleza se debe estudiar el nmero de patas del que se pretende dotar a un robot caminante en trminos de estabilidad, velocidad, fiabilidad, peso y costes. Un robot hexpodo presenta mayor estabilidad que un cuadrpedo dado que puede dejar apoyadas un mximo de cinco patas mientras que un cuadrpedo solo puede dejar hasta tres patas apoyadas mientras avanza. En lo referente a velocidad un robot cuadrpedo es tres veces ms lento que un robot hexpodo puesto que el hexpodo solo tiene que realizar el avance de tres patas (las tres a la vez) mientras mantiene las otras tres apoyadas para poder avanzar, mientras que el cuadrpedo tiene que avanzar las cuatro patas de una en una. En trminos de fiabilidad, un robot hexpodo tiene un 33% ms de posibilidades de tener un fallo en una de sus patas que un cuadrpedo, dado que tiene un 50% ms patas. Pero podra continuar caminando si una fallara, incluso si dos fallaran, al contrario que un cuadrpedo con equilibrio esttico que si perdiera una pata no podra continuar caminando. En cuanto al peso, un robot hexpodo es un 27% ms pesado que un robot cuadrpedo. [2]

4.Estado del arte - 24

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

El coste para un robot hexpodo ronda el 50% dado que lo ms caro suelen ser las patas pues es la parte que no est suficientemente desarrollada an y es la parte que se suele investigar. Por tanto un robot cuadrpedo solo es superado por un hexpodo en cuando a estabilidad y velocidad, pero estas dos cuestiones pueden ser mejoradas con algoritmos eficientes y patas mejor diseadas. En conclusin un robot cuadrpedo puede ser igual o mejor en los dos nicos aspectos en los que un hexpodo presenta ventajas con el desarrollo de algoritmos ms eficientes.

Robtica Cuadrpeda
En este apartado se van a exponer las plataformas robticas cuadrpedas ms avanzadas del momento explicando los detalles que las hacen especiales pasando de robots enfocados a investigacin a robots orientados a la venta o la robtica como hobbie. Se recomienda a todos los lectores de este documento que busquen vdeos de los dispositivos robticos que van a ser expuestos a continuacin pues una imagen vale ms que mil palabras y en la robtica lo importante es conocer como se desenvuelve un robot durante la realizacin de una tarea.

BigDog
Como no poda ser de otro modo es necesario comenzar por el robot cuadrpedo con equilibrio dinmico ms avanzado en la actualidad. BigDog es un robot cuadrpedo de equilibrio dinmico creado en 2005 por Boston Dynamics [19] con Foster Miler,el Jet Propulsion Laboratory [20] y Harvard University Concord Field Station [21].

Fig. 10. BigDog BigDog financiado por Defense Advanced Research Projects Agency (DARPA) con la esperanza de hacer posible que una mula mecnica acompaara a los soldados cargando con el pesado equipamiento de estos en terrenos demasiado escarpados para vehculos convencionales rodados. Utiliza una gran variedad de sensores entre los que se destaca un girscopo lser y un sistema de visin estereoscpica adems de encoders en la articulaciones y sensores de contacto con el suelo. BigDog mide un metro de largo, 70 centmetros de alto y pesa 75 kilos siendo del tamao de una mula pequea. Es capaz de atravesar terrenos difciles a una velocidad de 5,3 Km/h cargar con 54 Kg y subir superficies de hasta 35 de inclinacin. Sus patas estn dispuestas como las de un perro, posee cuatro grados de libertad por pata, utiliza un motor de gasolina y el sistema de locomocin es hidrulico. Todo el movimiento est gestionado por un ordenador de abordo que recibe la entrada de los sensores. Este proyecto cuenta con una gran financiacin y el coste esta a la altura de los resultados obtenidos siendo ambos muy elevados.
4.Estado del arte - 25

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

LittleDog
LittleDog es el hermano pequeo de BigDog, est desarrollado por Boston Dynamics [19] y financiado por DARPA. Se trata de un robot cuadrpedo de equilibrio esttico. Cada pata cuenta con tres grados de libertad accionados por tres motores, cada uno de estos son lo suficientemente fuertes como para moverle e incluso conseguir que escale por terrenos tan accidentados como el que se ve en la figura 11.

Fig. 11. LittleDog LittleDog utiliza una gran cantidad de sensores similares a los de BigDog. Utiliza bateras LiPo que son muy livianas y almacenan gran cantidad de energa dotndole de una autonoma de 30 minutos. Puede ser teleoperado gracias a su comunicacin inalmbrica. Este robot es capaz de hacer frente a las superficies ms irregulares a una velocidad asombrosa, es uno de los robots adaptativos ms verstil de los que utilizan equilibrio esttico.

RIMHO:
El robot RIMHO (acrnimo de Robot de Intervencin en Medios Hostiles); es el primer robot caminante que se llev a cabo en Espaa, lo que situ la investigacin del CSIC en una posicin de privilegio en este campo.

Fig. 12. RIMHO RIMHO es un cuadrpedo cuyas patas estn basadas en una configuracin pantogrfica. Este dispositivo presenta la caracterstica de que todos los motores estn ubicados en el cuerpo del robot con lo que las patas resultan especialmente delgadas y ligeras y, adems, los movimientos del pie, en las tres componentes del sistema de referencia de la pata, estn desacoplados; esto es, cada motor puede mover el pie en la direccin de un eje del sistema de referencia, lo que simplifica notablemente el modelo cinemtico del dispositivo. Otra caracterstica a considerar es el desacoplo gravitacional de manera que el cuerpo del robot se puede mover en un plano horizontal mientras las articulaciones que soportan la accin de la gravedad pueden estar bloqueadas (frenos activados) sin consumir energa. El robot RIMHO sirvi para la validacin de modos de caminar peridicos continuos y discontinuos para cuadrpedos y se utiliz para realizar experimentos encaminados a la evaluacin de mquinas caminantes para deteccin y localizacin de minas antipersona.
4.Estado del arte - 26

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

SILO4
SILO 4 es una mquina caminante de tamao mediano, cuadrpeda construida y desarrollada con fines educativos por el Instituto de Automtica Industrial del CSIC [22]. Es compacto, modular robusto, capaz de caminar por terrenos irregulares, supera obstculos de hasta 25 cm de alto cargando con 15 Kg y a una velocidad mxima de 1,5m/h. SILO4 fue concebido para su uso interior pero puede trabajar en el exterior bajo condiciones no extremas. Esto significa que puede trabajar en terrenos irregulares en el exterior pero no durante una tormenta.

Fig. 12. SILO4 La mecnica del SILO4 consta de cuatro patas idnticas colocadas alrededor del cuerpo. El pie que se considera al final de la pata y es el que hace contacto con el suelo puede adoptar diferentes configuraciones. Las patas estn situadas alrededor del cuerpo en una configuracin circular (todas se encuentran a la misma distancia del centro del cuadrado que forma su cuerpo). En la figura 13 podemos observar la distribucin de las patas y la forma del cuerpo.

Fig. 13. Estructura SILO4 En un robot de equilibrio esttico esta configuracin de patas permite moverle omnidireccionalmente debido a la distribucin sobre los ejes transversales del cuerpo. Este es prcticamente un cubo de 30x30x31 cm dentro del cuerpo se encuentran todas las tarjetas y controladores de los motores. Tambin contiene inclinmetros de dos ejes que proveen al robot del pitch y el roll que son los ngulos en los que se encuentra el cuerpo del robot. El cuerpo est construido en aluminio, este material cumple las necesidades bsicas para la robtica cuadrpeda pues es resistente y muy liviano. El peso total del cuerpo del robot es de 14 Kg contando con el peso de la electrnica. Las patas siguen la configuracin tipo-insecto los ejes de la segunda y tercera articulacin son paralelos entre s y perpendiculares al eje de la primera.

4.Estado del arte - 27

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Fig. 14. Esquema de articulaciones de SILO4 El motor est embebido dentro de la pata del robot, se trata de un motor de corriente continua y cada articulacin hace uso de uno de ellos. La segunda y tercera articulacin utilizan un engranaje en forma de espiral y un tornillo sin fin, de este modo cuando una pata tiene que mantener la posicin solo es necesario cortocircuitar el motor pues el rozamiento de los engranajes sujetara el peso del robot.

Fig. 15. Detalle articulaciones 2 y 3 de SILO4. El diseo del pie del robot SILO4 consiste en una articulacin pasiva universal que conecta la tercera pieza de la pata con otra articulacin pasiva. Gracias a esta doble articulacin en dos ejes el pie puede adaptarse al terreno perfectamente adems se puede observar en la figura 16. (a) dos potencimetros uno en cada eje que enviarn la informacin de la posicin del pie del robot. En la figura 16 (b) podemos observar la misma configuracin que el modelo anteriormente descrito pero sin los potencimetros, es decir el robot tiene la misma capacidad adaptativa al terreno pero no tiene datos sobre la posicin del pie. El otro diseo del pie, el de la figura 16 (c) se trata de un apoyo puntual del pie, por lo que no es adaptativo y reduce la estabilidad del robot pero puede ser til en determinadas circunstancias.

4.Estado del arte - 28

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Fig. 16. Diseo pie de robot SILO4 El diseo completo del robot SILO4 se puede encontrar en Internet, todas las piezas estn acotadas y sus planos de las piezas estn colgados e incluso se pueden encontrar los planos de ensamblaje.

Aibo
Aibo ("amigo" en japons) es un robot mascota fabricado por Sony. Dispone de sensores que le evitan chocar contra objetos, y una cola que funciona de antena, adems de "sentido del tacto".

Fig. 17. Prototipo 2 del robot Aibo El proyecto se inici en 1990 con el desarrollo de un robot de seis patas llamado prototipo 1 siendo la primera incursin de Sony en el mundo de la robtica. En 1991 se desarroll el prototipo 2, un robot cuadrpedo que comenzaba a asemejarse al robot Aibo. El primer Aibo se vendi el 1 de Julio de 1999, por lo tanto se puede determinar que una gran empresa como Sony necesit nueve aos para desarrollar un robot cuadrpedo como mascota y que fuera rentable. La evolucin de este robot continu hasta llegar el modelo Aibo ER7-EM3 (Fig. 18) que ser el ms avanzado de esta serie pues en 2006 Sony cancel su fabricacin y desarrollo. A continuacin exploraremos a fondo el robot Aibo ERS-7M3, se trata de un robot cuadrpedo con las patas en configuracin tipo caballo, se basa en el equilibrio esttico y fue la plataforma oficial cuadrpeda de la RoboCup [16] Aibo cuenta con un total de 20 grados de libertad de movimiento, 3 en la cabeza, 1 en la boca, 3 en cada pata, 1 en cada oreja y 2 en la cola. Contiene dos sensores de distancia por infrarrojos, un sensor de aceleracin, un sensor de vibracin y varios sensores de tacto en la cabeza, el lomo, la parte inferior de la boca y en las patas. Sus dimensiones se pueden apreciar en la figura 18. Pesa 1,6 Kg incluyendo batera y memory stick que es donde almacenaba los programas. Su autonoma es de una hora y media. Al comprarlo incluye una estacin de carga donde el robot va a recargarse cuando detecta que las bateras estn descargndose. Se pretenda que Aibo fuera una especie de mascota multimedia por eso le dotaron de WiFi,
4.Estado del arte - 29

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

altavoces, una cmara web alojada en el morro y un micrfono. Se le dot de una inteligencia artificial que pretenda imitar el comportamiento de un animal, el software de control de este ltimo modelo fue llamado Mind y la versin de este ltimo modelo fue la 3.

Fig. 18. Aibo ERS7M3 Mind3 controla a Aibo cuando est en modo autnomo, pero tambin puede recibir rdenes del PC o incluso de otros dispositivos mviles. Este software es capaz de hacer que Aibo reconozca caras, y adems le dota de un avanzado sistema de reconocimiento de voz, permitiendo de esta forma, no slo recibir numerosos comando en ingls, sino tambin establecer pequeos dilogos entre el hombre y la mquina. Tambin controla el reloj interno de Aibo, para adaptarse al ritmo de vida de su dueo. Mind3 ir forjando la personalidad de Aibo dependiendo de las experiencias y sensaciones que Aibo experimente. De esta manera, cada Aibo es nico. [10] Debe ser destacado que el proyecto Aibo y Qrio de Sony no fueron cancelados por no tener perspectivas de ser rentables en el futuro sino por motivos internos de la compaa. Aibo es uno de los robots comerciales que tenan ms perspectiva de futuro y que ms se han vendido. Del mismo modo son un estandarte para la robtica actual cuadrpeda.

4.Estado del arte - 30

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Kits Cuadrpedos Lynxmotion


Lynxmotion [23] es una pgina web de robtica como hobbie. Durante los ltimos aos se ha ido posicionando como una de las mejores en este segmento cada da ms creciente. En su pgina web se pueden encontrar dos kits de robots cuadrpedos el Extreme Quadrapod 2 y el Extreme Quadrapod 3.

Fig. 19. Extreme Quadrapod 2 Lynxmotion. El robot que aparece en la figura 19 es el Extreme Quadrapod 2. Cuenta con dos grados de libertad por pata, esto abarata su coste pero tambin reduce sus posibilidades dado que la punta de la pata al desplazarse no dibuja lneas rectas sino que traza semicrculos, el robot ser menos estable y preciso. El robot est construido en ltex estructural cortado con lser y los servomotores son Hitec HS422. El precio de este robot sin electrnica, solo piezas y servos es de 219$. El otro modelo es el Extreme Quadrapod 3, este cuenta con 3 grados de libertad situados como los de el robot SILO4, la segunda y tercera articulacin estn en ejes paralelos y la primera en un eje perpendicular. Con esta configuracin tenemos una plataforma robtica perfecta para poder aprender y desarrollar algoritmos a un nivel profesional.

Fig. 20. Extreme Quadrapod 3 Lynxmotio Este ltimo robot por sus caractersticas puede ser utilizado como un prototipo de un robot ms grande que utilice la misma configuracin de patas. El problema de estos robots es el tamao y la fuerza de los servos, no se pueden incluir a esta escala muchos sensores, porque es muy complicado alojarlos en patas tan pequeas y por los problemas derivados del peso y el consumo.

4.Estado del arte - 31

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

RoboQuad
Uno de los robticos ms conocidos de la actualidad es Mark W. Tilden por el desarrollo de los BEAM robots. Estos respondan a una pequea inteligencia artificial sin chips, tan solo utilizaban elementos electrnicos sencillos, algunos eran capaces de destruir a otros robots para defender su territorio y posean una memoria sencilla. Ms tarde Tilden sorprendi al pblico general desarrollando el RoboSapien producido por la empresa de juguetes Wow Wee. Este fue uno de los primeros robots comerciales de bajo coste que triunfaron. RoboSapien era reprogramable y fcil de utilizar incluso poda ser teleoperado con un mando a distancia o una PDA. A RoboSapiens le siguieron RoboRaptor, RoboReptile, RoboPet y el que vamos a estudiar a continuacin RoboQuad. Este robot se asemeja a un insecto y a un perro, posee cuatro motores en la patas, un motor en la cabeza y otro en el cuello, un sensor de luz, un sensor de infrarrojos, visin por infrarrojos y un micrfono. RoboQuad tiene cinco modos de uso, control directo, modo autnomo, modo guardin, dormido y un demo. De serie viene con cuarenta movimientos programados, y setenta y dos funciones reprogramables.

Fig. 21. RoboQuad de Wow Wee

4.Estado del arte - 32

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

5.Objetivos
Introduccin
El proyecto R4P pretende disear, construir y programar un pequeo robot cuadrpedo que pueda ser utilizado en la docencia para formar a jvenes en la robtica. El robot debe ser fcil de montar para que los chavales puedan construirlo por si mismos as como sencillo de controlar y programar para incitar a los jvenes a utilizarlo. Tambin se pretende alcanzar un amplio rango de difusin as como crear una comunidad en torno a esta plataforma que permita generar un conocimiento que cualquiera que desee iniciarse en la robtica pueda obtener de manera gratuita, completa y sencilla.

Objetivos Cientficos y Tcnicos


Disear un robot innovador y econmicamente viable para lo que se deber realizar un estudio de costes. Construir el robot y demostrar que los diseos eran viables tcnicamente a partir de una serie de pruebas. Implementar unas libreras bsicas de movimientos elementales que permitan modificar de manera sencilla el cdigo del robot para que este reaccione a estmulos externos. Implementar una interfaz que permita controlar el robot generar nuevas secuencias de movimiento. Generar una documentacin completa, fiable y sencilla.

Objetivos Orientados a la Educacin


Este pequeo robot cuadrpedo est orientado a la formacin en reas tecnolgicas relacionadas con la electrnica, informtica y mecnica. Pretende cubrir una serie de aspectos de cara a la educacin. Como por ejemplo, facilitar la entrada al mundo de la robtica a jvenes de instituto e incluso de primeros cursos de carreras tcnicas. Incentivar la imaginacin y creatividad del usuario. Fomentar el desarrollo de nuevas aplicaciones y utilidades sobre R4P o sus posibles evoluciones. Acercar a los centros de enseanza primaria y secundaria una visin ms atractiva de los estudios tcnicos superiores y sus aplicaciones.

Objetivos Orientados al Software Libre


Los objetivos del proyecto se basan en crear un robot cuadrpedo incurriendo en un bajo coste y liberando todo el cdigo, diseo y documentacin. De este modo cualquiera podra construir su propio R4P. Actualmente no existe ningn robot cuadrpedo que sea totalmente libre. R4P cubre por tanto ese vaco de un modo completo, profesional y elegante. La comunidad de usuarios de R4P o de los robots relacionados con esta plataforma permitira un feedback as como el crecimiento sin encarecer los costes del conocimiento sobre este tipo de robots y sus aplicaciones. Permitiendo a aquellos investigadores con pocos recursos utilizar este tipo de robots e iniciarse en el mundo de la robtica partiendo del conocimiento generado por la comunidad durante todo su desarrollo.

5.Objetivos - 33

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Objetivos Modificados
Durante el desarrollo del proyecto se realiz un cambio de director del proyecto dado que Fernando Benguer dejaba la universidad por motivos personales. Este hecho supona una reestructuracin del proyecto al cambiar de director. Sera Nourdine Aliane el que aportara un enfoque ms concreto a objetivos dada su experiencia en proyectos de robtica. El proyecto R4P surge como un proyecto fin de carrera propuesto por el equipo de desarrollo. Los objetivos que se fijaron en el anteproyecto fueron en algunos casos demasiado pretenciosos fruto de la ilusin y las expectativas de dos jvenes inexpertos. Fue Nourdine Aliane antes de ser director del proyecto quien coment durante una reunin informal que los objetivos que se haban propuesto eran demasiado para un fin de carrera. En concreto hizo una referencia a uno de los objetivos que se incluan como uno ms, este objetivo haba sido el tema de su tesis doctoral y otro comentario que se cita textualmente No es un proyecto fin de carrera, vosotros pretendis hacer tres. Durante una de las primeras reuniones con Nourdine Aliane nuevo director del proyecto algunos objetivos fueron eliminados o modificados. En los siguientes prrafos se exponen estos objetivos y los motivos por los cuales se han desestimado. La generacin de funciones de control inverso de las patas del robot fue uno de los objetivos eliminados debido a su complejidad y la escasa necesidad del uso de este tipo de funciones para un robot tan sencillo. As como la dificultad que presentaba implementar este tipo de funciones en dispositivos de bajo nivel como es Arduino. Implementar un algoritmo de caminar en el que el centro de masas del robot se desplazara de forma constante. Este objetivo tuvo que ser eliminado por la dificultad que presentaba. Como prueba de esta dificultad se debe comentar que fue el tema de la tesis doctoral de Nourdine Aliane y evidentemente era un objetivo desmesurado para implementar como una pequea parte de un proyecto fin de carrera. Implementar una representacin 3D del robot en la interfaz de control es otro de los objetivos eliminados. Se consider innecesario pues cuando se trabaje con el robot este se encontrar a una distancia mxima de 10 metros que es el mximo que alcanza el bluetooth. Por tanto no es necesario tener una representacin del robot dado que est muy cerca.

5.Objetivos - 34

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

6.Diseo del robot


En uno de los apartados anteriores, estado del arte se da una visin cientfica y bien fundada de las mejoras que presenta un robot cuadrpedo respecto a un hexpodo. Como se cita en el apartado anterior un robot cuadrpedo presenta menos estabilidad lo que le dota de una dificultad mayor. Esta dificultad se incrementa cuando el robot no presenta apoyos con base sino que se sustenta sobre cuatro puntos que son los extremos de sus patas. Por tanto es muy importante contar con un algoritmo que mantenga la normal de su peso lo ms centrada con respecto al tringulo de estabilidad. Por tanto el control de la estabilidad es uno de los temas crticos a estudiar y solucionar. Sin embargo los cuadrpedos son los que mejores caractersticas tcnicas presentan en lo referente a consumo, utilidad y otros factores analizados en el estado del arte. La naturaleza lleva aos investigando y sus resultados son tajantes, la mayora de las criaturas que pesan ms de medio kilo tienen cuatro patas. Si nuestro fin es la investigacin debemos hacer caso al investigador ms consagrado, el tiempo y como consecuencia de este, la evolucin. Si bien es cierto que los animales cuadrpedos tienen una pequea base para sus patas esta suele ser bastante reducida. Desde el punto de vista del diseo se pretenda llevar a cabo la idea de que un robot cuadrpedo con apoyos puntuales pudiera realizar apoyos mltiples con sus patas y sostener todo el peso sobre dos. Como un perro cuando apoya su peso sobre los cuartos traseros y levanta las patas delanteras. En este aspecto se trabaj con un diseo principal que surgi casi por casualidad. Algunos de los mejores descubrimientos comenzaron de este modo, como Fleming y la penicilina, aunque evidentemente surgi por que se buscaban nuevas aplicaciones para las patas que no requirieran sensores ni actuadores, es decir que fueran intrnsecos de la pata.

Estructura general del robot Esqueleto del robot


La estructura del robot ser la que defina sus capacidades de una manera crtica. En este caso las patas son la parte ms importante del robot dado que en ellas se centra la investigacin sobre los apoyos mltiples. Cuando se trata de disear una pata surgen muchas posibilidades que se definen por una serie de variables como son la direccin en la que giran cada uno de los actuadores que las componen, si cuentan o no con sensores, como est situada una pata en el cuerpo del robot, la longitud de cada un de los segmentos que la conforman y el diseo de cada uno de estos segmentos. El cuerpo tambin debe ser tenido en cuenta. En este caso al tratarse de un robot de cuatro patas se debe distribuir el peso lo mejor posible aunque y siempre siguiendo una simetra en dos ejes. Es decir el cuerpo debe ser cuadrado o rectangular. Los materiales que se utilizan tambin deben ser tenidos en cuenta. Adems se pretende construir un robot de bajo coste por tanto se debe comenzar por realizar un estudio de los materiales utilizados en los robots ms actuales, investigar otros materiales que cumplan las caractersticas necesarias y no presenten un precio excesivo. Existen una gran cantidad de materiales plsticos que pueden ser tiles para construir un robot por eso se opt por crear una lista de materiales que podran ser utilizados para la construccin del robot y las ventajas e inconvenientes de cada uno. De
6.Diseo del robot - 35

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

este modo las personas que lo construyan podrn decidir que material utilizar en funcin de los criterios que se imponga o la tarea que pretenda implementar sobre su R4P. El diseo de R4P ha evolucionado durante la duracin del proyecto. En un principio su disposicin de las patas era de insecto con las patas acopladas a lo que podramos llamar la panza del robot. Los ejes del actuador era perpendicular al plano del cuerpo y los dos ejes de los otros dos actuadores de cada pata eran paralelos entre ellos y perpendiculares al eje de giro del primero. Se realizaron muchas pruebas y este modelo no era capaz de conseguir realizar ciertas tareas que se pretendan cubrir, su estabilidad era nula a la hora de sostenerse sobre tres patas. Por este motivo se decidi modificar el centro de masas bajando el cuerpo del robot al acoplar las patas por encima del cuerpo. El ltimo segmento de cada pata presentaba una forma especial que pretenda realizar apoyos mltiples y los resultados de las pruebas fueron un xito. Se modificaron ligeramente para que el reparto de fuerzas fuera ms directo sobre las patas al quedar el punto de apoyo justo debajo del servo. Los segmentos de la pata que unen la parte final de la extremidad con la cadera u hombro del robot deban ser modificados pues al bajar el cuerpo esta pieza deba poder salvarlo para poder realizar la posicin de apoyos mltiples. Se realiz un diseo en forma de C que permita esta posicin y se aadi un pico extra que en la posicin de apoyos mltiples permite realizar otro apoyo ms con esta pata. Lo que mejora an ms el apoyo y reduce el consumo energtico. En los siguientes diagramas se puede observar la evolucin de los diseos del robot.

6.Diseo del robot - 36

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo 1.1.

Fig. 22. Esquema R4P prototipo 1.1 La primera versin de las piezas de R4P no inclua los agujeros por los que se introducan los tornillos, las muescas para fijar los servos y las patas presentaban un ligero defecto en el corte y en el diseo. Todos los taladros se realizaron a mano para encontrar la mejor manera de construir el robot y poder valorar si era o no necesaria su inclusin en los siguientes prototipos.
6.Diseo del robot - 37

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo 1.2

Fig. 23. Esquema R4P prototipo 1.2 Este prototipo mantiene la estructura del prototipo anterior pero presenta algunas mejoras en lo referente a la facilidad de construccin. En la segunda versin de las piezas se incluyeron los agujeros para los tornillos, las muescas para los servos y se subsanaron los problemas de diseo de las patas que consistan en una diferencia milimtrica que restaba un apoyo en el apoyo mltiple. Concretamente el final de la pata, la punta ms alta, no estaba en lnea con el resto de apoyos por un pequeo error a la hora de geometrizar el diseo.
6.Diseo del robot - 38

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo 2.0 o Educacional:

Fig. 24. Esquema R4P prototipo 2.0 o Educacional Se realiz una tercera versin que se consideraba la definitiva, esta incluye los taladros necesarios para la sujecin de las placas electrnicas, la fijacin de los interruptores, el paso de cables hasta estos y algunas mejoras ms. De este modo el cliente no deber utilizar el taladro para construir sus robots lo cual facilitar su construccin, mejora el producto y lo hace apto un mayor rango de edad. La suma de estas caractersticas facilita su venta y cubre los requisitos de facilidad de construccin. Adems esta versin elimina el cuerno del hombro que no es usado para evitar posibles problemas al ser utilizado por nios.

6.Diseo del robot - 39

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

R4P Phoenix:

Fig. 25. Esquema R4P Phoenix R4P Phoenix utiliza el mismo sistema de movimientos y de patas que los prototipos anteriores pero al llevar el cuerpo colgando de sus patas en lugar de sus patas colgando del cuerpo se incrementa al estabilidad. Este prototipo ha demostrado ser notablemente ms estable que los anteriores as como ms sencillo de programar.

6.Diseo del robot - 40

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

En las imgenes a continuacin se puede observar la diferencia de altura del centro de masas as como los cambios en la estructura de los prototipos. En la primera imagen podemos ver el prototipo 1.0 y los sucesores 1.2 y 2.0. Estos utilizaban las primera estructura que resulto poco estable. La segunda muestra la estructura del prototipo Phoenix que presenta algunas mejoras interesantes como los picos, las patas, los muslos y las modificaciones en los ejes de giro de las caderas.

Fig. 26. Estructura Prototipos 1.1, 1.2 y 2.0

Fig. 27. Estructura Prototipos Phoenix

Fig. 28. Comparacin de Altura del Centro de Masas.

6.Diseo del robot - 41

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Sensores
Cuando un robot no hace uso de sensores se denomina robot autista. Cuando utiliza algn tipo de sensores por limitados que sean y reacciona a los estmulos reportados por dichos sensores, recibe el nombre de robot reactivo. Por tanto podemos decir que R4P es un robot reactivo. En este apartado se pretende explicar cuales son los sensores utilizados por R4P as como algunos ejemplos de las posibles reacciones a los estmulos devueltos.
Brjula

Uso del sensor de campos magnticos como brjula para aspectos relacionados con la orientacin Se trata de un sensor de campos magnticos. El sensor est especficamente diseado como sistema de navegacin para robots. Es lo suficientemente sensibles como para captar el campo magntico de la tierra. La brjula permite identificar variaciones en la direccin del robot durante un desplazamiento, por lo tanto podr corregir una trayectoria en caso de modificar la direccin por algn factor externo como podra ser una pata que resbala, una posicin forzada de un servo o cualquier otro evento no comprendido por las variables de entorno de R4P. Del mismo modo si el robot no fuera capaz de llevara a cabo una correccin de trayectoria el usuario sera consciente de esta desviacin. Por otra parte proporciona informacin precisa durante un giro, por lo que se puede saber cuantos grados se ha desplazado y hacia que posicin. El dispositivo seleccionado fue el CMPS03 en la tienda online www.superrobotica.com por un precio total de 36,34.

Fig. 29. Brjula CMPS03 La brjula digital CMPS03 es un sensor de campos magnticos que una vez calibrado ofrece una precisin de 3-4 grados y una resolucin de dcimas. Tiene dos interfaces, mediante pulsos temporizados (modulacin en anchura), o bien por medio de un bus I2C, lo que facilita su comunicacin con una amplia gama de micro controladores, incluyendo los Basic Stamp, Basic X, OOPIC y otros lenguajes compilados. Este sensor magntico esta especficamente diseado como sistema de navegacin para robots. La brjula esta basada en los sensores KMZ51 de Philips que son lo suficientemente sensibles como para captar el campo magntico de la tierra. Usando dos de estos sensores colocados en angulo de 90 grados, permite al microprocesador calcular la direccin de la componente horizontal del campo magntico natural.
6.Diseo del robot - 42

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Inclinmetros
Uso un sensor de inclinacin de dos ejes para control de equilibrio y deteccin de vuelcos. Se trata de un sensor de acelermetro de dos ejes. Por lo tanto permite controlar la inclinacin en dos planos, lateral y frontal. Este sensor se utilizar para controlar la inclinacin del robot. A partir de la inclinacin del cuerpo del robot y la posicin de los servos se podr determinar si se encuentra en una situacin de equilibrio, de riesgo de prdida de equilibrio o est volcado. Este sensor podra ser til para conseguir mantener el robot en equilibrio. Si hubiera un pequeo levantamiento en el terreno y una de las patas se fuera a apoyar en dicho levantamiento, al ir bajando la pata y llegar al apoyo, comenzara a levantar el cuerpo del robot. En este punto el sensor detectara un ligero cambio en la inclinacin en el cuerpo de R4P y parara la pata es esa posicin, e incluso la recolocara para que el cuerpo del robot volviera a estar perfectamente horizontal.

Fig. 30. Inclinmetros digitales Robonova Se trata de un sensor acelermetro de 2 ejes pensado para ser utilizado con el robot Robonova. El sensor esta basado en el circuito ADXL322 de Analog devices. Este circuito es un sensor acelermetro con un rango de +/-2g. La salida de cada canal proporciona una tensin entre 0 y 5 V que es proporcional al ngulo en el plano X e Y en el que se encuentra el sensor. De esta forma, el sensor puede utilizarse para saber el grado de inclinacin en el que se encuentra el circuito en dos planos. El circuito se conecta mediante dos conectores como los que utilizan los servos, teniendo cada uno de ellos los dos cables de alimentacin y un tercer cable con la seal del sensor. Se conecta directamente en cualquiera de los puertos del circuito de control del Robonova, pero tambin puede utilizarse con cualquier micro controlador que disponga de entradas analgicas. Por ejemplo se puede conectar a cualquiera de las 8 entradas analgicas que tienen el micro controlador BasicX24 y hacer una medida directa de la tensin proporcionada por el sensor en funcin de la inclinacin de este.

6.Diseo del robot - 43

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Distancia
Integracin de un sensor de distancia para reconocimiento de obstculos. Hay gran cantidad de sensores de distancia con diferentes precios y prestaciones. Se ha decidido utilizar un sensor de infrarrojos, por su precio, caractersticas del haz de luz que realiza las medidas y los rangos de respuesta. El precio de estos sensores de distancia (Infrarrojos) ronda es de 23,84. El haz de medida es triangular y plano por lo que no da problemas al estar demasiado cerca del suelo como podra ser el sensor de ultrasonidos que puede dar falsos positivos dependiendo de la distancia al suelo. El rango de respuesta es de 10 a 80 cm, teniendo en cuenta el tamao y la velocidad estimada de R4P no se necesita ms distancia ni menos, pues si el sensor va alojado en el cuerpo las patas en su posicin ms avanzada estarn a ms de 10 cm del cuerpo. Este sensor podra ser utilizado para detectar obstculos en el frente del robot y podra ser fijo o mvil dependiendo de las necesidades y utilidades que se deseen poner en prctica. Por ejemplo podra ser til a la hora de reconocer un escaln. Realizando medidas de arriba abajo si a una determinada altura detecta un aumento en la medida. Tambin a la hora de hacer barridos laterales, tanto con el cuerpo como utilizando un servomotor para girarlo. As R4P podra rodear objetos o deducir recorridos libres.

Fig. 31. Sensor de Distancia por Infrarrojos El sensor elegido es un sensor de distancias para robot robonova, basado en el popular Sharp GP2D12. El sensor mide la distancia hasta los objetos mediante un haz infrarrojo. Este sensor mide las distancias de forma continua en un rango de 10 a 80 cm y devuelve una seal analgica en proporcin a la distancia medida. Resulta muy til para hacer que el robonova camine sin colisionar.

6.Diseo del robot - 44

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Actuadores
Los actuadores con los que cuenta el robot son los servos que sern sus msculos. Los servomotores deben tener la fuerza necesaria para levantar el robot. No es necesario que uno solo pueda cargar o alzar todo el peso dado que este se reparte entre todas las patas apoyadas. Hay cuatro servomotores que soportan ms peso que el resto, son los que estn colocados en los hombros de las patas.

Fig. 32. Actuador Servomotor MG995 Se ha optado por utilizar los servomotores HX12K de Hextronik ms conocidos como Towerpro MG995. Dichos motores son de bajo coste, tienen un gran torque, incluyen dos rodamientos en la parte mecnica para evitar alabeos y sus engranajes son de cobre por lo que soportan mayor peso y temperatura sin deformarse. El largo del cable es de 320 mm Especificaciones:

Peso: 48 grs Tamao: 40.6mm*19.8mm*37.8mm Velocidad: 0.17seg/60 (4.8v) - 13seg/60 (6v) Torque: 13kg/cm Voltaje de operacin: 4.8V~7.2V

6.Diseo del robot - 45

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Electrnica Estudio de costes de placas de control


La placa principal deber contener el microcontrolador, entradas y salidas, un adaptador de conexin a PC, entrada de alimentacin entre 12 y 5 V. En esta ser empotrado el programa de control principal y la comunicacin con PC. El control de movimientos, y las gestiones de datos de entrada de los sensores podrn ser cedidos a otras placas en caso de ser necesario. Cabe la posibilidad de utilizar varias placas para distribuir la carga de procesamiento dado que la capacidad de los microcontroladores es muy limitada, solo habr una que asumir el rol de placa principal y solo se utilizaran ms cuando las placas en uso hayan alcanzado su lmite de capacidad de proceso. El microcontrolador debe ser lo suficientemente potente como para poder resolver las funciones en tiempos limitados, gestionar datos de entrada y salida, implementar los protocolos I2C y RX TX, deber poder ser extrado en caso de que sea necesario, preferiblemente la encapsulacin ser PDIP, no ser necesario utilizar un solo microcontrolador, podra haber varios trabajando de forma distribuida. Para reforzar la capacidad de almacenamiento del microcontrolador se podrn utilizar memorias EEPROM. Las entradas debern ser tanto digitales como analgicas capaces de soportar pulsos de 50Hz en seales cuadradas con amplitudes desde 0,5 hasta 20 ms, realizar medidas analgicas entre 0 y 5 V con conversin digital. La conexin a PC deber ser puerto de serie, USB o Bluetooth. Hay diversas placas que cumplen los requisitos expuestos anteriormente. Para tomar una decisin se utilizaran criterios como eficiencia, facilidad de uso, tamao, licencias de los diseos, coste, informacin relacionada en Internet, proyectos similares con resultados de xito utilizando dichas plataformas y acogida por parte de las comunidades robticas relevantes. Se valorarn estas y otras caractersticas con valores numricos entre -3 y 3 siendo el valor ms alto mejor y el ms bajo peor. Las placas que cumplen los requisitos expuestos son:

Arduino Diecimila

Fig. 33. Arduino Diecimila

Proyecto Ardabasto

Fig. 34. Ardabasto

6.Diseo del robot - 46

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

MSEF87X de MSE Bilbao

Fig. 35. Placa MSEF87X La valoracin se realizar en formato de tabla. La placa que ms puntos acumule ser la seleccionada para el proyecto: Arduino Ardabasto MSEF87X Protocolo I2C Protocolo RX TX Entrada DC 5V PWM Sistema Distribuido Precio Facilidad de uso Disponibilidad Info. Relacionada Proyectos de xito Procesador Tipo de conexiones Open Hardware Open Software Valoracin total: 3 3 3 3 0 3 3 3 2 2 2 0 3 3 32 3 3 3 3 3 1 3 -3 0 0 2 2 3 3 26 3 3 3 3 0 -3 1 3 3 3 3 3 -3 -3 19

La placa MSEF87X presenta serias desventajas en caractersticas como precio, licencias hardware cerradas y licencias software cerradas (el compilador de PIC-C). Por tanto pese a sus buenas valoraciones en otros aspectos no puede ser seleccionada. La placa Ardabasto presenta un importante ventaja que la hacen nica respecto a las otras dos, permite interconectar varas placas y trabajar con ellas como un sistema distribuido. Por otra parte contaba con una gran desventaja, no estaba an a la venta y el proyecto R4P deba seguir adelante. La placa Arduino cumple todos los requisitos y es la que ha obtenido mayor puntuacin en las valoraciones. Adems permite trasladar las aplicaciones a la plataforma Ardabasto dado que utilizan el mismo lenguaje de programacin. Por tanto la placa que mejor se adapta al proyecto R4P es Arduino.

6.Diseo del robot - 47

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Arquitectura Electrnica
La arquitectura de R4P se basa en Arduino siendo la CPU del robot. Un chip SD20 controla el envo de datos a los servos y desde Arduino mediante el protocolo I2C o TWI se envan las posiciones de cada servo al SD20. Por tanto libera a Arduino de gran parte del trabajo, pudindose dedicar a otras tareas. Los sensores van directamente conectados a Arduino y el Bluetooth tambin. En el diagrama de conexiones de R4P se puede ver claramente la disposicin: Fig. 36. Esquema de laElectrnica de R4P

Para evitar tener una gran cantidad de cables entrando y saliendo de Arduino (cada sensor necesita alimentacin y generalmente tienen un conector de tres pines) se ha tomado la decisin de construir una placa de entrada/salida. Se debe tener en cuenta que el chip SD20 debe ir conectado a un zcalo y tener alimentacin. As como para los servos sera conveniente una fuente de alimentacin externa a la de la circuitera para evitar bajadas de tensin cuando estos soporten una gran carga.

Fig. 37. Esquema de conexiones con la placa de entrada salida. La placa de entrada/salida consta de las siguientes conexiones:

Veinte conectores para servo. Dos pines para la entrada de los inclinmetros. Una entrada para la brjula digital. Una entrada para el inclinometro. Un bus con todas las entradas/salidas para Arduino.

6.Diseo del robot - 48

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Todas las entradas de la placa estn preparados para el conector que traen de serie los sensores excepto la brjula para la que se debe construir un conector a medida

La placa de entrada/salida incluye tres interruptores que controlan la alimentacin de las placas (circuitera en general) y la alimentacin de los servos separadas en dos partes

6.Diseo del robot - 49

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Estudio de Costes Totales


La siguiente tabla muestra los costes desglosados para las versiones 1.1, 1.2 , 2.0 o educativa y Phoenix. CONCEPTO 1. Piezas cortadas por laser 2. Horn de Servo (*12) 3. Tornillos fijacin servos M3 (*50) 4. Tronillos fijacin metacrilato Rosca-chapa 5. Tornillos fijacin placas electrnicas 6. Servos (*12) 7. Cable alargador servos (*4) 8. Zumbador piezoelctrico 9. Clema doble (*3) 10. Interruptor 11. Zcalo pin hembra 12. Zcalo pin macho (*3) 13. Zcalo Chip 28 estrecho 14. Baquelita de cobre 15. Estao 16. Brjula digital CMPS03 17. Acelermetro de 2 Ejes 18. Sensor de infrarrojos 19. Controlador SD20 por I2C 20. Arduino Diecimilla 21. Bluetooth 22. Cables y componentes TOTAL: COSTE UNITARIO 4,00 0,05 6,5 1,5 0,18 0,40 0,19 COSTE TOTAL 121,82 48,00 2,50 2,00 2,00 78,00 6,00 1,19 0,54 1,20 1,25 0,57 0,32 2,00 0,50 38,15 28,15 27,65 11,51 27,5 45,50 20,00 466,19

38,15 28,15 27,65 11,51 27,5 45,50 20,00

Los costes mximos impuestos como lmites en el anteproyecto no han sido superados. Incluso teniendo en cuenta que se han realizado finalmente dos versiones del robot con el encarecimientos de los fondos dedicados al proyecto que esto supone. Debe ser tenido en cuenta que los integrantes del equipo de desarrollo del proyecto han cubierto de manera personal la totalidad de los gastos de cada prototipo.

6.Diseo del robot - 50

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Problemas Encontrados Durante el Desarrollo del Robot


Durante el desarrollo es lgico que surjan problemas con el software, hardware y las herramientas utilizadas. En este apartado se van a analizar los problemas que han ido surgiendo y como se han subsanado.

Rotura de Horns de Servo


Un horn de servo es la pieza generalmente de plstico que une el mbolo del servo con la parte mvil. En el primer prototipo de R4P utilizamos los horn de servo Futaba que vienen de serie con los servos de esta marca:

Fig. 38. Horn de Servo Futaba. En el diseo de la mcanica de R4P estas piezas sufren dos tipos de fuerzas, las fuerzas gravitatorias y las fuerzas de traccin. Las fuerzas gravitatorias son las que aplican sobre las piezas el peso del robot y van generalmente de arriba a abajo. Las fuerzas de traccin aparecen cuando un servo desplaza a una pata apoyada para conseguir movimiento y van generalmente de un lado a otro. En este caso particular la pieza se ha roto por que el tornillo se ha soltado y la pieza se ha visto sometida a una fuerza que no ha podido soportar y se ha partido como se puede observar en la figura 39.

Fig. 39. Rotura de horn de servo.

6.Diseo del robot - 51

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Se ha optado por solucionar este problema adquiriendo un horn metlico de la marca Futaba. De este modo la pieza no se romper con tanta facilidad. Al menos no se romper haciendo un uso normal del robot.

Fig. 40. Horn Futaba Aluminio El precio es de 4 cada horn y se utilizaron un total de doce. Encarece el robot pero como ya se ha comentado es la mejor solucin dado que evita la rotura y se ha comprobado que dota de mayor estabilidad al robot. Se han fijado con un total de ocho tornillos de mtrica 2 o M2.

Ensamblaje de piezas de metacrilato


Han surgido algunos problemas con la cadera del robot. Estas son dos piezas ensambladas utilizando tornillos de metrica 2 o M2 denominados de rosca chapa es decir que oradan su rosca cuando son atornillados. Las piezas se acaban aflojando por el movimiento del robot y las vibraciones. Este problema se traduce en que las patas tienen holgura lo que produce una prdida de estabilidad.

Fig. 41. Ensamblaje de la cadera roto. La solucin que parece la ms ptima es disear una sola pieza para el hombro doblada 90. Ya se lo hemos comentado a Raul de LaserModel y nos ha dicho que tcnicamente es posible. Como la de la fig 42. El prototipo R4P Phoenix cuenta con estas piezas y el resultado es muy bueno.

Fig. 42. Nueva cadera de R4P.

6.Diseo del robot - 52

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Rotura de Piezas de Metacrilato:


Aunque el metacrilato sea un material muy resistente se parte si se aplica sobre el mucha fuerza y esta pieza en concreto tiene muy poca superficie. Se debe especificar que no se parti durante el uso del robot sino al tratar de reparar una deficiencia en la pieza del hombro. Se aplic demasiada fuerza sobre una parte de la pieza y por eso se parti.

Fig. 43. Pieza de R4P rota.

6.Diseo del robot - 53

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

- 54

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

7.Software Empotrado
En este apartado se expondr la implementacin del Software empotrado en el robot R4P. Este cdigo se puede encontrar en la carpeta del soporte digital adjunto al proyecto Software/Emebido en R4P/Codigo R4P.pde. Pde es la extensin de Processing que es la IDE sobre la que se ha desarrollado este software, dicha IDE se puede encontrar en la carpeta Programas Necesarios/IDE Arduino/arduino-0011-win.zip siendo este un archivo comprimido que puede ser ejecutar sobre Windows Vista y versiones anteriores de este mismo sistema operativo. En este bloque se van a analizar algunas de las constantes del software empotrado en el robot.
int int int PIN_INC1 = 0; PIN_INC2 = 1; PIN_DIST = 2; INC_X_ON = true; INC_Y_ON = true; DIST_ON = false; COMPASS_ON = false; // Inclinometro X - Cable verde // Inclinometro Y - Cable naranja // Distancia - Cable azul // // // // // // // // Inclinometro eje X, true = encendido Inclinometro eje Y, true = encendido Sensor de distancias, true = encendido Brujula, true = encendido Estado Estado Estado Estado inicio base caminando sobre dos pies

boolean boolean boolean boolean int int int int int

STATE_INI = 0; STATE_BASE = 2; STATE_WALK = 3; STATE_2FEET = 4; UPDOWN_DEGREES = 20;

// Grados que sube o baja una pata. 20 por defecto.

Las constantes definidas sirven para hacer ms fcil la comprensin del cdigo as como para poder realizar modificaciones en el cdigo sobre algunas de estas constantes que afectarn al desempeo de las tareas del robot. Como podra ser por ejemplo una modificacin en la constante UPDOWN_DEGREES que dependiendo del valor subir o bajar ms o menos la pata cuando llamemos a una funcin genrica encargada de levantar o bajar la pata. Las constantes que empiezan por PIN sern utilizadas en caso de modificar la entrada de los datos de los sensores en el Hardware del robot. En caso de hacerlo solo deber ser modificada esta constante. Las constantes que hacen referencia a los sensores debern ser modificadas en funcin de los sensores que tengamos conectados o no al robot antes de descargar y ejecutar el programa para que el robot y la interfaz sean conscientes de los sensores que tienen conectados en cada ejecucin. Si han menos sensores conectados los envos de datos sern ms rpidos y el programa ser ms eficiente al no tener que realizar esas lecturas y su correspondiente muestreo. Debe ser tenido en cuenta que si una de estas variables est en verdadero y no hay ningn sensor conectado Arduino considerar que lo est y realizar todas las medidas de manera habitual devolviendo valores espreos fruto de fluctuaciones elctricas. Los estados se utilizan para controlar en que posicin de referencia se encuentra el robot en cada momento permitiendo realizar unas tareas u otras. Estos estados se explican ms adelante en el apartado Funciones Bsicas de Transicin de Estados

7.Software Empotrado - 55

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

En este bloque se van a analizar algunas de las variables globales del software empotrado en el robot.
int incX; // Medida int incY; // Medida int dist; // Medida int compass; // Medida int state; // Estado int gState; // Estado int walkState; // Estado boolean WALKING = false; inclinometro X inclinometro Y sensor de distancia sensor brujula general del robot del centro de gravedad de la secuencia caminar

/* Array de posicion de servos: * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| */ int servo[12] = { 90,170,180, 90, 17, 8, 90, 17, 8, 90,170,180}; /* Array de ajuste de servos: * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| */ int ajuste[12] = { 8, 0, 0, 8, 0, 0, 8, 0, 0, 8, 0, 0}; /* Array de enrutamiento para registros de SD20 de servos: * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| */ int router[12] = { 18, 19, 20, 11, 12, 13, 1, 2, 3, 8, 9, 10};

Las variables globales son necesarias ala trabajar con bajo nivel dado que hay valores de variables que deben ser conocidas por varias funciones en momentos diferentes de la ejecucin del programa. Por otra parte es uso de estas variables simplifica el cdigo hacindolo ms comprensible. Al tratarse de un robot orientado a la educacin es importante que sea sencillo y fcil de comprender. Las primeras cuatro variables son las que almacenan los valores obtenidos de los sensores incX, incY, dist y compass. Antes de realizar cada envo de datos se actualizan los valores de estas medidas. Las variables state, gState y walkState sirven para conocer en que momento de cada accin o posicin se encuentra el robot. La variable state se encarga de conocer el estado general en el que nos encontramos. En el apartado anterior Constates podamos observar que hay cuatro constantes que empiezan por STATE, ests definen los valores de state. Estos estados se explican ms adelante en el apartado Funciones Bsicas de Transicin de Estados. La variable gState conoce en que estado de traslacin del centro de masa se encuentra el robot. Esos estados pueden ser consultados en el apartado Funcin Bsica de Traslacin del Centro de Masas. La variable WALKING es una booleana que define cuando el robot est caminando. El array servo[12] es el que almacena la posicin de los servos en cada momento y puede ser modificado cuando se requiera. Estos datos en ngulos son enviados a los servos con una latencia irregular de un mximo de 500ms. El array ajuste[12] sirve para ajustar los servos a sus posiciones. Las muescas de los mbolos son demasiado amplias y para refinar la posicin de cada para se pueden utilizar estos valores incrementando o decrementando en grados para conseguir la posicin con mayor definicin. El array router[12] sirve para conocer la direccin de los registros en el chip SD20.

7.Software Empotrado - 56

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funciones Bsicas de Control del Robot


Se han implementado unas funciones bsicas de control del robot para poder realizar tareas complejas de manera sencilla. El lenguaje que se ha utilizado es el nativo de la placa de control Arduino es decir Processing. Es un lenguaje muy similar a C que presenta sus ventajas en cuanto a simplicidad y eficiencia permitiendo adems realizar medidas analgicas o digitales con gran sencillez as como utilizar las comunicaciones a travs del puerto de serie. A la hora de trabajar con un robot con patas lo ms complicado es controlar la posicin y coordinacin de los actuadores que las articulan. Se han creado una serie de funciones de control de las patas de manera que sea sumamente sencillo definir una secuencia de movimientos compleja como podra ser caminar utilizando las siguientes funciones. Durante los siguientes apartados se mostrar cada una de ellas as como su aplicacin, parmetros y valores devueltos.

Funcin de Rotacin de las Patas


RotateLeg(leg);

Descripcin: Se trata de una funcin que gira la pata pasada por parmetro a la posicin en grados pasada como segundo parmetro. Realiza Parmetros: entero leg (pierna), entero deg (grados) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: rotateLeg(1,90); Descripcin del ejemplo: Mover la pata 1 a la posicin 90 del servomotor de rotacin de esta pata. Funciones bsicas de las que hace uso: Esta funcin no hace uso de funciones bsicas. Funciones complejas de las que hace uso: Funcin arduinoToSD20();

7.Software Empotrado - 57

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funciones de Elevacin de las Patas

Fig. 44. Esquema de identificacin de las patas

void legUp(int leg)

Descripcin: Esta funcin eleva la pata identificada con el nmero pasado como primer parmetro una cantidad en grados que est definida en la constante UPDOWN_DEGREES (grados de subida o bajada) al inicio del programa junto al resto de constantes con un valor por defecto de 20. Parmetros: entero leg (pierna) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: legUp(4); Descripcin del ejemplo: La pata 4 se levantar desplazando el ltimo segmento de la pata de forma paralela a la posicin anterior y girando el segmento intermedio la cantidad definida en la constante UPDOWN_DEGREES. Funciones bsicas de las que hace uso: void legUpDown(int leg, int add) ver ms adelante. Funciones complejas de las que hace uso: Esta funcin no hace uso de funciones complejas.

7.Software Empotrado - 58

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

void legUp(int leg, int deg)

Descripcin: Esta funcin eleva la pata identificada con el nmero pasado como primer parmetro el nmero de grados definidos por el segundo parmetro. Parmetros: entero leg (pierna), entero deg (grados) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: legUp(4,40); Descripcin del ejemplo: La pata 4 se levantar desplazando el ltimo segmento de la pata de forma paralela a la posicin anterior y girando el segmento intermedio la cantidad de 40. Funciones bsicas de las que hace uso: void legUpDown(int leg, int add) ver ms adelante. Funciones complejas de las que hace uso: Esta funcin no hace uso de funciones complejas.

void legDown(int leg)

Descripcin: Esta funcin baja la pata identificada con el nmero pasado como primer parmetro una cantidad en grados que est definida en la constante UPDOWN_DEGREES (grados de subida o bajada) al inicio del programa junto al resto de constantes un valor por defecto de 20. Parmetros: entero leg (pierna) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: legUp(4); Descripcin del ejemplo: La pata 4 bajar desplazando el ltimo segmento de la pata de forma paralela a la posicin anterior y girando el segmento intermedio la cantidad definida en la constante UPDOWN_DEGREES. Funciones bsicas de las que hace uso: void legUpDown(int leg, int add) ver ms adelante. Funciones complejas de las que hace uso: Esta funcin no hace uso de funciones complejas.
void legDown(int leg, int deg)

Descripcin: Esta funcin baja la pata identificada con el nmero pasado como primer parmetro el nmero de grados definidos por el segundo parmetro. Parmetros: entero leg (pierna), entero deg (grados) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: legUp(4,40); Descripcin del ejemplo: La pata 4 bajar desplazando el ltimo segmento de la pata de forma paralela a la posicin anterior y girando el segmento intermedio la cantidad de 40. Funciones bsicas de las que hace uso: void legUpDown(int leg, int add) ver ms adelante. Funciones complejas de las que hace uso: Esta funcin no hace uso de funciones complejas.

7.Software Empotrado - 59

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

void legUpDown(int leg, int add)

Descripcin: Esta funcin baja o sube el nmero de pata pasado por parmetro la cantidad de grados pasados como segundo parmetro. El segundo parmetro define con su signo si sube o baja. Parmetros: entero leg (pierna), entero add (incremento, si es positivo bajar la pata, si es negativo la subir) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: legUp(4,- 40); Descripcin del ejemplo: La pata 4 bajar desplazando el ltimo segmento de la pata de forma paralela a la posicin anterior y girando el segmento intermedio la cantidad de 40. Funciones bsicas de las que hace uso: Esta funcin no hace uso de funciones bsicas. Funciones complejas de las que hace uso: Funcin arduinoToSD20();

7.Software Empotrado - 60

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funciones de Elevacin del Cuerpo


void bodyUp(int time);

Descripcin: Esta funcin se encarga de desplazar el cuerpo hacia arriba lentamente y manteniendo el cuerpo paralelo al suelo durante un tiempo determinado pasado por parmetro. Este tiempo no responde a ninguna medida de tiempo estndar. Parmetros: entero time (tiempo) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: bodyUp(10); Descripcin del ejemplo: El cuerpo del robot subir durante 10 grados de cada motor de las patas. Funciones bsicas de las que hace uso: Esta funcin no hace uso de funciones bsicas. Funciones complejas de las que hace uso: Funcin arduinoToSD20();

void bodyUpFast(int time);

Descripcin: Esta funcin se encarga de desplazar el cuerpo hacia arriba rpidamente y manteniendo el cuerpo paralelo al suelo durante un tiempo determinado pasado por parmetro. Este tiempo no responde a ninguna medida de tiempo estndar. Parmetros: entero time (tiempo) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: bodyUpFast(10); Descripcin del ejemplo: El cuerpo del robot subir 10 grados con cada motor de las patas. Funciones bsicas de las que hace uso: Esta funcin no hace uso de funciones bsicas. Funciones complejas de las que hace uso: Funcin arduinoToSD20();

void bodyDown(int time);

Descripcin: Esta funcin se encarga de desplazar el cuerpo hacia abajo lentamente y manteniendo el cuerpo paralelo al suelo durante un tiempo determinado pasado por parmetro. Este tiempo no responde a ninguna medida de tiempo estndar. Parmetros: entero time (tiempo) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: bodyDown(10); Descripcin del ejemplo: El cuerpo del robot bajar durante 10 grados de cada motor de las patas. Funciones bsicas de las que hace uso: legUpDown(0,time); Funciones complejas de las que hace uso: Funcin arduinoToSD20();
7.Software Empotrado - 61

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

void bodyDownFast(int time);

Descripcin: Esta funcin se encarga de desplazar el cuerpo hacia abajo rpidamente y manteniendo el cuerpo paralelo al suelo durante un tiempo determinado pasado por parmetro. Este tiempo no responde a ninguna medida de tiempo estndar. Parmetros: entero time (tiempo) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: bodyDownFast(10); Descripcin del ejemplo: El cuerpo del robot bajar 10 grados con cada motor de las patas. Funciones bsicas de las que hace uso: legUpDown(0,-time); Funciones complejas de las que hace uso: Funcin arduinoToSD20();

void bodyUpDown(boolean up,int time,int add);

Descripcin: Esta funcin se encarga de desplazar el cuerpo hacia arriba o hacia abajo lentamente y manteniendo el cuerpo paralelo al suelo durante un tiempo determinado pasado por parmetro. Este tiempo no responde a ninguna medida de tiempo estndar. El tercer parmetro indica el incremento en cada tiempo. Parmetros: booleano up (subir), entero time (tiempo), entero add (incremento) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: bodyUpDown(-10); Descripcin del ejemplo: El cuerpo del robot bajar 10 grados con cada motor de las patas. Funciones bsicas de las que hace uso: legUpDown(0,add); o legUpDown(0,-add); Funciones complejas de las que hace uso: Funcin arduinoToSD20();

7.Software Empotrado - 62

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funciones de Transicin de Estados


Para facilitar el uso del robot R4P se ha tomado la decisin de utilizar una serie de estados que definen las posiciones de los servos del robot. En el siguiente esquema se puede apreciar las transiciones entre ellos. Para facilitar an ms el trabajo con R4P se han implementado funciones que se encargan de hacerlo de manera automtica.

Fig. 45. Estados generales de R4P

void iniToBase();

Descripcin: Esta funcin pasa del estado de inicio al estado base. Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: iniToBase(); Descripcin del ejemplo: el robot si se encuentra en la posicin de inicio realizar una serie de movimientos que concluir en la posicin base
void baseToIni();

Descripcin: Esta funcin pasa del estado de base al estado inicio. Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: baseToIni(); Descripcin del ejemplo: el robot si se encuentra en la posicin de base realizar una serie de movimientos que concluir en la posicin inicio.

7.Software Empotrado - 63

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

void baseToWalk();

Descripcin: Esta funcin pasa del estado de inicio al estado base y el robot comienza a caminar. Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: baseToWalk(); Descripcin del ejemplo: el robot si se encuentra en la posicin de base realizar una serie de movimientos para llegar a la posicin caminar y el robot comienza a caminar hacia delante.

void walkToBase();

Descripcin: Esta funcin pasa del estado de caminar al estado base. Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: walkToBase(); Descripcin del ejemplo: el robot si se encuentra en la posicin de caminar realizar una serie de movimientos para llegar a la posicin base.

void baseTo2Feet();

Descripcin: Esta funcin pasa del estado de caminar al estado base. Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: baseTo2Feet(); Descripcin del ejemplo: el robot si se encuentra en la posicin base realizar una serie de movimientos para llegar a la posicin base.

7.Software Empotrado - 64

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funcin Bsica de Traslacin del Centro de Masas

Fig. 46. Esquema de identificacin de las reas de traslacin del cuerpo.

void moveYourBody(int leg)

Descripcin: Traslada el peso del cuerpo sobre la zona que determina el parmetro leg. Las zonas estn designadas en la figura 36 y las cuatro primeras del 1 al 4 coinciden con las patas. Se trata de una funcin que en algunos casos es recursiva. Como por ejemplo para retornar desde cualquier posicin a la posicin inicial (si se pasa un valor 0) e ir a la posicin solicitada. Parmetros: entero leg (pierna) Valor devuelto: void (no hay valor de retorno) Ejemplo de llamada: moveYourBody(4); Descripcin del ejemplo: El cuerpo se desplazar mantenindose paralelo al suelo para permitir levantar la pata que est en la diagonal opuesta del cuadrado que forma el cuerpo. En este caso el robot despus de ejecutar esta funcin podra levantar la pata 1 sin perder el equilibrio. Funciones bsicas de las que hace uso: Esta funcin no hace uso de funciones bsicas. Funciones complejas de las que hace uso: Funcin arduinoToSD20();

7.Software Empotrado - 65

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Algoritmos Algoritmo de Estabilidad Objetivos del algoritmo de estabilidad


Este algoritmo pretende mantener el cuerpo del robot R4P paralelo a un suelo perfectamente horizontal. Por tanto deber contrarrestar las inclinaciones de la superficie sobre la que est apoyado o recalcular la posicin de las patas para una superficie con diferencias de nivel.

Sensores y actuadores de los que hace uso


Este algoritmo hace uso de dos inclinmetros y ocho de los servos de las patas. Los datos que reciben los inclinmetros son de entrada y los que deben ser enviados a los servos son datos de salida. Los sensores de inclinacin estn situados de tal forma que miden la inclinacin sobre los ejes X e Y de la Figura 44

Fig. 47. Alg. Estabilidad Esquema 1 En esta figura tambin podemos observar como el inclinmetro que mide los grados de inclinacin sobre el eje de las Y debe controlar las patas que se encuentran sobre el eje de las X (en rojo en los esquemas 1 y 2).

Fig. 48. Alg. Estabilidad Esquema 2


7.Software Empotrado - 66

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Segn la Fig. 48 el inclinmetro que controlar las patas 1 y 4 ser el que mide la inclinacin sobre el eje de las Y. As como el inclinmetro que controla las patas 2 y 3 ser el que mide la inclinacin sobre el eje de las X. El robot utiliza solo ocho servos, dos por pata para controlar la altura de estas. Por tanto los cuatro servos del hombro del robot, que controlan la rotacin de las patas, se mantendrn fijos en la posicin central, es decir a 90 grados tal y como se puede ver en la Fig.48. En la Fig.49 se puede observar como el algoritmo corrige la posicin del cuerpo del robot subiendo o bajando las patas que se encuentran en la misma diagonal:

Fig. 49. Alg. Estabilidad Esquema 3

7.Software Empotrado - 67

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Diagrama de flujo del algoritmo

Fig. 50. Alg. Estabilidad Esquema 3

7.Software Empotrado - 68

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Problemas Durante la Fase de Desarrollo

Problemas con la interrupcin Timer2 de Arduino y el protocolo TWI


Se pretenda utilizar una interrupcin propia del Atmega 168 que es el chip que utiliza Arduino para enviar los datos del robot al chip SD20 y comunicarse con la interfaz con una frecuencia de 20 y 10 Hz respectivamente. De este modo tanto el chip SD20 y la interfaz de control del robot podran tener los datos de entrada actualizados en todo momento. Sin embargo una de las instrucciones para escribir por I2C o TWI deja literalmente colgado a Arduino. En concreto la instruccin Wire.endTransmission(); que cierra la conexin con el I2C o TWI y que debe hacerse despus de cada envo de datos al chip. Se da por supuesto que se trata de un problema referente Arduino o a Processing pues es una de sus libreras la que lanza el error. Y la implementacin deber realizarse llamando a la funcin encargada del envo de datos cada vez que un servo modifique su posicin. Este problema supondr una peor legibilidad del cdigo.

Problemas con Arduino y un extenso cdigo fuente


Parece que Arduino no soporta un cdigo fuente que contenga grandes arrays o supere un nmero determinado de lneas. Un cdigo que funciona perfectamente deja de hacerlo al aadir un array que cumple la sintaxis del programa a la perfeccin sin razn aparente. El cdigo compila perfectamente, se descarga sobre Arduino sin problema e incluso en ocasiones se ejecuta. Pero no realiza la comunicacin por TWI o I2C, a veces se queda colgado a media ejecucin, en otras ocasiones se descompensa la velocidad de transmisin del puerto de serie y otras veces directamente no pasa nada. No se sabe si el problema es del chip o del hardware de Arduino. Se ha buscado informacin que explique el problema pero no hay nada en la pgina oficial. No hay ni siquiera una lista de problemas conocidos ni un lugar donde dar a conocer los problemas que vayan surgiendo a los usuarios. Cada vez la idea de utilizar un Ardabasto (versin mejorada de Arduino) se hace ms factible y tcnicamente ms viable dado que ya se encuentra a la venta aunque su precio supera las espectativas.

7.Software Empotrado - 69

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

- 70

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

8.Interfaz de Control
Anlisis Especificacin de Requisitos del Sistema (SRS)
Para llevar a cabo la especificacin de requisitos, se ha utilizado la plantilla A.1 de SRS Seccin 3 del documento IEEE830 en su versin extendida.
Requisitos especficos Requisitos de las Interfaces Externas
Interfaz con el Usuario

El control por parte del usuario se realizar a travs de una interfaz grfica en la que caben destacas los elementos de control y los elementos de recepcin de informacin. Podramos englobar los elementos que conforma la interfaz grfica en tres tipos principales:

Elementos Bsicos de Control: La interfaz incluye una serie de botones para permitir al usuario ordenar las funciones ms bsicas. Sern de fcil uso y accesibilidad pues solo es necesario el accionamiento de uno de los botones para iniciar cualquiera de las funciones bsicas. Las funciones que se pueden llevar a cabo con los elementos bsicos de control sern, principalmente, las funciones que el robot puede llevar a cabo de forma autnoma, sin necesidad de recibir una gran cantidad de informacin.

Elementos Avanzados de Control: En la interfaz tambin se incluyen elementos que permiten controlar las funciones del robot con un mayor detalle. El enfoque global es el de poder definir secuencias de movimientos independientes para cada una de las articulaciones del robot. Ms tarde se podrn volver a repetir dichas secuencias sin la necesidad de volver a definirlas, ya que ser posible almacenarlas, cargarlas y exportarlas. Elementos de Recepcin de Informacin: La interfaz permite observar la informacin que recoge el robot del entorno que le rodea, as como los movimiento que lleva a cabo el robot. Debido a sto contaremos con dos tipos de elementos grficos para la recepcin de informacin: unos de ellos permitirn conocer las medidas realizadas por los sensores incorporados en el robot y se actualizarn automticamente con las medidas que enve el robot en cada instante, los otros permitirn conocer los movimientos que est realizando cada una de las articulaciones, ya sean enviadas en forma de secuencia o realizadas por el robot a travs de una funcin predefinida.

Interfaz con el Hardware

Al tratarse de una aplicacin cuya principal funcionalidad es el control de un hardware externo debemos tratar dos interfaces hardware bien diferenciadas:

La Interfaz con el Robot: Se realiza a travs de la interfaz de comunicaciones, que se ver de forma ms detallada en un apartado posterior de ste mismo documento. La Interfaz con el hardware ejecutor de la aplicacin : La aplicacin de control est desarrollada utilizando Java, al tratarse de un lenguaje que se encuentra en un camino intermedio entre la
8.Interfaz de Control - 71

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

compilacin y la interpretacin (se podra calificar como semi-interpretado) la interfaz con el hardware depende de la mquina virtual que se est utilizando para ejecutar al aplicacin. La interfaz con el hardware se encontrar detallada ampliamente en la documentacin de la propia mquina virtual.
Interfaz con el software

En ste apartado se comentarn las dependencias software necesarias para la ejecucin de la aplicacin. Como hemos comentado antes, una de las dependencias ms importantes es la propia mquina virtual que ejecuta la aplicacin, en ste caso documentaremos la mquina virtual que se ha utilizado durante el proceso de desarrollo y de pruebas realizadas en la aplicacin. Sistema Operativo

Nombre: Ubuntu Linux Descripcin: Sistema operativo de 32 bits, multiusuario y multitarea. Se ha utilizado durante el desarrollo la ltima versin estable disponible en el momento de inicio del proyecto. Tambin se han realizado pruebas con resultados satisfactorios sobre las versiones aparecidas posteriormente, tanto en 32 como en 64 bits. Versin: 7.10 / 8.04 Fabricante: Canonical Licencia: GPL Detalles: La ejecucin de la aplicacin se realiza sobre una mquina virtual, sto implica que cualquier sistema operativo que disponga de una mquina virtual compatible puede ejecutar la aplicacin. Se han realizado pruebas satisfactorias en sistemas Microsoft Windows (XP y Vista, ambos de 32 bits). Referencia:

Ubuntu - http://www.ubuntu.com Canonical http://www.canonical.com

Mquina Virtual Java


Nombre: Java Runtime Environment Descripcin: Mquina Virtual Java Versin: Java Standar Edition 1.5 (Java 5) / 1.6 (Java 6) Fabricante: Sun Microsystems Licencia: Java dispone de muchas licencias distintas, quizs demasiadas, pero muestra una tendencia a ser ms libre cada vez. De hecho el proyecto OpenJDK (tambin mantenido por Sun) est cada vez ms cerca de cubrir al 100% una API libre de Java. La principal licencia de distribucin de binarios de la mquina virtual de Sun es la Binary Code License Agreement y se puede consultar aqu http://www.java.com/en/download/license.jsp Detalles: Se indican dos versiones distintas debido a que la versin estable y definitiva de Java6 apareci durante el desarrollo del proyecto e inclua ciertas mejoras interesantes para algunas partes del proyecto, por lo que se port el proyecto a la nueva versin para continuar el resto del desarrollo. Referencia:
8.Interfaz de Control - 72

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Sitio web de Java http://java.sun.com Java SE http://java.sun.com/javase

BlueCove

Nombre: BlueCove Descripcin: Librera de soporte bluetooth para java. Versin: 2.0.3 Fabricante: Paul Totterman y Skarzhevskyy. (Se trata de un proyecto abierto, stos dos nombres corresponden a los principales desarrolladores). Licencia: LGPL Detalles: Entre las muchas existentes y, posiblemente, ms conocidas libreras de soporte bluetooth para Java, se utiliz BlueCove debido a que soporta las pilas bluetooth de los tres principales sistemas operativos del mercado (Linux, Windows y MacOSX). Referencia:

BlueCove en Google Code - http://code.google.com/p/bluecove/ Documentacin de ejemplo - http://www.jsr82.com/

JSR80

Nombre: Java Specification Request 80 (javax.usb) Descripcin: Soporte para Java de acceso a la pila de comunicaciones USB. Versin: 1.0.1 Fabricante: Grupo de desarrollo libre patrocinado por IBM Licencia: Common Public License CPL - http://www.opensource.org/licenses/cpl1.0.txt Detalles: Su papel en el proyecto consiste en permitir establecer las comunicaciones a travs de una conexin USB, permitiendo realizar las mismas operaciones que a travs de la conexin bluetooth. sto permitir hacer la aplicacin ms compatible con otros desarrollos robticos. Referencia:

Sitio Oficial del JSR80 - http://javax-usb.org/

RXTX

Nombre: RXTX Descripcin: Soporte para Java de acceso a los puertos serie y paralelo. Versin: 2.1-7 Fabricante: Grupo de desarrollo Libre. Licencia: LGPL Detalles: Permite establecer la conexin con el robot a travs del puerto serie y utilizarla igual que la conexin USB o bluetooth.
8.Interfaz de Control - 73

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Referencia:

Sitio oficial de RXTX - http://users.frii.com/jarvi/rxtx/

JFreeChart

Nombre: JFreeChart Descripcin: Librera de representacin grfica de elementos estadsticos para entornos Java. Versin: 1.0.9 Fabricante: Object Refinery Limited Andreas Viklund Licencia: LGPL Detalles: Su uso en el proyecto consiste en representar los movimientos de los servos en una grfica que se actualiza con cada nuevo cambio de posicin de las articulaciones del robot. Referencia:

Sitio oficial de JfreeChart - http://www.object-refinery.com/

Interfaces de Comunicaciones

Debido a los distintos usos que se pueden hacer de la aplicacin se necesitan dos sentidos de comunicaciones: entrantes y salientes. Ambos tipos de comunicacin se realizan mediante el paso de mensajes sobre la misma conexin, de forma asncrona y sin mensajes de confirmacin. Los mensajes salientes se utilizan para controlar el robot, es decir, enviar rdenes desde la aplicacin al robot para que ste las lleve a cabo. Los mensajes entrantes permiten mostrar la informacin de estado del robot: los valores de los sensores, la posicin de las articulaciones, el estado en que se encuentra el robot en cada momento, etc... En el Anexo III Especificacin del Protocolo de Comunicacin se pueden ver en detalle los mensajes que se intercambian entre la plataforma robtica y la aplicacin de control, as como el formato de cada mensaje, la descripcin y los posibles valores que pueden contener.
Requisitos Funcionales
Modo Monitor

Conectar: Permite establecer la conexin con la plataforma robtica respetando los parmetros configurados en el Modo Editor de Configuracin. En caso de no poder conectar se avisa al usuario ofrecindole la opcin de cancelar el intento de conexin o reintentarlo. Desconectar: Permite cortar la conexin actual. Activar/Desactivar sensores: Permite activar o desactivar los sensores. Cuando se establece una conexin se activan los sensores que la plataforma robtica indica que tiene activados. Mediante sta accin, el usuario puede activar o desactivar independientemente cada uno de los sensores que se muestran en la interfaz.

Modo Controlador

Movimiento hacia delante: Ordena al robot que inicie un movimiento continuo hacia delante. Slo se lleva a cabo si el robot se encuentra en un estado que permita iniciar el movimiento.
8.Interfaz de Control - 74

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Finalizar movimiento hacia delante: Ordena al robot que finalice el movimiento hacia delante. Si no se encuentra en el estado de movimiento hacia delante no realizar ninguna accin. Parada de emergencia: Ordena al robot que finalice cualquier movimiento instantneamente. Est pensado para usarse cuando el robot se encuentra cerca de alguna zona peligrosa en la que sea necesario poder pararlo en cualquier momento. Pasar a posicin de inicio: Ordena al robot que pase a la posicin inicial en la que las extremidades se encuentran plegadas para permitir transportarlo comodamente. Pasar a posicin base: Ordena al robot que pase a la posicin base, en la que el robot se encuentra levantado sobre sus patas de forma equilibrada y puede pasar a los dems estados. Pasar a posicin bpeda: Ordena al robot que pase a la posicin bpeda en la que se encuentra sobre dos de sus patas en equilibrio para demostrar una posible forma de sobrepasar obstculos que proviene de la ventaja del diseo de las patas del robot. Realizar funcin predefinida 1: Permite ordenar la realizacin de una funcin predefinida a modo de demostracin. Realizar funcin predefinida 2: Permite ordenar la realizacin de una funcin predefinida a modo de demostracin. Enviar comando: Permite enviar el cualquier comando de forma manual, escribiendo el comando en un cuadro de texto.

Modo Editor de Secuencias de Movimiento

Cargar secuencia: Abre un gestor de ficheros para seleccionar uno en el que tengamos almacenada una secuencia de posiciones, se utiliza para cargar movimientos completos. Guardar secuencia: Abre un gestor de ficheros para seleccionar uno en el que queramos almacenar una secuencia de posiciones, se utiliza para guardar movimientos completos. Reproducir sencuencia: Permite reproducir de forma continua la secuencia que tengamos cargada, de forma que podamos ver como evolucionan las medidas de los servomotores segn avanza el movimiento. Enviar secuencia: Permite enviar la secuencia al robot, para poder probarla antes de almacenarla y exportarla a la memoria del robot. De sta forma el proceso de crear movimientos es mucho ms gil y sencillo. Reiniciar secuencia: Permite volver a los valores por defecto todos los indicadores de la secuencia. Ajustar valor de posicin: Permite asignar un valor a un servomotor en un momento concreto de la secuencia de movimiento. Se utiliza una barra de valor o un cuadro de texto para cada uno de los servomotores. Ajustar marca de tiempo: Permite avanzar o retroceder en el tiempo de la secuencia para poder asignar las posiciones de los servomotores en cada momento deseado.

Modo Editor de Configuracin

Seleccionar el modo de conexin: Permite seleccionar qu tipo de hardware queremos utilizar para establecer la conexin con el robot. Configurar el modo de conexin Bluetooth: Permite establecer los datos que se utilizarn
8.Interfaz de Control - 75

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

para establecer la conexin va bluetooth. Se puede configurar la direccin del dispositivo y elegir si se quiere establecer una conexin autenticada, cifrada o en modo maestro.

Configurar el modo de conexin por Puerto Serie: Permite establecer los datos para la conexin por puerto serie: puerto, baudios, paridad, bits de datos y bits de parada. Configurar el modo de conexin por Puerto USB: Permite seleccionar el puerto USB a travs del cual queremos establecer la conexin. Aplicar configuracin: Permite aplicar inmediatamente los cambios que se han hecho en cualquier parte de la configuracin. Volver a valores por defecto: Permite resetear la configuracin a los valores por defecto. Probar configuracin: Permite probar los valores establecidos en la configuracin para comprobar que funcionan correctamente. Configurar idioma: Permite establecer el idioma de la aplicacin sin la necesidad de reiniciar la aplicacin.

Requisitos del Desarrollo

A la hora de establecer unos requisitos de cara al desarrollo de la aplicacin se distinguieron unos puntos especialmente importantes, bien sea por la filosofa que respiraba el proyecto o por tratarse de aspecto que deben tenerse muy en cuenta al realizar una aplicacin que va a manejar un hardware tan especfico como un robot mvil y bastante complejo. A continuacin se comentarn los puntos ms importantes que se tuvieron en cuenta al planificar el desarrollo del software:

Modularidad: Un punto realmente importante pasa por tener siempre en mente que se quiere realizar una aplicacin que permita controlar cualquier plataforma robtica con el menor nmero posible de cambios. El hecho de que la aplicacin sea modular en todos sus aspectos permite que cualquiera de sus partes pueda ser eliminada, reemplazada por otra, modificada para ajustarse a las necesidad de la plataforma o incluso que sea posible desarrollar un mdulo y aadirlo con la mayor facilidad posible. Portabilidad: Si se quiere desarrollar una aplicacin que cubra un amplio abanico de posibilidades no se debe limitar la ejecucin de la aplicacin al sistema operativo en el que se ha desarrollado, sino que debe ser fcil de portar a otros sistemas. En el caso de sta aplicacin ni siquiera debera ser necesario llevar a cabo un proceso de portabilidad para poder ejecutarla en otro sistema operativo, debido a la eleccin de un lenguaje multiplataforma y a un exhaustivo proceso de seleccin a la ahora de decidir que libreras emplear, de forma que stas cubrieran el mayor espectro de sistemas operativos posible. Usabilidad: El hecho de que una aplicacin deba llevar a cabo tareas que, a priori, puedan parecer muy complejas es suficiente motivacin como para que se ponga un especial cuidado a la hora de facilitar su uso de cara a los usuarios. Adems, la aplicacin se ha desarrollado sin tener en mente un perfil demasiado especfico de usuario, ms bien se intentaba desarrollar un producto que pudiera ser usado por cualquier usuario, ya fuera tcnico o no. Robustez: Una aplicacin pensada para controlar un hardware no conocido de antemano, recordemos que la aplicacin est pensada para poder adaptarse a cualquier plataforma robtica,
8.Interfaz de Control - 76

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

debe ser muy cautelosa con los posibles fallos derivados de su ejecucin.

Un fallo en el control de un robot en, por ejemplo, una cadena de montaje, puede llegar a tener graves consecuencias. Si bien el caso de este proyecto no es algo que pueda resultar tan peligroso, si se enfoca como un punto de partida para algo ms grande. De hecho, la estructura y las funciones del robot pueden ser cualesquiera que su diseador tenga en mente, ya sean peligrosas o no. Una vez situados en ste escenario, es fcil darse cuenta de que es necesario que el software est muy controlado desde el punto de vista de los posibles fallos, no dejando en ningn caso que stos lleguen a afectar al robot que se est teleoperando. Flexibilidad: Muy ligado al apartado anterior, una aplicacin robusta pasa, inevitablemente, por ser lo ms flexible posible. Entendiendo flexibilidad como el hecho de que la aplicacin se pueda recuperar de todos los posibles errores contemplados evitando cerrarse inesperadamente frente a ellos. Como se ha comentando en el apartado de la robustez, se espera dar a la aplicacin un uso generalizado, sin atarla a un hardware robtico especfico. Para evitar posibles fallos es necesario tener en cuenta que si la aplicacin se cerrase inesperadamente, no tendra que ocurrir forzosamente lo mismo con las comunicaciones, pudiendo persistir abiertas a merced del sistema operativo, otra aplicacin o, simplemente, recibir ruido del propio hardware del equipo sobre el que se est ejecutando. Licencias Libres: Desde un principio, el espritu del proyecto fue el de fomentar el conocimiento sobre la robtica a todo aquel que, teniendo o no otro recursos, quisiera servirse de nuestro trabajo. Adems, tambin mantiene la idea de favorecer el conocimiento mediante el uso de licencias libres. Al estar todo el material del proyecto disponible bajo una licencia libre, cualquiera que desarrolle algo partiendo de l se ver en la necesidad de publicar ese desarrollo bajo la misma licencia libre, pasando as a engrosar la cantidad de material disponible para seguir adquiriendo ms conocimientos. Se trata de una especie de quid pro quo que favorece el conocimiento.

8.Interfaz de Control - 77

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Casos de Uso
Diagramas

Fig. 51. Casos de Uso del Modo Monitor y Modo Controlador


8.Interfaz de Control - 78

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Fig. 52. Casos de Uso del Modo de Configuracin

8.Interfaz de Control - 79

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Fig. 53. Casos de Uso del Modo Editor de Secuencias de Movimiento

8.Interfaz de Control - 80

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Monitor CASO DE USO: 1-1 Conectar

Objetivo: Establecer una conexin con el hardware robtico desde el dispositivo de control. Inicio: El usuario pulsa el botn Conectar en el interfaz grfico. Flujo Principal: Actor Usuario, botn Conectar Sistema Se consulta la configuracin de comunicaciones Se lanza el hilo de comunicaciones que establece una conexin con el robot Se establecen los sensores activos que indique el robot Se establece un paso de mensajes continuo que nos indica el estado del robot y el entorno que lo rodea

Flujos Excepcionales:
En paso 1: si no se ha modificado la configuracin de comunicaciones se utilizar la configuracin incluida por defecto. En paso 2: si no es posible establecer la conexin, se mostrar un dilogo en el que el usuario podr decidir entre reintentar establecer la conexin o cancelar la operacin. En paso 3: si no se recibe ninguna informacin sobre el estado de los sensores se supondr que no hay ninguno presente.

Precondiciones: El robot se encuentra encendido y el dispositivo de comunicaciones est en modo de espera de conexiones entrantes. Poscondiciones: El robot est encendido y el dispositivo de comunicaciones se encuentra ocupado. El software de control recibe mensajes de estado desde el robot, de forma que se actualiza la informacin de los sensores. Finalizacin: La interfaz muestra cambios en los valores de los sensores. Referencia a requisitos funcionales: Modo monitor Conectar Descripcin de Interfaz: Botn del interfaz grfico etiquetado como Conectar.

8.Interfaz de Control - 81

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 1-2 Desconectar

Objetivo: Romper la conexin actual con el robot desde la aplicacin de control. Inicio: El usuario pulsa el botn Desconectar en el interfaz grfico. Flujo Principal: Actor Usuario pulsa botn Desconectar Flujos Excepcionales:
No existen.

Sistema Se detiene la ejecucin del hilo de comunicaciones.

Precondiciones: El sistema debe estar conectado al robot previamente o el botn Desconectar no estar disponible. Poscondiciones: El interfaz grfico se encuentra esttico con los ltimos valores ledos de la comunicacin y se muestra el botn Conectar para realizar una nueva conexin. El dispositivo de comunicaciones del robot se encuentra de nuevo a la espera de conexiones. Finalizacin: El caso termina con la modificacin del botn conexin/desconexin con el texto de Conectar. Referencia a requisitos funcionales: Modo Monitor Desconectar Descripcin de Interfaz: Botn Desconectar del interfaz grfico.

8.Interfaz de Control - 82

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 1-3 Activar/Desactiva Sensores

Objetivo: Permitir modificar el estado de los sensores decidiendo cuales estarn activados y cuales no. Inicio: El usuario pulsa en la etiqueta Conectado/Desconectado de cada sensor. Flujo Principal: Actor Sistema Usuario pulsa etiqueta Se marca el sensor como Conectado/Desconectado en un sensor conectado/desconectado cualquiera Se ajustan los valores del sensor a unos valores estticos que indican que est desactivado / Se actualiza el sensor con los datos que se reciben del robot Flujos Excepcionales:
Si el sensor est activado pero el robot no enva datos para ese sensor se dejar marcado como conectado pero no se actualizarn los valores hasta que el robot enve algn mensaje con valores para dicho sensor.

Precondiciones: Los valores de los sensores se colocarn por defecto a la informacin que indique el robot para cada sensor. Poscondiciones: En el caso de que el sensor est conectado los valores cambiarn de forma dinmica segn los valores recibidos del robot. En el caso de que el sensor est desconectado se mantendrn los valores estticos que indican que el sensor est fuera de uso. Finalizacin: El caso de uso termina con la modificacin de la etiqueta del sensor y de los datos que muestra. Referencia a requisitos funcionales: Modo Monitor Activar/Desactivar Sensores Descripcin de Interfaz: Etiqueta Conectado/Desconectado en cada sensor.

8.Interfaz de Control - 83

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Controlador CASO DE USO: 2-1 Movimiento hacia Delante

Objetivo: Ordenar al robot que inicie un movimiento continuo hacia el frente. Inicio: El usuario pulsa el botn etiquetado con una fecha apuntando hacia arriba en el panel de control. Flujo Principal: Actor Usuario pulsa botn de movimiento frontal Sistema Se enva al robot un mensaje conteniendo {4} que el robot entender como la orden para iniciar el movimiento de caminar. Se cambia la etiqueta que indica el estado del robot por Caminando

Flujos Excepcionales:
No existen.

Precondiciones: El sistema debe estar conectado con el robot. Poscondiciones: El robot debe iniciar un movimiento de caminar hacia delante que no se detendr hasta que se le enve la orden de parada. Finalizacin: El caso de uso terminar cuando el robot comienza a moverse hacia delante y la etiqueta que indica el estado del robot en el panel de control cambia a Caminando. Referencia a requisitos funcionales: Modo Controlador Movimiento hacia Delante Descripcin de Interfaz: Botn etiquetado con una flecha apuntando hacia arriba en el panel de control del interfaz grfico.

8.Interfaz de Control - 84

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 2-2 Finalizar Movimiento hacia Delante.

Objetivo: Detener el movimiento de caminar del robot haciendo que vuelva a quedarse en la posicin base. Inicio: El usuario pulsa el botn etiquetado con una flecha apuntando hacia abajo en el panel de control del interfaz grfico. Flujo Principal: Actor Usuario pulsa botn de detener movimiento Sistema Se enva al robot el mensaje {5} que el robot entender como la orden para detener el movimiento de caminar y volver a la posicin base. Se cambia el texto de la etiqueta indicadora del estado del robot por Posicin Base

Flujos Excepcionales:
No existen.

Precondiciones: El sistema debe estar conectado con el robot. Poscondiciones: El interfaz mostrar el mensaje Posicin Base en la etiqueta de estado del robot y el robot detendr el movimiento hasta volver a establecer la posicin base esttica. Finalizacin: El caso termina con la modificacin de la etiqueta de estado del robot mostrando el texto Posicin Base. Referencia a requisitos funcionales: Modo Controlador Finalizar Movimiento hacia Delante Descripcin de Interfaz: Botn etiquetado con una flecha apuntando hacia abajo en el panel de control del interfaz grfico.

8.Interfaz de Control - 85

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 2-3 Parada de Emergencia

Objetivo: Permitir detener el movimiento del robot instantneamente, independientemente del punto en el que se encuentre. Inicio: El usuario pulsa el botn Para de Emergencia en el panel de control del interfaz grfico. Flujo Principal: Actor Usuario pulsa botn Parada de Emergencia Sistema Se enva al robot el mensaje {1} que el robot entender como parada de emergencia Se cambia el valor de la etiqueta que indica el estado del robot por Parada de Emergencia El botn de parada de emergencia pasar a indicar Continuar

Flujos Excepcionales:
No existen.

Precondiciones: El sistema debe estar conectado al robot previamente. Poscondiciones: El robot detendr el movimiento que est realizando inmediatamente y el interfaz lo indicar en la etiqueta de estado del panel de control y el botn de parada de emergencia cambiara para indicar Continuar. Finalizacin: El caso terminar con la modificacin del botn de parada de emergencia por Continuar y el cambio de la etiqueta de estado del panel de control por Parada de Emergencia. Referencia a requisitos funcionales: Modo Controlador Parada de Emergencia Descripcin de Interfaz: Botn de Parada de Emergencia en el interfaz grfico.

8.Interfaz de Control - 86

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 2-4 Pasar a Posicin de Inicio

Objetivo: Ordenar al robot que pase a la posicin base esttica. Inicio: El usuario pulsa el botn etiquetado como Posicin Base del panel de control. Flujo Principal: Actor Usuario pulsa botn Posicin Base Flujos Excepcionales:
No existen.

Sistema El indicador de estado pasa a Posicin Base

Precondiciones: El sistema debe estar conectado al robot previamente. Poscondiciones: El indicador de estado del panel de control mostrar el mensaje Posicin Base. Finalizacin: El caso termina con la modificacin del indicador de estado del panel de control mostrando Posicin Base. Referencia a requisitos funcionales: Modo Controlador Pasar a Posicin Base Descripcin de Interfaz: Botn Posicin Base del interfaz grfico.

8.Interfaz de Control - 87

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 2-5 Realizar Funcin Predefinida 1/2

Objetivo: Realizar una funcin de demostracin predefinida en el robot. Inicio: El usuario pulsa el botn Demo 1/Demo en el interfaz grfico. Flujo Principal: Actor Usuario pulsa botn Demo 1/Demo 2 Flujos Excepcionales:
No existen.

Sistema Se enva al robot el mensaje {7}/{8}

Precondiciones: El sistema debe estar conectado al robot previamente. Poscondiciones: El robot realizar la funcin predefinida para la que estar previamente programado. Finalizacin: El caso termina cuando finaliza la demostracin realizada por el robot. No se indica nada en el interfaz grfico ya que cada funcin de demostracin puede variar mucho de una a otra tanto en tiempo como en funcionalidad. Referencia a requisitos funcionales: Modo Controlador Realizar Funcin Predefinida 1/2 Descripcin de Interfaz: Botn Demo 1/Demo 2 del interfaz grfico.

8.Interfaz de Control - 88

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 2-6 Enviar Comando

Objetivo: Enviar al robot una orden introducida de forma manual. Inicio: El usuario introduce el comando en la caja de texto y pulsa el botn Enviar en el panel de control del interfaz grfico. Flujo Principal: Actor Sistema Usuario introduce el comando en el cuadro de Se enva al robot el comando introducido en el texto pulsa botn Enviar cuadro de texto aadiendo en ambos extremos los caracteres { y } Se limpia el cuadro de texto para permitir una introduccin ms cmoda del siguiente comando Flujos Excepcionales:
Si no hay ningn mensaje escrito en el cuadro de texto no se enviar ningn comando al robot.

Precondiciones: El sistema debe estar conectado al robot previamente. Poscondiciones: El robot reacciona al comando enviado realizando la operacin que indica el comando. Finalizacin: El caso termina una vez que el robot ha realizado la operacin que indica el comando. Referencia a requisitos funcionales: Modo Controlador Enviar Comando Descripcin de Interfaz: Cuadro de texto en el panel de control. Botn Enviar del interfaz grfico.

8.Interfaz de Control - 89

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Editor de Secuencias de Movimientos CASO DE USO: 3-1 Cargar Secuencia

Objetivo: Cargar una secuencia de posiciones desde un fichero. Inicio: El usuario pulsa el botn Cargar en el panel de editor de secuencias del interfaz grfico. Flujo Principal: Actor Usuario pulsa botn Cargar del editor de secuencias El usuario selecciona un fichero y pulsa Abrir en la ventana de seleccin de fichero (o hace doble click sobre el fichero) Sistema Se muestra un dilogo de seleccin de fichero Se carga el fichero y se comprueba que sea un fichero de secuencias Se carga la secuencia en los elementos del editor de secuencias Flujos Excepcionales:
El fichero no contiene una secuencia de posiciones: se indica al usuario que el fichero no es correcto.

Precondiciones: Debe existir un fichero con una secuencia almacenada. Poscondiciones: Los elementos del editor de secuencia muestran los valores de la secuencia. Finalizacin: El caso terminacin los elementos del editor de secuencia mostrando los valores cargados del fichero. Referencia a requisitos funcionales: Modo Editor de Secuencias de Movimiento Cargar Secuencia Descripcin de Interfaz: Botn Cargar del panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 90

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-2 Guardar Secuencia

Objetivo: Guardar la secuencia editada en un fichero. Inicio: El usuario pulsa el botn Guardar en el panel del editor de secuencias del interfaz grfico. Flujo Principal: Actor Usuario pulsa botn Guardar en el panel del editor de secuencias Usuario selecciona un fichero o introduce un nombre para un fichero nuevo y hace click en Guardar en la ventana de seleccin de fichero Flujos Excepcionales:
No se puede escribir/crear el fichero: Se indica al usuario que hay un problema escribiendo el fichero.

Sistema Se muestra un dilogo de seleccin de fichero Se guarda la secuencia en el fichero seleccionado por el usuario

Precondiciones: No existen. Poscondiciones: El fichero generado debe contener la secuencia editada. Finalizacin: El caso termina con la escritura del fichero de forma correcta. Referencia a requisitos funcionales: Modo Editor de Secuencia Guardar Secuencia Descripcin de Interfaz: Botn Guardar en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 91

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-3 Reproducir Secuencia

Objetivo: Reproducir la secuencia cargada en el editor de secuencia. Inicio: El usuario pulsa el botn etiquetado con un botn de play de reproductor multimedia en el panel del editor de secuencias del interfaz grfico. Flujo Principal: Actor Usuario pulsa botn de reproduccin panel del editor de secuencias Flujos Excepcionales:
No existen.

Sistema en el Se reproduce la secuencia en la grfica y en los elementos del editor de secuencias

Precondiciones: No existen. Poscondiciones: No existen. Finalizacin: El caso termina cuando finaliza la reproduccin de la secuencia. Referencia a requisitos funcionales: Modo Editor de Secuencia Reproducir Secuencia Descripcin de Interfaz: Botn de reproduccin en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 92

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-4 Enviar Secuencia

Objetivo: Enviar la secuencia editada en un fichero al robot. Inicio: El usuario pulsa el botn Enviar en el panel del editor de secuencias del interfaz grfico. Flujo Principal Actor Sistema Usuario pulsa botn Enviar en el panel del Se muestra una ventana del proceso de envo editor de secuencias con un botn que permite cancelarla en cualquier momento Se indica que parte de la secuencia se est enviando y se avanza en la barra de progreso Se indica que se ha finalizado el envo y se cierra la ventana de proceso Flujos Excepcionales:
Paso 1: En caso de no estar conectado con el robot se indicar que se est conectando y se utilizarn los valores que se encuentras configurados actualmente. Paso 1: Si no hay ninguna posicin en la secuencia cargada se indicar y no se enviar nada.

Precondiciones: No existen. Poscondiciones: No existen. Finalizacin: Se muestra un error o se cierra la ventana de proceso. El robot se para. Referencia a requisitos funcionales: Modo Editor de Secuencia Enviar Secuencia Descripcin de Interfaz: Botn Enviar en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 93

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-5 Reiniciar Secuencia

Objetivo: Establecer los valores iniciales del editor de secuencias. Inicio: El usuario pulsa el botn Reiniciar en el panel del editor de secuencias del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn Reiniciar en el panel del Se muestra un dilogo que pide confirmacin al editor de secuencias usuario avisndole de que perder la informacin de la secuencia que no haya sido guardada con antelacin Se reiniciar los valores de secuencia Flujos Excepcionales:
No existen.

Precondiciones: No existen. Poscondiciones: Los valores anteriores son eliminados. Finalizacin: El caso termina cuando la secuencia se encuentra sin ningn valor almacenado Referencia a requisitos funcionales: Modo Editor de Secuencia Reiniciar Secuencia Descripcin de Interfaz: Botn Reiniciar en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 94

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-6 Ajustar Valor de posicin

Objetivo: Guardar el valor de las posiciones en el instante de la secuencia indicado. Inicio: El usuario pulsa el botn etiquetado con una flecha a la derecha de la barra de tiempo en el panel del editor de secuencias del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn de almacenar posicin en Se almacena en memoria los valores de los el panel del editor de secuencias servomotores y el momento de la secuencia Flujos Excepcionales:
No existen.

Precondiciones: No existen. Poscondiciones: No existen. Finalizacin: Los valores en ese instante son almacenados. Referencia a requisitos funcionales: Modo Editor de Secuencia Ajustar Valor de Posicin Descripcin de Interfaz: Botn etiquetado con una flecha al lado de la barra de tiempo en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 95

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 3-7 Ajustar Marca de Tiempo

Objetivo: Posicionarse en el instante del tiempo y ver el valor de la posicin asociado. Inicio: El usuario ajusta un valor en la barra de desplazamiento temporal o en el spinner asociado a dicha barra en el panel del editor de secuencias del interfaz grfico. Flujo Principal: Actor Sistema Usuario ajusta linea de desplazamiento temporal Se colocan en los indicadores de posicin los en el panel del editor de secuencias valores que tienen en dicho instante Flujos Excepcionales:
Paso 1: Si no hay ningn valor almacenado se colocan los valores por defecto (todos las posiciones a cero).

Precondiciones: No existen. Poscondiciones: No existen. Finalizacin: El caseo termina cuando se han colocado los valores de cada servomotor en ese instante. Referencia a requisitos funcionales: Modo Editor de Secuencia Ajustar Marca de Tiempo Descripcin de Interfaz: Barra de desplazamiento temporal o spinner en el panel del editor de secuencias del interfaz grfico.

8.Interfaz de Control - 96

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Editor de Configuracin CASO DE USO: 4-1 Aplicar Configuracin de Comunicaciones

Objetivo: Aplicar instantneamente las opciones de configuracin de comunicaciones. Inicio: El usuario pulsa el botn Aplicar Configuracin en el panel de configuracin de comunicaciones del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn Aplicar Configuracin en Se cargan en memoria la configuracin el panel de configuracin de comunicaciones establecida Flujos Excepcionales:
No existen.

Precondiciones: No existen. Poscondiciones: La configuracin de comunicaciones se carga en memoria reemplazando a la que haba y se utilizar a partir de ese momento. Finalizacin: El caso termina con el establecimiento de la configuracin de comunicaciones. Referencia a requisitos funcionales: Modo Editor de Configuracin Aplicar Configuracin Descripcin de Interfaz: Botn Aplicar Configuracin del panel de configuracin de comunicaciones.

8.Interfaz de Control - 97

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 4-2 Volver a los Valores por Defecto

Objetivo: Permite restablecer los valores por defecto de la configuracin de comunicaciones. Inicio: El usuario pulsa el botn Reiniciar Configuracin en el panel de configuracin de comunicaciones del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn Reiniciar Configuracin Se cargan en memoria la configuracin por en el panel de configuracin de comunicaciones defecto y se muestra en los elementos de configuracin del panel Flujos Excepcionales:
No existen.

Precondiciones: No existen. Poscondiciones: La configuracin por defecto de las comunicaciones se carga en memoria reemplazando a la que haba y se utilizar a partir de ese momento. Se muestra la configuracin por defecto en los elementos grficos del panel. Finalizacin: El caso termina con el establecimiento de la configuracin de comunicaciones. Referencia a requisitos funcionales: Modo Editor de Configuracin Volver a los Valores por Defecto Descripcin de Interfaz: Botn Reiniciar Configuracin del panel de configuracin de comunicaciones.

8.Interfaz de Control - 98

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 4-3 Probar Configuracin

Objetivo: Probar la configuracin establecida para comprobar su funcionamiento. Inicio: El usuario pulsa el botn Probar Configuracin en el panel de configuracin de comunicaciones del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn Probar Configuracin en Se establece una conexin de prueba. el panel de configuracin de comunicaciones Flujos Excepcionales:
No existen.

Precondiciones: El robot debe estar esperando conexiones entrantes. Poscondiciones: Se interrumpe la conexin de prueba. Finalizacin: El caso termina con un aviso al usuario donde se indica el resultado de la prueba (satisfatoria o no satisfactoria). Referencia a requisitos funcionales: Modo Editor de Configuracin Probar Configuracin Descripcin de Interfaz: Botn Probar Configuracin del panel de configuracin de comunicaciones.

8.Interfaz de Control - 99

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

CASO DE USO: 4-4 Aplicar Configuracin de Idioma

Objetivo: Aplicar instantneamente el idioma seleccionado en la configuracin. Inicio: El usuario pulsa el botn Aplicar Idioma en el panel de configuracin de comunicaciones del interfaz grfico. Flujo Principal: Actor Sistema Usuario pulsa botn Aplicar Idioma en el Se cambian todos los mensajes de texto de la panel de configuracin de comunicaciones aplicacin a los del idioma seleccionado Flujos Excepcionales:
No existen.

Precondiciones: Debe existir el fichero de idioma para que pueda ser seleccionado en la ventana de configuracin. Debe seleccionarse un idioma a aplicar. Poscondiciones: No existen. Finalizacin: El caso termina cuando se ha cambiado el idioma de todos los elementos textuales de la interfaz. Referencia a requisitos funcionales: Modo Editor de Configuracin Configurar Idioma Descripcin de Interfaz: Desplegable de idiomas del panel de configuracin de idioma. Botn Aplicar Idioma del panel de configuracin de idioma.

8.Interfaz de Control - 100

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Diseo Diagrama de Despliegue


En el siguiente diagrama se puede observar la estructura de los nodos y componentes del sistema.

Fig. 54. Diagrama de Despliegue

Diagrama de Paquetes
En el siguiente diagrama se puede observar la estructura de paquetes del sistema. Se ha realizado un esfuerzo para conseguir una estructura altamente modular dado el enfoque del proyecto en el que la interfaz est diseada para poder soportar futuras ampliaciones o modificaciones de una manera sencilla e intuitiva.

Fig. 55. Diagrama de Paquetes


8.Interfaz de Control - 101

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Diagrama de Clases
Clase Messenger

Clase principal del paquete de comunicaciones que como su nombre auto-explicativo da a conocer se encarga de manejar las las comunicaciones sea el canal que sea. Fig. 55. Diagrama Clase Messenger

8.Interfaz de Control - 102

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clase Information

La clase Information se encarga de hacer de traductor para los datos de entrada provenientes del robot.

Fig. 56. Diagrama Clase Information

8.Interfaz de Control - 103

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clase Sensor

La clase sensor se encarga de mantener la informacin de los sensores.

Fig. 57. Diagrama Clase Sensor

8.Interfaz de Control - 104

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clase Sequence, Instant y Position

Estas clases se encuentran incluidas en el paquete Servomotors que permite generar una secuencia de movimientos que se enva al robot para que la realice. Estas secuencias se pueden editar, cargar y guardar.

Fig. 58. Diagrama de las Clases Incluidas en el Paquete Servomotors

8.Interfaz de Control - 105

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clases de la Interfaz Grfica

Fig. 59. Diagrama de las Clases de la Interfaz Grfica


8.Interfaz de Control - 106

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clases del Panel de Configuracin

Fig. 60. Diagrama de las Clases del Panel de Configuracin


Clases del Panel de Sensores

Fig. 61. Diagrama de las Clases del Panel de Sensores

8.Interfaz de Control - 107

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clases del Panel de Editor de Secuencias

Fig. 62. Diagrama de las Clases del Panel de Secuencias

8.Interfaz de Control - 108

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

9.Plan de Pruebas
Para probar los diferentes sistemas de software que se han desarrollado un plan de pruebas, estas van encaminadas a asegurar que la arquitectura propuesta es coherente, consistente y completa. Se han dividido en dos bloques principales (sistema empotrado e interfaz) y un tercero en el que se prueba la interaccin entre los dos sistema anteriores.

Plan de Pruebas del Cdigo Empotrado Primitivas Bsicas


Pretenden probar que los fragmentos individuales que conforman el sistema cumplen las especificaciones y presentan el comportamiento esperado.
Prueba de Control de SD20

El propsito es esta prueba sirve para determinar si se est configurando correctamente el ship SD20 y las instrucciones que se envan se realizan correctamente. Con esta prueba tambin se comprueba la funcionalidad del hardware. Se da por supuesto que la placa Arduino funciona correctamente dado que se trata de una placa que se fabrica en serie y tiene bastante difusin. Sin embargo la placa de entrada salida la ha construido el equipo de desarrollo y dado su bajo nivel en lo referente a electrnica es conveniente probarlo. La prueba consiste en ejecutar un cdigo que debe configurar el chip SD20 y enviar una serie de posiciones para el servo conectado en la salida 1 del chip en croncreto colocar el servo 1 en la posicin 0 esperar 1 segundo, despus enviar la posicin 90, luego 180 y repetir la serie de posiciones. En el se puede encontrar la datasheet del chip SD20 para ms informacin. Paso de Procedimiento Se reinicia Arduino conectado a la placa de entradas/salidas con el cdigo de prueba de control del SD20. Criterio de Paso El servo conectado a la salida 1 realiza la serie de movimientos 0,90 y 180 repitindola continuamente y esperando 1 segundo entre posicin y posicin. Paso/Fallo Paso

9.Plan de Pruebas - 109

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prueba de Comunicaciones Bluetooth

En esta prueba se pretende probar el funcionamiento de las comunicaciones. Para esto se debe conectar el bluetooth a la placa Arduino en las conexiones RX TX y alimentarlo. Para ello se utilizar una sesin de hyperterminal, el Bluetooth y el terminal deben estar configurados de la misma manera en cuanto a bits de paridad, tamao de los bytes y dems parmetros tpicos de las comunicaciones por puerto de serie. Paso de Procedimiento Criterio de Paso Paso/Fallo Paso

Se reinicia Arduino conectado Los caracteres introducidos al bluetooth. El usuario teclea aparecen en la consola como una serie de caracteres. entrada.
Prueba de Sensor de Distancias

En esta prueba se pretende probar el funcionamiento del sensor de distancias as como comprobar que las medidas tomadas coinciden con medidas reales en centmetros. En la anterior prueba se ha hecho uso de hyperterminal abriendo una sesin configurada del mismo modo que el bluetooth, este tambin deber estar conectado. La prueba consiste en realizar una serie de medidas y contrastarlas con una regla que mida centmetros. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias Criterio de Paso Las medidas realizadas por el sensor de distancias coinciden con medidas reales en centmetros. Paso/Fallo Paso

9.Plan de Pruebas - 110

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prueba de la Brjula

En esta prueba se pretende probar el funcionamiento de la brjula as como comprobar que las medidas tomadas coinciden con las medidas tomadas con una brjula comn. En las anteriores pruebas se ha hecho uso de hyperterminal abriendo una sesin configurada del mismo modo que el bluetooth, este tambin deber estar conectado. La prueba consiste en realizar una serie de medidas y contrastarlas con una brjula comn. Paso de Procedimiento Criterio de Paso Paso/Fallo Paso

Se reinicia Arduino conectado a Las medidas realizadas por la la brjula y el bluetooth con el brjula digital deben coincidir cdigo de prueba de la brjula con las medidas realizadas por la brjula tradicional.

Prueba de los Inclinmetros

En esta prueba se pretende probar el funcionamiento de los inclinmetros para establecer unas serie de medidas que permitan definir cuando est inclinado el cuerpo del robot y cuando no. En las anteriores pruebas se ha hecho uso de hyperterminal abriendo una sesin configurada del mismo modo que el bluetooth, este tambin deber estar conectado para poder ver en pantalla las medidas. Se ha establecido que 60-64 ser una medida para la cual el cuerpo del robot est en equilibrio (con el cuerpo perfectamente horizontal) y el resto de medidas se considerar que el cuerpo est inclinado. Paso de Procedimiento Se reinicia Arduino conectado a los inclinmetros y el bluetooth con el cdigo de prueba de los inclinmetros. Criterio de Paso La medida que debe devolver es de 60-64 cuando no est inclinado y <60 o >64 est inclinado. Paso/Fallo Paso

Pruebas de Eficiencia Sensor de Distancias

En esta prueba se pretende comprobar la eficiencia y el tiempo de respuesta de la funcin encargada de tomar las medidas de distancia. En las anteriores pruebas se ha hecho uso de hyperterminal abriendo una sesin configurada del mismo modo que el bluetooth, este tambin deber estar conectado para poder ver en pantalla las medidas. En estadstica se conoce como muestreo a la tcnica para la seleccin de una muestra a partir de una poblacin en este caso se tomarn una serie de medidas y se realizar una media aritmtica para suavizar los resultar. A la hora de realizar un muestreo se debe determinar un nmero de medidas a realizar para obtener una medida fiable dado que al tratarse de un elemento hardware puede presentar falsos positivos o medidas espreas y al realizar este muestreo se eliminan dichas medidas y como se coment antes los resultados quedan ms suavizados del mismo modo se evitan las oscilaciones producidas por el sensor.
9.Plan de Pruebas - 111

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Se ir probando con diferentes muestras (de 20, 10, 5, 3 y 2) para testear las velocidades de respuesta de la funcin y se seleccionar la ms adecuada que ser aquella que no oscile demasiado y ocupe un tiempo mnimo de proceso del controlador. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Utilizaremos una muestra de 20 medidas. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Utilizaremos una muestra de 10 medidas. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Utilizaremos una muestra de 5 medidas. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Utilizaremos una muestra de 3 medidas. Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Utilizaremos una muestra de 2 medidas. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Paso/Fallo Fallo

Paso/Fallo Fallo

Paso/Fallo Paso

Paso/Fallo Paso

Paso/Fallo Fallo

Se utilizarn 3 muestras para realizar la media y obtener la medida. En el caso de utilizar 5 muestras se obtienen medidas ms fiables y se reduce la oscilacin pero como no se trata de un sensor crtico es mejor utilizar 3 muestras y dejar ms tiempo libre al microcontrolador.

9.Plan de Pruebas - 112

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prueba de Eficiencia de la Brjula

En esta prueba se pretende comprobar la eficiencia y el tiempo de respuesta de la funcin encargada de tomar las medidas de la brjula. En este caso se pretende probar la eficiencia de la brjula, en este caso tan solo se debe realizar una comunicacin por I2C para obtener la medida de est desde uno de sus registros siendo esta metodologa la ms comn en las comunicaciones por I2C. Se utilizar un muestreo de 3 medidas dado que al brjula es bastante preciso y no oscila demasiado debido a que la definicin de los datos es de 1 grado. No se trata de un sensor que sea crtico y por tanto las medidas pueden ser un poco menos concretas aumentando la latencia de recepcin de datos Paso de Procedimiento Se reinicia Arduino conectado al sensor de infrarrojos y el bluetooth con el cdigo de prueba del sensor distancias. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Paso/Fallo Paso

9.Plan de Pruebas - 113

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prueba de los Inclinmetros

En esta prueba se pretende probar el funcionamiento de los inclinmetros para establecer unas serie de medidas que permitan definir cuando est inclinado el cuerpo del robot y cuando no. En las anteriores pruebas se ha hecho uso de hyperterminal abriendo una sesin configurada del mismo modo que el bluetooth, este tambin deber estar conectado para poder ver en pantalla las medidas. Se utilizar una muestra de 3 medidas para probar la eficiencia de la funcin. Paso de Procedimiento Se reinicia Arduino conectado al inclinometro y el bluetooth con el cdigo de prueba del sensor distancias. Criterio de Paso La latencia de las medidas debe ser muy corta recibiendo varias medidas por segundo sin que se aprecie una oscilacin importante. Paso/Fallo Paso

Pruebas de Funcionalidades
En este apartado se realizar una serie de pruebas completas en las que se hace uso de los algoritmos y funciones testeadas en los apartados anteriores. Aplicados directamente al robot completo. Se pretende comprobar la capacidad del robot en diferentes situaciones como por ejemplo su capacidad para sostener el cuerpo en diferentes posiciones de estabilidad o modificando el centro de masas.

9.Plan de Pruebas - 114

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Pruebas de Fuerza de Mantenimiento y Estabilidad del Robot

En esta prueba se pretende probar si el robot es capaz de mantenerse sobre las cuatro patas. Paso de Procedimiento Criterio de Paso Paso/Fallo Paso Se inicia al robot en la posicin El robot debe mantenerse en esa base. posicin sin perder fuerza en ninguna de las patas y por tanto mantener el equilibrio. Paso de Procedimiento Criterio de Paso Se inicia al robot en la posicin El robot debe mantenerse en esa base y se le pone una pesa de posicin sin perder fuerza en 1Kg encima. ninguna de las patas y por tanto mantener el equilibrio. Paso de Procedimiento Criterio de Paso

Paso/Fallo Paso

Paso/Fallo Fallo

Se inicia al robot en la posicin El robot debe mantenerse en esa base y se le pone una pesa de posicin sin perder fuerza en 2Kg encima. ninguna de las patas y por tanto mantener el equilibrio. Paso de Procedimiento Se inicia al robot en la posicin base, se traslada el centro de masas a la pata 1 y se levanta la pata 4. Paso de Procedimiento Se inicia al robot en la posicin base, se traslada el centro de masas a la pata 4 y se levanta la pata 1. Paso de Procedimiento Se inicia al robot en la posicin base, se traslada el centro de masas a la pata 2 y se levanta la pata 3. Paso de Procedimiento Se inicia al robot en la posicin base, se traslada el centro de masas a la pata 3 y se levanta la pata 2. Criterio de Paso El robot debe mantenerse en esa posicin sin perder fuerza en ninguna de las patas y por tanto mantener el equilibrio. Criterio de Paso El robot debe mantenerse en esa posicin sin perder fuerza en ninguna de las patas y por tanto mantener el equilibrio. Criterio de Paso El robot debe mantenerse en esa posicin sin perder fuerza en ninguna de las patas y por tanto mantener el equilibrio. Criterio de Paso El robot debe mantenerse en esa posicin sin perder fuerza en ninguna de las patas y por tanto mantener el equilibrio.

Paso/Fallo Paso

Paso/Fallo Paso

Paso/Fallo Paso

Paso/Fallo Paso

Se puede por tanto llegar a la conclusin de que el robot es los suficientemente fuerte como para mantener el robot y algo ms siempre y cuando no supere un kilo de peso y este apoyado con las cuatro patas.
9.Plan de Pruebas - 115

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Pruebas de Elevacin y Bajada del Cuerpo

En esta prueba se pretende probar si el robot es capaz de elevar y bajar su cuerpo apoyndose sobre las cuatro patas. En las dos primeras se realizar la elevacin o bajada de manera suave o incremental y en las dos siguientes se realizar de forma rpida. Paso de Procedimiento Criterio de Paso Paso/Fallo Paso

Se inicia al robot en la posicin El robot debe elevarse hasta de inicio y este eleva el cuerpo posicin de inicio sin perder lentamente hasta posicin base. fuerza en ninguna de las patas manteniendo el cuerpo en equilibrio. Paso de Procedimiento Criterio de Paso Se inicia al robot en la posicin El robot debe elevarse hasta de inicio y este baje el cuerpo posicin de inicio sin perder lentamente hasta posicin base. fuerza en ninguna de las patas manteniendo el cuerpo en equilibrio. Paso de Procedimiento Se inicia al robot en la posicin de inicio y este eleva el cuerpo rpidamente hasta posicin base. Paso de Procedimiento Se inicia al robot en la posicin de inicio y este bajar el cuerpo rpidamente hasta posicin base. Criterio de Paso El robot debe elevarse hasta posicin de inicio sin perder fuerza en ninguna de las patas manteniendo el cuerpo en equilibrio. Criterio de Paso El robot debe elevarse hasta posicin de inicio sin perder fuerza en ninguna de las patas manteniendo el cuerpo en equilibrio.

Paso/Fallo Paso

Paso/Fallo Paso

Paso/Fallo Paso

9.Plan de Pruebas - 116

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Plan de Pruebas de la Interfaz


A continuacin se detallan las pruebas realizadas en cada paquete del software de control para corroborar su correcto funcionamiento. Las pruebas se irn especificando desde los niveles inferiores y se ir ascendiendo progresivamente para que su comprensin resulte ms sencilla.
Paquete Bluetooth (r4p.modules.communications.bluetooth)

El paquete Bluetooth se encarga de administrar las comunicaciones establecidas mediante un dispositivo de comunicacinoes bluetooth. A continuacin se detallan las funciones que provee, as como los requisitos que deberan cumplir, el tipo de prueba que se ha realizado y el resultado de la misma. Funcin Requisitos Prueba Resultado Constructor por defecto Devolver un objeto creado con la configuracin por defecto Constructor con configuracin Devolver un objeto creado con la configuracin indicad Se llama al constructor Correcto por defecto y se comprueban los valores de las variables Se llama al constructor Correcto parametrizado y se comprueban los valores de las variables Correcto

Establecimiento de conexin

Crear una conexin con Se llama a la funcin el robot de conexin y se comprueba que el dispositivo hardware muestre estado de conectado Se establece una conexin y se reciben mensajes del robot

Recepcin de mensajes Recibir correctamente los mensajes a travs de una conexin establecida Envo de mensajes Enviar correctamente los mensajes a travs de una conexin establecida

Correcto

Se establece una Correcto conexin y se envan mensajes al robot. Para comprobar que llegan correctamente el robot devolver los mensajes.

Desconexin

Interrumpir la conexin Una vez establecida Correcto establecida con el robot una conexin se llama la funcin para romper la conexin.

9.Plan de Pruebas - 117

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Paquete SerialPort (r4p.modules.communications.serialPort)

El paquete SerialPort permite gestionar las conexin realizadas con el robot a travs de un puerto serie. Las funciones bsicas son similar a las paquete Bluetooth aunque se incluyen un par de funcin a mayores necesarias para el correcto uso del puerto serie. Funcin Requisitos Prueba Resultado Constructor por defecto Devolver un objeto creado con la configuracin por defecto Constructor con configuracin Devolver un objeto creado con la configuracin indicad Se llama al constructor Correcto por defecto y se comprueban los valores de las variables Se llama al constructor Correcto parametrizado y se comprueban los valores de las variables Correcto

Establecimiento de conexin

Crear una conexin con Se llama a la funcin el robot de conexin y se comprueba que el dispositivo hardware muestre estado de conectado Se establece una conexin y se reciben mensajes del robot

Recepcin de mensajes Recibir correctamente los mensajes a travs de una conexin establecida Envo de mensajes Enviar correctamente los mensajes a travs de una conexin establecida

Correcto

Se establece una Correcto conexin y se envan mensajes al robot. Para comprobar que llegan correctamente el robot devolver los mensajes.

Desconexin

Interrumpir la conexin Una vez establecida Correcto establecida con el robot una conexin se llama la funcin para romper la conexin. Mostrar los puertos de datos usables encontrados Se lanza la funcin y se Correcto muestran los puertos encontrados para comprobar los resultados con las especificaciones de hardware

Mostrar puertos disponibles

Comprobar que un puerto es un puerto serie

Distinguir los puertos Se lanza la funcin y se Correcto serie de entre todos los comprueba que los puertos encontrados puertos indicados son realmente puertos serie

9.Plan de Pruebas - 118

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Paquete UsbPort (r4p.modules.communications.usbPort)

El paquete UsbPort permite gestionar las comunicaciones con el robot a travs de una conexin por puerto serie, soporta las mismas funciones que el mtodo de conexin por bluetooth aadiendo otras necesarias para utilizar correctamente los puertos usb. Funcin Requisitos Prueba Resultado Constructor por defecto Devolver un objeto creado con la configuracin por defecto Constructor con configuracin Devolver un objeto creado con la configuracin indicad Se llama al constructor Correcto por defecto y se comprueban los valores de las variables Se llama al constructor Correcto parametrizado y se comprueban los valores de las variables

Establecimiento de conexin

Crear una conexin con Se llama a la funcin de Correcto el robot conexin y se comprueba que el dispositivo hardware muestre estado de conectado Se establece una conexin Correcto y se reciben mensajes del robot Se establece una conexin Correcto y se envan mensajes al robot. Para comprobar que llegan correctamente el robot devolver los mensajes. Correcto

Recepcin de mensajes Recibir correctamente los mensajes a travs de una conexin establecida Envo de mensajes Enviar correctamente los mensajes a travs de una conexin establecida

Desconexin

Interrumpir la conexin Una vez establecida una establecida con el robot conexin se llama la funcin para romper la conexin. Buscar los puertos usb disponibles

Encontrar puertos usb

Se lanza la funcin y se Correcto muestran por pantalla los puertos USB encontrados. Se comprueban los resultados con las especificaciones hardware Se lanza la funcin y se Correcto muestran por pantalla las interfaces encontradas. Se comprueba con las especificaciones hardware teniendo en cuenta los puertos que estn siendo usados.

Encontrar interfaces usb

Buscar interfaces usb disponibles en los puertos usb encontrados

9.Plan de Pruebas - 119

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Paquete Communicatinos (r4p.modules.communications)

El paquete Communications se encarga de gestionar las comunicaciones con el robot de forma independiente al medio, es decir, en ste paquete se tratan las comunicaciones, pero sin tener en cuenta si son a travs del paquete Bluetooth, SerialPort o UsbPort. Es ste paquete el que se encarga de leer la configuracin de las comunicaciones y tratar las conexiones directamente, sin apenas intervencin por parte del usuario. Funcin Establecimiento de conexin Requisitos Prueba Resultado Correcto

Crear una conexin con Se llama a la funcin el robot de conexin y se comprueba que el dispositivo hardware muestre estado de conectado Se establece una conexin y se reciben mensajes del robot

Recepcin de mensajes Recibir correctamente los mensajes a travs de una conexin establecida Envo de mensajes Enviar correctamente los mensajes a travs de una conexin establecida

Correcto

Se establece una Correcto conexin y se envan mensajes al robot. Para comprobar que llegan correctamente el robot devolver los mensajes.

Desconexin

Interrumpir la conexin Una vez establecida Correcto establecida con el robot una conexin se llama la funcin para romper la conexin.

9.Plan de Pruebas - 120

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Paquete Sensors (r4p.modules.sensors)

El paquete Sensors se encarga de gestionar toda la informacin relacionada con los sensores. Trabaja de forma similar a un parser recibiendo los mensajes que enva el robot y extrayendo de l los datos de los sensores. Funcin Extraccin de datos de los mensajes del robot con informacin sobre los sensores Requisitos El mensaje debe seguir el formato que se establece en el anexo de mensajes de comunicaciones El mensaje debe seguir el formato que se establece en el anexo de mensajes de comunicaciones Prueba Se generan varios mensajes localmente con el formato especificado y se extraen los valores de los sensores Resultado Correcto

Extraccin de datos de los mensajes del robot con informacin sobre los sensores

Se reciben mensajes del Correcto robot directamente y se extraen los datos de los sensores. Se comprueban los datos extra4dos con los del mensaje

Paquete Servomotor (r4p.modules.servomotors)

El paquete Servomotors se encarga de gestionar la informacin de los servomotores de dos formas distintas. Por un lado permite extraer informacin de los servomotores a partir de los mensajes enviados por el robot, por otra parte, permite generar movimientos que luego se podrn guardar, cargar y enviar al robot para su prueba. stos movimientos se tratan como secuencias de posiciones que contienen los valores de cada servomotor en cada instante. Funcin Extraccin de datos de los mensajes del robot con informacin sobre los servomotores Requisitos El mensaje debe seguir el formato que se establece en el anexo de mensajes de comunicaciones El mensaje debe seguir el formato que se establece en el anexo de mensajes de comunicaciones Prueba Se generan varios mensajes localmente con el formato especificado y se extraen los valores de los servomotores Resultado Correcto

Extraccin de datos de los mensajes del robot con informacin sobre los servomotores

Se reciben mensajes del Correcto robot directamente y se extraen los datos de los servomotores. Se comprueban los datos extrados con los del mensaje Se asignan valores a los Correcto servomotores y la lnea temporal. Se guardan dicho valores. Se
9.Plan de Pruebas - 121

Aadir valores de posicin de los servomotores

Se deben almacenar los valores de la posicin en el momento indicado pudindolo

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

recuperar ms adelante cambia de instante y se vuelve al anterior para comprobar que los valores se han guardado. Recuperar valores de posicin de los servomotores Recuperar valores de Se asignan valores a los Correcto posicin asociados a un servomotores y la lnea instante temporal. Se guardan dicho valores. Se cambia de instante y se vuelve al anterior para comprobar que los valores se han guardado. El valor temporal medido debe cambiar Se comprueba que al asignar un valor al instante, ste se almacena en memoria Correcto

Cambiar de instante

Guardar Secuencia

Comprobar que la secuencia se guarda correctamente en un fichero elegido por el usuario Comprobar que un fichero que contiene una secuencia se puede cargar correctamente

Se asignan ciertos Correcto valores en varios instantes y se llama al guardado de secuencia en disco. Se comprueba el contenido del fichero Se asignan ciertos Correcto valores en varios instantes y se llama al guardado de secuencia en disco. Se intenta cargar la secuencia de se mismo fichero. Se asignan ciertos Correcto valores a la secuencia y a continuacin se llama al reinicio de la secuencia. Se comprueba que los valores anteriores ya no existen. Se genera una Correcto secuencia con ciertos valores conocidos y se comprueba la reaccin del robot.

Cargar Secuencia

Reiniciar Secuencia

Comprobar que se eliminan los valores existentes y la secuencia se encuentra limpia de valores

Enviar Secuencia

Comprobar que la secuencia se enva al robot para que la interprete

- 122

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

10.Difusin del Proyecto


En este apartado se va a exponer las decisiones que se han ido tomando en lo referente a difusin y Marketing respecto al proyecto. El equipo de c consider oportuno dar a conocer su proyecto fin de carrera con varios fines. El primero, dar a conocer su trabajo de manera pblica y libre a todos aquellos interesados en el tema tratado, la robtica cuadrpeda. Por otra parte se pretenda dar a conocer los nombres de los integrantes del equipo para conseguir una vinculacin de estos con las reas profesionales que forman el conjunto del proyecto en buscadores y medios relacionados con la informtica. En tercer lugar y de forma indirecta afecta a la reputacin de la universidad de manera positiva dado que si alguien se interesa por el proyecto acabar relacionndolo con la Universidad Europea de Madrid. Se fomenta as la comunicacin viral boca a boca de los logros de estos estudiantes y de la universidad. En los siguientes apartados se explicar de manera concreta como se ha trabajado en cada uno de los medios as como los resultados obtenidos.

Blog del proyecto R4P


El blog de proyecto R4P alojado en http://www.r4p.es con un coste anual de 35 ha supuesto una de las principales herramientas de difusin del proyecto en la red, en la comunidad de software libre y robtica del momento.

En este blog se ha ido mostrando un proceso continuo de aprendizaje, en algunos casos incluso de ensayo error que aporta los directores y tutores del proyecto una herramienta de seguimiento continuo del mismo. Esta idea fue aportada por los dos alumnos miembros del equipo de desarrollo dado que ambos se encuentran evidentemente vinculados a Internet. Desde el da 1 de Octubre de 2007 hasta el 1 de septiembre de 2008 el blog del proyecto a registrado un total de 11.921 visitas de las cuales 8.446 han sido usuarios nicos. Estos usuarios han revisado un total de 26.803 pginas del proyecto por lo que la media alcanza un total de 2,25 pginas vistas por visita. De estos datos se concreta que la informacin que se expona en el blog era interesante para aquellos internautas que visitaban la pgina. Esta conclusin tambin se puede obtener del promedio de tiempo en el blog que es de 2 minutos 45 segundos, siendo este tiempo otro claro ejemplo del inters mostrado por la pgina. Este blog siembre ha mostrado una web amigable, que respondi desde el primer da a los patrocinadores incluyendo links a sus pginas incluso cuando an no se saba que iba a ser patrocinador del proyecto como es el caso de la Universidad Europea de Madrid. Los comentarios y e-mails han sido continuos durante el periodo de desarrollo del proyecto, incluso en algunas ocasiones se han recibido sugerencias interesantes que en algunos casos han sido incluidas en el proyecto.

10.Difusin del Proyecto - 123

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Ponencias en Institutos, Eventos y Museos


Se han realizado varias ponencias en institutos, museos y eventos de inters relacionados con la ingeniera o reas tcnicas. El objetivo de estas ponencias en el caso de los institutos era el de estudiar las reacciones de los jvenes ante R4P y evaluar el grado de inters que mostraban por el. En el caso de las otras ponencias en eventos, museos o reuniones de locos por la electrnica se pretenda difundir el proyecto de una manera ms amplia en este tipo de comunidades. A continuacin se muestra una lista con las ponencias realizadas y las fechas correspondientes:

DorkBot Madrid da 11 de Abril de 2008, Viernes a las 21:20 en la galera OFF Limits (Madrid). IES Luis Buuel da 14 de Abril de 2008, Lunes a las 11:30 (Mstoles). Presentacin ArtCube Universidad Europea de Madrid da 15 de Abril de 2008, Martes. 2 Concurso Universitario de Software Libre Universidad de Sevilla da 9 de Mayo 2008 Campus Party Colombia 2008, durante los das 23-29 de Junio en Bogot Colombia. Congreso IADIS Multi Conference 2008, 22 de Julio de 2008. Ciudad de las Artes y las Ciencias de Valencia en la primera edicin del Da de la Robtica, 2 de Agosto de 2008. 12 Campus Party Valencia, 2 de Agosto de 2008 a las 22:30. Curso de Robtica con Lego para nios de alta capacidad, 4 de Agosto de 2008. Open Software World Conference Mlaga 2008, 20, 21 y 22 de Octubre de 2008. Imagintica, en Sevilla del 2 al 6 de Marzo de 2009.

Prximas ponencias:

En todos los casos los integrantes del equipo de desarrollo han corrido con los gastos de desplazamiento y manutencin excepto en la Campus Party de Colombia y la Campus Party de Valencia. Los costes de inscripcin en el Congreso fueron subsanados por la Universidad Europea de Madrid.

Presentacin a Concursos Tcnicos


Se acord entre los integrantes del grupo presentar el proyecto a todos aquellos concursos tanto a nivel nacional como internacional para los cuales cumpliera los requisitos de las bases con el fin de difundir el proyecto. El primero para el cual se cumplan los requisitos tras una serie de ajustes en el software con la mquina virtual de Java fue el 2 Concurso Universitario de Software Libre. El equipo se inscribi en el concurso a mediados de Noviembre. Este concurso es uno de los ms relevantes en lo referente a Software en Espaa a nivel universitario. El segundo concurso al que se presento el proyecto R4P fue Arduino Contest 2008 un concurso a nivel internacional organizado por la tienda Libelium que distribuye diferentes elementos hardware relacionados con Arduino. Los requisitos eran simples, construir algo que utilizara Arduino y grabar un vdeo para enviarlo al concurso. Los resultados no pudieron ser mejores, el proyecto R4P gan el 1er premio en la categora de Innovacin en el 2 Concurso Universitario de Software Libre y el primer premio en la categora robotics en el concurso Arduino Contest 2008.
10.Difusin del Proyecto - 124

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Presentacin al Certamen Arqumedes


El Certamen ARQUIMEDES convocado por la Direccin General de Universidades del Ministerio de Educacin y Ciencia, tiene como objetivo fomentar el espritu investigador de los jvenes estudiantes universitarios mediante la concesin de premios a trabajos de investigacin. Los premios ARQUMEDES contarn con el apoyo organizativo de la Universidad de Salamanca, anfitriona del Certamen y sede de la fase final, y con la colaboracin del Consejo Superior de Investigaciones Cientficas, as como de instituciones pblicas y privadas relacionadas con la investigacin. Actualmente el Proyecto R4P ha sido enviado y aceptado para participar en uno de los certmenes universitarios de mayor repercusin a nivel nacional. La fecha de presentacin del proyecto se cerro el da 7 de Julio de 2008. El fallo del jurado se conocer a finales de Noviembre de 2008.

Presentacin a Congresos Nacionales e Internacionales


Un punto muy importante a la hora de obtener reconocimiento es la presentacin a congresos tanto nacionales como internacionales. Es por eso que se han enviado dos short papers a diferentes congresos de mbito nacional e internacional. El primer short paper se envi al congreso IADIS Multi Conference 2008 durante la primera semana de Abril de 2008. Fue aceptado, prensentado y publicado en este congreso de mbito internacional que tuvo lugar en Holanda, en Amsterdam durante los das 22, 23 y 24 de Julio de 2008. Se present en la categora de posters y fue expuesto el da 22 de Julio. En el Anexo IV - Short Paper Publicado al Congreso IADIS Multi Conference 2008 contiene el short paper publicado en el congreso. El poster por motivos de logstica no ha podido ser incluido en la memoria pero se adjuntar en formato Din A1. El segundo short paper que se ha enviado a un congreso tambin ha sido admitido. En este caso se trata de un congreso a nivel nacional relacionado con el software libre. Concretamente se trata del Open Software World Conference Malaga 2008 y la fecha de presentacin ser del 20 al 22 de Octubre de 2008

10.Difusin del Proyecto - 125

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

- 126

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

11.Conclusin y Trabajos Futuros


Conclusin
En el presente documento se ha tratado de exponer todo el trabajo realizado por los integrantes del equipo durante el desarrollo del proyecto. Sin embargo no se puede plasmar todo el trabajo que implica disear, construir y desarrollar un robot como el construido. Hay una gran cantidad de trabajo subyacente en algunos casos de ensayo error para conseguir que un robot de estas caractersticas consiga realizar las tareas que finalmente se han realizado como por ejemplo caminar, mantener el equilibrio o realizar transiciones de estados. Dado que en los libros se pueden encontrar por ejemplo las secuencias que se deben llevar a cabo para maximizar el tringulo de estabilidad al caminar pero influyen una amplia cantidad de variables externas e internas que dificultan sobremanera el desarrollo, las pruebas son tediosas, requieren mucho tiempo y es difcil darse cuenta de los errores de diseo. Los informticos siempre tendemos a pensar que los errores se encuentran en la programacin por eso cuando el diseo del robot o el hardware presentan algn error nos obcecamos tratando de solucionarlo modificando el cdigo y el error no se encuentra ah. Durante el desarrollo de este proyecto hemos invertido gran cantidad de tiempo, dinero y sacrificios a nivel personal, sin embargo el feedback y las experiencias que hemos obtenido a cambio son inolvidables.

11.Conclusin y Trabajos Futuros - 127

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Trabajos Futuros
En varias ocasiones a lo largo de este documento se ha hecho referencia a una plataforma robtica. Este trmino se puede utilizar para hablar de un solo robot que servir como base de pruebas para una investigacin o para un uso determinado del mismo. Sin embargo el trmino plataforma robtica parece un trmino ms amplio en el cual no solo se incluye un robot de cuatro patas sino que se podra elegir el tipo de robot a utilizar. Para completar el trmino plataforma robtica se podra disear una serie de robots a partir de R4P que tan solo supondran unas pequeas modificaciones y abren un amplio abanico de posibilidades. Como es el caso de R6P H3i y R6P R3i, estos dos robots constan de seis patas, un cuerpo hexagonal del primero y uno rectangular el segundo. El resto de piezas se mantienen aunque evidentemente se deben construir dos patas ms. Los modelos se pueden ver en la imagen siguiente:

Los ejemplos anteriores son una pequea muestra de los robots que podran construirse. Al no tratarse de un robot en concreto como este proyecto ya no debera centrar su nombre en R4P sino en una plataforma robtica completa que el equipo de desarrollo ha denominado RoboThea que significa Robot del trmino checo esclavo y thea del termino griego Diosa por tanto la definicin sera diosa de la robtica. Evidentemente el nombre es un punto importante de cara al marketing. Desde otro enfoque se podra mejorar al robot R4P utilizando para ello materiales como el aluminio. Olvidando la mxima de bajo coste se podran utilizar motores de corriente continua con reductoras con enconders lo cual dotara al robot de una estabilidad y fuerza mayores y reducira los temblores elctricos. De esta manera se podra construir un robot de mayor tamao y prestaciones pudiendo realizar una amplia gama de tareas que el prototipo actual no podra.

11.Conclusin y Trabajos Futuros - 128

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Referencias
[ 1 ] J. M Angulo, Rafael Avils (1988) Curso de Robtica. Ed. Paraninfo [ 2 ] Pablo Gonzalez de Santos, Elena Garcia, Joaquin Estremera (2006) Cuadrupedal Locomotion. Ed. Springer [ 3 ] Antonio Barrientos, Luis Felipe Pein, Carlos Balaguer, Rafael Aracil (2007) Fundamentos de Robtica. Ed Mc Graw Hill [ 4 ] Jose M Angulo Usategui, Susana Romero Yesa, Ignacio Angulo Martnez (2005) Introduccin a la Robtica. Ed. Thomson [ 5 ] Laboratorio de piernas del MIT http://www.ai.mit.edu/projects/leglab/ robots/3D_ hopper/3D_hopper.html [ 6 ] Kingsley, D. A., R.D. Quinn and R.E. Ritzmann (2003) A Cockroach Inspired Robot With Artificial Muscles. International Symposium on Adaptive Motion of Animals and Machines (AMAM 2003). Kyoto, Japan. [ 7 ] Fielding, M.R., R. Dunlop and C.J. Damaren (2001) Hamlet: Force/Position Controlled Hexapod Walker - Design and Systems. Presented at: IEEE CCA. Mexico City. [ 8 ] Bares, J.E.,Whittaker. (1989) Configuration of an autonomous robot for mars exploration, World Conference on robotics research: the next five years and beyond. Gaitherrsburg, Maryland, 1989. Research. Vol. 18, No. 7, pp. 621- 649. [ 9 ] Plustech. http://www.plustech.fi [ 10 ] Sony. Aibo robot. http://www.aibo.com [ 11 ] Honda. Asimo http://asimo.honda.com/ [ 12 ] Quinn, R.D., G.M. Nelson, R.J. Bachmann, D.A. Kingsley, J. Offi and R.E. Ritzmann (2001). Insect Designs for Improved Robot Mobility. In: Proc. of Climbing and Walking Robots Conference (CLAWAR01). Professional Engineering Publications (Berns and D. Karlsruhe, Ed.). pp. 69-76. Germany. [ 13 ]Eastier, T., Y. Crausaz, B. Merminod, M. Lauria, R.Piguet and R. Siegwart (2000). An innovative Space Rover with Extended Climbing Abilities. Proceedings of Space and Robotics 2000. Albuquerque, USA. http://dmtwww.epfl.ch/isr/asl/systems/shrimp.htm [ 14 ] Fiorini, P., S. Hayati, M. Heverly, and J. Gensler. A Hopping Robot for Planetary Exploration. Jet Propulsion Laboratory. California Institute of Technology. Pasadena, California. [ 15 ] Aldebaran Robotics Nao http://www.aldebaran-robotics.com/ pageProjetsNao.php [ 16 ] Pgina oficial RoboCup www.robocup.or [ 17 ] MIT http://www.ai.mit.edu/projects/leglab/ [ 18 ] ThrustSSC http://en.wikipedia.org/wiki/ThrustSSC [ 19 ] Boston Dynamics official web page http://www.bostondynamics.com/ [ 20 ] Jet Propulsion Laboratory NASA http://www.jpl.nasa.gov/ [ 21 ] http://www.oeb.harvard.edu/cfs/ [ 22 ] CSIC: INSTITUTO DE AUTOMTICA INDUSTRIAL www.iai.csic.es/ [ 23 ] Lynxmotion www.lynxmotion.com

Referencias - 129

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

- 130

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexos
Anexo I - Manual de Montaje de Robot R4P
Montando R4P Componentes

Lista de componentes: Piezas de R4P en metacrilato, pvc, aluminio (a gusto del consumidor) 48x Tornillos y tuercas M3 (Mtrica 3, planos o estrella) 450x Tornillos M2 12x Arandelas de presin 12x Servos MG995 o estndar Futaba 12x horns Futaba Aluminio 4x tapones de goma de 8mm

Necesitaremos:

Destornillador de estrella (Pequeo) Destornillador Plano

Esquema General de Montaje:

Las piezas de R4P. Los prototipos de R4P construidos hasta el momento suelen utilizar metacrilato de 6mm por ser fuerte, rgido pero con un poco de flexibilidad, liviano y fcil de malear. Existen tres versiones de las piezas hasta el momento, las imgenes pueden variar dependiendo de la versin
Anexos - 131

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

de estas. En la siguiente imagen podemos observar las piezas del robot R4P prototipo 1.2 y 2.0.

Constan de una pieza de cuerpo, y cuatro de cada una de las que forman la pata. Debe considerar que versin de las piezas se adapta mejor a sus necesidades. Por ejemplo la primera versin no incluye ningn taladro y puede ser modificada por el usuario con un taladro permitindole decidir por ejemplo el tamao de los tornillos que fijan los servos a las piezas.

Anexos - 132

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Tornillos y tuercas M3. Son los que fijarn los servos a las piezas del robot. En la versin 2 y 3 de las piezas los taladros est hechos para tornillos de mtrica 3. Se pueden adquirir en L&M o cualquier ferretera de barrio. Tornillos M2. Solo hacen falta los tornillos. Sern los encargados de fijar los horns o brazos de servo a las piezas de metacrilato. En la versin 3 de las piezas estos agujeros estn hechos. La referencia es la siguiente Tornillo, Supradriv, huella estrella, cabeza redonda, acero, galvan. brillante, pasivado transp. ,M212mm. No es necesario que sea este mismo tornillos. Nosotros los adquirimos en la tienda online [1] el precio rond los 15 con gastos de envo (9) y la referencia en RS Online es 560-546, el pack de 100 tornillos cuesta 2,32 sin IVA. Se recomienda que sean de 10mm de largos, 12 vale perfectamente tambin. Si los encuentra en una ferretera le saldrn notablemente ms baratos. Arandelas de presin. Son especiales para hacer ms fuertes las uniones entre metal-metal como va a ser el caso del servo con el horn de aluminio. Se situarn entre medias para dar ms fuerza a la unin y evitar que se desatornillen por las vibraciones. Se pueden adquirir en L&M o cualquier ferretera de barrio. Y suelen ser algo as:

Servos MG995. Se trata de unos servos fuertes y baratos que son la medida perfecta para las piezas en cualquiera de sus versiones (se recomienda la 2 o 3 que ya tienen los taladros hechos y las muescas para los servos). Se puede utilizar cualquier servo que cumpla las medidas.

Anexos - 133

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Los servo sern los msculos de R4P por lo tanto es importante que tengan fuerza, un mnimo de 13Kg de torque. Los MG995 de Towerpro alcanzan 15 Kg de torque a 7,4 V. En este caso se recomienda utilizar 6V para no exponer a los servos a un posible exceso de voltaje. Nosotros adquirimos los servos en Hobbycity Online una tienda de recambios de aeromodelismo China bastante eficiente. El precio fue incomparable, 6,4 por servo gastos de envo incluidos. Tardaron aproximadamente dos semanas en llegar.

Horns Futaba de Aluminio. Se trata de unos brazos de servo de aluminio que proveen al robot de una mayor robustez y menores vibracione. Los horns de plstico se suelen romper por los dientes metlicos de los servos. Nosotros los adquirimos por una tienda online espaola llamada Guinea Hobbies [3]. el precio es de 4 cada uno, pero merece la pena. Tardaron bastante tiempo en enviarlos por problemas de stock. Tapones de goma de 8mm. Se utilizarn para hacer los puntos de apoyo ms adherentes.

Anexos - 134

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Montaje de R4P
Una vez que tengamos todos los componentes podemos empezar a construirlo. Lo primero que vamos a hacer es colocar los servos sobre las piezas y atornillarlos. No se debe aplicar mucha fuerza al atornillarlos por que podramos romper la carcasa de plstico y con ello perder un servo incurriendo en un coste mayor.

Paso 1 La Pata
Componentes:

1x Pieza pata metacrilato 1x Tapn de goma 1x Servo 4x Tornillos M3 4x Tuercas M3

Empezaremos por las patas, que es la extremidad ms alejada del cuerpo del robot con forma de pinza de cangrejo. En este paso fijaremos el servo a la pieza de metacrilato con cuatro tornillos y colocaremos el tapn de goma aplicando unas gotas de cianocrilato (el tpico super glue 3). Repetiremos el proceso con las 4 patas. En dos de ellas el servo debe quedar en una direccin y en las otras dos en otra. Esquemas:

Anexos - 135

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Debemos realizar dos patas con la misma colocacin del servo y otras dos con el servo en direccin contrara como se puede apreciar en el esquema de abajo:

Paso 2 El Muslo
Componentes:

1x Pieza de metacrilato Muslo 1x horn de aluminio 1x Servo 16x tornillos M2

El muslo no es ms que la pieza que une el hombro del robot con la pata. En este caso tenemos que fijar un horn de aluminio a cada lado de la pata con el nmero de tornillos que se consideren necesarios. Nosotros preferamos utilizar todos para asegurar que la pata queda bien firme. Pero con 8 tornillos ser suficiente. Esquema:

Paso 3 El Hombro
Componentes:
Anexos - 136

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

1x Pieza metacrilato redonda 1x Pieza metacrilato con forma de pico 1x Servo 4x Tornillos M3 4x Tuercas M3 6xTornillos Mtrica 2

El hombro se compone de 2 piezas de metacrilato, una es redonda y la otra tiene un pico y el hueco para un servo. Lo primero que tenemos que haces es unir las piezas como se muestra en la imagen:

Generalmente suele encajar y quedar bien fijada. Si queremos asegurarnos para que quede perfecta se puede aplicar unas gotitas de cianocrilato (super glue 3), poner unas escuadras pequeas o atornillar las piezas para que queden perfectamente sujetas. Despus colocaremos el horn en la parte de arriba de la pieza como se puede observar en la imagen siguiente y atornillaremos todos aquellos tornillos que nos permita la otra pieza.

Despus colocaremos los tornillos que fijarn el servo al hombro del robot.

Anexos - 137

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Y finalmente tenemos la pieza completa:

En algunos modelos como el R4P Phoenix esta pieza ha sido sustituida por otra que es una sola pieza de metacrilato doblada.

Anexos - 138

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Paso 4 El Cuerpo
Componentes:

1x Pieza metacrilato cuerpo 16x Tornillos M3 16x Tuercas M3 4x servos En este paso fijaremos cuatro servos al cuerpo del robot:

En la imagen de abajo vemos como queda el cuerpo del robot una vez montado y atornillado:

Paso 5 Ensamblado Final


Anexos - 139

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

12x Aranderlas de Presin 12x Tornillos servos.

Ahora solo tenemos que introducir los tornillos de los servos para que sirvan de unin entre los horns y los servos. Es el momento de utilizar tambin las arandelas de presin.

Anexos - 140

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo II - Especificacin del Protocolo de Comunicacin R4P a Interfaz Inicializacin de R4P


Nombre: Datos inicializacin Descripcin: Enva los datos sobre los sensores conectados a r4p. Se envia al iniciar el robot y los datos de si est conectado o no cada sensor los define el programador en el cdigo del robot. Texto del mensaje: {idtm,iX,iY,b,d}

idtm: byte (identificador de tipo de mensaje, valor 0) i1: byte (inclinometro X, valor 0 si no est conectado, 1 si conectado). i2: byte (inclinometro Y, valor 0 si no est conectado, 1 si conectado). b: entero (brujula, valor 0 si no est conectado, 1 si conectado). d: byte (distancia, valor 0 si no est conectado, 1 si conectado).

Estado peticin: no hay acknowledge Valores comunes: para iX,iY,b,d el valor 0 si no est conectado y 1 si est conectado.

Envo de todos los datos de R4P


Nombre: Envo de datos. Descripcin: Envia los datos de todos los servos, sensores y estado del robot. Texto del mensaje: {idtm,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,iX,iY,b,d,s} Parmetros: idtm: byte (identificador de tipo de mensaje, valor 1) s1: byte (valor del servo 1 en decimal de 0 a 180). s2: byte (valor del servo 2 en decimal de 0 a 180). s3: byte (valor del servo 3 en decimal de 0 a 180). s4: byte (valor del servo 4 en decimal de 0 a 180). s5: byte (valor del servo 5 en decimal de 0 a 180). s6: byte (valor del servo 6 en decimal de 0 a 180). s7: byte (valor del servo 7 en decimal de 0 a 180). s8: byte (valor del servo 8 en decimal de 0 a 180). s9: byte (valor del servo 9 en decimal de 0 a 180). s10: byte (valor del servo 10 en decimal de 0 a 180). s11: byte (valor del servo 11 en decimal de 0 a 180). s12: byte (valor del servo 12 en decimal de 0 a 180). iX: byte (inclinometro X, valor de RANGO grados). iY: byte (inclinometro Y, valor de RANGO grados). b: entero (brujula, valor de 0 a 360 grados). d: byte (distancia, valor de 5 a 50 cm). s: entero (estado del robot, valor de 0 a 4). Estado peticin: no hay acknowledge

Valores comunes: para iX,iY,b,d el valor 0 significar que no hay datos sobre el sensor.
Anexos - 141

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Interfaz a R4P Iniciar a R4P


Nombre: Iniciar a R4P Descripcin: Enva una secuencia que permite al robot inicializarse y pasar de posicin de inicio a posicin base. Durante la secuencia de inicio enva los datos referentes a el uso de sensores. Texto del mensaje: {idtm}

idtm: byte {valor 0}

Estado peticin: no hay acknowledge

Parada de emergencia
Nombre: Parada de emergencia. Descripcin: Enva una secuencia que debe detener al robot inmediatamente. Texto del mensaje: {idtm}

idtm: byte{valor 1}

Estado peticin: no hay acknowledge

Reanudar
Nombre: Reanudar. Descripcin: Una vez enviada la parada de emergencia se enva una secuencia para reanudar la tarea que estaba llevando a cabo el robot. Texto del mensaje: {idtm}

idtm: byte{valor 2}

Estado peticin: no hay acknowledge

A posicin de inicio
Nombre: A posicin de inicio Descripcin: Enva una secuencia que manda al robot a posicin de inicio. Texto del mensaje: {idtm}

idtm: byte{valor 3}

Estado peticin: no hay acknowledge


Anexos - 142

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Caminar haca delante


Nombre: Caminar haca delante Descripcin: Enva una secuencia para que el robot comience a caminar hacia delante. Texto del mensaje: {idtm}

idtm: byte{valor 4}

Estado peticin: no hay acknowledge

Parar de Caminar
Nombre: Parar de caminar. Descripcin: Enva una secuencia para que el robot deje de caminar. Texto del mensaje: {idtm}

idtm: byte{valor 5}

Estado peticin: no hay acknowledge

Base a Dos Patas


Nombre: Parar de caminar. Descripcin: Enva una secuencia para que el robot deje de caminar. Texto del mensaje: {idtm}

idtm: byte{valor 6}

Estado peticin: no hay acknowledge Control de servos:

Demo 1
Nombre: Demo 1 Descripcin: Enva una secuencia para que el robot ejecute la demostracin nmero 1. Texto del mensaje: {idtm}

idtm: byte{valor 7}

Estado peticin: no hay acknowledge

Demo 2
Nombre: Demo 2 Descripcin: Enva una secuencia para que el robot ejecute la demostracin nmero 2. Texto del mensaje: {idtm}

idtm: byte{valor 8}

Estado peticin: no hay acknowledge


Anexos - 143

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Modo Control de Servos por Interfaz


Nombre: Control de servos Descripcin: Enva una secuencia con las posiciones para cada servo. Texto del mensaje: {idtm,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12}

idtm: byte{valor 9} s1: byte (valor del servo 1 en decimal de 0 a 180). s2: byte (valor del servo 2 en decimal de 0 a 180). s3: byte (valor del servo 3 en decimal de 0 a 180). s4: byte (valor del servo 4 en decimal de 0 a 180). s5: byte (valor del servo 5 en decimal de 0 a 180). s6: byte (valor del servo 6 en decimal de 0 a 180). s7: byte (valor del servo 7 en decimal de 0 a 180). s8: byte (valor del servo 8 en decimal de 0 a 180). s9: byte (valor del servo 9 en decimal de 0 a 180). s10: byte (valor del servo 10 en decimal de 0 a 180). s11: byte (valor del servo 11 en decimal de 0 a 180). s12: byte (valor del servo 12 en decimal de 0 a 180).

Estado peticin: no hay acknowledge

Anexos - 144

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo III - Short Paper Publicado al Congreso IADIS Multi Conference


2008

R4P PROJECT, AN OPEN QUADRUPEDAL ROBOT


Luis I. Daz del Dedo, Luis A. Prez Garca, Fernando Berenguer, Nourdine Aliane
Universidad Europea de Madrid Villaviciosa de Odn Madrid (Spain)

ABSTRACT This paper introduces the R4P project and the possibilities that users without experience in robotics can develop at a low cost. In addition to that it shows up some of the innovative features of the R4P robot. KEYWORDS Robot, robotics, quadrupedal, autonomous, semi-autonomous, teleoperated

1. INTRODUCTION
Research on quadrupedal robotics is really very expensive and not readily accessible. Robots built by big corporations and governments are, most of the times, oriented to develop efficient quadrupedal locomotion platforms, see SILO4 [4], BigDog [5] and LittleDog [6]. Those approaches pretend to solve the displacement problem as their main goal and, once this hurdle is solved, start developing the advantages a four-legged agent can offer. However, this approach is not the only one and is neither the most successful because there appear to be tasks that can be developed in parallel. Only the outstanding researchers of those companies can use those robots and learn from them, leaving aside a lot of anonymous researchers and reducing, as a consequence, the percentage of global learning. Those enterprises protect their researches, as the main goal of a company is getting valuable, this means, generate profits. That is the reason why the R4P project was born, as an open platform able to give researchers without a large amount of resources a robot that allows them to develop a quadrupedal intelligent agent and, this way, learning from their development experience and being used as a technological base for future researches. Figure 1. Robot R4P electrical architecture scheme

Anexos - 145

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

2. R4P PROJECT
The R4P project developments can be divided in three main stages. The first one would be the design and construction of a quadrupedal, innovative, open and versatile platform called "R4P". The second stage consists on the implementation of the libraries needed for mapping the sensors and the functions used to control the movements in a simple way. The third, and the most important one, is focused on the robot functions as an autonomous intelligent agent able to react to external stimuli.

2.1 Main Goals and Motivation


Anyone who tries to get involved in robotics always finds the same problem: he has to choose one platform. Most of these platforms (if not all) are closed platforms that make the developer to take the choice of paying for it in the best cases, because most of them are private researches. This problem implies a bigger one: once a project is started with one of these platforms, almost the whole project has to be rewritten when porting to another platform. Let's see the alternatives the R4P Project proposes to front this problem: At a low level, the "rewrite problem" is almost inevitable. If the hardware components have to be changed, the code interacting with them should be changed too. That's why the R4P project chose Arduino as its hardware platform. Arduino is and open platform using an open programming language, which means that the developer will find useful code and documentation at no cost. The important thing is to make these forced changes as easy as possible. At a high level, the software application developed for the R4P Project can be easily changed to support any other kind of robot, as the code to be changed remains in the robot itself. In the other hand, the application can control any robot, not only the ones based on Arduino. All you have to do is including the movements code on the hardware platform and make it compatible with the control messages the application sends to the robot.

2.2 Mechanical and electrical architecture


The design of the robot's legs is innovative as it allows using them as punctual or multiple support legs, which offers the possibility of holding the robot, over two legs as it can be seen on Figure 2. According to definition of low cost, the robot must be composed by low cost components. It doesnt mean that these components must be worse than professional ones. Only a study on the components is needed to decide which are the best ones focusing on a compromise between price and technical features. This is the selected components list: 23. The MG995 servomotors supports a 15 Kg torque and are fast enough. These servomotors are the joints for the legs and each one is equipped with three (3DOF) of them. 24. The body material is 6mm thick methacrylate. The laser cut is very accurate, cheap and the result is very satisfactory. 25. R4P electronic is based on an open hardware project: Arduino. The Diecimila [2] is a microcontroller board based on the ATmega168. Its a really cheap board and everything R4P needs to work. It controls a digital compass, two inclinometers, one servomotor controller and a distance sensor. All of this components and the architecture of R4P can be seen in figure. Figure 2. Robot R4P Leg uses.

3. CONCLUSION
At this moment, the project is at the Implementation Stage. Some important targets have been achieved: an embedded auto-stability algorithm, the communication modules, showing live reads from the sensors and an algorithm for using interpolated positions (less on-board memory needed) for example. Both levels, the low level and the high one have been growing at the same time in parallel. The low level
Anexos - 146

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

development is now working on the implementation of the movement algorithm and the high level one on the 3D live robot representation. We could say the project is at 76% of development as seen in Figure 3. One of the most attractive advantages of the R4P project is that it is a real low cost platform that can be used as a zero start point for some future projects, competing with other platforms available in the market. In fact, the only cost related with R4P would be the hardware materials to build the robot, as it is completely open and free [2]. Another top-feature that is included in R4P is that it has been designed with modularity in mind at all times, which implies a huge amplification and adaptation capacity to user needs. Figure 3. Robot R4P main view

The main limitations found while designing this project are the hardware costs that limit, in a certain way, the versatility of the included functionalities, as the shortage of public standards oriented to robotics. These project applications are as miscellaneous as they can be imagined. Although its main goal is education, allowing learning from a completed and well-documented robotic product where anyone can consult, modify or improve the modules he's interested in. There are a lot of categories where it can be applied. A really clear and actual example would be research and development of intelligent and robotic agents able to manage themselves or studying robotics communities from the artificial intelligent point of view.

REFERENCES
[1] Gonzalez de Santos, Pablo et al. 2006. Quadrupedal Locomotion: An Introduction to the Control of Four-legged Robots. Springer-Verlag London. [2] http://www.arduino.cc/en/Main/ArduinoBoardDiecimila [3] Gonzalez de Santos, Pablo et al. 2000. Climbing and Walking Robots and the support Technologies for Mobile Machines. Professional Engineering Publishing [4] http://www.iai.csic.es/users/silo4/ [5] http://www.bostondynamics.com/content/sec.php?section=BigDog [6] http://www.bostondynamics.com/content/sec.php?section=LittleDog

Anexos - 147

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexos - 148

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo IV - Planos de las Piezas del Robot R4P


Prototipo 1.1 Pata Prototipo 1.1

Anexos - 149

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Muslo Prototipo 1.1

Anexos - 150

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera 1 Prototipo 1.1

Anexos - 151

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera 2 Prototipo 1.1

Anexos - 152

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cuerpo Prototipo 1.1

Anexos - 153

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo 1.2 Pata Prototipo 1.2

Anexos - 154

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Muslo Prototipo 1.2

Anexos - 155

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera 1 Prototipo 1.2

Anexos - 156

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera 2 Prototipo 1.2

Anexos - 157

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cuerpo Prototipo 1.2

Anexos - 158

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo 2.0 Pata Prototipo 2.0

Anexos - 159

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Muslo Prototipo 2.0

Anexos - 160

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera Prototipo 2.0

Anexos - 161

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cuerpo Prototipo 2.0

Anexos - 162

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Prototipo Phoenix Pata Prototipo Phoenix

Anexos - 163

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Muslo Prototipo Phoenix

Anexos - 164

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cadera Prototipo Phoenix

Anexos - 165

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Cuerpo Prototipo Phoenix

Anexos - 166

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo V - Datasheets de los Componentes Electrnicos


Inclinometros

Anexos - 167

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Controlador SD20

Anexos - 168

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexos - 169

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Brjula Digital CMPS03

Anexos - 170

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo VI - Licencias del Proyecto


Reconocimiento-NoComercial-Compartir Igual 2.5 Espaa

CREATIVE COMMONS CORPORATION NO ES UN DESPACHO DE ABOGADOS Y NO PROPORCIONA SERVICIOS JURDICOS. LA DISTRIBUCIN DE ESTA LICENCIA NO CREA UNA RELACIN ABOGADOCLIENTE. CREATIVE COMMONS PROPORCIONA ESTA INFORMACIN TAL CUAL (ON AN "AS-IS" BASIS). CREATIVE COMMONS NO OFRECE GARANTA ALGUNA RESPECTO DE LA INFORMACIN PROPORCIONADA, NI ASUME RESPONSABILIDAD ALGUNA POR DAOS PRODUCIDOS A CONSECUENCIA DE SU USO. Licencia LA OBRA (SEGN SE DEFINE MS ADELANTE) SE PROPORCIONA BAJO LOS TRMINOS DE ESTA LICENCIA PBLICA DE CREATIVE COMMONS ("CCPL" O "LICENCIA"). LA OBRA SE ENCUENTRA PROTEGIDA POR LA LEY ESPAOLA DE PROPIEDAD INTELECTUAL Y/O CUALESQUIERA OTRAS NORMAS RESULTEN DE APLICACIN. QUEDA PROHIBIDO CUALQUIER USO DE LA OBRA DIFERENTE A LO AUTORIZADO BAJO ESTA LICENCIA O LO DISPUESTO EN LAS LEYES DE PROPIEDAD INTELECTUAL. MEDIANTE EL EJERCICIO DE CUALQUIER DERECHO SOBRE LA OBRA, USTED ACEPTA Y CONSIENTE LAS LIMITACIONES Y OBLIGACIONES DE ESTA LICENCIA. EL LICENCIADOR LE CEDE LOS DERECHOS CONTENIDOS EN ESTA LICENCIA, SIEMPRE QUE USTED ACEPTE LOS PRESENTES TRMINOS Y CONDICIONES. 1. Definiciones

a. La "obra" es la creacin literaria, artstica o cientfica ofrecida bajo los trminos de esta licencia. b. El "autor" es la persona o la entidad que cre la obra. c. Se considerar "obra conjunta" aquella susceptible de ser incluida en alguna de las siguientes categoras: i. "Obra en colaboracin", entendiendo por tal aquella que sea resultado unitario de la colaboracin de
varios autores.

ii. "Obra colectiva", entendiendo por tal la creada por la iniciativa y bajo la coordinacin de una
persona natural o jurdica que la edite y divulgue bajo su nombre y que est constituida por la reunin de aportaciones de diferentes autores cuya contribucin personal se funde en una creacin nica y autnoma, para la cual haya sido concebida sin que sea posible atribuir separadamente a cualquiera de ellos un derecho sobre el conjunto de la obra realizada. iii. "Obra compuesta e independiente", entendiendo por tal la obra nueva que incorpore una obra preexistente sin la colaboracin del autor de esta ltima. Se considerarn "obras derivadas" aquellas que se encuentren basadas en una obra o en una obra y otras preexistentes, tales como: las traducciones y adaptaciones; las revisiones, actualizaciones y anotaciones; los compendios, resmenes y extractos; los arreglos musicales y, en general, cualesquiera transformaciones de una obra literaria, artstica o cientfica, salvo que la obra resultante tenga el carcter de obra conjunta en cuyo caso no ser considerada como una obra derivada a los efectos de esta licencia. Para evitar la duda, si la obra consiste en una composicin musical o grabacin de sonidos, la sincronizacin temporal de la obra con una imagen en movimiento ("synching") ser considerada como una obra derivada a los efectos de esta licencia. Tendrn la consideracin de "obras audiovisuales" las creaciones expresadas mediante una serie de imgenes asociadas, con o sin sonorizacin incorporada, as como las composiciones musicales, que estn destinadas esencialmente a ser mostradas a travs de aparatos de proyeccin o por cualquier otro medio de comunicacin pblica de la imagen y del sonido, con independencia de la naturaleza de los soportes materiales de dichas obras. El "licenciador" es la persona o la entidad que ofrece la obra bajo los trminos de esta licencia y le cede los derechos de explotacin de la misma conforme a lo dispuesto en ella.
Anexos - 171

d.

e.

f.

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

g. "Usted" es la persona o la entidad que ejercita los derechos cedidos mediante esta licencia y que no ha violado
previamente los trminos de la misma con respecto a la obra, o que ha recibido el permiso expreso del licenciador de ejercitar los derechos cedidos mediante esta licencia a pesar de una violacin anterior. h. La "transformacin" de una obra comprende su traduccin, adaptacin y cualquier otra modificacin en su forma de la que se derive una obra diferente. Cuando se trate de una base de datos segn se define ms adelante, se considerar tambin transformacin la reordenacin de la misma. La creacin resultante de la transformacin de una obra tendr la consideracin de obra derivada. i. Se entiende por "reproduccin" la fijacin de la obra en un medio que permita su comunicacin y la obtencin de copias de toda o parte de ella. j. Se entiende por "distribucin" la puesta a disposicin del pblico del original o copias de la obra mediante su venta, alquiler, prstamo o de cualquier otra forma. k. Se entender por "comunicacin pblica" todo acto por el cual una pluralidad de personas pueda tener acceso a la obra sin previa distribucin de ejemplares a cada una de ellas. No se considerar pblica la comunicacin cuando se celebre dentro de un mbito estrictamente domstico que no est integrado o conectado a una red de difusin de cualquier tipo. A efectos de esta licencia se considerar comunicacin pblica la puesta a disposicin del pblico de la obra por procedimientos almbricos o inalmbricos, incluida la puesta a disposicin del pblico de la obra de tal forma que cualquier persona pueda acceder a ella desde el lugar y en el momento que elija. l. La "explotacin" de la obra comprende su reproduccin, distribucin, comunicacin pblica y transformacin. m. Tendrn la consideracin de "bases de datos" las colecciones de obras ajenas, de datos o de otros elementos independientes como las antologas y las bases de datos propiamente dichas que por la seleccin o disposicin de sus contenidos constituyan creaciones intelectuales, sin perjuicio, en su caso, de los derechos que pudieran subsistir sobre dichos contenidos. n. Los "elementos de la licencia" son las caractersticas principales de la licencia segn la seleccin efectuada por el licenciador e indicadas en el ttulo de esta licencia: Reconocimiento de autora (Reconocimiento), Sin uso comercial (NoComercial), Compartir de manera igual (CompartirIgual). 2. Lmites y uso legtimo de los derechos. Nada en esta licencia pretende reducir o restringir cualesquiera lmites legales de los derechos exclusivos del titular de los derechos de propiedad intelectual de acuerdo con la Ley de Propiedad Intelectual o cualesquiera otras leyes aplicables, ya sean derivados de usos legtimos, tales como el derecho de copia privada o el derecho a cita, u otras limitaciones como la derivada de la primera venta de ejemplares. 3. Concesin de licencia. Conforme a los trminos y a las condiciones de esta licencia, el licenciador concede (durante toda la vigencia de los derechos de propiedad intelectual) una licencia de mbito mundial, sin derecho de remuneracin, no exclusiva e indefinida que incluye la cesin de los siguientes derechos: a. Derecho de reproduccin, distribucin y comunicacin pblica sobre la obra. b. Derecho a incorporarla en una o ms obras conjuntas o bases de datos y para su reproduccin en tanto que incorporada a dichas obras conjuntas o bases de datos. c. Derecho para efectuar cualquier transformacin sobre la obra y crear y reproducir obras derivadas. d. Derecho de distribucin y comunicacin pblica de copias o grabaciones de la obra, como incorporada a obras conjuntas o bases de datos. e. Derecho de distribucin y comunicacin pblica de copias o grabaciones de la obra, por medio de una obra derivada. Los anteriores derechos se pueden ejercitar en todos los medios y formatos, tangibles o intangibles, conocidos o por conocer. Los derechos mencionados incluyen el derecho a efectuar las modificaciones que sean precisas tcnicamente para el ejercicio de los derechos en otros medios y formatos. Todos los derechos no cedidos expresamente por el licenciador quedan reservados, incluyendo, a ttulo enunciativo pero no limitativo, los establecidos en la seccin 4e. 4. Restricciones. La cesin de derechos que supone esta licencia se encuentra sujeta y limitada a las restricciones siguientes: a. Usted puede reproducir, distribuir o comunicar pblicamente la obra solamente bajo los trminos de esta licencia y debe incluir una copia de la misma, o su Identificador Uniforme de Recurso (URI), con cada copia o grabacin de la obra que usted reproduzca, distribuya o comunique pblicamente. Usted no puede ofrecer o imponer ningn trmino sobre la obra que altere o restrinja los trminos de esta licencia o el ejercicio de sus derechos por parte de los cesionarios de la misma. Usted no puede sublicenciar la obra. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantas. Usted no puede reproducir, distribuir o comunicar pblicamente la obra con medidas tecnolgicas que controlen el acceso o uso de la obra de una manera contraria a los trminos de esta licencia. Lo anterior se aplica a una obra en tanto que incorporada a una obra conjunta o base de datos, pero no implica que stas, al margen de la obra objeto de esta
Anexos - 172

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

b.

c.

d.

e.

f.

licencia, tengan que estar sujetas a los trminos de la misma. Si usted crea una obra conjunta o base de datos, previa comunicacin del licenciador, usted deber quitar de la obra conjunta o base de datos cualquier referencia crdito requerido en el apartado 4d, segn lo que se le requiera y en la medida de lo posible. Si usted crea una obra derivada, previa comunicacin del licenciador, usted deber quitar de la obra derivada cualquier crdito requerido en el apartado 4d, segn lo que se le requiera y en la medida de lo posible. Usted puede reproducir, distribuir o comunicar pblicamente una obra derivada solamente bajo los trminos de esta licencia, o de una versin posterior de esta licencia con sus mismos elementos principales, o de una licencia iCommons de Creative Commons que contenga los mismos elementos principales que esta licencia (ejemplo: Reconocimiento-NoComercial-Compartir 2.5 Japn). Usted debe incluir una copia de la esta licencia o de la mencionada anteriormente, o bien su Identificador Uniforme de Recurso (URI), con cada copia o grabacin de la obra que usted reproduzca, distribuya o comunique pblicamente. Usted no puede ofrecer o imponer ningn trmino respecto de las obras derivadas o sus transformaciones que alteren o restrinjan los trminos de esta licencia o el ejercicio de sus derechos por parte de los cesionarios de la misma. Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la ausencia de garantas. Usted no puede reproducir, distribuir o comunicar pblicamente la obra derivada con medidas tecnolgicas que controlen el acceso o uso de la obra de una manera contraria a los trminos de esta licencia. Lo anterior se aplica a una obra derivada en tanto que incorporada a una obra conjunta o base de datos, pero no implica que stas, al margen de la obra objeto de esta licencia, tengan que estar sujetas a los trminos de esta licencia. Usted no puede ejercitar ninguno de los derechos cedidos en la seccin 3 anterior de manera que pretenda principalmente o se encuentre dirigida hacia la obtencin de un beneficio mercantil o la remuneracin monetaria privada. El intercambio de la obra por otras obras protegidas por la propiedad intelectual mediante sistemas de compartir archivos no se considerar como una manera que pretenda principalmente o se encuentre dirigida hacia la obtencin de un beneficio mercantil o la remuneracin monetaria privada, siempre que no haya ningn pago de cualquier remuneracin monetaria en relacin con el intercambio de las obras protegidas. Si usted reproduce, distribuye o comunica pblicamente la obra o cualquier obra derivada, conjunta o base datos que la incorpore, usted debe mantener intactos todos los avisos sobre la propiedad intelectual de la obra y reconocer al autor original, de manera razonable conforme al medio o a los medios que usted est utilizando, indicando el nombre (o el seudnimo, en su caso) del autor original si es facilitado, y/o reconocer a aquellas partes (por ejemplo: institucin, publicacin, revista) que el autor original y/o el licenciador designen para ser reconocidos en el aviso legal, las condiciones de uso, o de cualquier otra manera razonable; el ttulo de la obra si es facilitado; de manera razonable, el Identificador Uniforme de Recurso (URI), si existe, que el licenciador especifica para ser vinculado a la obra, a menos que tal URI no se refiera al aviso sobre propiedad intelectual o a la informacin sobre la licencia de la obra; y en el caso de una obra derivada, un aviso que identifique el uso de la obra en la obra derivada (e.g., "traduccin castellana de la obra de Autor Original," o "guin basado en obra original de Autor Original"). Tal aviso se puede desarrollar de cualquier manera razonable; con tal de que, sin embargo, en el caso de una obra derivada, conjunta o base datos, aparezca como mnimo este aviso all donde aparezcan los avisos correspondientes a otros autores y de forma comparable a los mismos. Para evitar la duda, sin perjuicio de la preceptiva autorizacin del licenciador, y especialmente cuando la obra se trate de una obra audiovisual, el licenciador se reserva el derecho exclusivo a percibir, tanto individualmente como mediante una entidad de gestin de derechos, o varias, (por ejemplo: SGAE, Dama, VEGAP), los derechos de explotacin de la obra, as como los derivados de obras derivadas, conjuntas o bases de datos, si dicha explotacin pretende principalmente o se encuentra dirigida hacia la obtencin de un beneficio mercantil o la remuneracin monetaria privada. En el caso de la inclusin de la obra en alguna base de datos o recopilacin, el propietario o el gestor de la base de datos deber renunciar a cualquier derecho relacionado con esta inclusin y concerniente a los usos de la obra una vez extrada de las bases de datos, ya sea de manera individual o conjuntamente con otros materiales.

5. Exoneracin de responsabilidad A MENOS QUE SE ACUERDE MUTUAMENTE ENTRE LAS PARTES, EL LICENCIADOR OFRECE LA OBRA TAL CUAL (ON AN "AS-IS" BASIS) Y NO CONFIERE NINGUNA GARANTA DE CUALQUIER TIPO RESPECTO DE LA OBRA O DE LA PRESENCIA O AUSENCIA DE ERRORES QUE PUEDAN O NO SER DESCUBIERTOS. ALGUNAS JURISDICCIONES NO PERMITEN LA EXCLUSIN DE TALES GARANTAS, POR LO QUE TAL EXCLUSIN PUEDE NO SER DE APLICACIN A USTED. 6. Limitacin de responsabilidad. SALVO QUE LO DISPONGA EXPRESA E IMPERATIVAMENTE LA LEY APLICABLE, EN NINGN CASO EL LICENCIADOR SER RESPONSABLE ANTE USTED POR CUALQUIER TEORA LEGAL DE CUALESQUIERA DAOS RESULTANTES, GENERALES O ESPECIALES (INCLUIDO EL DAO EMERGENTE Y EL LUCRO CESANTE), FORTUITOS O CAUSALES, DIRECTOS O INDIRECTOS, PRODUCIDOS EN CONEXIN CON ESTA LICENCIA O EL USO DE LA OBRA, INCLUSO SI EL LICENCIADOR HUBIERA SIDO INFORMADO DE LA POSIBILIDAD DE TALES DAOS.
Anexos - 173

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

7. Finalizacin de la licencia a. Esta licencia y la cesin de los derechos que contiene terminarn automticamente en caso de cualquier incumplimiento de los trminos de la misma. Las personas o entidades que hayan recibido obras derivadas, conjuntas o bases de datos de usted bajo esta licencia, sin embargo, no vern sus licencias finalizadas, siempre que tales personas o entidades se mantengan en el cumplimiento ntegro de esta licencia. Las secciones 1, 2, 5, 6, 7 y 8 permanecern vigentes pese a cualquier finalizacin de esta licencia. b. Conforme a las condiciones y trminos anteriores, la cesin de derechos de esta licencia es perpetua (durante toda la vigencia de los derechos de propiedad intelectual aplicables a la obra). A pesar de lo anterior, el licenciador se reserva el derecho a divulgar o publicar la obra en condiciones distintas a las presentes, o de retirar la obra en cualquier momento. No obstante, ello no supondr dar por concluida esta licencia (o cualquier otra licencia que haya sido concedida, o sea necesario ser concedida, bajo los trminos de esta licencia), que continuar vigente y con efectos completos a no ser que haya finalizado conforme a lo establecido anteriormente. 8. Miscelnea a. Cada vez que usted explote de alguna forma la obra, o una obra conjunta o una base datos que la incorpore, el licenciador original ofrece a los terceros y sucesivos licenciatarios la cesin de derechos sobre la obra en las mismas condiciones y trminos que la licencia concedida a usted. b. Cada vez que usted explote de alguna forma una obra derivada, el licenciador original ofrece a los terceros y sucesivos licenciatarios la cesin de derechos sobre la obra original en las mismas condiciones y trminos que la licencia concedida a usted. c. Si alguna disposicin de esta licencia resulta invlida o inaplicable segn la Ley vigente, ello no afectar la validez o aplicabilidad del resto de los trminos de esta licencia y, sin ninguna accin adicional por cualquiera las partes de este acuerdo, tal disposicin se entender reformada en lo estrictamente necesario para hacer que tal disposicin sea vlida y ejecutiva. d. No se entender que existe renuncia respecto de algn trmino o disposicin de esta licencia, ni que se consiente violacin alguna de la misma, a menos que tal renuncia o consentimiento figure por escrito y lleve la firma de la parte que renuncie o consienta. e. Esta licencia constituye el acuerdo pleno entre las partes con respecto a la obra objeto de la licencia. No caben interpretaciones, acuerdos o trminos con respecto a la obra que no se encuentren expresamente especificados en la presente licencia. El licenciador no estar obligado por ninguna disposicin complementaria que pueda aparecer en cualquier comunicacin de usted. Esta licencia no se puede modificar sin el mutuo acuerdo por escrito entre el licenciador y usted.

GNU General Public License, Free Software Foundation


The GNU General Public License is a Free Software license. Like any Free Software license, it grants to you the four following freedoms: 0. The freedom to run the program for any purpose. 1. The freedom to study how the program works and adapt it to your needs. 2. The freedom to redistribute copies so you can help your neighbor. 3. The freedom to improve the program and release your improvements to the public, so that the whole community benefits. You may exercise the freedoms specified here provided that you comply with the express conditions of this license. The principal conditions are: You must conspicuously and appropriately publish on each copy distributed an appropriate copyright notice and disclaimer of warranty and keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of the GNU General Public License along with the Program. Any translation of the GNU General Public License must be accompanied by the GNU General Public License. If you modify your copy or copies of the program or any portion of it, or develop a program based upon it, you may distribute the resulting work provided you do so under the GNU General Public License. Any translation of the GNU General Public License must be accompanied by the GNU General Public License. If you copy or distribute the program, you must accompany it with the complete corresponding machinereadable source code or with a written offer, valid for at least three years, to furnish the complete corresponding machine-readable source code. Any of the above conditions can be waived if you get permission from the copyright holder.

Anexos - 174

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Anexo VII - Manual de Usuario


Introduccin

Si observamos con detenimiento el funcionamiento de cualquier plataforma robtica, podremos distinguir, desde el punto de vista del control, dos tipos principales claramente diferenciados. Por un lado tendremos aquellos robots que se autogestionan, operando de forma autnoma, y por otro, aquellos que se controlan remotamente, obedeciendo las rdenes que reciben en cada momento. En el caso de los robots autnomos, podemos distinguir diferentes necesidades que hacen que stos modelos autocontrolados sean muy utilizados hoy en da. El principal motivo para utilizar un robot autogestionado es la necesidad de robot que lleven a cabo tareas repetitivas que una vez programadas nunca varian en su funcionamiento, como podemos ver en la mayora de las fbricas y cadenas de montaje. Otro campo en el que predominan los robots autnomos es el de la inteligencia artificial, en el que se busca que el propio robot acte como un agente inteligente y sea capaz de realizar tareas complejas, que no siempre se repiten y en las que, adems, el entorno que rodea al robot cambia de forma que sea necesario que el robot se adapte a stos cambios. Los robots teleoperados se caracterizan por permitir que un operador controle las funciones del robot, indicando al robot que movimientos debe realizar y supervisando la informacin del entorno que recogen los sensores que incorpore el robot. El hecho de dotar a un robot de la posibilidad de recibir rdenes no tiene porque implicar que todos sus movimientos tengan que ser necesariamente ordenados por un usuario, sino que puede funcionar de forma autnoma en la que el control por parte del usuario slo sea necesario en ciertos momentos para cubrir funciones que no estn soportadas por el control automtico. Si nos adentramos en el mundo de los robots exploradores, veremos que casi todos ellos disponen de algn modo de control remoto, aunque sea en funciones muy limitadas y en un nmero muy reducido si las comparamos con aquellas que el robot puede realizar de forma autnoma. Centrndonos en el software de control desarrollado para la plataforma robtica R4P, veremos que conjuga de forma equitativa ambos puntos de vista ya que, aunque la mayora de los movimientos son realizados de forma autnoma por el robot, dichos movimientos son ordenados por el usuario que est controlando el robot a travs del software que daremos a conocer a lo largo de ste documento.

Anexos - 175

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Primer contacto y tipos de Elementos

La aplicacin de control de R4P se ha concebido teniendo en mente la versatibilidad. En ningn momento se pens en realizar una aplicacin demasiado especfica orientada a un nico aspecto de la robtica, todo lo contrario, se ha diseado teniendo la conviccin de que podra abarcar tantos modos de utilizacin como fueran necesarios. Esto se consigue a travs de la modularidad, de separar las funciones que realiza unas de otras tanto como sea posible, es algo que se puede ver a simple vista nada ms iniciar la aplicacin.

Si observamos la figura, veremos que los elementos que la forman estn agrupados en varios bloques, lo que indica que para realizar alguna funcin slo es necesario utilizar los elementos que estn dentro de un grupo en concreto. Ms adelante veremos en detalle cada elemento y cada grupo de elementos, as como las funciones que permiten llevar a cabo y como realizarlas. La aplicacin tiene como objetivos principales, hasta el momento, dos modos de uso principales: la monitorizacin y el control de un robot. Como monitorizacin debemos entender el seguimiento de un robot, sin necesidad de llegar a manipularlo, y como control justamente lo contrario, permitir manejar el robot y decidir que operaciones debe realizar, sin necesidad de tener en cuenta el entorno en el que se encuentra. Aunque, como se puede apreciar en la imagen, se ha tenido especial cuidado en la usabilidad para llegar a conseguir un interfaz grfico que permita ldominar la aplicacin sin necesidad de ninguna explicacin a continuacin veremos en detalle los elementos principales que conforman el interfaz, una clasificacin de stos elementos en funcin del uso que podemos darles y una explicacin sobre los usos que se le pueden dar a la aplicacin.
Anexos - 176

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Elementos Principales

En ste apartado veremos los tipos de elementos que debemos conocer a la hora de utilizar la aplicacin. Todos los elementos que se comentan son elementos grficos, seguramente conocidos por todos los usuarios, pero que se comentarn brevemente para que no haya dudas sobre su uso o sobre las explicaciones que se den de ellos en partes ms avanzadas del manual.
Botones

El tipo de elemento que ms prolifera en la aplicacin es el botn, prcticamente la totalidad de las operaciones se pueden realizar utilizando nicamente botones. Para muestra dejaremos una imagen que ilustra ste tipo de elemento.

Sliders

Existen varios elementos de ste tipo en la interfaz de la aplicacin, se utilizan para asignar valores numricos de una forma ms cmoda y poder llegar a prescindir del uso del teclado. Existen dos formas bsicas de ajustar un valor utilizando un slider, una de ellas es arrastrar el indicador del valor seleccionado y otra consiste en pinchar cualquier parte de la barra de desplazamiento para desplazarla de forma ms rpida a la posicin deseada. En la aplicacin se utilizan sliders para asignar valores en el editor de secuencias, tanto para asignar el instante de la secuencia en el que nos encontramos como para asignar el valor de cada uno de los servomotores. En la figura podemos ver el aspecto del slider utilizado para el desplazamiento temporal recuadrado en rojo para mayor detalle.

Spinners

Los spinners suelen utilizarse de forma conjunta a los sliders complementndose entre ambos tipos de elementos. Son similares a un cuadro de texto pero con un par de diminutas flechas que permiten incrementar el valor que contienen. En la aplicacin se utilizan en los mismo casos que se utilizan los sliders permitiendo que el valor que queramos seleccionar pueda ser seleccionado usando un slider, ajustando el valor en detalle con las flechas del spinner o introducin directamente mediante el teclado en la zona del spinner dedicada a tal efecto. En la imagen podemos observar el spinner de la barra temporal recuadrado en rojo para que se distinga ms facilmente.

Anexos - 177

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Clasificacin de Elementos

A continuacin veremos en detalle cada uno de los grupos de elementos que figuran en la interfaz desde el punto de vista de la funcionalidad. Distinguiremos que elementos se agrupan para llevar a cabo ciertas funciones del tipo, permitiendo as una mayor usabilidad y comodidad a la hora de utilizar la aplicacin.
Elementos de Control

El objetivo de los elementos de ste grupo es controlar el robot indicndole que acciones debe realizar. Veamos una imagen del grupo y comentemos el uso de cada uno de los elementos que se incluyen.

Anexos - 178

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Ahora vayamos viendo los principales elementos y comentemos las rdenes que permite dar al robot. Elemento grfico Funcin Las indicaciones grficas son perfectamente comprensibles, stos botones nos permiten indicar al robot en qu direccin queremos que se mueva. Al ser una aplicacin orientada a un control bsico se cubren las 4 direcciones principales: adelante, atrs/detener, izquierda y derecha.

ste es uno de los elementos grficos que varian su representacin grfica en funcin del estado del robot. ste botn se utiliza para provocar una parada de emergencia, de forma que podamos detener por completo el robot incluso en mitad de un movimiento. Si volvemos a pulsar el botn el robot seguir con el movimiento que estaba realizando.

Otro elemento que modifica su aspecto, permite llevar el robot desde la posicin de inicio (plegado) a la posicin base desde la que podr realizar ms movimientos. Tambin permite realizar el movimiento contrario, pasando de la posicin base a la posicin de inicio.

Ordena al robot que pase a una posicin experimental en la que se demuestra su capacidad para colocarse sobre dos patas, lo que le permite esquivar obstculos importantes.

stos dos botones se han reservado para realizar funciones de demostracin del robot. No olvidemos que se trata de una aplicacin que permitira controlar robots de varios tipos, no solamente robots cuadrpedos. Las funciones de demostracin varan mucho de un robot a otro.

ste elmento permite un control ms debug del robot al


Anexos - 179

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

permitir enviar, directamente, un comando al robot. Es de gran utilidad cuando se est trabajando en la implementacin de funciones internas del robot.

Elementos de Sensores

El grupo de elmentos de sensores nos permite conocer en todo instante la informacin que recibe el robot de su entorno.

Como podemos ver, tenemos cuatro elementos muy similares entre si, cada uno de ellos representa el valor de los tres sensores que incorpora R4P. Los dos elementos en la parte superior reprentan la inclinacin del cuerpo del robot en los ejes X e Y, mientras que los dos en la parte inferior representan, de izquierda a derecha, el valor de la brjula digital y del sensor de distancia. Podemos interactuar con ellos para habilitar o deshabilitar cada uno de stos cuatro elementos pinchando sobre la etiqueta que indica su estado de Conectado o Desconectado para intercambiar entre stos dos estados.

Anexos - 180

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

En el caso de la figura anterior, no recibiramos ninguna informacin sobre los datos recogidos por los sensores, de hecho, no sera siquiera necesario que el robot los incorporase. Ahora bien, tambin es posible que no nos interese tener la informacin sobre la inclinacin del robot, pero si su orientacin y si existe algn obstculo prximo a l. En ese caso podramos optar por una configuracin como al de la figura que aparece a continuacin.

Elementos de Conectividad

Es el grupo con menos elementos a utilizar, an as es un grupo imprescindible, ya que nos permite establecer una comunicacin con el robot y conocer el estado de sta conexin.

Anexos - 181

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Como podemos ver, nicamente cuenta con un botn que nos permitir iniciar un proceso de conexin con el robot. Adems cuenta con un par de adornos grficos como el logo de la aplicacin y el escudo de la universidad donde se ha desarrollado el proyecto. meros adornoos? No especficamente, en la siguiente captura podemos ver como el color del logotipo de la aplicacin ha cambiado su color al verde para indicarnos de una forma fcil de distinguir que nos encontramos conectados al robot.

Un nuevo click en el botn Conectar interrumpir la conexin establecida, haciendo que el logo vuelva a su color original.

Anexos - 182

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Elementos de Secuencias

ste es uno de los grupos ms complejos y que mayor cantidad de elementos utilizables incluye. ste grupo se utiliza para definir secuencias de movimientos que posteriormente podrn ser guardas en un fichero, cargadas y enviadas al robot para poder comprobar su funcionamiento real. Veamos, de forma general, el aspecto de ste grupo en la siguiente imagen.

A simple vista distinguimos tres partes principales dentro de ste mismo grupo: la linea temporal, los valores de posiciones y el conjunto de botones. Vemoslos en mayor detalle:
Lnea Temporal

ste elemento nos permite elegir el instante de la secuencia en la que vamos a asignar valores a los servomotores que mueven el robot.

Como vemos, est formada con un slider y un spinner que colaboran para permitir seleccionar un instante exacto con un total precisin. Adems, disponemos de un botn que nos permitir, una vez asignados los valores de las posiciones, marcar stos valores como fijados para ste instante de la secuencia.

Anexos - 183

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Valores de Posiciones

Consta de un conjunto de doce pares de slider y spinner que nos permiten asignar un valor a cada uno de los doce servomotores que mueven el robot R4P.

Una vez pulsado el botn de asignacin en la lnea temporal, los valores que se encuentren marcados en stos elementos se guardarn, asocindose al instante que indica el marcador temporal antes comentado.
Conjunto de Botones

A la derecha del editor de secuencia podemos observar un grupo de botones que, como sus nombres indican, permiten realizar las operaciones principales del editor: cargar, guardar y enviar la secuencia al robot.

Anexos - 184

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Los tres botones de la zona superior, tienen funciones especficas para hacer ms sencilla la edicin de la secuencia, permitiendo movernos por los distintos instantes marcados de una forma mcho ms cmoda. Veamos cuales son stas ventajas. Elemento grfico Funcin Cada vez que se pulsa ste botn, nos mueve al instante siguiente en el que hemos introducido una serie de valores, de sta forma moverse entre los distintos instantes es mucho ms cmodo. Realiza la misma funcin que el botn anterior, pero nos llega al instante anterior en vez de al siguiente Inicia una reproduccin de la secuencia, de forma que podremos ver como las barras de valor de posicin van modificando su valor para que podamos ver, de forma simulada, como fluira el movimento. Una vez que hemos editado una secuencia y deseamos almacenarla para poder retomarla en otro momento o queremos enviarla a otro desarrollador o continuar editndola en otro equipo, nos basta con pulsar en el botn etiquetado como Save y elegir el nombre de fichero que queremos utilizar en la ventana de dilogo que aparecer, similar a la que vemos a continuacin

Anexos - 185

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Nos permitir movernos entre los distintos directorios, viendo los ficheros que contienen e introducir un nombre para nuestro fichero de secuencia. Cuando decidamos continuar con la edicin de la secuencia, podremos cargar el trabajao almacenado con tan slo pulsar en el botn etiquetado como Load y seleccionando el fichero que contiene la secuencia en la ventana de dilogo.

Si todo ha ido bien, obtendremos el mensaje que nos indicar que la secuencia se ha cargado de forma correcta. Vemos que contamos con un botn ms, etiquetado como Reset, que nos permitir eliminar todas las posiciones de la secuencia y dejarla como se encontraba antes de cambiar ningn valor. Una vez reseteada la secuancia se nos mostrar un mensajes confimndonos que ninguna posicin permanece alterada.

Anexos - 186

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Elementos de Configuracin

En la zona donde se encuentra el editor de secuencias podemos ver que hay una serie de pestaas o tabs que permiten llegar a la zona de configuracin de la aplicacin. Bsicamente hay dos partes de la configuracin: la configuracin de comunicaciones y la configuracin de idioma.
Elementos de Configuracin de Comunicaciones

En sta parte configuraremos el tipo de conexin que queremos utilizar para comunicarnos con el robot que vayamos a controlar.

Como podemos ver, hay tres medios de comunicacin soportados: bluetooth, puerto serie y puerto usb.
Bluetooth

El bluetooth es el medio de conexin sobre el que ms se ha trabajo durante la realizacin de la aplicacin, es por ello que su soporte est ms avanzado que el de puerto serie o puerto usb. Como podemos ver en sta imagen, en la que aparece recuadrada la parte que nos interesa, podemos configurar varios elementos, como la direccin del disposivito bluetooth del robot, si la conexin precisa de autenticacin, de cifrado o de modo maestro por parte de la aplicacin.

Anexos - 187

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Puerto Serie

El puerto de serie es una de esas grandes leyendas que an perduran en el mundo de la robtica y pese a que su uso hoy en da no est tan extendido, nos parece imprescindible seguir ofrecindolo como una opcin en ste tipo de software.

Como vemos en la figura superior, los valores que se permiten configurar para ste tipo de conexin son muy detallados, llegando a poder moficiar cualquier valor del puerto utilizado para establecer la conexin.
Puerto USB

El heredero del puerto de serie es otra opcin que no se puede pasar por alto y, aunque su configuracin es muy sencilla, es una forma ms de comunicarnos con el hardware del robot que queramos controlar.

Para todas las configuraciones de comunicaciones disponemos de tres botones comunes, etiquetados como Apply Configuration, Reset Configuration y Test Configuration que nos permitirn guardar
Anexos - 188

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

los cambios realizados en las opciones de conexin, volver a los valores por defecto y probar la configuracin configurada.
Elementos de Configuracin de Idioma

Se ha dotado a la aplicacin de soporte para mltiples idiomas, de forma que en la pestaa contigua a la configuracin de las comunicaciones encontraremos un pequeo men desplegable en el que aparecern los idiomas disponibles en ese momento.

bastar con seleccionar en dicho desplegable el idioma que prefiramos y pulsar en el botn etiquetado como Apply Configuration para poder difrutar de la aplicacin en el idioma que nos resulte ms cmodo.

stos idiomas se encuentran almacenados en ficheros de texto convencionales, de forma que si un idioma no se encuentra disponible, el propio usuario pueda realizar una rpida traduccin que pueda ser incluida en el repertorio de idiomas disponibles.

Anexos - 189

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Elementos de Representacin Grfica de Movimiento

La interfaz no slo consta de elementos con los que se puede interactuar, los elementos grficos que muestran informacin pueden ser tan tiles como aquellos que nos permiten realizar operaciones. Como muestra de sto se ha incluido una representacin grfica de los movimientos que realiza el robot en cada momento. A travs de sta grfica se pueden seguir casi en tiempo real los movimientos de los servomotores.

En la tabla siguiente se indica la correspondencia entre los clores y el nmero del servomotor que representa. Servomotor
Servomotor 1 Servomotor 2 Servomotor 3 Servomotor 4 Servomotor 5 Servomotor 6 Servomotor 7 Servomotor 8 Servomotor 9 Servomotor 10 Servomotor 11 Servomotor 12

Color
RED GREEN YELLOW BLACK BLUE CYAN DARK GRAY GRAY LIGHT GRAY MAGENTA ORANGE PINK

Anexos - 190

Diseo, Construccin y Desarrollo de la Mecnica, Electrnica y Software de Control del Robot Cuadrpedo R4P v3i.

Funcionalidades

A continuacin describiremos brevemente los principales usos que se pueden hacer de la aplicacin segn los objetivos que tengamos a la hora de controlar nuestro robot.
Funciones de Monitorizacin

El modo de monitorizacin consiste solamente en supervisar el movimiento del robot, de forma que recibamos la informacin de los sensores del robot, para conocer el estado del entorno, los valores de los servomotores del robot, para poder saber que movimiento est realizando, cuando se sale del movimiento programado, si algn servomotor est fallando, etc... En ste modo no enviaremos ninguna seal al robot desde la interfaz, con lo que ser necesario que el hardware del robot incluya instruccin para que el robot realice las funciones deseadas. Claros ejemplos de ste tipo de progamacin son ejemplos sencillo que se pueden realizar con los sensores incluidos en R4P: deteccion de obstculos, estabilizacin automtica, exploracin de espacios, seguimiento de objetos, etc...
Funciones de Control

El modo de control consiste en indicar al robot que acciones queremos que realice en cada momento, para llevar a cabo sto slo necesitaremos los elementos del grupo de control, en caso de que las operaciones que queramos ordenar al robot estn predefinidas. Es el caso general en el que lo que queremos es desplazar al robot de un lugar a otro, probar la reaccin de los sensores mientras el robot est en movimiento, comprobar el funcionamiento de los servomotores, realizar exhaustivas pruebas sobre el hardware, el software y la conexin con el robot, etc...
Funciones de Edicin

Una de las principales ventajas de ste interfaz de control es que nos permite modificar la posicin de los servomotores de forma individual. sto supone una gran ventaja a la hora de programar el robot, ya que, en lugar de necesitar modificar el cdigo fuente del software embebido en el hardware del robot, podemos disear una secuencia para, por ejemplo, caminar desde el propio interfaz de control, enviarla al robot para su reproduccin y, una vez probada, exportarla a un fichero. De ste modo esa secuencia para caminar estar siempre disponible para ejecutarse desde la interfaz de control, sin necesidad de almacenarla en el software embebido. En el caso de funciones bsicas, como el ejemplo de caminar, puede resultar ms interesante que se encuentren incluidas directamente en el robot, sin que dependan de la conexin con la interfaz para poder realizarse. Pero si tenemos en cuenta las enormes secuencias de movimientos que podemos almacenar en un ordenador comn, aparece la ventaja del editor de secuencias.

Anexos - 191

Você também pode gostar