ESCUELA TÉCNICA TÉCNICA SUPERIOR DE INGENIERÍA INGENIERÍA DE BILBAO
PROYECTO DE
IMPLEMENTACIÓN DEL SISTEMA DE CONTROL DEL ROBONOVA-1 PARA LA COMPETICIÓN EN CEABOT 2009
Documento nº 1
- MEMORIA
Alumno Retamosa García, Asier Fecha
Noviembre 2009
Firma
Profesor Cátedra
Sr. Ispizua Anduiza
Profesor Ponente
Referencia
Sra. Cabanes Axpe
IA.09.721.CX
Curso Académico
2008/2009
Índice 1.
Objeto................................ Objeto............................................ ....................... ...................... ...................... ....................... ....................... ........... 1
1.1
Introducció Introducción..................... n...................................... .................................. .................................. .................................. ..................... .... 1
1.2
Objetivos Objetivos................. .................................. .................................. ................................... ................................... ............................. ............11
1.3
Justificac Justificación ión del proyecto..... proyecto...................... .................................. .................................. ................................6 ...............6
1.3.1
Ámbito Ámbito tecnológico..................... tecnológico................................ ....................... ....................... ...................... ............... 6
1.3.2
Ámbito Ámbito social social ....................... .................................. ...................... ...................... ....................... ..................... ......... 7
2.
Alcance.......... Alcance..................... ...................... ....................... ....................... ...................... ...................... ....................... ..................... ......... 8
3.
Antecedent Antecedentes es........... ...................... ....................... ....................... ...................... ...................... ....................... ..................... ......... 9
4.
Normas y referencia referencias s ...................... .................................. ....................... ...................... ....................... ................. ..... 12
4.1
Norma Norma UNE UNE-EN -EN 62115............ 62115............................. .................................. .................................. .............................. .............12 12
4.1.1
Objeto y campo de aplicación ........................ ........... .......................... ......................... ............ 12
4.1.2
Requisitos Requisitos de la norma................. norma............................ ...................... ....................... ..................... ......... 12
4.2
Referenci Referencias as................ ................................. .................................. .................................. ................................... ......................... ....... 17
5.
Definicione Definiciones s y abreviatura abreviaturas s ...................... ................................. ...................... ....................... ................... ....... 19
6.
Requisitos Requisitos de Diseño Diseño ...................... .................................. ....................... ...................... ....................... ................. ..... 21
7.
Análisis Análisis de las soluciones............. soluciones........................ ...................... ...................... ....................... ................... ....... 22
7.1
Introducció Introducción..................... n...................................... .................................. .................................. .................................. ..................... 22
7.2
Sensores Sensores .................................. ................................................... ................................... ................................... ........................... ..........22 22
7.2.1
Detección Detección de distancia distanciass ...................... .................................. ....................... ...................... ............... 22
7.2.2
Detección Detección de inclinació inclinación............... n.......................... ...................... ....................... ..................... ......... 24
7.2.3
Visión Visión ...................... .................................. ....................... ...................... ...................... ....................... ................... ....... 26 I
7.3
Entorno Entorno de programac programación ión................ ................................. .................................. .................................. ..................... 28
7.4
Complemen Complementos..... tos....................... ................................... .................................. .................................. .............................. .............28 28
7.5
Criterios Criterios de selección selección ................................. .................................................. ................................... ......................... ....... 29
7.5.1
Detección Detección de distancia distanciass ...................... .................................. ....................... ...................... ............... 29
7.5.2
Detección Detección de inclinació inclinación............... n.......................... ...................... ....................... ..................... ......... 29
7.5.3
Visión Visión ...................... .................................. ....................... ...................... ...................... ....................... ................... ....... 30
7.5.4
Entorno Entorno de programac programación ión........... ...................... ....................... ....................... ...................... ........... 30
7.5.5
Complemen Complementos tos ..................... ................................. ....................... ...................... ....................... ................. ..... 30
7.6 8.
Selección Selección de la solución solución ................................ ................................................. .................................. ...................... ..... 30 Resultados Resultados finales................ finales........................... ....................... ....................... ...................... ....................... ................. ..... 32
8.1
Solución Solución adoptada adoptada ................................. .................................................. .................................. .............................. .............32 32
8.1.1
Sistemas Sistemas del robot humanoide..................... humanoide...................................... .................................. ..................... 32
8.1.2
Software Software empleado.................... empleado..................................... .................................. .................................. ...................... ..... 39
8.1.3
Software Software de control control ................................. .................................................. ................................... ......................... ....... 45
9.
Planificació Planificación n ..................... ................................. ....................... ...................... ...................... ....................... ..................... ......... 53
9.1
Fases Fases ................................... .................................................... .................................. .................................. ................................. ................53 53
9.1.1 FASE 1. Montaje del robot humanoide con sensores y complement complementos os........... ....................... ....................... ...................... ...................... ....................... ....................... ...................... ............... 53 9.1.2
FASE 2. Estudio y elección de estrategias..................... estrategias......... .................... ........ 53
9.1.3
FASE 3. Diseño, desarrollo desarrollo y depuración del software ........... 54
9.1.4
FASE 4. Mejora del software desarrollad desarrolladoo ....................... .............................. ....... 55
9.1.5
FASE 5. Pruebas finales finales y aceptació aceptaciónn ....................... .................................. ............... 55
II
9.2
Duración Duración Total Total .................................. ................................................... .................................. .................................. ..................... 56
9.3
Hitos ................................. .................................................. .................................. .................................. .................................. ..................... 56
9.4
Diagrama Diagrama de Gantt......................... Gantt.......................................... .................................. .................................. ...................... ..... 56
9.5
Recursos Recursos Materiale Materiales...................... s....................................... .................................. .................................. ...................... ..... 57
9.5.1
Recursos Recursos hardware hardware ...................... ................................. ...................... ....................... ..................... ......... 57
9.5.2
Recursos Recursos software......... software.................... ...................... ....................... ....................... ...................... ............... 58
9.5.3
Documentos Documentos ...................... ................................. ...................... ...................... ....................... ..................... ......... 58
9.6 10.
Recursos Recursos Humanos............................. Humanos.............................................. .................................. ................................. ................58 58 Riesgos Riesgos del proyecto proyecto ...................... ................................. ....................... ....................... ...................... ........... 59
III
IA.09.721.CX
Objeto
1. Objeto 1.1
Introducción
Robonova-1 es un kit comercial de robot humanoide con 16 articulaciones y una estructura de aluminio y plástico con el que se consigue un robot de 30,5 cm de altura y 1,3 Kg de peso, al que habrá que dotar de los sensores y dispositivos necesarios para superar unas pruebas, así como de la programación óptima para obtener el mayor rendimiento del robot. 1.2
Objetivos
El objetivo de este proyecto consiste en el desarrollo de un robot humanoide, a partir del kit Robonova-1, y su correspondiente sistema de control para participar en el concurso de robots humanoides CEABOT 2009, organizado por el Comité Español de Automática para alumnos de grado y postgrado de las universidades españolas. Así mismo, al margen de dicho concurso el robot deberá superar una prueba en la que sea capaz de discernir entre obstáculos de diferente color. La finalidad del concurso es mostrar las habilidades que cada robot humanoide posee mediante la realización de dos pruebas que serán realizadas por separado: Movilidad y Sumo.
Prueba 1: Movilidad La prueba se divide en dos carreras, con distinto nivel de dificultad. En la primera carrera, los robots irán desde un extremo del campo al otro, y vuelta al punto de partida, caminando de cara. El robot deberá esquivar los obstáculos existentes, sin tirarlos ni desplazarlos de su posición. En la segunda carrera, los robots deberán alcanzar la Zona de Llegada Parcial superando una serie de escalones de subida y de bajada.
1
IA.09.721.CX
Objeto
El campo de pruebas es una superficie nivelada, plana y rígida, de 2,5 m. de largo por 2 m. de ancho. El color de la superficie será verde y homogéneo en la medida de lo posible. El campo está dividido por líneas blancas en tres zonas. Alrededor del campo habrá una pared de 50 cm. de altura y 1 cm. de grosor, de color blanco. El campo estará iluminado con luz artificial de interior, que será lo más uniforme posible.
Figura 1.1 Esquema del campo
Figura 1.2 Esquema de la escalera o
Nivel 1: Los robots saldrán desde la zona central, situada en la Zona de Salida, debiendo llegar a la Zona de Llegada Parcial. Una vez allí, el robot deberá darse la vuelta de forma autónoma e iniciar el proceso de vuelta, una vez haya pasado la línea de la Zona de Llegada Parcial. Los jueces decidirán la posición de los obstáculos a esquivar, antes de cada uno de los dos intentos de los que disponen los equipos. La configuración de los obstáculos, será igual para todos los equipos en cada intento. 2
IA.09.721.CX
Objeto
Habrá un máximo de 6 obstáculos paralepípedos rectángulos, cuyas medidas serán de 25x25x50 cm (base x altura) y su color será blanco. o
Nivel 2: En este nivel de dificultad se añade una escalera al escenario del nivel 1, una vez retirados los obstáculos. Para superar el nivel 2, los robots deberán alcanzar la Zona de Llegada Parcial superando una serie de escalones de subida y de bajada. Se puntuará tanto el número de escalones superados como el tiempo empleado. Los jueces decidirán la colocación de la escalera antes de cada ronda de intentos, teniendo en cuenta que uno de los extremos deberá cubrir completamente una de las líneas sin sobrepasarla y se deberá ajustar lateralmente a una de las paredes del campo. Las escaleras tendrán unos escalones de 3 cm de altura y de longitud 25, 15 y 50 cm Además las escaleras, tendrán un ancho de 100 cm. Los robots deberán subir y bajar la escalera caminando, no siendo permitido ningún tipo de salto o acrobacia. La escalera solo se recorre en un sentido, siendo éste elegido por los jueces. En caso que el robot caiga y no pueda levantarse, el representante del equipo colocará el robot siempre sobre el peldaño desde dónde ha caído.
El tiempo máximo de cada carrera es de 5 minutos. El tiempo comenzará a contar cuando el robot, después de realizar la pausa de 5 segundos, se ponga en movimiento. Se considera que el robot ha terminado un parcial cuando haya cruzado completamente la línea de final de ese tramo
3
IA.09.721.CX
Objeto
Se obtendrá una penalización por cada manipulación del robot, y por desplazar o tirar los obstáculos a sortear. Se considerará que se ha desplazado un obstáculo, cuando se haya movido su centro más de 5 cm.
Prueba 2: Sumo En la prueba luchan dos robots de dos equipos diferentes, dentro del Área de Combate, para obtener puntos efectivos, llamados puntos Yuhkoh. Se denomina Área de Combate a la tarima de juego (Ring). Cualquier espacio fuera del Área de Combate se denomina Área Exterior, que deberá ser de al menos 1 m alrededor del Ring. El Ring será circular, de color verde, homogéneo en la medida de lo posible y de 150 cm de diámetro. Señalando el límite exterior del Ring, habrá una línea blanca o amarilla circular de 5 cm de ancho. En el centro del Ring habrá dos líneas paralelas separadas 20 cm, llamadas líneas Shikiri. Las líneas Shikiri serán de color negro de 2 cm. de ancho y 20 cm de largo. Estas líneas marcarán las posiciones iniciales de los robots. El campo estará iluminado con luz artificial de interior, que será lo más uniforme posible.
Figura 1.3 Estructura del Ring
Los combates consistirán en 2 asaltos de 3 minutos cada uno. Entre asalto y asalto habrá un tiempo máximo de 1 minuto. 4
IA.09.721.CX
Objeto
Para el comienzo del combate se llamará a los dos equipos participantes. Se realizarán como máximo tres avisos, y si en el plazo de 1 minuto desde el último aviso uno de los equipos no compareciera se otorgaría directamente la victoria al equipo compareciente. Ganará el combate el robot con más puntos Yuhkoh en el total de los dos asaltos. En caso de empate a puntos, se realizará un asalto extra donde el ganador será el primero que consiga un punto Yuhkoh. De mantenerse el empate, al no puntuar ninguno, los árbitros decidirán el ganador del asalto. Siguiendo las indicaciones de los jueces, los equipos se saludarán en el Área Exterior, a continuación, sólo entrará el responsable del equipo en el Área de Combate y situará el robot inmediatamente detrás de la línea Shikiri, a la derecha o izquierda según decidan los jueces. Cuando el juez lo indique se activarán los robots, que deberán permanecer parados durante 5 segundos. Tras dicha pausa, comenzará el asalto. Únicamente se podrá acceder dentro del Área de Combate cuando el asalto esté parado y/o den permiso los jueces. Cuando el árbitro dé por finalizado el combate, los dos responsables de equipo retirarán los robots del Área de Combate. Se otorgarán puntos Yuhkoh cuando: • El robot contrario toca el espacio fuera del Ring, 1 punto. • El robot contrario toca con alguna mano el suelo sin caer, 1 punto. • El robot contrario cae al suelo por si mismo, m ismo, 1 punto. • Por acumulación de dos violaciones del equipo contrario en el mismo combate, 1 punto. • Por tumbar al robot contrario dentro o fuera del Ring, 2 puntos.
5
IA.09.721.CX
Objeto
Cuando se cumplan varias condiciones, sólo se otorgarán los puntos de una de ellas, siendo ésta la de mayor puntuación. Sólo se otorgarán puntos a uno de los robots a la vez. En caso de duda, se otorgarán al robot que inició la acción. En caso de empate, no se otorgará ningún punto. Cada asalto durará tres minutos, pudiéndose parar y reanudarse hasta agotar el tiempo, cuando: • Cuando el juez otorgue un punto Yuhkoh. • Los dos robots permanezcan 30 s sin moverse. • Los dos robots permanezcan 30 s sin tocarse. • Los dos robots permanezcan 30 s empujándose pero sin que el movimiento favorezca a ninguno de los equipos. Para reanudar el combate, tras cada asalto o tras una pausa, se colocarán de nuevo los robots en las líneas Shikiri. Al margen del concurso de CEABOT 2009, al robot se le incorporará un sistema de visión a partir de una pequeña cámara, que le permita distinguir entre tres obstáculos de diferentes colores, realizando una simple acción en el momento que localiza cada uno de ellos. 1.3
Justificación del proyecto
1.3.1 Ámbito tecnológico La realización de este proyecto esta orientada a la participación en el concurso de CEABOT 2009, siendo la primera vez que la Universidad Pública Vasca acuda a esta cita, en la que se competirá con otras universidades del resto del estado mostrando las mejoras conseguidas en este campo de la robótica. Este concurso tiene una repercusión mediática importante, y es seguido por diversos medios de prensa escrita de tirada nacional.
6
IA.09.721.CX
Objeto
Para todo esto es necesario desarrollar un sistema de control avanzado para un robot humanoide, que sea capaz de controlar todos los servomotores de los que disponga, así como el robot deberá poder adquirir un cierto conocimiento del entorno mediante un sistema de “visión” artificial credo a partir de diversos sensores. De esta forma, el robot podrá adaptar su comportamiento a cada situación, llevándose a cabo un control inteligente del humanoide, lo cual aportará total autonomía al robot.
1.3.2 Ámbito social El desarrollo de los robots humanoides puede conllevar diferentes beneficios de tipo social. Por una parte, cada vez es mayor la incorporación de los humanoides al campo denominado ‘edutainment’, que engloba los ámbitos de la educación y entretenimiento. Es decir, que la robótica se está enfocando hacia la interacción con personas, pudiendo desempeñar actividades como las de guía de eventos, recepcionista, labores asistenciales, etc. Además, tal y como ocurre con la robótica industrial, los robots humanoides pueden realizar tareas repetitivas o que entrañen cierto riesgo para el hombre, aumentando la productividad y obteniendo una calidad elevada.
7
IA.09.721.CX
Alcance
2. Alcance El alcance de este proyecto se acerca al ámbito de la robótica de servicio y de la automatización, desde el montaje del kit comercial del robot humanoide, la mejora de su estructura, su sensorización y por último la implementación del sistema de control que consiga el resultado óptimo. El robot se construirá a partir del kit Robonova-1, y se complementará con dispositivos y sensores compatibles o adaptables a este kit.
8
IA.09.721.CX
Antecedentes
3. Antecedentes El hombre siempre ha soñado con la posibilidad de crear vida de forma artificial. Es por eso que a lo largo de la historia de la humanidad ha existido una gran tradición en la construcción de diversos tipos de sistemas artificiales de apariencia antropomórfica, conocidos entonces como autómatas y desde el siglo XX con el nombre de robots. Durante el siglo XX, XX, y gracias al considerable considerable avance tecnológico, han ido apareciendo numerosos tipos de robots, primero en entornos industriales (brazos robóticos) y en los últimos tiempos, incluso en los hogares. De hecho, la robótica actual se divide en dos grandes áreas: la robótica industrial y la robótica de servicio. Ésta última es un campo emergente, pero con un gran potencial de crecimiento, ya que incluye aplicaciones en servicios personales (asistencia a personas mayores, discapacitados y niños, acompañante y/o sirviente personal, limpieza y seguridad doméstica, etc.), servicios profesionales (limpieza de calles, vigilancia urbana, mantenimiento e inspección de infraestructuras, medicina, construcción, agricultura, etc.) y entretenimiento y educación. Dentro de la robótica de servicio servicio se encuentran los robots robots humanoides, que hicieron su primera aparición como tal a mediados de los años noventa. Se puede definir un humanoide humanoide como aquel robot que que intenta reproducir total o parcialmente la forma y el comportamiento cinemático del ser humano de manera autónoma. Para ello contará con una serie de sensores que le proporcionaran información sobre su propio estado y el de su entorno, y actuadores para generar el movimiento de cada una de sus articulaciones.
Figura 3.1 Robots Hadaly-2 y Prototype Model 1 creados en la década de los 90
9
IA.09.721.CX
Antecedentes
Tras los primeros robots humanoides surgidos durante los 90, en el año 2000 la empresa japonesa Honda creó ASIMO considerada una de las mayores proezas tecnológicas del siglo XXI.
Figura 3.2 ASIMO
Del año 2000 en adelante han surgido nuevas versiones de dicho dispositivo, con el objetivo que se marcó la empresa con la creación de ASIMO de conseguir un robot humanoide capaz de interactuar con las personas y de ayudarles haciéndoles la vida más fácil y agradable, siendo desde entonces una de las referencias ref erencias dentro del campo de los robots humanoides. En la actualidad las últimas investigaciones están orientadas hacia una segunda generación de robots humanoides con el propósito de crear unos robots capaces de interactuar socialmente con los humanos, emulando algunos aspectos de nuestra capacidad cognitiva, así como nuestra presencia física, realizando movimientos como el parpadeo o la simulación de la propia respiración. Algunos de estos ejemplos son el Acroid DER2, Repliee R1, Repliee Q1 o Repliee Q2 desarrollados todos ellos por la universidad de Osaka.
Figura 3.3 Acroid DER2 y Repliee Q2
10
IA.09.721.CX
Antecedentes
Por tanto, se puede decir que el desarrollo de robots humanoides es un campo abierto y en auge, y su estudio e investigación importante, ya que en pocos años la presencia de estos dispositivos en nuestro entorno será una realidad.
11
IA.09.721.CX
Normas y referencias
4. Normas y referencias 4.1
Norma UNE-EN 62115
El Robonova-1 es un robot humanoide de pequeño tamaño, alimentado por una batería de bajo voltaje, cuyo uso está destinado principalmente a aficionados a la robótica, aunque por sus características puede tener una función educacional e interactuar con niños, por tanto debe cumplir los requisitos de la norma UNE-EN 62115 Juguetes eléctricos. Seguridad.
4.1.1 Objeto y campo de aplicación Esta norma trata de la seguridad de los juguetes que tienen al menos una función que depende de la electricidad. Los juguetes que usan electricidad para funciones secundarias están dentro del campo de aplicación de esta norma. Los transformadores de juguetes y los cargadores de baterías no se consideran juguetes, incluso si se suministran con ellos. Si esta previsto que el niño juegue también con el envase este se considera como parte del juguete.
4.1.2 Requisitos de de la norma Los juguetes o su embalaje deben llevar las indicaciones siguientes:
El nombre, la marca comercial o la marca de identificación del fabricante o de su vendedor responsable El modelo o referencia del tipo
12
IA.09.721.CX
Normas y referencias
Cuando el juguete está marcado, estas marcas deben ir colocadas sobre la parte principal.
Figura 4.1 Nombre del modelo y del f abricante
Los juguetes a batería con baterías reemplazables deben estar marcados con:
La tensión nominal de la batería, dentro o sobre el hueco para la batería El símbolo de corriente continua, si el juguete tiene un compartimento de baterías
Deben suministrarse instrucciones que den información relativa a la limpieza y mantenimiento cuando ello es necesario para una utilización segura del juguete. Deben indicar que los transformadores o cargadores de batería utilizados con el juguete han de ser examinados regularmente para detectar deterioros en el cable, clavija, envolvente y otras partes, y que en caso de tales deterioros, no tienen que ser usados hasta que el daño haya sido reparado. Los juguetes deben acompañarse de instrucciones para el montaje si:
Están previstos para ser montados por un niño Estas instrucciones son necesarias para la utilización segura del juguete
Figura 4.2 Manual de instrucciones del Robonova-1
13
IA.09.721.CX
Normas y referencias
Los juguetes no deben alcanzar temperaturas excesivas durante el uso. Deben estar construidos de forma tal que sean evitados en la medida de lo posible los riesgos de incendio, daños mecánicos que afectan a la seguridad u otros peligros, como resultado de un uso negligente o de un fallo de un componente. El aislamiento eléctrico del juguete a la temperatura de funcionamiento debe ser adecuado. Los juguetes deben ser resistentes a la humedad. El aislamiento eléctrico del juguete a la temperatura ambiente debe ser el adecuado. Los juguetes deben ser juguetes a batería, juguetes con transformador o juguetes con doble alimentación. Su tensión de alimentación no debe exceder de 24 V. La tensión de servicio entre dos partes cualesquiera del juguete no debe sobrepasar 24 V cuando el juguete es alimentado a la tensión asignada.
Figura 4.3 Batería del Robonova-1 de 6 V
Las baterías recargables colocadas en los juguetes no deben dejar gotear su contenido, cualquiera que sea la posición del juguete. El electrolito no debe ser accesible incluso si se tiene que usar una herramienta para retirar la tapa o una parte análoga. Los juguetes no deben ser alimentados por baterías conectadas en paralelo, a menos que una mezcla de baterías nuevas y usadas o la inserción invertida de las baterías no impida la conformidad con esta norma.
14
IA.09.721.CX
Normas y referencias
Las partes no amovibles que protegen del contacto con las partes móviles o de las superficies calientes, o que impiden el acceso a los lugares donde una explosión o un incendio podrían originarse, deben ser fijadas de forma segura y deben soportar las solicitaciones mecánicas susceptibles de producirse durante el uso. No debe ser posible recargar las baterías cuando están en el juguete, excepto si:
Para los juguetes donde la masa es inferior a 5 Kg, no es posible Retirar la batería sin romper el juguete Cargar otras baterías o o
Para otros juguetes La batería está fijada en el juguete Se suministran los medios de conexión que aseguran una correcta polaridad durante la operación de carga No es posible que el juguete funcione durante la operación de carga o o
o
Los juguetes no deben incorporar motores serie que tengan una potencia superior a 20 W. Los juguetes no deben contener amianto. Los pasos de cables deben ser lisos y sin aristas vivas. Los cables y conductores deben estar protegidos de forma tal que no entren en contacto con asperezas, aletas de refrigeración u otras aristas susceptibles de dañar el aislamiento. Los orificios en las paredes metálicas para el paso de cables y conductores deben tener superficies lisas, estar bien redondeados o estar provistos de pasatapas.
15
IA.09.721.CX
Normas y referencias
Cualquier contacto entre los cables y conductores y las partes móviles debe ser eficazmente impedido.
Figura 4.4 cableado del Robonova-1
Los componentes deben cumplir con los requisitos de seguridad de las normas IEC relevantes correspondientes, en tanto que sean razonablemente aplicables. Los juguetes no deben tener:
Disyuntores térmicos que puedan ser rearmados por soldadura Interruptores de mercurio
Las fijaciones en las que un fallo pueda comprometer el cumplimiento de esta norma y las conexiones eléctricas deben superar las solicitaciones mecánicas que surjan durante el juego. Los tornillos utilizados con estos fines no deben ser de metal blando o sujeto a deformaciones, como el zinc o el aluminio. Si son de material aislante deben tener un diámetro nominal de al menos 3mm y no deben ser utilizados para ninguna conexión eléctrica. Los tornillos usados para conexiones eléctricas deben roscarse en metal.
16
IA.09.721.CX
Normas y referencias
Las conexiones eléctricas que conducen una corriente superior a 0,5 A deben estar construidos de forma que la presión de contacto no se transmita por medio de materiales aislantes que sean susceptibles de contraerse o distorsionarse a menos que una suficiente elasticidad de las partes metálicas compense cualquier posible contracción o distorsión del material aislante. Las distancias en el aire y líneas de fuga del aislamiento funcional no deben ser menores de 0,5mm. Las partes en material no metálico que encierran partes eléctricas y partes en material aislante que soportan partes eléctricas, deben ser resistentes a la ignición y a la propagación del fuego. Este requisito no se aplica a ornamentos decorativos, mandos y otras partes no susceptibles de incendiarse o propagar llamas originadas en el interior del juguete. Los juguetes no deben ser tóxicos ni presentar peligros similares.
4.2
Referencias
Normativa Concurso de Robots Humanoides CEABOT 2009 http://www.robot.uji.es/documents/ceabot/
Páginas Web consultadas http://www.superrobotica.com/Robonova.htm http://www.lynxmotion.com http://www.active-robots.com http://ro-botica.com/robonova_complementos.asp http://www.cmucam.org
17
IA.09.721.CX
Normas y referencias
Otras referencias Libro Blanco de la Robótica: De la investigación al desarrollo tecnológico y futuras aplicaciones. CEA 2007 Control y Programación de Robots Cabanes, I. 2007 Desarrollo de robots basados en el comportamiento. Bermejo, S., ediciones UPC. 2003
18
IA.09.721.CX
Definiciones y abreviaturas
5. Definiciones y abreviaturas
ASIMO: “Advanced “Advanced Step in Innovative Mobility”, es un robot de tipo humanoide creado por la empresa Honda en el año 2000, y supuso una revolución dentro del ámbito de la robótica de servicio.
Bluetooth: Es una especificación industrial para Redes Inalámbricas de Área Personal (WPANs) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz.
CEA: “Comité “Comité Español de Automática”, es el encargado de organizar el concurso CEABOT en la ciudad en la que se celebren las Jornadas de Automática dicho año.
FAT: “File Allocation Table”, es un sistema de archivos desarrollados para MS-DOS. HAL: “Hardware Abstraction Layer”, es un elemento del sistema operativo que funciona como una interfaz entre el software y el hardware del sistema
JPEG: "Joint Photographic Experts Group", es un método de compresión, que a menudo es considerado como un formato f ormato de archivo.
LCD: “Liquid “Liquid Crystal Display”, se trata de una pantalla de cristal líquido.
LED: “Light “Light Emitting Diode”, se trata de un diodo emisor de luz.
f lash. MMC: “Multimedia Card”, formato de tarjeta de memoria flash.
19
IA.09.721.CX
Definiciones y abreviaturas
Pan and tilt: Término que hace referencia a los movimientos de giro sobre el eje vertical y horizontal respectivamente.
PC: “Personal Computer”.
RoboBasic: Lenguaje similar a Basic, pero orientado a robots.
RGB: “Red Green Blue”, modelo de color basado en los colores rojo, verde y azul.
SD: “Secure Digital”, formato de tarjeta de memoria flash.
SO: “Sistema Operativo”.
20
IA.09.721.CX
Requisitos de Diseño
6. Requisitos de Diseño Dado que el robot estará destinado a la participación en un concurso con unas bases cerradas y con dos pruebas determinadas deberá tener las siguientes características:
Robot: La altura máxima es de 50 cm. y la máxima longitud del pie de 11 cm. Se entiende por altura máxima la distancia desde el suelo a la parte más alta del robot cuando éste se encuentra completamente estirado. Se entiende por máxima longitud del pie a la distancia entre sus dos puntos más alejados. El peso máximo permitido es de 3 Kg. Cinemática: La cinemática debe limitarse a la propia de los humanos. Locomoción: El modo de locomoción deberá ser andar o correr a dos patas, no pudiéndose utilizar ruedas. Autonomía: No se podrá dar ninguna instrucción directa o indirectamente al robot tras encenderlo. Además, tras encenderse el robot deberá esperar 5 segundos antes de realizar cualquier movimiento. Cada robot debe ser completamente autónomo a nivel de locomoción, sensado y procesamiento. Actuadores, sensores, energía y procesado deben estar incorporados en el robot, debiendo éste tomar sus propias decisiones. Seguridad: El robot no puede poseer ningún elemento que suponga un peligro para él, los otros robots, el campo de pruebas o humanos. Sin embargo, este robot humanoide será reutilizado tras el concurso para otras aplicaciones, por lo que deberá ser flexible en cuanto a hardware y software, para poder añadirle nuevas funcionalidades.
21
IA.09.721.CX
Análisis de las soluciones
7. Análisis de las soluciones 7.1
Introducción
En este punto se analizan las distintas opciones para la realización del Proyecto, valorando cada una de las alternativas en una escala de 0 a 10, siendo 10 el máximo. Más adelante según unos criterios de selección se elegirá la mejor solución. 7.2
Sensores
La sensorización del robot, para que este pueda tener un conocimiento del entorno, es una tarea ante la que se presentan múltiples posibilidades, debido a la existencia de dispositivos que pueden desempeñar funciones similares, por tanto es necesario analizar perfectamente todas las posibles soluciones teniendo en cuenta los beneficios que aportarían al proyecto antes de incluirlas en la solución final.
7.2.1 Detección de distancias Sensor de ultrasonidos Maxsonar-EZ1 La propuesta que ofrece Robonova como sonar es el sensor Maxsonar-EZ1 que destaca por su pequeño tamaño y bajo consumo, puede detectar objetos situados entre 0 y 6,45 metros de distancia, proporcionando los datos obtenidos del cálculo de la distancia con una resolución de 1 pulgada (2,54 cm). Está especialmente diseñado para ser integrado en la estructura del Robonova-1.
Figura 7.1 Sonar Maxsonar-EZ1
22
IA.09.721.CX
Análisis de las soluciones Sensor de infrarrojos Sharp GP2D12
El sensor de distancias por infrarrojos para el robot Robonova-1 esta basado en el Sharp GP2D12. El sensor mide la distancia hasta los objetos mediante un haz infrarrojo midiendo las distancias de forma continua en un rango de 10 a 80 cm y devuelve una señal analógica en proporción a la distancia medida.
Figura 7.2 Infrarrojos Sharp GP2D12
Sensor de infrarrojos Hitec Sensor de distancia por infrarrojo para Robonova-1 con un alcance máximo de 15 cm. Este sensor es muy simple y funciona por reflexión detectando la presencia o no de objetos, pero sin proporcionar un valor numérico de la misma.
Figura 7.3 Infrarrojos Hitec
23
IA.09.721.CX
Análisis de las soluciones SENSOR
RANGO DE MEDIDA
RESOLUCIÓN
TIPO DE SALIDA
PRECIO (SIN IVA)
VALORACIÓN (0 A 10)
Sensor de ultrasonidos Maxsonar-EZ1
0 - 6,45m
2,54cm
Analógica, digital serie o anchura de pulso
30,28€
8 para distancias cortas, 2 para largas
Sensor de infrarrojos Sharp GP2D12
0,1 – 0,8m
0,01v (resolución no lineal)
Analógica
21,63€
2 para distancias largas, 8 para cortas
Sensor de infrarrojos Hitec
0 – 0,15m
-
Presencia o no presencia
7,85€
4 para distancias cortas, 0 para largas
7.2.2 Detección de inclinación Sensor de inclinación analógico Proporciona una tensión de salida proporcional al grado de inclinación. Tiene un rango de medida de +/- 60º, una resolución menor de 0,1º y un consumo también menor de 0,1 mA, su tiempo de respuesta es de medio segundo como máximo y tiene una sensibilidad de 30 us/º. En cuanto a sus dimensiones son de 15x19x12 mm y su peso es de 5 g.
Figura 7.4 Inclinómetro analógico
24
IA.09.721.CX
Análisis de las soluciones Sensor acelerómetro de dos ejes
Está basado en el circuito ADXL322 de Analog Devices. Este circuito es un sensor acelerómetro con un rango de +/- 2g. La salida de cada canal proporciona una tensión 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 inclinación 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 alimentación y un tercer cable con la señal del sensor. Se conecta directamente en cualquiera de los puertos del circuito de control del Robonova-1, pero también puede utilizarse con cualquier microcontrolador que disponga de entradas analógicas.
Figura 7.5 Acelerómetro de dos ejes
Giróscopo en un solo eje PG-03 El giróscopo PG-03 se emplea en robótica para detectar el balanceo del robot, o una rotación, rotación, así como para guiar guiar los servos hacia un punto determinado incluso cuando el robot está moviéndose, además se trata de un sensor pequeño y ligero.
Figura 7.6 Giróscopo PG-03
25
IA.09.721.CX
Análisis de las soluciones SENSOR
RANGO DE MEDIDA
RESOLUCIÓN
TIPO DE SALIDA
PRECIO (SIN IVA)
VALORACIÓN (0 A 10)
Sensor de inclinación analógico
+/- 60º
< 0,1º
Analógica
32,76€
6
Sensor acelerómetro de dos ejes
+/- 2g
2mg
Analógica
25,58€
7
Giróscopo PG-03
360º
Gan. ajustable
Analógica
34,02€
5
7.2.3 Visión CMU cam3 CMU cam3 es un sistema de visión para robots compuesto por una cámara en formato digital y un sistema de desarrollo de código abierto. Con estos dos componentes se obtiene un sensor de visión de bajo coste que es totalmente programable por lo que se puede utilizar en múltiples aplicaciones incluyendo reconocimiento de formas, detección de colores, seguimiento de objetos en movimiento, etc. todo ello dependiendo del software empleado. Cuenta con procesador NXP LPC2106 y un sensor CMOS de la firma Omnivision, formando un sensor de visión basado en el ARM7TDMI. La CMU cam3 tiene entre otras características: Sensor RGB en color con una resolución de 352 x 288. Conector para tarjeta SD o MMS con soporte para FAT16. Conexión para 4 servos. Alta velocidad de 26 imágenes por segundo. Compresión por software en modo JPEG.
Figura 7.7 CMU Cam3
26
IA.09.721.CX
Análisis de las soluciones Minicámara espía inalámbrica
Se trata de una minicámara a color y con sonido inalámbrica con 50 mW de potencia capaz de enviar la señal a varios cientos de metros. La cámara se caracteriza por su gran estabilidad de imagen gracias a que utiliza una frecuencia de 1,2 Ghz, siendo más estable que los modelos a 2,4 Ghz. El sensor CMOS proporciona una resolución de 380 líneas y una iluminación mínima de 3 lux. Tiene un tamaño reducido de 25x17x23 mm y se alimenta a 9v.
Figura 7.8 Minicámara espía
SENSOR
VEL.
RESOLUCIÓN
DIMENSIONES
PRECIO (SIN IVA)
VALORACIÓN (0 A 10)
CMU cam3
26 imágenes por segundo
352 x 288 pixels
57,10 X 55,36 mm
123,10€
9
Minicámara espía inalámbrica
50 Hz
380 líneas de televisión
25x17x23 mm
48,59€
5
27
IA.09.721.CX
Análisis de las soluciones 7.3
Entorno de programación Entorno de programación genérico
Para la programación de robots humanoides, se pueden emplear sistemas de programación programación genéricos, que en principio principio no cuentan cuentan con funciones específicas para el control del movimiento de los servomotores, por lo que habría que desarrollarlas. Sin embargo, la potencia, tipos de datos empleados y control de flujo de ejecución del programa son sus principales ventajas. Algunas de estas posibilidades son Matlab, Visual Basic, C++, ensamblador, etc. Entorno de programación propio El kit Robonova-1 incluye un entorno de programación propio con distintas herramientas, basado en RoboBasic, que se trata de una modificación del lenguaje Basic para su aplicación en la robótica, con sentencias específicas para el control de movimientos del robot. Dispone de un interfaz gráfico muy simple e intuitivo. 7.4
Complementos Pan and Tilt Kit
El Pan and Tilt Kit consta de dos servomotores HS-422, similares al resto de los que dispone el humanoide, que pueden ser integrados dentro de la estructura mecánica del robot haciendo las veces de cabeza, otorgándole dos grados de libertad.
Figura 7.9 Pan and Tilt Kit
28
IA.09.721.CX
Análisis de las soluciones Juego de manos para Robonova-1
El juego de manos para Robonova-1 añade nuevas funcionalidades al robot humanoide, mejorando el aspecto del robot y permitiendo que el robot pueda sujetar objetos. El kit completo de mano requiere de dos servos tipo HSR8498HB que son los que proporcionan el movimiento de los pulgares.
Figura 7.10 Juego de manos
7.5
Criterios de selección
7.5.1 Detección de distancias Para las pruebas de sumo y obstáculos es necesario un sensor que detecte distancias de por lo menos 1,5 metros (longitud del campo de pruebas) y que retorne el valor numérico de dicha distancia con la mayor precisión posible, este sensor debe ser suficientemente pequeño y ligero como para que el robot pueda portarlo. Para la prueba de escalones es necesario detectar el borde del escalón cuando el humanoide se encuentre cerca de él, por ello es necesario un detector de distancias que tenga una gran resolución para distancias cortas, que también devuelva el valor de la distancia con precisión y que tenga unas dimensiones reducidas.
7.5.2 Detección de inclinación Para las pruebas de subir y bajar escaleras, así como la de esquivar obstáculos resulta interesante que el humanoide pueda saber si se ha caído, para que se pueda levantar por si mismo. En la prueba de sumo esto sería indiferente, ya que una vez el robot ha caído según la normativa pierde el punto.
29
IA.09.721.CX
Análisis de las soluciones
7.5.3 Visión Para poder realizar la prueba final es necesario un sistema de visión que permita discernir los colores del entorno del robot, para ello es necesario un sensor que sea lo más rápido posible, ya que de por sí este tipo de sensores son bastante lentos y después además hay que procesar las imágenes, también es necesario que consiga tomar imágenes con una resolución aceptable.
7.5.4 Entorno de programación Al entorno de programación se le pide que sea lo más sencillo e intuitivo posible para facilitar la programación y que disponga de las sentencias adecuadas para controlar el robot.
7.5.5 Complementos Para las pruebas de sumo y evitar obstáculos es imprescindible realizar escaneos del entorno para detectar bien al rival o a los propios obstáculos, por ello es necesario que la cabeza del robot tenga movilidad para realizar un barrido a su alrededor. 7.6
Selección de la solución
Se ha escogido de entre las alternativas propuestas, las siguientes soluciones a los problemas planteados:
Dos sensores de ultrasonidos Maxsonar-EZ1, para detectar objetos a cierta distancia (uno en la cabeza y otro en el torso, para detectar a dos alturas) Dos sensores de infrarrojos Sharp GP2D12, para detectar las aristas de los escalones. Un sensor acelerómetro de dos ejes, para detectar caídas del robot. Un sensor de visión CMU cam3, para distinguir colores.
30
IA.09.721.CX
Análisis de las soluciones
El entorno de programación propio del kit Robonova-1, basado en Robobasic. El Pan and Tilt Kit, que dote de dos grados de libertad a la cabeza del robot.
31
IA.09.721.CX
Resultados finales
8. Resultados finales 8.1
Solución adoptada
8.1.1 Sistemas del robot humanoide El robot humanoide esta formado por diferentes sistemas independientes, aportando cada uno de ellos una función al propio robot.
Figura 8.1 Sistemas del robot humanoide
Estructura del robot El cuerpo del robot humanoide se construirá en base al kit comercial Robonova-1. Este kit proporciona las piezas de aluminio anodizado y plástico rígido necesarias para construir el esqueleto del robot, y que protegen el circuito. La estructura dispondrá de cabeza, tronco, dos extremidades superiores y dos extremidades inferiores, con esto el robot una vez construido trata de imitar la apariencia humana. La unión de las distintas piezas se realizará utilizando únicamente los tornillos incluidos en el kit, sin necesidad de ningún otro material complementario, con lo que es posible el desmontar y montar el robot para modificarlo o ampliarlo tantas veces como sea necesario. El robot tiene una altura de 30,5 cm y un peso de 1,3 Kg.
32
IA.09.721.CX
Resultados finales
Figura 8.2 Kit Robonova-1 y Robonova-1 tras el montaje
El kit incluye también 16 servomotores digitales HSR-8498HB de Hitec que se corresponden con los 16 grados de libertad o articulaciones con las que contará el robot (cinco en cada pierna y tres en cada brazo). Estos servos son los que permitirán el movimiento del robot. Los servos incluidos en el kit Robonova-1 han sido diseñados específicamente para este robot e incluyen una característica especial conocida como “Feedback Motion”, que permite leer desde el controlador la posición real del servo, pudiéndose colocar el robot manualmente en cualquier posición para luego leer y guardar la configuración de los 16 servos en un programa. Además, estos servos tienen un rango de giro de 180º y un par de fuerza superior a los 7,4 Kg·cm que son trasmitidos por engranajes de carbonita, más resistentes y duraderos que los de nailon.
33
IA.09.721.CX
Resultados finales
Figura 8.3 Servomotor digital HSR-8498HB de Hitec
El kit Robonova-1 no incluye ningún grado de libertad para la cabeza del robot, sino que está es por defecto estática. Sin embargo, dadas las necesidades del proyecto se hace necesario que la cabeza gire en sentido horizontal y vertical (“pan and tilt”). Para ello se utilizará una base giratoria accionada por dos servomotores HS-422 de Hitec, con un par de 4,1 kg·cm y un rango de movimiento de 180º, aunque no incluyen la característica “Feedback Motion”.
Figura 8.4 Pan and Tilt Kit de Hitec
Control El sistema de control permitirá implementar el software de control desarrollado. El propio kit incorpora como sistema de control la tarjeta controladora MRC-3024, gobernada por un microcontrolador Atmel ATMega 128, y que cuenta con:
40 puertos de entrada y salida digitales
puerto serie
bus I2C
8 entradas analógicas
3 canales PWM
34
IA.09.721.CX
Resultados finales
Con este elevado número de puertos de pueden controlar dispositivos de todas clases como servos, sensores de distancia, giróscopos, displays LCD, sensores de infrarrojos, etc. Además la placa cuenta con un altavoz para generar tonos de diferentes frecuencias y un conector para un LED. También incluye 64 Kbyte de memoria para los programas, que permiten que una vez que se han descargado, el robot sea completamente autónomo y pueda ejecutar los movimientos sin necesidad de estar conectado al ordenador. Además, la tarjeta podrá gestionar comunicaciones inalámbricas.
Figura 8.5 Circuito MRC-3024
Alimentación El sistema de alimentación del robot humanoide estará basado en una batería, capaz de suministrar energía a todos los elementos del robot y hacerle funcionar con total autonomía durante una hora. El kit Robonova-1 incluye una batería recargable de NiMH de 6 V y 1000 mA. Como está diseñada específicamente para el robot, está dimensionada para satisfacer el consumo de los elementos del robot en todas las situaciones. En el kit también se incluye un cargador de baterías rápido a 220 V.
35
IA.09.721.CX
Resultados finales
Figura 8.6 Batería y cargador de Hitec
Control remoto El kit Robonova-1 incluye un sistema de control remoto basado en infrarrojos para el control de movimientos del robot. Este sistema está formado por un detector de infrarrojos y un mando a distancia, con el que ejecutar distintas órdenes e instrucciones de forma sencilla.
Figura 8.7 Mando y sensor de infrarrojos de Hitec
Detección de distancias El sistema de detección de distancias estará constituido por cuatro sensores que proporcionan una señal analógica en proporción a la distancia medida. En este caso se utilizarán dos sensores ultrasónicos basados en el dispositivo Maxsonar-EZ1 que detecta objetos situados entre 0 y 6,45 metros de distancia, en función del nivel sonoro devuelto, con una resolución lineal de 1 pulgada (2,54 cm) y otros dos sensores infrarrojos, basados en el Sharp GP2D12, que detectan objetos entre 0,1 y 0,8 metros de distancia, con una resolución no lineal, mediante un haz infrarrojo.
36
IA.09.721.CX
Resultados finales
Figura 8.8 Sensor de ultrasonidos Maxsonar-EZ1 y sensor de infrarrojos GP2D12 de Hitec
Detección de inclinación El sistema de detección de inclinación estará basado en un sensor que proporcione una tensión de salida proporcional a la inclinación del robot en un eje. En este caso, se tratará de un sensor acelerómetro de dos ejes basado en el circuito ADXL322 de Analog Devices. La salida analógica de cada canal proporciona una tensión entre 0 y 5 voltios, que es proporcional al ángulo en el plano X e Y en el que se encuentra el sensor, con un rango de +/-2g. De esta forma, el sensor puede utilizarse para saber el grado de inclinación en el que se encuentra el circuito en dos planos y detectar posibles pérdidas de equilibrio o incluso caídas.
Figura 8.9 Sensor acelerómetro de dos ejes ADXL322 de Hitec
El circuito se conectará directamente en cualquiera de las entradas analógicas del circuito de control del robot, y deberá estar colocado lo más próximo posible al centro de masas del robot. Visión El sistema de visión estará basado en una cámara que captará imágenes para conocer las características del entorno tras un procesamiento de las mismas. 37
IA.09.721.CX
Resultados finales
La cámara empleada es la CMU cam3, una cámara de pequeño tamaño compuesta por una cámara en formato digital y un sistema de desarrollo de código abierto. Con estos dos componentes se obtiene un sensor de visión que es totalmente programable por lo que se puede utilizar en múltiples aplicaciones incluyendo reconocimiento de formas, detección de colores, seguimiento de objetos en movimiento, etc.
Figura 8.10 Cámara CMU cam3
La CMU cam3 tiene entre otras características:
Entorno de desarrollo abierto para Windows y Linux
Sistema de desarrollo de código abierto usando Gcc.
Sensor RGB en color con una resolución de 352 x 288
Conector para tarjeta SD o MMC con soporte para FAT16
Conexión para 4 servos
Alta velocidad de 26 imágenes im ágenes por segundo
Compresión por software en modo JPEG
Salida analógica de video B/W (PAL o NTSC)
Librería básica para manipulación de imágenes
Buffer de imágenes FIFO para procesamiento múltiple
Modo de emulación de la CMU cam2
38
IA.09.721.CX
Resultados finales
Las funciones de esta cámara están especialmente orientadas a la robótica, la educación, el desarrollo de juguetes interactivos, reconocimiento y seguimiento de objetos, etc. Para poder visualizar el entorno del robot, la cámara se montará sobre la carcasa delantera del robot, para evitar que por el peso de la cámara se vea comprometida la estabilidad del robot.
8.1.2 Software empleado Tanto para la programación del robot humanoide Robonova-1, como de la cámara CMU cam3 es necesario un software, que en ambos casos ofrecen libremente los fabricantes en sus paginas Web. Software incluido en el kit Robonova-1 Robonova-1 Todo el software del robot Robonova está basado en el lenguaje RoboBasic, que como su nombre indica es un lenguaje del tipo Basic pero especializado y orientado a robots, que incluye gran cantidad de comandos específicos para controlar las funciones del robot que facilitan mucho la tarea y simplifican el proceso de programación. El kit Robonova-1 incluye tres entornos para la programación del humanoide:
RoboBasic
RoboRemocon
RoboScript
Estos entornos para la programación son altamente intuitivos y complementarios entre sí. El entorno de programación RoboBasic es la herramienta principal para la programación, incluye utilidades para compilar y descargar los programas en el robot, además de herramientas para ajustar y configurar el robot.
39
IA.09.721.CX
Resultados finales
Figura 8.11 RoboBasic
RoboRemocon se trata de un mando a distancia virtual, que permite asignar de forma sencilla diferentes programas a cada uno de los botones del mando de control remoto del robot.
Figura 8.12 RoboRemocon
40
IA.09.721.CX
Resultados finales
Por último RoboScript es una aplicación destinada a modificar y crear de forma rápida y sencilla programas escritos en RoboBasic.
Figura 8.13 RoboScript
Software para la CMU cam3 CMU cam3 es un dispositivo diseñado por la universidad Carnegie Mellon, que proporciona las siguientes herramientas para la compilación y carga de los archivos en código C, bajo los cuales se programa la cámara:
Cygwin
ARM gcc
CC3 Source Tree
LPC210x FLASH Utility
CMU cam3 Frame Grab Utility
Cygwin es una colección de herramientas desarrollada por Cygnus Solutions para proporcionar un comportamiento similar a los sistemas Unix en Windows. Su objetivo es portar software que ejecuta en sistemas POSIX a Windows con una recompilación a partir de sus fuentes.
41
IA.09.721.CX
Resultados finales
Figura 8.13 Cygwin
El compilador GCC es software libre y lo distribuye la FSF bajo la licencia GPL, GCC forma parte del proyecto GNU de compiladores. Estos compiladores se consideran estándar para los sistemas operativos derivados de UNIX, de código abierto o también de propietarios, como Mac OS X. El interfaz exterior de GCC es generalmente estándar para un sistema UNIX. GCC interpreta los argumentos argumentos dados, decide que compilador usar para cada archivo y ejecuta el ensamblador con el código resultante, después ejecuta el enlazador para producir un programa completo. Cada uno de los compiladores es un programa independiente que toma como entrada código fuente y produce código en ensamblador. Todos ellos tienen una estructura interna común. El CC3 Source Tree es un directorio en el que se encuentran las librerías necesarias para la creación de los programas, algunos proyectos de ejemplo con aplicaciones básicas para la cámara y una carpeta HAL, que es necesaria para la compilación de los programas. El HAL es un elemento del sistema operativo que funciona como una interfaz entre el software y el hardware del sistema, proveyendo una plataforma de hardware consistente sobre la cual correr las aplicaciones. Cuando se emplea una HAL, las aplicaciones no acceden directamente al hardware sino que lo hacen a la capa abstracta provista por la HAL.
42
IA.09.721.CX
Resultados finales
Figura 8.14 CC3 Source Tree
Para la creación por tanto del archivo .hex ejecutable por la cámara, se deben seguir los siguientes pasos:
Utilizando los comandos de Linux dentro de Cygwin situarse dentro de la carpeta HAL del CC3 Source Tree y realizar la operación make sobre ella. Esta operación sirve de enlace entre Cygwin y el SO Windows. Desde Cygwin situarse en la carpeta donde se haye el archivo en C del que se desea obtener el ejecutable y realizar la operación make sobre él, compilando y enlazando el código, la sentencia make realiza estas operaciones en base al GCC y a un archivo makefile en el que se le dan las instrucciones para la compilación y enlazado.
Una vez seguidos estos pasos se ha creado el archivo .hex que la cámara puede ejecutar, para cargarlo en ella se emplea el software LPC210x FLASH Utility. Para ello se debe resetear la cámara y posteriormente cargar el programa a través del puerto serie del PC.
43
IA.09.721.CX
Resultados finales
Figura 8.15 LPC210x FLASH Utility
La última utilidad que se ofrece para la CMU cam3 es el programa CMU cam3 Frame Grab Utility. Este es un programa terminal con el que se puede comprobar el funcionamiento de la cámara una vez cargado el programa.
Figura 8.16 CMU cam3 Frame Grab Utility
44
IA.09.721.CX
Resultados finales
8.1.3 Software de control El software de control de cada uno de los programas realizados en RoboBasic se puede dividir en una serie de módulos, que se repiten en todos los casos, aunque su contenido varíe de un programa a otro:
Módulo de datos
Módulo inicial
Control de movimientos
Primitivas de movimientos
Figura 8.17 Esquema del software de control
El módulo de datos iniciales contiene la declaración de todas las constantes y variables que se van a emplear durante el programa. Los datos iniciales estarán depositados en una zona de memoria fija dentro del microcontrolador que gestiona la tarjeta de control y en este caso incluyen información relativa a los puntos neutros o ceros de cada uno de los servomotores. El módulo inicial contiene la inicialización de los sistemas del robot, así como la asignación de valores iniciales a las variables que sea necesario inicializar.
45
IA.09.721.CX
Resultados finales
También incluiría el control remoto, pero en los programas desarrollados el robot ha de comportarse de modo totalmente autonomo. El módulo de primitivas de movimiento reúne todos los movimientos simples que va a realizar el robot en dicha actividad, a partir de los cuales se generarán movimientos más complejos. Las primitivas de movimiento más utilizadas serían:
Dar un paso adelante
Dar un paso atrás
Agacharse
Levantarse
Girar izquierda/derecha
Girar cabeza izquierda/derecha
Dar un paso agachado
Subir un escalón
Bajar un escalón
Reincorporarse
Atacar con los brazos
Las primitivas de movimiento tienen definida de forma secuencial los movimientos de los servos del robot para realizar la acción pertinente, con los tiempos de retraso necesarios entre movimientos. El módulo de primitivas de movimiento por tanto se asemeja a una librería de movimientos. El módulo de control de movimientos es el más complejo de todos ellos, su función consiste en interpretar los datos recibidos de los sensores y decidir en todo momento que primitiva de movimiento ha de ejecutarse, sí ha de ejecutarse alguna. A continuación se muestra la estructura interna del módulo de control de movimientos para cada una de las pruebas a realizar.
46
IA.09.721.CX
Resultados finales Subir y bajar escaleras
El módulo de control de movimientos para subir y bajar escaleras está basado en la detección por medio de infrarrojos del borde de la escalera, tal y como se indica en el diagrama de flujo.
Figura 8.18 Diagrama de flujo para subir y bajar escaleras
47
IA.09.721.CX
Resultados finales
Este ciclo se repite seis veces, las tres primeras para la subida de los peldaños y las tres últimas para la bajada. Una vez que se ha detectado el borde del escalón, sabiendo en que ciclo nos encontramos, se sabe si hay que subir o bajar el peldaño, si la distancia devuelta hasta el borde de la escalera es demasiado grande como para poder superarla se avanza más y se comprueba de nuevo la distancia, hasta que esta sea la suficiente como para poder subirla o bien bajarla. Esquivar obstáculos El control de movimientos para la prueba de esquivar obstáculos tiene como base la detección a través de los sonares de los obstáculos que pueda haber en el entorno, para ello se detecta la distancia frontal con un sonar fijado a la carcasa del robot, y la distancia con los posibles obstáculos en los laterales con otro sonar, esta vez fijado a la cabeza del robot, lo que le permite detectar en un rango de casi 180º, similar al giro del cuello de un ser humano. Si según se van realizando las mediciones estas indican que no hay obstáculos, se va avanzando hasta que se llegue al final, momento en el que el robot gira 180º sobre sí mismo para retornar, si aparece algún obstáculo de frente en un momento determinado el robot se desplazará lateralmente para esquivarlo.
48
IA.09.721.CX
Resultados finales
Figura 8.19 Diagrama de flujo para esquivar obstáculos
Luchar sumo El control de movimientos de la prueba de sumo se basa en la ejecución cíclica de las acciones de localizar al rival acercarse a el y atacar.
49
IA.09.721.CX
Resultados finales
Figura 8.20 Diagrama de flujo para luchar sumo
Inicialmente el robot se agacha, adoptando la posición clásica de la lucha de sumo, para evitar que pueda ser derribado por su oponente, a partir de aquí se repetirá continuamente un ciclo de búsqueda del rival a través del detector de ultrasonidos que dispone en su cabeza y posterior acercamiento y ataque, con el fin de que el oponente caiga al suelo o se salga de la zona de lucha.
50
IA.09.721.CX
Resultados finales Distinguir colores
Para esta prueba el control de flujo esta constituido por la detección mediante la cámara del color medio del entorno y su posterior comparación con tres patrones referentes a los colores de los tres obstáculos que ha de localizar.
Figura 8.21 Diagrama de flujo para distinguir colores
51
IA.09.721.CX
Resultados finales
De esta forma el robot detecta constantemente el color del entorno y lo compara, hasta que está cerca del objeto que pretendía localizar, momento en el cuál el robot realiza una acción indicando que ha hallado el objeto .
52
IA.09.721.CX
Planificación
9. Planificación 9.1
Fases
9.1.1 FASE 1. Montaje del robot humanoide con sensores y complementos En esta fase se procede al montaje del robot humanoide a partir del kit comercial, siguiendo la guía de ensamblaje de los componentes, además se le ensamblarán los sensores y complementos necesarios para su posterior programación. Un periodo de dos semanas es necesario para completar esta fase y comprobar el correcto funcionamiento de los sensores. Recursos Humanos: → → →
1 Director de Proyecto (10 horas) Ingeniero (20 horas) Electrónico (20 horas)
Recursos Materiales: → → → → → → →
Kit robot humanoide Un sensor acelerómetro de dos ejes Dos sensores de distancias ultrasónicos Dos sensores de distancias por infrarrojos Un sensor de visión Pan and Tilt Kit Hojas de características y guías de montaje m ontaje
Duración: 2 semanas
9.1.2 FASE 2. Estudio y elección de estrategias En esta fase se realiza el estudio de las posibles estrategias a seguir por el robot para conseguir los objetivos, se seleccionará la estrategia más adecuada
53
IA.09.721.CX
Planificación
para dicho fin. Se dará una semana para debatir sobre las posibles alternativas y argumentar cual sería la idónea. Recursos Humanos: → →
1 Director de Proyecto (15 horas) 1 Ingeniero (15 horas)
Recursos Materiales: → →
Especificaciones de la tarjeta controladora del robot Especificaciones de los sensores
Duración: 1 semana
9.1.3 FASE 3. Diseño, desarrollo y depuración del software En esta fase se realiza el diseño del software, una vez conocida la estrategia de control a seguir, para posteriormente desarrollarlo y depurarlo atendiendo a las características del entorno de programación elegido. El desarrollo del software es la parte más laboriosa del proyecto, por ello serán necesarios dos meses y medio para asegurar que las estrategias están implementadas. Recursos Humanos: → → →
1 Director de Proyecto (50 horas) 1 Ingeniero (120 horas) 1 Programador (120 horas)
Recursos Materiales: → → → → → →
Herramienta software proporcionada con el kit robot Manual del entorno de programación Especificaciones de la tarjeta controladora del robot Especificaciones de los sensores Ordenador personal SO Windows Vista Business
Duración: 10 semanas 54
IA.09.721.CX
Planificación
9.1.4 FASE 4. Mejora del software desarrollado En esta fase se comprueba que el software creado cumple las especificaciones, y se realizan distintas pruebas variando partes del código creado, hasta obtener la versión más satisfactoria. Se empleará mes y medio en esta fase, ya que es posible que el software desarrollado presente pequeños errores o partes de código mejorables, sobre todo en tiempos de ejecución. Recursos Humanos: → → →
1 Director de Proyecto (40 horas) 1 Ingeniero (80 horas) 1 Programador (80 horas)
Recursos Materiales: → → → →
Herramienta software proporcionada con el kit robot Manual del entorno de programación Ordenador personal SO Windows Vista Business
Duración: 6 semanas
9.1.5 FASE 5. Pruebas finales y aceptación En esta fase se realizan las pruebas necesarias para asegurarse por completo que el robot responde adecuadamente ante cualquier imprevisto y consigue realizar las rutinas en unos tiempos aceptables. Se requerirán tres semanas para esta última fase, ya que es necesario comprobar todos t odos los casos que puedan presentarse en la ejecución de las actividades, así como tener tiempo para poder modificar el código si fuese necesario Recursos Humanos: → →
1 Director de Proyecto (20 horas) 1 Ingeniero (40 horas)
55
IA.09.721.CX
Planificación Recursos Materiales: → → → →
Herramienta software proporcionada con el kit robot Manual del entorno de programación Ordenador personal SO Windows Vista Business
Duración: 3 semanas 9.2
Duración Total La duración total del proyecto es de 22 semanas (5 meses y medio).
9.3
Hitos Nº
9.4
Hito
Fecha
H1
Robot humanoide construido
Fin de la semana 2
H2
Software de control desarrollado
Fin de la semana 13
H3
Proyecto Proyecto acabado
Fin de la semana 22
Diagrama de Gantt
En el siguiente diagrama se representa gráficamente el desarrollo temporal de las fases del proyecto, así como los hitos alcanzados.
56
IA.09.721.CX
Planificación
Semana ----------Fases
1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 0 1 2 3 4 5 6 7 8 9 0 1 2
COSTE DE LA FASE (SIN IVA) H
Fase1
2.556,03€
Fase2
1.350€ H
Fase3
8.400€
Fase4
6.000€ H
Fase5
9.5
2.400€
Recursos Materiales
9.5.1 Recursos hardware
Kit para robot humanoide Robonova-1
Complementos o
Pan and Tilt Kit
Sensores o
Dos sensores de distancias por ultrasonidos Maxsonar-EZ1
o
Un sensor de distancias por infrarrojos inf rarrojos Sharp GP2D12
o
Un sensor acelerómetro de dos ejes
o
Un sensor de visión
57
IA.09.721.CX
Planificación
9.5.2 Recursos software
Entornos de RoboRemocon
programación
Ordenador personal
SO Windows Vista Business
RoboBasic,
RoboScript
y
9.5.3 Documentos
9.6
Hojas de características
Manual de RoboBasic
Manuales de uso del software
Recursos Humanos
Director de proyecto: Ingeniero Industrial, que será el encargado de coordinar y asegurar el cumplimiento de cada una de las fases del proyecto. Ingeniero: Ingeniero Industrial con conocimientos de electrónica, robótica y control. Electrónico: Titulado en Grado Superior, especializado en electrónica. Se encargará de llevar a cabo el montaje del kit robot y agregarle todos los dispositivos. Programador: Titulado en Grado Superior, especializado en informática y con conocimientos de programación en lenguaje Basic. Se encargará de desarrollar el código para la tarjeta controladora del robot y realizará las modificaciones que sean necesarias hasta su puesta en marcha.
58
IA.09.721.CX
Riesgos del proyecto
10. Riesgos del proyecto Existen riesgos mecánicos a la hora de programar el robot, si se le dan valores de consigna a los servomotores fuera de su rango de giro o si bien se les hace trabajar por encima de una determinada velocidad, pudiendo llevar esto a la destrucción del servomotor, por ello es necesario que los valores iniciales, también llamados zeros de estos, sean correctos, así como su velocidad de giro. Otro posible riesgo de este proyecto es que la documentación incluida en el kit Robonova-1 resulte insuficiente para el montaje del robot, por ello será necesario realizar las pruebas pertinentes para comprobar el correcto funcionamiento del robot, tanto a nivel mecánico, como eléctrico.
59