Top Banner
INSTITUTO POLIT ´ ECNICO NACIONAL CENTRO DE INVESTIGACI ´ ON Y DESARROLLO DE TECNOLOG ´ IA DIGITAL DOCTORADO EN CIENCIAS EN SISTEMAS DIGITALES “DISE ˜ NO DE CONTROLADORES INTELIGENTES EN PROCESADORES SUAVES PARA EL CONTROL EN TIEMPO REAL DEL MOVIMIENTO DE UN ROBOT B ´ IPEDO” TESIS QUE PARA OBTENER EL GRADO DE DOCTORADO EN CIENCIAS EN SISTEMAS DIGITALES PRESENTA M.C. JORGE ARTURO QUI ˜ NONES RIVERA BAJO LA DIRECCI ´ ON DE DR. OSCAR H. MONTIEL ROSS DR. ROBERTO SEP ´ ULVEDA CRUZ ABRIL 2019 TIJUANA, B.C., M ´ EXICO
92

Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Feb 06, 2023

Download

Documents

Khang Minh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

INSTITUTO POLITECNICO NACIONAL

CENTRO DE INVESTIGACION Y DESARROLLODE TECNOLOGIA DIGITAL

DOCTORADO EN CIENCIAS EN SISTEMAS DIGITALES

“DISENO DE CONTROLADORES INTELIGENTES ENPROCESADORES SUAVES PARA EL CONTROL EN TIEMPO REAL

DEL MOVIMIENTO DE UN ROBOT BIPEDO”

TESIS

QUE PARA OBTENER EL GRADO DE DOCTORADO EN CIENCIAS ENSISTEMAS DIGITALES

PRESENTA

M.C. JORGE ARTURO QUINONES RIVERA

BAJO LA DIRECCION DE

DR. OSCAR H. MONTIEL ROSS DR. ROBERTO SEPULVEDA CRUZ

ABRIL 2019 TIJUANA, B.C., MEXICO

Page 2: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...
Page 3: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA DE INVESTIGACIÓN Y POSGRADO

CARTA CESIÓN DE DERECHOS

En la Ciudad de México, D.F. el día 1ro. del mes de Abril del

año 2019, el que suscribe M.C. Jorge Arturo Quiñones Rivera alumno del Programa de Doctorado en Ciencias en Sistemas Digitales, con número de registro A110972, adscrito al Centro de Investigación y Desarrollo de Tecnología Digital (CITEDI-IPN), manifiesto que es el autor intelectual del presente trabajo de Tesis bajo la dirección de los Dr. Oscar Humberto Montiel Ross y Dr. Roberto Sepúlveda Cruz y cede los derechos del trabajo intitulado “DISEÑO DE CONTROLADORES INTELIGENTES EN PROCESADORES SUAVES PARA EL CONTROL EN TIEMPO REAL DEL MOVIMIENTO DE UN ROBOT BIPEDO”, al Instituto Politécnico Nacional para su difusión, con fines académicos y de investigación.

Los usuarios de la información no deben reproducir el contenido textual, gráficas o datos del trabajo sin el permiso expreso del autor y/o directores del trabajo. Este puede ser obtenido escribiendo a las siguientes direcciones [email protected] , [email protected] o [email protected]. Si el permiso se otorga, el usuario deberá dar el agradecimiento correspondiente y citar la fuente del mismo.

_________________________ Jorge Arturo Quiñones Rivera

Firma del alumno

Page 4: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Diseno de controladores inteligentes en procesadores

suaves para el control en tiempo real del movimiento de

un robot bıpedo

Resumen

Se presenta el diseno de un controlador inteligente para la caminata de un robot

bıpedo, ası como el diseno y contruccion del robot. Los controladores estan basados

en logica difusa y redes neuronales artificiales. La estabilidad del robot se controla

mediante la tecnica conocida como “Zero Moment Point”. Los controladores se im-

plementaron en tecnologıa FPGA debido a la versatilidad que ofrecen para combinar

tecnicas de procesamiento secuencial con procesadores suaves, y procesamiento con-

currente mediante lenguajes de descripcion de hardware, lo cual permite ejecutar las

tareas en tiempo real dandole al robot un comportamiento mas natural. Se presentan

los resultados de las simulaciones y experimentos de la cinematica directa e inversa

para obtener posiciones validas dentro del espacio de trabajo del robot que son de uti-

lidad en la planeacion de trayectoria. Ademas se muestran la respuesta del controlador

ZMP difuso en la caminata bıpeda en balance dinamico para una trayectoria recta. Para

finalizar se concluye la importancia y eficiencia de la implementacion de los controla-

dores en FPGA para obtener una caminata estable y en tiempo real.

Palabras clave: ZMP, ANN, Logica Difusa, FPGA, Procesadores Suaves, HLS.

Page 5: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Design of intelligent controllers in soft- processors for

real time control of movement of a biped robot

Abstract

We present the design of an intelligent controller for walking of a biped robot, as

well as the design and construction of the robot. The controllers are based on fuzzy

logic and neural networking. The stability of the robot is controlled by the Zero Mo-

ment Point technique. The controllers were implemented into FPGA technology for

their versatility to combine sequential processing with softcore processors as well as

the use of concurrent processing using hardware description languages, which allows

executing tasks in real time providing the robot with a more natural behavior. It shows

the results of the simulations and the experiments of the direct and inverse kinema-

tics to obtain the valid positions within the work space of the robot that are useful in

the planning of the trajectory. The response of the fuzzy ZMP controller in the walk

in dynamic equilibrium for a straight path. Finally, the importance and efficiency of

the implementation of FPGA controllers is concluded to obtain a stable and real-time

walk.

Keywords: ZMP, RNA, Fuzzy Logic, FPGA, Softcore, HLS.

5

Page 6: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Dedicatoria

A toda mi familia, en especial a mis padres Arturo Quinones y Socorro Rivera, ellos

han sido hasta el momento la razon de mi existir, agradezco infinitamente su apoyo

incondicional durante toda mi vida; su amor, carino y comprension han sido los pilares

para darme la motivacion necesaria para cumplir esta etapa de mi vida profesional.

Tambien a Tania y Karina por ser excelentes hermanas a quienes les correspondo su

afecto hacia mi persona sin antes reconocer que las quiero profundamente.

A todos mis amigos y aquellas personas que aprecio mucho, con las que he compar-

tido momentos inolvidables y han contribuido de alguna manera a ser perseverante

para cumplir mis metas. A Dios, por haberme bendecido con la vida, darme una gran

familia, por rodearme de buenas personas, por protegerme y regirme por el camino

del bien.

Page 7: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Agradecimientos

A mis directores de tesis, Dr. Oscar Montiel Ross y Dr. Roberto Sepulveda Cruz, por

apoyarme y alentarme en el transcurso de mis estudios, el poner su confianza en todas

mis decisiones y sin duda orientarme con su experiencia y el conocimiento necesario

para el buen desarrollo de este trabajo. A los integrantes del comite revisor de tesis,

Dr. Juan Jose Tapia Armenta, Dr. Oscar Castillo Lopez, Moises Sanchez Adame, por sus

valiosas aportaciones y sugerencias que surgieron del tiempo invertido en la revision,

que fueron en gran medida muy importantes para mejorar esta investigacion.

A mi familia, Mi abuela Lucina Rudo, Abuela Mercedes, Abuelo Agustın, Socorro

Rivera, Arturo Quinones, Tania Quinones, Karina Quinones, Roque, Tıa Rosa, Tıa

mari Tıo Carlos, Tıo Jose Luis, Tıa mago, Gabriel, Los cuates, Juan, Tıa Leticia, Tıo

Chucho, Hugo, Tıa Ana, Tono, Jennifer, Ramon, Tıo Angelino, Juan, Vıctor, Mis

sobrinos, Lupe, Alvarito, Alvaro, Tıo Hector, Tıa Carmen, Tıo Javier Samara por su

invaluable apoyo durante el transcurso de mi vida.

A mi companera de vida, mi amor Joanna Campos Lopez, mis amigos y companeros

de CITEDI, Juan Carlos, Hugo, Colores, Murcio, Ernesto, Luis Miguel, Poncho, Miguel

Hernandez Jose Lino, Gabriel penaloza, Martin, M.C. Calvillo, Marianne Z., Fabian

Talledos, Sharit, Dr. Jose Cruz Nunez, Riemman, Dr. Vıctor, Dr. Moreno, Dr. Tupak

Dra. Mireya, Dr. Rolon, Dr. Charles, Mtro. Teodoro, Mtra, Isaura, Mtro. Eduardo, por

todos esos momentos y experiencias tan especiales que compartimos juntos.

A la profesora Dora Laura, por la revision tecnica.

Al Instituto Politecnico Nacional (IPN) y al Consejo Nacional de Ciencia y Tecno-

logıa (CONACYT) por el apoyo economico brindado.

Page 8: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Contenido

1. Introduccion 11.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Proposito de la investigacion . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4. Formulacion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6.1. Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.7. Delimitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.8. Productividad cientıfica . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Marco Teorico 72.1. Tipos de robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1. Robot industrial . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.2. Robots redundantes . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.3. Robots Moviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.4. Robots marinos y aereos . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.5. Robots Flexibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2. Robots bıpedos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1. Caminado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2. Fase de soporte unico . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.3. Fase de soporte doble . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.4. Fase de postura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.5. Fase de balanceo . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3. Caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4. Modos de caminata bıpeda . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5. Hardware Reconfigurable . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5.1. FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

8

Page 9: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

CONTENIDO 9

2.5.2. Arquitectura de una FPGA . . . . . . . . . . . . . . . . . . . . . . 14

2.5.2.1. Clasificacion de arquitecturas . . . . . . . . . . . . . . . 15

2.5.2.2. Proceso para el diseno . . . . . . . . . . . . . . . . . . . 16

2.5.3. Procesadores en FPGA . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5.3.1. Procesador suave . . . . . . . . . . . . . . . . . . . . . . 17

2.5.3.2. Microblaze . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5.3.3. Procesador duro . . . . . . . . . . . . . . . . . . . . . . 18

2.5.4. Coprocesadores Suaves . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.5. Tarjeta de desarrollo FPGA ATLYS . . . . . . . . . . . . . . . . . 19

2.5.6. FPGA familia Spartan 6 . . . . . . . . . . . . . . . . . . . . . . . 20

2.5.6.1. Vivado HLS . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.7. IP y perifericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.6. Logica Difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.6.1. Sistema de Inferencia Difuso . . . . . . . . . . . . . . . . . . . . 24

2.6.1.1. Fuzzificacion . . . . . . . . . . . . . . . . . . . . . . . . 24

2.6.1.2. Inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.6.1.3. Defuzzificacion . . . . . . . . . . . . . . . . . . . . . . . 25

2.7. Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . . . . . . 26

2.7.1. RNA Multicapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.7.1.1. Algoritmo de entrenamiento por retropropagacion . . 29

2.7.1.2. Algoritmo de entrenamiento Levenberg-Marquardt . . 30

3. Diseno de controladores 323.1. Analisis del ZMP en el pie del robot bıpedo . . . . . . . . . . . . . . . . 32

3.2. Analisis de la cinematica directa del robot bıpedo . . . . . . . . . . . . . 36

3.2.1. Matriz de transformacion Homogenea . . . . . . . . . . . . . . . 36

3.2.2. Modelo cinematico a partir del metodo de Denavit – Hartenberg 37

3.3. Analisis de la cinematica Inversa. . . . . . . . . . . . . . . . . . . . . . . 42

3.4. Implementacion del controlador difuso para el seguimiento de trayec-

toria mediante ZMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.4.1. Metodologıa para implementar un coprocesador difuso en el

procesador suave Microblaze . . . . . . . . . . . . . . . . . . . . 49

3.5. Implementacion de controlador difuso para la velocidad de movimien-

to. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Page 10: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

CONTENIDO 10

4. Resultados 554.1. Simulacion de la cinematica directa. . . . . . . . . . . . . . . . . . . . . 55

4.2. Experimentacion, implementacion y metodologıa de la cinematica in-

versa en hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.2.1. Cinematica inversa con cambio de referencia. . . . . . . . . . . . 57

4.3. Experimentacion con la caminata bıpeda. . . . . . . . . . . . . . . . . . 60

5. Conclusiones y trabajo futuro 635.1. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Referencias 65

Apendice 67

A. Diseno del prototipo 68A.1. Comunicacion entre FPGA y motores . . . . . . . . . . . . . . . . . . . . 70

A.2. Circuito de adquisicion de datos de los sensores de fuerza. . . . . . . . . 73

Page 11: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Indice de figuras

1.1. Evolucion en orden cronologico de ASIMO. . . . . . . . . . . . . . . . . 3

1.2. a) Area estable ZMP b) Distribucion de fuerzas de reaccion. . . . . . . . 4

1.3. Ruido en la trayectoria del ZMP. . . . . . . . . . . . . . . . . . . . . . . . 5

2.1. Diferentes tipos de robots. . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2. Fase de soporte unico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3. Fase de doble soporte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4. Planos del robot: a) Plano Frontal, b) Plano Sagital, c) Plano transversal. 12

2.5. Arquitectura interna de alto nivel de un FPGA. . . . . . . . . . . . . . . 15

2.6. Representacion del procesador Suave Microblaze de Xilinx en una FP-

GA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.7. Coprocesador suave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.8. Tarjeta de desarrollo FPGA Atlys . . . . . . . . . . . . . . . . . . . . . . 20

2.9. Nivel de abstraccion para el diseno en FPGA. . . . . . . . . . . . . . . . 22

2.10. Sistema de Inferencia Difusa. . . . . . . . . . . . . . . . . . . . . . . . . 24

2.11. Variable linguıstica temperatura: con seis terminos linguısticos. . . . . . 24

2.12. Metodo de Membresıa Maxima. . . . . . . . . . . . . . . . . . . . . . . . 26

2.13. Clasificacion erronea del perceptron para compuerta XOR . . . . . . . . 27

2.14. Red neuronal con una capa oculta. . . . . . . . . . . . . . . . . . . . . . 28

2.15. Regiones de decision del perceptron multicapa. . . . . . . . . . . . . . . 28

2.16. Funciones de activacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1. El punto P tambien es conocido como ZMP. . . . . . . . . . . . . . . . . 33

3.2. Diferencias entre COP, ZMP,FRI. . . . . . . . . . . . . . . . . . . . . . . 33

3.3. Dimensiones y acotaciones del pie del robot bıpedo. . . . . . . . . . . . 34

3.4. Grafica en Matlab que simula la ubicacion de las coordenadas ZMP. . . 35

3.5. Distribucion de sensores en el polıgono del pie. . . . . . . . . . . . . . . 35

3.6. Diseno final del pie del robot bıpedo. . . . . . . . . . . . . . . . . . . . . 36

11

Page 12: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

INDICE DE FIGURAS 12

3.7. Cadenas cinematicas del robot bıpedo. . . . . . . . . . . . . . . . . . . . 38

3.8. Relacion de entradas y salidas de la RNA para la resolucion de la ci-

nematica inversa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.9. Toolbox de RNA en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.10. Grafica del rendimiento de la red. . . . . . . . . . . . . . . . . . . . . . . 45

3.11. Esquema del controlador difuso de postura mediante ZMP para el robot

bıpedo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.12. Planeacion de la Trayectoria deseada del ZMP del robot bıpedo . . . . 46

3.13. Sistema de inferencia difusa del controlador ZMP basado en sensores. . 47

3.14. Universo de discurso de la variable “Error” . . . . . . . . . . . . . . . . 47

3.15. Universo de discurso de la variable “Variacion del error” . . . . . . . . . 48

3.16. Universo de discurso de la variable “Compensacion”. . . . . . . . . . . . 48

3.17. Superficie de control del controlador ZMP . . . . . . . . . . . . . . . . . 48

3.18. Coprocesador suave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.19. Secuencia de incorporacion del ip core difuso a Microblaze. . . . . . . . 51

3.20. Comparacion de resultados del FIS en a) Matlab b)Visual C c)Vivado

HLS d)Microblaze Ipcore. . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.21. Universo de discurso de la variable de entrada “Error” del controlador

de velocidad de movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.22. Universo de discurso de la variable de entrada “Cambio de error” del

controlador de velocidad de movimiento. . . . . . . . . . . . . . . . . . . 53

3.23. Universo de discurso de la variable de salida “RPM” del controlador de

velocidad de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.24. Superficie de control para el controlador de velocidad de movimiento . 54

4.1. Simulacion de la Cinematica directa del robot bıpedo mediante el Tool-

box de robotica en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.2. Etapas del proceso para implementar la RNA en procesadores suaves. . 57

4.3. Evaluacion de la cinematica inversa en el robot bıpedo . . . . . . . . . . 58

4.4. Plano sagital del robot bıpedo donde muestra una trayectoria del centro

de masa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.5. Grafica de la evaluacion de puntos en el plano implementando la ci-

nematica inversa con cambio de referencia. . . . . . . . . . . . . . . . . 59

4.6. Plano frontal de la caminata bıpeda. . . . . . . . . . . . . . . . . . . . . 60

4.7. Plano sagital de la caminata bıpeda. . . . . . . . . . . . . . . . . . . . . . 60

4.8. Simulacion del controlador ZMP para la respuesta al escalon unitario . 61

Page 13: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

INDICE DE FIGURAS 13

4.9. Simulacion de seguimiento del controlador ZMP . . . . . . . . . . . . . 61

4.10. Respuesta real del controlador ZMP en el robot bıpedo a trayectorias

deseadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

A.1. Prototipo del robot bıpedo. . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A.2. Proceso de diseno de partes. . . . . . . . . . . . . . . . . . . . . . . . . . 69

A.3. Prototipo 3d vs. Real. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

A.4. Bus de interconexion de los servomotores. . . . . . . . . . . . . . . . . . 70

A.5. Esquematicos de la fuente de alimentacion y comunicacion de datos. . . 72

A.6. PCB de la fuente de alimentacion y comunicacion. . . . . . . . . . . . . . 72

A.7. Grafica resistiva del sensor Flexiforce 301. . . . . . . . . . . . . . . . . . 73

A.8. Programacion grafica del sensor flexiforce 301. . . . . . . . . . . . . . . 74

A.9. Graficas de obtenidas de las mediciones del sensor de fuerza. . . . . . . 74

A.10.Esquematico para el circuito de adquisicion de datos del sensor de fuerza. 75

A.11.Hardware de adquisicion de sensores de presion. . . . . . . . . . . . . . 75

A.12.Grafica del filtro pasabajas. . . . . . . . . . . . . . . . . . . . . . . . . . . 76

A.13.Coeficientes del filtro pasa bajas. . . . . . . . . . . . . . . . . . . . . . . 76

Page 14: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Indice de tablas

2.1. Tabla de verdad de la compuerta XOR. . . . . . . . . . . . . . . . . . . . 27

3.1. Parametros DH de la cadena cinematica el pie derecho del robot bıpedo. 39

3.2. Parametros DH de la cadena cinematica del pie izquierdo del robot bıpedo. 39

3.3. Parametros de entrenamiento de la red neuronal. . . . . . . . . . . . . . 43

3.4. Reglas del sistema de inferencia ZMP . . . . . . . . . . . . . . . . . . . . 49

3.5. Reglas del sistema de inferencia para el FIS de velocidad de movimiento. 54

4.1. Tiempos de ejecucion del procesador Microblaze de las funciones prin-

cipales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.2. Velocidades maximas alcanzadas por el robot bıpedo. . . . . . . . . . . 62

A.1. Funciones escritas en C, para el control de servomotores Dynamixel. . . 71

14

Page 15: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Lista de Acronimos

ZMP Zero Moment Point

FPGA Field Programmable Gate Array

FIS System Inference Fuzzy

ASIC Application-Specific Integrated Circuit

HDL Hardware Description Language

FAM Fuzzy Associative Memory

HLS High Level Syntesis

HPC High Performance Computation

CLB Configurable Logic Block

IOB Input Output Block

DSP Digital System Processing

LUT Look-Up Table

SRAM Static Random Access Memory

RISC Reduced Instruction Set Computer

SoC System On Chip

IP Intellectual Property

PWM Pulse Width Modulation

PLB Peripheral Local Bus

Page 16: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

INDICE DE TABLAS 16

AXI IAdvanced eXtensible Interface

IoT Internet Of Things

ROM Read-Only Memory

RAM Random Access Memory

AES Advanced Encryption Standard

RTOS Real-Time Operating System

RNA Artificial Neural Networks

DSC Digital Signal Controller

DOF Degrees Of freedom

PID Proportional–Integral–Derivative

RTL Register Transfer Level

Page 17: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Capıtulo 1

Introduccion

En la actualidad, la idea de que los robots humanoides interactuen con el hombre

ha sido uno de los mayores retos en el ambito cientıfico y tecnologico. Se espera que

estas maquinas puedan realizar las actividades tediosas y peligrosas que se presentan

en la vida cotidiana.

Obtener el modelo matematico de los robots bıpedos es sumamente complicado de-

bido al alto grado de no linealidad [1] y a la gran cantidad de parametros necesarios en

los controladores tradicionales. Por tal razon, son de gran interes las investigaciones

que proponen soluciones alternas, planteadas con algoritmos de control innovadores

mediante logica difusa [2], redes neuronales [3], y algoritmos geneticos [4] para posi-

cionamiento y control.

El estudio de robots bıpedos manifiesta una gran complejidad en relacion al control

de su locomocion, debido a la dificultad de controlar el caminar y mantener el equi-

librio generado por los movimientos de sus articulaciones, lo que representa intrınse-

camente un sistema sumamente no lineal [5]. Otro aspecto importante es la reaccion

dinamica producida por el contacto con la tierra, donde se genera una friccion con

fuerza inercial que debe ser cero para mantener el equilibro. La gran mayorıa de los

trabajos de investigacion sobre robots bıpedos se centran en desarrollar controladores

para que el robot no pierda la estabilidad al caminar, y es donde toma gran importan-

cia el concepto de ZMP [6], tambien conocido como CoP [7], que se define como un

criterio de estabilidad ampliamente utilizado en el desarrollo de robots, por ejemplo,

en el ASIMO creado por la empresa Honda Inc. [8], que representa uno de los huma-

noides mas avanzados en la actualidad. En el ciclo de la caminata bıpeda, el robot se

apoya sobre una sola extremidad y en la planta del pie se forma el polıgono de SoporteUnico. En este punto la fuerza de reaccion con la tierra es cero [9], y siguiendo el ciclo

cuando se apoya mediante los dos pies se le denomina polıgono de Doble Soporte, por

1

Page 18: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

1.1 Antecedentes 2

consiguiente el ZMP existe y el robot no sufre una caıda mientras el centro de masa

se encuentre dentro de dichos polıgonos de soporte. En la caminata de robots bıpe-

dos existen dos formas de caminado: el caminado estatico con movimientos lentos sin

estetica [10], y el caminado dinamico, con gran eficiencia e incluso con una movilidad

mas natural [11].

En este trabajo mostramos el diseno y construccion del robot bıpedo que utiliza-

mos para realizar los experimentos, se presenta el diseno de los algoritmos de control

inteligente desarrollados para la caminata del robot, principalmente basados en logica

difusa y redes neuronales artificiales. Los controladores se implementaron en tecno-

logıa FPGA por la versatilidad que ofrecen para mezclar tecnicas de procesamiento

secuencial con multiprocesadores suaves, y procesamiento concurrente mediante len-

guajes de descripcion de hardware, lo cual permitio ejecutar las tareas en tiempo real.

1.1. Antecedentes

La investigacion de robots se remonta muchos anos atras desde que se concibio el

termino robot por Isaac Asimov en sus historias de ciencia ficcion alrededor del ano

1920, con la idea de crear maquinas capaces de servir al hombre, en tareas domesti-

cas, de servicio, peligrosas o que requieran de atencion especial [12]. En la actualidad

gracias al creciente avance en la tecnologıa han surgido robots moviles capaces de ex-

plorar el espacio, robots manipuladores que auxilian en tareas de ensamble, robots

bıpedos con la capacidad de imitar al ser humano y robots que imitan la locomocion

de los animales.

Los robots que tienen dos patas son llamados robots bıpedos, de los cuales se des-

tacan los humanoides que tienen como objetivo imitar la forma de ser y movimientos

del ser humano con la finalidad de utilizarlos en tareas peligrosas. Este tipo de robot es

muy importante en el diseno de protesis y es de gran relevancia para su investigacion

debido a la complejidad del sistema para generar una respuesta estable en su locomo-

cion. En la Figura 1.1 se muestran todas las versiones en orden cronologico del robot

ASIMO del fabricante de autos Honda, destacado actualmente como uno de los robots

mas avanzados [13].

1.2. Justificacion

En muchos paıses la robotica es un aspecto prioritario en un contexto tecnologico,

en especial los robots bıpedos se pretenden usar en la minerıa para la exploracion de

Page 19: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

1.3 Proposito de la investigacion 3

Figura 1.1: Evolucion en orden cronologico de ASIMO.

territorios peligrosos, en la limpieza domestica, vigilancia del medio ambiente, segu-

ridad y logıstica, robots medicos y terapeutas, robots para mostradores, como guıa de

incapacitados, exoesqueletos y en un caso extremo como companero del hombre, por

lo consiguiente es necesario seguir aportando nuevas metodologıa para el desarrollo

de controladores para la caminata de robot bıpedos en FPGA, en especial con sistemas

neurodifusos, ya que la gran mayorıa de la literatura e implementaciones se usan con-

troladores clasicos. Ademas esta investigacion presenta resultados experimentales con

un robot prototipo para demostrar la practicidad y la fiabilidad de los controladores

propuestos.

1.3. Proposito de la investigacion

Desarrollar e implementar una metodologıa a base de sistemas difusos y redes neu-

ronales para minimizar el ruido inherente producido por el contacto mecanico entre

el pie del robot bıpedo y la superficie del suelo, mejorando la estabilidad y la estetica

de la caminata. Ademas de optimizar los algoritmos mediante tecnologıa de hardware

reconfigurable para corregir y favorecer la respuesta total de este tipo de sistemas.

1.4. Formulacion del problema

La trayectoria ZMP es un metodo importante para la estabilidad del proceso de

caminata del robot bıpedo ya que garantiza la estabilidad. El ZMP es un punto de

presion donde las fuerzas de reaccion inercial horizontal son cero [12]. En la Figura

1.2a, la zona rodeada por las lıneas discontinuas, pueden ser considerados como el

margen de estabilidad del ZMP, esto significa que si la trayectoria de la ZMP se queda

Page 20: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

1.5 Hipotesis 4

en el margen estable cuando el robot se mueve, entonces el movimiento del robot se

puede considerar que es estable. En la Figura 1.2b se ilustra un ejemplo de distribucion

de varias fuerzas de reaccion sobre el pie del robot y el suelo, el ZMP, estara ubicado en

el punto de mayor concentracion de la misma, es decir el punto de proyeccion vertical

del centro de masa.

Figura 1.2: a) Area estable ZMP b) Distribucion de fuerzas de reaccion.

En la Figura 1.3 se muestra la grafica del desplazamiento frontal de unos 40 cm

aproximadamente, donde se aprecia el ruido en la trayectoria ZMP del robot bıpe-

do, provocando inestabilidad mecanica en la caminata [14], dada esta problematica

inherente es factible reducir el ruido utilizando sistemas neurodifusos y mejorar el

rendimiento en la ejecucion en tiempo real implementandolos en dispositivos progra-

mables.

1.5. Hipotesis

Es posible reducir significativamente el ruido en la trayectoria del ZMP en la cami-

nata de robots bıpedos mediante controladores inteligentes de postura implementados

en dispositivos logicos programables FPGA.

1.6. Objetivo general

Disenar algoritmos inteligentes para el control de la locomocion de robots bıpedos,

implementados en procesadores suaves utilizando tecnologıa FPGA.

Page 21: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

1.7 Delimitaciones 5

Figura 1.3: Ruido en la trayectoria del ZMP.

1.6.1. Objetivos especıficos

Construir una plataforma experimental.

Desarrollo de metodologıas para la implementacion de controladores difusos ti-

po 1 embebidos en FPGA.

Simular e implementar en la FPGA la cinematica directa e inversa del robot bıpe-

do.

Efectuar la camina del robot experimental.

1.7. Delimitaciones

Las pruebas en tiempo real de los controladores del robot bıpedo unicamente

fueron evaluados en un prototipo construido en el laboratorio

El analisis se centro de la cadera hacia los pies de robot.

La implementacion en FPGA se baso unicamente en la plataforma de Xilinx.

Las RNA usadas fueron entrenadas de forma supervisada.

Page 22: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

1.8 Productividad cientıfica 6

1.8. Productividad cientıfica

A continuacion se muestra la productividad cientıfica obtenida durante el desarro-

llo del trabajo de tesis:

1. Roberto Sepulveda, Oscar Montiel Ross, Jorge Quinones Rivera., Methodologyto Design Fuzzy Logic Controller for Soft-Core Embedded into FPGA, Recent

Advances on Hybrid Intelligent Systems, vol 451,89-96, Springer, Berlin, 2013.

2. Roberto Sepulveda, Oscar Montiel, Jorge Quinones Rivera, Ernesto E. Quiroz.,

WLAN Cell Handoff Latency Abatement Using an FPGA Fuzzy Logic Algo-rithm Implementation, Advances in Fuzzy Systems,vol 2012, Hindawi, 2012.

3. Jorge Arturo Quinones Rivera, Oscar Montiel Ross, Roberto Sepulveda, Oscar

Castillo., Diseno e implementacion de controladores inteligentes en procesa-dores suaves para la caminata de un robot bıpedo, Computacion y sistemas,

Tendencias en temas de investigacion informatica, vol 22, No 4, CIC IPN, Mexi-

co, 2018.

4. Roberto Sepulveda, Oscar Montiel Ross, Jorge Quinones, Ulises Orozco., Intro-duction to novel processor, del libro High Performance Programming for Soft

Computing Applications, CRC Press, Florida, 2014.

5. Montiel Oscar, Sepulveda Roberto, Castillo Oscar, Quinones Jorge., Efficient Ste-reoscopic Video Matching and Map Reconstruction for a Wheeled Mobile Ro-bot, International Journal of Advanced Robotic Systems, 2012.

6. Montiel Oscar, Jorge Quinones, Roberto Sepulveda., Designing High-Performance Fuzzy Controllers Combining IP Cores and Soft Processors,

Advances in Fuzzy Systems, Hindawi, 2012.

El contenido de esta tesis se encuentra organizado como sigue: en la seccion 2, se

revisan los conceptos basicos utiles para el desarrollo de la investigacion; en la seccion

3, se detalla la construccion, el hardware, la plataforma de computo utilizada en el

robot bıpedo, la metodologıa para la obtencion de la cinematica inversa a partir de la

cinematica directa mediante RNA y los controladores con logica difusa para controlar

la caminata bıpeda; en la seccion 4, se detallan los experimentos realizados y los re-

sultados obtenidos; finalmente en la seccion 5 se presentan las conclusiones y trabajo

futuro.

Page 23: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Capıtulo 2

Marco Teorico

En este capıtulo se presentan conceptos basicos sobre tecnicas de control de robots

bıpedos, tambien se detallan los sistemas de inferencia difuso, utiles para el diseno de

controladores, ası como el es estudio de redes neuronales para resolver la cinematica

del robot y conceptos sobre FPGA donde se implementan los algoritmos.

2.1. Tipos de robots

Los robots estan conformados de elementos mecanicos, actuadores, unidades de

procesamiento, control y sensores, por lo cual la estructura y los elementos utilizados

hacen distintivo a un robot de otro. En esta seccion se presenta un panorama general

de los robots mas representativos [15].

2.1.1. Robot industrial

Un robot industrial, es un manipulador programable multifuncional disenado para

mover materiales, piezas herramientas o dispositivos especiales, mediante movimien-

tos programados para la ejecucion de distintas tareas.

El sistema mecanico forma parte esencial de un robot manipulador, esta dotado de

varias articulaciones unidas por eslabones y un efector final, que a su vez es multifun-

cional debido a la aplicacion o tarea a desarrollar. El movimiento de un manipulador

puede ser de traslacion, rotacional o una combinacion de ambos. El numero de varia-

bles de posicion independientes que tendran que especificarse para localizar las piezas

del mecanismo se llaman grados de libertad [15]. Un ejemplo de ellos se muestra en la

Figura 2.1a que corresponde al manipulador FANUC modelo LR MATE 200-C.

7

Page 24: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.1 Tipos de robots 8

2.1.2. Robots redundantes

Para posicionarse en cualquier punto del espacio solo es necesario tener como maxi-

mo seis grados de libertad, por lo cual si la cantidad de grados es mayor se les deno-

mina robots redundantes, disenados para operar en lugares de difıcil acceso. Debido a

la cantidad de sus articulaciones el problema de control y de planificacion crece. Los

robots anguila modelo ACM-R5 son ejemplo de ello, tal como se ilustra en la Figura

2.1b [15].

2.1.3. Robots Moviles

Son robots que consiguen su locomocion gracias a sus ruedas o patas. Los robots con

ruedas son impulsados por motores electricos capaces de alcanzar grandes velocidades,

es comun encontrar robots moviles con dos, tres o mas ruedas (Figura 2.1c) [15].

Los robots con patas logran separar su cuerpo mediante el apoyo de extremidades

en determinadas partes del terreno, con la intencion de aventajar a los robots moviles

en terrenos irregulares, con la gran desventaja de que su velocidad se ve reducida,

como ejemplo de este tipo de robot es muy comun encontrar robots hexapodos (Figura

2.1d), bıpedos (Figura 2.1e) [13] y cuadrupedos [15].

2.1.4. Robots marinos y aereos

Los robots marinos y aereos son ampliamente usados en tareas de inspeccion, tele-

metrıa y rescate, en entornos de difıcil acceso para el hombre. Gran parte de los avances

tecnologicos de estos robots son desarrollados en la milicia, sus investigaciones tienen

como objetivo crear naves no tripuladas para no poner en riesgo la vida de los soldados

en las guerras (Figura 2.1f ).

2.1.5. Robots Flexibles

Son robots que en su configuracion mecanica contienen elementos flexibles, esta

clase de robot tiene caracterısticas interesantes en relacion a su peso y de carga, pero

debido a su alta no linealidad, representa un gran problema de control. Comunmen-

te es construido con Flexinol o tambien llamado cable muscular que al aplicar una

tension de voltaje el material se contrae (Figura 2.1g ).

Page 25: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.2 Robots bıpedos 9

Figura 2.1: Diferentes tipos de robots.

2.2. Robots bıpedos

La locomocion es el estudio del movimiento de los seres vivos, ya sea un animal o

una persona, tiene una gran complejidad en su arquitectura osea y muscular, tan solo

en la parte baja esta conformada por 44 huesos y 46 musculos, que intervienen en la

propulsion para generar movimientos como el caminar. Partiendo de esta arquitectura

el hombre por decadas ha intentado crear maquinas para su servicio que puedan re-

plicar los movimientos del ser humano y toma como objeto de investigacion el diseno

de robots bıpedos [16].

2.2.1. Caminado

El caminado (Walking ) se define como una sucesion cıclica de pasos sobre una su-

perficie, manteniendo el equilibrio naturalmente o con la ayuda de un control. Este

ciclo inicia cuando el talon hace contacto con la tierra seguido de dos pasos, con la

pierna izquierda y luego la derecha. En este proceso, al caminar lentamente existe un

doble soporte cuando las dos piernas hacen contacto con la superficie, pero al aumen-

tar la velocidad un ciclo desaparece, e interviene un solo pie como apoyo manteniendo

el equilibrio [17].

Page 26: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.2 Robots bıpedos 10

2.2.2. Fase de soporte unico

Durante la fase de soporte unico (Single Support Phase), el pie al que se le hace re-

ferencia del soporte, es el que se encuentra apoyado sobre el suelo y relativamente esta-

cionario. Es el encargado de mantener el peso del cuerpo, de ahı su nombre,“soporte”.

El comienzo de esta fase se puede distinguir cuando la otra pierna (la que no va a hacer

el soporte) deja el suelo siendo la punta del pie lo ultimo en estar en contacto con el

suelo, y termina cuando esa misma pierna vuelve a tocar el suelo por medio del talon

como se ve en la Figura 2.2 [17].

Figura 2.2: Fase de soporte unico.

2.2.3. Fase de soporte doble

La fase de soporte doble (double support phase), se caracteriza porque los dos pies

se encuentran en contacto con el suelo compartiendo el soporte del cuerpo. El comien-

zo de esta fase se reconoce cuando el talon de una pierna toca por primera vez el suelo

y termina cuando la punta del pie de la otra pierna se despega del suelo. La duracion

de esta fase es bastante corta, pero indispensable ya que durante ella se hace el traspa-

so del soporte del cuerpo de una pierna a otra. Esto lo podemos observar en la Figura

2.3.

Figura 2.3: Fase de doble soporte.

Page 27: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.3 Caso de estudio 11

2.2.4. Fase de postura

La fase de postura (Stance phase) representa el periodo de tiempo durante el cual

la pierna analizada se encuentra en contacto con el suelo. Comienza cuando su talon

toca el suelo y termina cuando los dedos del pie se despegan del suelo [18].

2.2.5. Fase de balanceo

El balanceo (Swing phase) se distingue porque es el periodo de tiempo durante el

cual la pierna analizada se encuentra en el aire balanceandose hacia el frente.

2.3. Caso de estudio

El diseno de los robots bıpedos y especialmente, los robots humanoides se inspira

en la naturaleza de la movilidad funcional del cuerpo humano. Sin embargo, la natu-

raleza compleja de la estructura del esqueleto, ası como el sistema muscular humano

no puede ser reproducida en la robotica. El numero de movilidades internas se limita

a lo esencial y el sistema de accionamiento debe ser simplificado. Un robot bıpedo o

un robot humanoide por lo tanto tienen menos DOF que un cuerpo humano. La elec-

cion del numero de actuadores para cada articulacion es muy importante. El enfoque

consiste en analizar la estructura del robot a partir de tres planos principales: frontal(Figura 2.4a ), el plano sagital (Figura 2.4b), y transversal (Figura 2.4c ). El movimiento

de caminar tiene lugar principalmente en el plano sagital, todos los bıpedos tienen la

mayor numero de articulaciones importantes en este plano [12].

El analisis de las articulaciones en el plano frontal muestra su importancia para la

estabilidad lateral del pie. La estabilidad en el plano frontal depende de la posicion

del centro de gravedad en relacion con el punto de contacto de la pierna de apoyo con

el suelo [12].

Las articulaciones en el plano transversal, solo existen en los bıpedos mas comple-

jos. Estos robots tienen desde uno hasta cinco articulaciones en el plano transversal.

[12].

2.4. Modos de caminata bıpeda

Existen dos modos para la caminata del robot bıpedo, el balance estatico y el

balance dinamico: En el balance estatico, el centro de masa del robot, se encuentra en

todo momento dentro del area de su pie apoyo sobre la tierra o el area de soporte de

Page 28: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.4 Modos de caminata bıpeda 12

Figura 2.4: Planos del robot: a) Plano Frontal, b) Plano Sagital, c) Plano transversal.

sus dos pies si ambos estan en la tierra, la desventaja de este modo es que no existe

fluidez en el caminar, por lo general se utilizan pasos cortos.

Para el balance dinamico , el centro de masa del robot puede estar fuera del area

de soporte de los pies durante su marcha. Es el modo mas utilizado y se pueden usar

diferentes tecnicas para su estudio [19]:

Pendulo invertido: El caminado se puede modelar como un pendulo invertido para

lograr el equilibro dinamico, dando seguimiento constante a la aceleracion del

robot para compensar los movimientos de las piernas.

ZMP: Para lograr el balance dinamico del robot se requiere el conocimiento de todas

las fuerzas y torque del cuerpo del robot, usando acelerometros, giroscopios o

sensores de presion en la planta de los pies.

Control difuso: Se hace una adaptacion de la estructura del controlador PID clasico

reemplazandolo por un sistema de inferencia difuso.

Algoritmos geneticos: En este enfoque se crean poblaciones de robots virtuales con

los parametros dinamicos obtenidos por simulacion mecanica, los mejores se re-

producen creando nuevas generaciones, con el objetivo de optimizar y encontrar

los valores adecuados de las fuerzas y velocidades de las articulaciones, que me-

joren el rendimiento de la caminata bıpeda.

Control PID: Usa controladores clasicos PID, para mantener el angulo de inclinacion

deseado durante el desplazamiento frontal del robot.

Horizonte Artificial: Usa sistemas de vision para fijar un horizonte artificial en el

espacio de trabajo del robot, se compara constantemente con la orientacion del

Page 29: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 13

robot durante su trayectoria y mediante los cambios de posicion de las lıneas de

referencia se determinan las compensaciones para su estabilidad.

Redes neuronales: Mediante simulaciones y entrenamiento supervisado de una red

neuronal se crea una base de datos patron con las posiciones angulares de las

articulaciones en una trayectoria guiada, hasta obtener una red que logre el ca-

minado estable.

2.5. Hardware Reconfigurable

La computacion reconfigurable explota las capacidades intrınsecas de una FPGA,

que son dispositivos que principalmente presentan la caracterıstica unica de permitir

programarse tanto en software como en hardware mediante lenguajes de programa-

cion descriptiva para resolver un problema en particular, con un gran rendimiento y

bajo costo. En esta seccion nos centraremos en describir la tecnologıa que utilizan las

FPGA´s como un recurso para implementar arquitecturas de procesadores.

2.5.1. FPGA

En las ciencias computacionales y electronica podemos procesar algoritmos me-

diante Hardware y Software. En software, el usuario desarrolla secuencias de instruc-

ciones con lenguajes de programacion para resolver una tarea especıfica utilizando

un procesador. En Hardware podemos recurrir a un ASIC, cuyas caracterısticas prin-

cipales son su alto rendimiento, bajo consumo, y tamano reducido, pero sus grandes

desventaja son su alto precio de fabricacion, su nula reconfiguracion, y recursos limi-

tados. Otra posibilidad es hacer uso de un FPGA, que tambien nos brinda prestaciones

similares a los ASIC´s, pero ademas nos permite la programacion mediante softwa-

re con lenguajes de programacion de alto nivel como C, C++, Phyton, Java, Matlab,

Labiew, etc., y por hardware con HDL como el VHDL, Verilog, ABEL, HLS, brindan-

do una gran versatilidad para realizar las implementaciones de algoritmos de manera

economica y sencilla [20].

La migracion a computadores multinucleo requirieron cambios complejos en los

sistemas y el software para lograr un rendimiento optimo. Antes del advenimiento

de multinucleo, la mayorıa de los esfuerzos para mejorar el rendimiento se realizaron

con el aumento de la frecuencia de reloj. Los incrementos de frecuencia aumentan el

consumo de energıa, que a su vez generan calor, requiriendo sistemas de enfriamiento

mas avanzados, que disminuye la confiabilidad, y se acorta la vida util del dispositivo.

Page 30: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 14

Los FPGA, son muy utilizadas para la aceleracion de hardware en una amplia gama

de aplicaciones, tanto en servidores de alto rendimiento como en sistemas embebidos.

La disponibilidad y la eficiencia energetica de los FPGA, de alta densidad los hacen

atractivos para la comunidad de HPC, la cual se dedica a mejorar y maximizar las

capacidades de computo para resolver problemas complejos empleando tecnologıas

computacionales. Los FPGA, tienden a consumir energıa en decenas de Watts, en com-

paracion con los procesadores multinucleo y GPU que tienden a consumir energıa en

cientos de Watts. La razon principal para un menor consumo de energıa en dispositi-

vos FPGA es que las aplicaciones suelen operar entre 100-300 MHz en comparacion

con aplicaciones en procesadores de alto rendimiento que se ejecutan entre 2-3 GHz

[21].

2.5.2. Arquitectura de una FPGA

Internamente un FPGA esta compuesta por cinco elementos principales: CLB, IOB,DSP, Bloques RAM e Interconexiones (Figura 2.5). Los CLB son una gran variedad de

elementos logicos combinacionales como son las compuertas and, or, not, etc. y compo-

nentes de logica secuencial es decir Flip-Flops (tambien conocidos como cerrojos, o en

ingles Latch) dispuestos para formar ecuaciones booleanas, retardos, maquinas de esta-

dos, memorias o componentes mas complejos y estructurados. Para reducir el espacio

y aumentar la eficiencia en las ecuaciones logicas los FPGA estan dotados de una gran

cantidad de LUT, que son componentes que tienen una serie de valores preestableci-

dos de salida para responder a determinados estımulos de entrada. Las Interconexionesfuncionan como canales de comunicacion bidireccionales para propagar las senales

entre los CLB y IOB, para llevar a cabo esta comunicacion se usan transistores bypass,

multiplexores y buffer triestado [22].

Los IOB permiten programar a voluntad las senales provenientes de los CLB e IOB

a cualquier terminal fısica del encapsulado FPGA, asimismo tienen la capacidad de

ofrecer diferentes tecnologıas de tension de voltaje (cmos, lvmos,ttl, etc.) e impedancias

de entrada o salida (Pull Up, Pull Down, High Impedance, etc) por que tienen incorpo-

rados Buffers bidireccionales y buffers triestado.

Podemos usar Flip-Flops para crear memoria de almacenamiento para nuestras

aplicaciones, pero consumirıamos muchos recursos logicos, por lo cual se integra al

encapsulado memoria interna configurable llamados Bloques RAM de tipo SRAM y en

general estan dotadas con un rango de 1 a 4 Kb.

El Bloque DSP es un bloque especializado, util para mejorar el rendimiento al pro-

Page 31: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 15

Figura 2.5: Arquitectura interna de alto nivel de un FPGA.

cesar datos que requieren una gran intensidad de procesamiento que usen multiplica-

ciones siendo los mas comunes los de 18×18 bits.

2.5.2.1. Clasificacion de arquitecturas

En funcion de su arquitectura los FPGA se clasifican de acuerdo a los siguientes

parametros: Granularidad, Esquema de reconfiguracion y Acoplamiento. La Granularidad,

se refiere al nivel de detalle en que se manipulan los datos, puede ser de tres tipos:

Granularidad fina: manipula la informacion a nivel de bit.

Granularidad media: maneja agrupaciones de bits.

Granularidad gruesa: son operaciones a nivel de palabras y registros.

El Esquema de reconfiguracion se refiere a que pueda reconfigurarse estaticamente

o dinamicamente. Los sistemas dinamicamente reconfigurables permiten reconfigura-

cion parcial de ciertos bloques logicos mientras otros estan funcionando. En los siste-

mas estaticos reconfigurables es necesario detener la ejecucion.

La clasificacion por Acoplamiento nos indica el grado de acoplamiento entre un host

y un microprocesador. En un sistema estrechamente acoplado, las unidades reconfigu-

rables son colocadas en la ruta de datos del procesador, actuando como unidades de

ejecucion. Los sistemas debilmente acoplados actuan como un coprocesador. Estan co-

nectados a un sistema de computadora host a traves de canales o algun hardware de

proposito especifico [23].

Page 32: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 16

2.5.2.2. Proceso para el diseno

El proceso para implementar un circuito en FPGA, inicia editando el codigo fuen-

te la aplicacion en el lenguaje de preferencia para de descripcion de hardware como

HDL, Verilog, Abel, HLS, o esquematicos, diagramas de estado; estos lenguajes abs-

tractos estan disenados para ser compatibles con diferentes familias de FPGA en el

mercado. La sıntesis traduce las estructuras de los lenguajes HDL a un comportamien-

to equivalente con compuertas logicas siendo analogo a la compilacion con los sistemas

a base de microprocesador. El mapeo separa las compuertas en agrupaciones que se

adapten a los recursos de la FPGA. La colocacion asigna dichas agrupaciones a bloques

logicos especıficos para despues ser enrutados, es decir se realizan las interconexiones

internas de los bloques que se transportaran al usuario. El bitstream genera un archivo

binario que establece toda la programacion del FPGA y las configuraciones de los blo-

ques para llevarlo como ultimo paso, a la grabacion, cargando el flujo de datos hacia el

FPGA fısicamente [20].

2.5.3. Procesadores en FPGA

Para acelerar el proceso de diseno donde es necesario un gran ancho de banda o el

control intensivo de perifericos incluso el uso de algun sistema operativo para desarro-

llar aplicaciones en lenguajes de alto nivel como C, java, etc, los fabricantes de FPGA

permiten crear nucleos de procesadores usando los recursos logicos internos (Softcore)

o la opcion de incrustar nucleos fısicos dentro de los arreglos logicos (Hardcore) y ası

beneficiarse de la combinacion de diseno mediante HDL y de los procesadores. En la

Figura 2.6 se ilustran dos procesadores suaves.

Figura 2.6: Representacion del procesador Suave Microblaze de Xilinx en una FPGA.

Page 33: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 17

2.5.3.1. Procesador suave

Un procesador suave “Soft-Processor” hace uso de la estructura FPGA para su im-

plementacion, generalmente opera en un rango de frecuencia de 20 a 650 Mhz. La

arquitectura mas sencilla en este tipo de procesadores es de 8 bits, programable exclu-

sivamente en lenguaje ensamblador, un ejemplo de ellos es el Picoblaze de la empresa

Xilinx, ideal para reemplazar maquinas de estado o aplicaciones de uso general sin

mayor complejidad; este incluye memoria interna local y utiliza muy pocos recursos

logicos para su construccion. Una de las grandes ventajas de estos procesadores, es la

capacidad de personalizacion y flexibilidad de sus perifericos, la cual permite agregar

y modificar caracterısticas en funcion de los requerimientos del producto final.

Para aplicaciones muy complejas donde se requiera procesamiento de video, audio,

centro de datos, Xilinx dispone de una arquitectura robusta llamado Microblaze, un

procesador RISC de 32 bits operando a una frecuencia nominal de 400 Mhz, en las

familias de FPGA Spartan, Virtex, Kintex, Artix en tecnologıa de 45 nm, 28 nm, 20 nm

y 16 nm. La plataforma de desarrollo software para programacion en lenguaje C y C++

es SDK y XPS, que incluye las herramientas de depuracion e implementacion.

Altera es otro de los principales fabricantes de FPGA, utiliza el procesador NIOSy NIOS II en la plataforma de Software Quartus Web Edition [24], es un procesador

de 32 bits tipo RISC, con procesamiento en punto flotante de 32 bit, con 32 niveles de

interrupcion y direccionamiento de memoria de 32 bits.

2.5.3.2. Microblaze

El CPU suave Microblaze es un microprocesador RISC de 32 bit con configura-

cion preestablecida y modificable. Los disenadores de sistemas pueden usar el kit de

desarrollo de software Xilinx (XPS y SDK) basado en el software Eclipse. El procesa-

dor MicroBlaze cumple con los requisitos para realizar diversas aplicaciones para los

mercados de robotica, industrial, medico, automotriz, de consumo, comunicaciones,

etc.

Si se desea el XPS y SDK incluye tres pre-configuraciones rapidas con librerıas pre-

compiladas para reducir el tiempo de desarrollo de arquitectura y software:

Microcontrolador: Adecuado para ejecutar codigo generico en lenguaje C.

Procesador en tiempo real: Para sistemas operativos basados en tareas tambien cono-

cidos como RTOS.

Procesador de aplicaciones: Incluye una distribucion de Linux especializado.

Page 34: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 18

Microblaze permite personalizar los recursos de su arquitectura a traves de un

catalogo de perifericos IP y opciones del procesador, como por ejemplo modulos PWM,

UART, DMA, IIC, etc., donde solo es necesario arrastrar al diseno para agregarlos al bus

de perifericos llamado PLB, para satisfacer las necesidades especıficas de la aplicacion.

a continuacion, se mencionan algunas caracterısticas especıficas de la arquitectura del

CPU Microblaze:

32 registros de proposito general.

Bus de direcciones de 32 bits.

Palabra de instruccion de 32 bits con tres operandos y dos modos de direcciona-

miento.

Pipeline de una sola ejecucion.

2.5.3.3. Procesador duro

El nucleo del procesador duro (hard processor) se encuentra fısicamente junto al

arreglo logico programable. Este se diferencıa del procesador suave, por no utilizar los

recursos del FPGA. Es ideal para aplicaciones mas complejas e incrementa el ancho

de banda de operacion a niveles superiores de 1 Ghz. Los nucleos ARM de 32 bits

son los mas utilizados por los fabricantes por que presentan la mayor compatibilidad

con distribuciones de Sistemas Operativos como Linux, Android, Petalinux y sistemas

operativos de tiempo real.

Atmel (Ahora microchip), con sus AT94 fue de las pioneras en incorporar un proce-

sador de 8 bits de la familia AVR, en una arquitectura FPGA denominandolos FPSLIC.

La familia de dispositivos ZYNQ de Xilinx, incluye en su arquitectura un SoC con un

procesador ARM de 32 y 64 bits, con uno y dos nucleos, llegando a incluir hasta cuatro

nucleos en la familia ZYNQ UltraScale+. Altera (adquirida por Intel) incluye 4 nucleos

ARM de 64 bits en sus FPGA STRATIX 10 funcionando a una frecuencia de 1.5 Ghz.

2.5.4. Coprocesadores Suaves

Un coprocesador es un nucleo de procesamiento adicional que complementa y ayu-

da al procesador principal, asignandole tareas especificas para optimizar y acelerar el

rendimiento de las aplicaciones, dicha tareas pueden ser calculos aritmeticos comple-

jos, procesamiento de audio y video, encriptacion, controladores, etc.

Page 35: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 19

Los FPGA son la plataforma perfecta para crear y usar nucleos de procesamiento ya

que por naturaleza realizan procesamiento concurrente, por lo cual en algoritmos que

consuman una gran cantidad de ciclos de reloj o instruccion, pueden ser optimizados

en un coprocesador disenado en HDL interactuando con el procesador principal en

el mismo encapsulado del FPGA, a esto se le conoce como Coprocesadores Suaves. El

concepto se ilustra en la Figura 2.7 .

Figura 2.7: Coprocesador suave.

2.5.5. Tarjeta de desarrollo FPGA ATLYS

Atlys es una placa de desarrollo fabricada por la empresa Digilent Inc., incluye un

FPGA Xilinx de la familia Spartan 6 modelo LX45 [25], un dispositivo de gama alta

que dispone una gran cantidad de perifericos como Gbit Ethernet, video HDMI, 128

MB de memoria DDR, conexion USB, puertos de audio, un oscilador de 100 Mhz, 48

pines de entrada o salida, leds y botones de usuario, capacidad para albergar procesa-

dores suaves como Microblaze y Picoblaze en el entorno de desarrollo Xilinx PlatformStudio e ISE Project (Figura 2.8). Por las caracterısticas mencionadas la hace ideal para

proyectos de Robotica, vision embebida, IoT, domotica, procesamiento de audio, etc.

Page 36: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 20

Figura 2.8: Tarjeta de desarrollo FPGA Atlys

2.5.6. FPGA familia Spartan 6

La familia Spartan 6 ofrece grandes capacidades, es ideal para la integracion de

sistemas con el menor costo total para aplicaciones de gran volumen. La familia que

comprende 13 dispositivos ofrece densidades expandidas que van desde 3840 a 147443

celdas logicas, con la mitad del consumo de energıa que las anteriores familias de

Spartan, con una conectividad mas rapida y completa [26].

Arquitectura

Los CLBs estan integrados por dos sectores, dispuestos uno al costado de otro en

forma de columnas. Tres tipos de sectores son incorporadas, SLICEM, SLICES y SLI-

CEX. Cada sector contiene cuatro, acLUTs, ocho FlipFlops y logica mixta. Los LUTS

son para logica combinacional de proposito general, pero tambien soporta logica se-

cuencial, por lo cual las herramientas de sıntesis aprovechan la alta eficiencia logica,

aritmetica y las caracterısticas de la memoria. Todos los sectores tienen en comun dos

generadores logicos y dos elementos de almacenamiento, multiplexores multifuncio-

nales, acarreos logicos, compuertas aritmeticas y funciones de ROM. La RAM puede

ser generada por LUT y puede ser utilizada de forma distribuida por los sectores en for-

ma individual o en forma de registros de corrimiento de 16 bits, aunque cada Spartan

6 tiene entre 12 y 268 bloques RAM con doble puerto independiente para compartir

los datos y cada uno almacena 18 Kb. El Spartan 6 incluye bloques DSPs dedicados

para las aplicaciones que requieran muchos multiplicadores y acumuladores binarios

llamadas DSP48A1, que son multiplicadores de complemento a 2 de 18×18 bits y un

acumulador de 48 bits capaz de operar a 390 Mhz.

Page 37: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 21

Granularidad

El Spartan 6 tiene una arquitectura de granularidad fina por que puede manejar

registros y palabras a nivel de bits.

Tecnologıa

Construido sobre una tecnologıa de proceso ya establecida sobre cobre de baja po-

tencia de 45 nm que ofrece el equilibrio optimo de costo, potencia y rendimiento. Los

pines de entrada y salida son multivoltaje que van desde 3.3 V a 1.2 V.

Caracterısticas adicionales

Las caracterısticas adicionales a la familia Spartan 6 son: Controladores de memo-

ria SDRAM, bloques mejorados de gestion de reloj en modo mixto, tecnologıa SelectIO

™, bloques de transceptores en serie de alta velocidad, PCI Express®, administracion

avanzada de energıa a nivel de sistema, deteccion automatica de opciones de configu-

racion y seguridad de IP mejorada con AES.

Reconfiguracion

La Familia Spartan 6 admite reconfiguracion parcial dinamica, por que es posible

cambiar la configuracion de una seccion de la FPGA, en tiempo de ejecucion.

Sıntesis de alto nivel

Para el diseno en FPGA los lenguajes de descripcion de hardware HDL tales como

VHDL o Verilog, permiten al disenador obtar por varios niveles de abstraccion, y to-

mar el control de los detalles para resolver un problema. El de mas bajo nivel es el

tipo estructural y es donde se realiza la conexion de componentes mediante instancias

explicitas, la incorporacion de compuertas, cerrojos, multiplexores, etc. El siguiente es

el Nivel de Transferencia de Registros (RTL), que oculta los niveles de detalle de la

tecnologıa y todas sus operaciones estan basadas en la manipulacion de registros. El

diseno mediante HDL comportamental representa el nivel mas alto, ya que se basa en

la descripcion como un algoritmo para el diseno de los circuitos (Figura 2.9). De estos

niveles de abstraccion el diseno comportamental, es el que generalmente reduce los

tiempos de implementacion por que se enfoca en la conducta final del circuito en lu-

gar de operaciones y ecuaciones logicas individuales, componentes y registros. Por lo

consiguiente toma gran importancia los entornos de desarrollo de diseno de hardware,

Page 38: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.5 Hardware Reconfigurable 22

una de ellas es la Sıntesis de Alto Nivel (HLS), que utiliza sintaxis de lenguajes de pro-

gramacion como C, C++, System C, etc., adecuados para generar codigo sintetizable,

mejorando sustancialmente la productividad por que acelera la edicion del algoritmo,

simplifica la depuracion y facilita la legibilidad. [27].

Figura 2.9: Nivel de abstraccion para el diseno en FPGA.

2.5.6.1. Vivado HLS

Vivado HLS es una herramienta de software para sıntesis incluida en el paquete

llamado “Suite Design” para el diseno de hardware en FPGAs de Xilinx, que trasfor-

ma codigo de C, C++ a una implementacion RTL (Verilog o VHDL) que puede ser

implementado en dispositivos programables, dicho de una manera simple, hace posi-

ble crear hardware mediante software, que presenta grandes ventajas como un menor

tiempo desarrollo, mejora el rendimiento de algoritmos que estan basados en proce-

sadores reduciendo ası el consumo y los tiempos de ejecucion, permite la integracion

y encapsulacion mediante IP core para poder ser usados por procesadores suaves o

instancias HDL [28].

En Vivado HLS el disenador puede modificar la funcionalidad de los algoritmos

de sıntesis en la traduccion del codigo mediante la adicion de directivas (sentencias

especificas) de optimizacion que se ajustan a la complejidad del problema a resolver

con la intencion de obtener una mejora, por ejemplo, en la reduccion de densidad,

mejorar los ciclos de reloj, consumo, etc. Tambien estas directivas crean las interfaces

necesarias en el diseno para la comunicacion de la ultima capa (Top-level), que pueden

ser puertos, memorias, interfaces de perifericos para procesadores suaves. Una de las

grandes ventajas de esta herramienta, es que permite simular el codigo fuente de la

misma forma que los compiladores de procesadores usando el modo de depuracion,

Page 39: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.6 Logica Difusa 23

donde interactuas con puntos de parada, observacion de variables dinamicas, y ejecu-

cion de instruccion por instruccion, ademas soporta la simulacion grafica y analisis de

senales binarias, todo esto para verificar nuestra descripcion previo a la sıntesis.

2.5.7. IP y perifericos

Los procesadores no pueden operar por si solos, es necesario rodearlos de periferi-

cos, memorias, modulos personalizados, coprocesadores, modulos PWM, etc, esto se

hace a traves de buses especializados, forman canales de comunicacion entre el proce-

sador central y los modulos esclavos, que se van agregando en funcion de las necesi-

dades de diseno. Xilinx usa el PLB en Microblaze que provee una infraestructura de

bus multimaestro y multiesclavos con un direccionamiento de 128 bits (Figura2.7). Por

su parte los dispositivos de la familia Zynq de Xilinx con procesador ARM adoptan el

protocolo de bus AXI ideal para streaming, altas velocidades de transferencia y sobre

todo una gran compatibilidad con perifericos en la industria.

Crear un sistema completo es una tarea de diseno importante por el gran consumo

de tiempo invertido, aunque en una FPGA se puede tomar una ventaja particular al

desarrollar codigo generico depurado y estable, por que hay un gran margen para la

reutilizacion del diseno, estos bloques funcionales encapsulados como IP, incluso los

fabricantes como Xilinx proporcionan bibliotecas en sus entornos de desarrollo (XPS,

Ise Project), reutilizadas de proyectos anteriores o desarrolladas por terceros con repo-

sitorios de codigo abierto o con licencia, antes de ser parte del sistema.

2.6. Logica Difusa

Lotfi A. Zadeh concibe la Logica Difusa [29][30] , que se define como una tecnica de

la inteligencia computacional que permite manejar informacion imprecisa, describien-

do conjuntos multivaluados llamados “Conjuntos Difusos” a los cuales se les asignan

etiquetas o terminos linguısticos como por ejemplo, alto, mediano, bajo, etc. La logica

difusa es muy usada en muchas disciplinas, aunque la gran mayorıa esta orientada a

sistemas de control, reconocimiento de patrones visuales, procesamiento de senales,

etc., lo cual ha sido posible gracias a la flexibilidad, tolerancia a la imprecision, su alta

capacidad en el modelado de sistemas no lineales y sobre todo a que esta basada en

el lenguaje natural, describiendo sistemas complejos mediante reglas IF-THEN, que

expresan el conocimiento del experto.

Page 40: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.6 Logica Difusa 24

2.6.1. Sistema de Inferencia Difuso

El Sistema de Inferencia Difuso (FIS), es un metodo de manipulacion de informa-

cion linguıstica basado en reglas IF-THEN que se usa para modelar sistemas especıficos

y algoritmos de control, incorporando la experiencia humana en forma de sentencias

difusas. En el FIS se formulan las reglas y en base a estas reglas se realiza la toma de

decision. Un FIS esta compuesto de cuatro etapas principales, la Fuzzificacion, Base dereglas, Motor de inferencia y la Defuzzificacion, como se ilustra en la Figura 2.10.

Figura 2.10: Sistema de Inferencia Difusa.

2.6.1.1. Fuzzificacion

El modulo de Fuzzificacion es un procedimiento matematico que tiene como tarea

transformar los valores crisp de entrada (valores numericos reales) a grados de mem-

bresıa dentro de un conjunto difuso. Como primer paso, en la Fuzzificacion es necesa-

rio dividir el universo de discurso en subconjutos difusos con sus respectivas etiquetas

linguisticas para cada variable presente en el FIS. Posteriormente, deben de estable-

cerse las funciones de pertenencia (gaussianas, triangulares, trapezoidales, etc.), para

otorgar un significado numerico a cada etiqueta como ejemplo la Figura 2.11.

Figura 2.11: Variable linguıstica temperatura: con seis terminos linguısticos.

Dentro del proceso de fuzzificacion, las funciones de membresıa definidas sobre las

Page 41: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.6 Logica Difusa 25

variables de entrada, permiten el mapeo de los datos presentes, determinando el grado

de pertenencia de la premisa de cada regla.

2.6.1.2. Inferencia

En la inferencia se localiza la base de conocimiento del sistema difuso, la tarea

del sistema de inferencia es mapear las entradas fuzzificadas recibidas del proceso de

fuzzificacion, a la base de reglas y producir una salida fuzzificada para cada regla. El

mecanismo de inferencia max-min es tambien conocido como metodo de Mamdani, y

es actualmente el mas utilizado por la sencillez y eficacia de su implementacion; este

metodo utiliza la t-norma min como funcion de implicacion y la t-conorma max como

operador de agregacion. El metodo de inferencia de Mamdani se basa en reglas de la

forma:

Regla 1: if x is a1 and y is b1 then z is c1.

Regla 2: if x is a2 and y is b2 then z is c2.

entonces para la conclusion inferida, en forma de funcion de membresıa, de la aplica-

cion de la base de reglas esta gobernada por la siguiente expresion:

µc′ (y) =max(min(αi ,µci (y))) (2.1)

donde el grado de activacion de la i-esima regla es:

αi =min(µia(x1), ...,µian(xn)) (2.2)

para este caso αi representa el grado de activacion de la i-esima regla, ası µiai (x1),. . . ,µian(xn) serian las funciones de membresıa de las entradas x1,. . . .xn, por ultimo µCi (y) viene

a ser la funcion de membresıa resultante de la funcion de implicacion (min).

2.6.1.3. Defuzzificacion

En ciertas aplicaciones un valor difuso no puede procesarse como tal, para apli-

caciones de control es necesario la defuzzificacion, que es el proceso inverso a la fuz-

zificacion, que calcula un valor numerico o valor crisp representativo a un conjunto

difuso de salida. En general, existen varios metodos y los mas comunes son por calculo

del centro de area, metodo de membresıa maxima, promedio ponderado, etc. Uno de

los mas simples es el metodo del centroide o centro de area que se obtiene del centro de

Page 42: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 26

Xc, ocupado por el conjunto difuso (Figura 2.12). El valor es calculado en la ecuacion:

xc =

∫xµA(x) x dx∫xµA(x)dx

(2.3)

Para la implementacion discreta usamos la ecuacion 2.4 donde K representa el numero

de muestras en que se divide el universo de discurso, en donde xi ∈ U y µGout es la

funcion de membresıa de salida [31].

xc =

∑ki=0xi µGout (xi)∑ki=0 µGout (xi)

(2.4)

Figura 2.12: Metodo de Membresıa Maxima.

2.7. Redes Neuronales Artificiales

Las RNA son elementos basicos de procesamiento de informacion inspirados por

la estructura neuronal del cerebro, cuya caracterıstica clave es el aprendizaje a traves

de la extraccion del conocimiento de un conjunto de datos. Al entrenar una RNA sera

necesario ajustar los pesos sinapticos para realizar una funcion en particular. Gracias

a estas capacidades toma gran relevancia su estudio, por que son una alternativa fiable

para resolver una gran variedad de problemas que no tienen solucion por metodos

tradicionales. En esta seccion se da un breve panorama de las RNA multicapa con

aprendizaje supervisado, indispensable para resolver la cinematica inversa del robot

bıpedo.

Page 43: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 27

2.7.1. RNA Multicapa

En algunos casos el perceptron simple, presenta complicaciones para encontrar una

aproximacion universal. Plantemos el uso del perceptron en el tıpico caso para la com-

puerta XOR (Tabla 2.1), la cual presenta niveles logicos verdaderos cuando las entradas

son diferentes[32][33].

X1 X2 Y0 0 00 1 11 0 11 1 0

Tabla 2.1: Tabla de verdad de la compuerta XOR.

Observamos en la grafica 2.13 que no es posible colocar una recta que separe las

regiones de nivel logico verdadero de las falsas, por esta razon se convierte en un pro-

blema no linealmente separable, exponiendo las limitaciones que tiene el perceptron

para este y algunos tipos de problemas.

Figura 2.13: Clasificacion erronea del perceptron para compuerta XOR .

Para resolver problemas mas complejos o que no sean linealmente separables como

es el caso del XOR, es posible agregar capas de neuronas en la arquitectura, obteniendo

ası una RNA multicapa, como se muestra en la Figura 2.14, en donde podemos observar

que las neuronas se agrupan en tres capas, una de entrada, una de salida, mas una capa

oculta con cualquier numero de neuronas, cada capa debe tener la misma funcion de

activacion pero pueden varias en los siguientes capas. Cada neurona esta conectada

con la anterior con su respectivo peso sinaptico w (excepto la de entrada) que a su vez

forman nodos [34].

Las redes multicapa puede estar compuesta por una o mas capas con el mismo tipo

de neurona o bien con una o multiples entradas y salidas, estas dependeran del tipo y

complejidad del problema. Las redes sin capas ocultas nos serviran para resolver casos

Page 44: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 28

Figura 2.14: Red neuronal con una capa oculta.

linealmente separables, las de una capa oculta cuando la clasificacion se pueda realizar

con una curva y con dos capas ocultas la gran mayorıa de problemas. En la Figura 2.15

se ilustran ejemplos de como actuan las redes neuronales en diferentes problemas.

Figura 2.15: Regiones de decision del perceptron multicapa.

En las RNA multicapa no se utilizan las funciones de activacion bipolar como en el

caso del perceptron, debido a que debe ser estrictamente diferenciable, por este motivo

se eligen diferentes funciones para su activacion (Figura 2.16) siendo las mas comunes

la funcion Sigmoide y la funcion Tangente Hiperbolica [35].

Page 45: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 29

Figura 2.16: Funciones de activacion.

La funcion de transferencia de una neurona de la red multicapa esta compuesta por

dos etapas, una provee la activacion mediante la suma ponderada de las entradas y la

otra genera la salida mediante una funcion no lineal f (x) denotada por las ecuaciones

2.5.

y = f (n∑i=1

xiwi + b) (2.5)

2.7.1.1. Algoritmo de entrenamiento por retropropagacion

Para estas redes de aprendizaje supervisado que difieren del perceptron simple,

uno de estos metodos a emplearse es el algoritmo de retropropagacion de errores

Page 46: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 30

(Back-Propagation) que usa funciones de transferencia derivables, que al igual que

el perceptron simple, el objetivo sera encontrar los valores de wn en funcion de los

errores de las capas, que condicionen la respuesta deseada de la red en funcion de

los estımulos de entrada, esto se logra calculando el gradiente descendente del error

cuadratico medio, iniciando de la salida, propagandolo y actualizando los pesos capa

por capa hasta llegar a la entrada. A continuacion en el Algoritmo 1 se presenta el

proceso[36][34].

Algoritmo 1 Algoritmo de entrenamiento por retropropagacion1: Definir el numero de entradas, salidas y capas ocultas k.2: Definir el patron de entrenamiento p de entrada y la salida deseada.3: Asignar valores aleatorios para todos los pesos sinapticos w de la red.4: while Realizar hasta que el error cuadratico medio sea aceptableError =

∑p

12∑Mk=1(ypk − opk)2 do

5: Se presenta el patron de entrada xpi y salida ypo.6: Se calcula el potencial de cada neurona de las capas ocultas

Entradahpj =∑Ni=1w

hji xpi +whjo

7: Obtenemos las salidas de las capas ocultasipj = f h(entradahpj)

8: Se calcula la entrada total de cada neurona de la capa de salidaEntradaOpk =

∑Lj=1w

okj ipj +woko

9: Evaluamos la salida de la redipk = f o(entradaopk)

10: Calculamos el error para neuronas de la capa de salidaδopk = (ypk − opk) f o(entradaopk)

11: Calculamos el error para neuronas de la capa ocultaδhpj = f h(entradahpj)

∑Mk=1δ

opkw

okj

12: Se actualizan los pesos de la capa de salida, donde η es la velocidad de aprendi-zajewokjnuevo

= wokjactual + η δopk ipj13: Se actualizan los pesos de la capa oculta

wkjinuevo= wojiactual + η δhpj xpi

14: end while

2.7.1.2. Algoritmo de entrenamiento Levenberg-Marquardt

Es un metodo iterativo que utiliza matrices para el entrenamiento de redes neuro-

nales multicapa siendo una variante del metodo de Newton que encuentra las raıces

(pesos sinapticos adecuados) de funciones no lineales que en nuestro caso serıa una

funcion no lineal del error cuadratico medio de nuestra salida.

Page 47: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

2.7 Redes Neuronales Artificiales 31

Para encontrar los pesos sinapticos se usa la expresion 2.6

Wnuevo =Wactual − [JT J +µ I]−1 JT E (2.6)

donde :

W=Matriz de pesos sinapticos

I=Matriz identidad

µ=Variacion de cambio de error

E= Matriz de Errores

J=La matriz jacobiana calculada por J = [∇E E−1]T

∇E=Matriz de gradientes.

Page 48: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Capıtulo 3

Diseno de controladores

Este capıtulo tiene como objetivo presentar el diseno de controladores difusos, el

calculo del ZMP y la metodologıa para calcular la cinematica mediante redes neurona-

les, para garantizar la estabilidad en la caminata del robot bıpedo, ademas se muestra

el proceso de diseno de un robot bıpedo experimental y el hardware necesario para

evaluar el rendimiento y la funcionalidad de los controladores.

3.1. Analisis del ZMP en el pie del robot bıpedo

Elegir el punto P adecuado de tal forma que el momento generado por la fuerza de

reaccion del piso compense el momento total generado por el cuerpo en su caminata,

este punto es conocido como ZMP (Figura 3.1).

El ZMP es coincidente con el COP (Centro de presion ) y el FRI ( Indicador de

rotacion de la pierna) cuyas diferencias constan en que el ZMP solo existe cuando el

pie es estable, es decir dentro del polıgono de soporte, el COP al igual que el ZMP

existe en el area del ZMP y en su frontera; el concepto FRI se dice que existe en el

polıgono, en la frontera y afuera de la frontera, por esto tambien es conocido como

falso ZMP (FZMP), el FRI proporciona gran ventaja ya que tambien existe cuando el

robot es inestable, es decir fuera del polıgono de soporte y hace posible predecir la

direccion de caıda del robot. El FRI es el punto en la superficie donde la fuerza de

reaccion del piso tendrıa que actuar para mantener el pie estacionario. En la Figura se

ilustran estas diferencias:

A partir de las acotaciones en que fueron colocados los sensores de presion en los

pies del robot, ver Figura 3.4, se fija los ejes de referencia XY, para ubicar y calcular el

punto ZMP (Xzmp,Yzmp) tomando como referencia el origen O’ (Centro del pie) y los

sensores se enumeran desde S1 hastaS4.

32

Page 49: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.1 Analisis del ZMP en el pie del robot bıpedo 33

Figura 3.1: El punto P tambien es conocido como ZMP.

Figura 3.2: Diferencias entre COP, ZMP,FRI.

Las ecuaciones 3.1 son para calcular el FRI, estas incluyen la aceleracion a y el

torque ejercido HGxi en el centro de masa tomando como modelo el pendulo invertido:

xFRI =

∑imizi(ayi + g)−

∑imiyiazi −

∑iHGxi∑

imi(ayi + g))(3.1)

zFRI =

∑imixi(ayi + g)−

∑imiyiaxi −

∑iHGzi∑

imi(ayi + g))

Page 50: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.1 Analisis del ZMP en el pie del robot bıpedo 34

Figura 3.3: Dimensiones y acotaciones del pie del robot bıpedo.

Para simplificar los calculos, el ZMP puede obtenerse mediante las ecuaciones 3.2

en donde∑Rx es la suma del producto de la fuerza en cada uno de los sensores por la

distancia hasta el origen O’ y∑

R es la peso total ejercido en la planta del pie.

ZMPx =∑4i=0RiXi∑4i=0Ri

(3.2)

ZMPy =∑4i=0RiYi∑4i=0Ri

Como ejemplo (Figura 3.4) se ilustra la ubicacion del ZMP con los siguientes valores

obtenidas del sensor de fuerza r1=200 gr, r2=100 gr, r3=100 gr, r4=200 gr.

Para liberar de tareas a la FPGA, el calculo del ZMP en cada pierna se realiza en el

Controlador de Senales Digitales (DSC) en leguaje C.

El pie esta compuesto por dos placas de aluminio, la placa inferior contiene cortes

que forman la base para los sensores y la placa superior tiene cuatro circunferencias

extraıdas con el mismo diametro que presionan directamente en la parte activa de los

sensores, estos se ubican en las esquinas del polıgono, ver Figura 3.5.

Para reducir la friccion y mejorar el agarre al piso en la caminata del robot bıpedo

se adhirio una capa antiderrapante en la placa inferior. El pie instalado se muestra en

Page 51: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.1 Analisis del ZMP en el pie del robot bıpedo 35

Figura 3.4: Grafica en Matlab que simula la ubicacion de las coordenadas ZMP.

Figura 3.5: Distribucion de sensores en el polıgono del pie.

la Figura 3.6, en la parte trasera se coloco la tarjeta de adquisicion de datos que envıa

las senales de los cuatro sensores de fuerza hacia la FPGA.

Page 52: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 36

Figura 3.6: Diseno final del pie del robot bıpedo.

3.2. Analisis de la cinematica directa del robot bıpedo

La cinematica directa, determina las coordenadas de posicion en funcion de los

angulos que forma cada articulacion es decir :x

y

z

=→f

(θ1,θ2,θ3,θ4.....θn) (3.3)

3.2.1. Matriz de transformacion Homogenea

Para encontrar la cinematica directa, es comun recurrir a relaciones geometricas,

pero cuando los grados de libertad aumentan se utiliza el metodo sistematico de ma-trices de transformacion homogenea considerando como:

S1 = T S0 (3.4)

T =

R3x3 P3x1

F1x3 W1x1

=

Rotacion T ranslacion

P erspectiva Escalado

(3.5)

T4x4 =

R3x3 P3x1

0 1

=

Rotacion T ranslacion

0 1

(3.6)

Page 53: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 37

T =

nx ox ax pxny oy ay pynz oz az pz0 0 0 1

(3.7)

y para encontrar la orientacion del pie mediante:

α = tan−1[ayaz

]

β = sin−1[ayaz

]γ = cos−1

[ayaz

]Las matrices resultantes del producto de todas las relaciones matriciales TIz y TDer

proporcionan las coordenadas y la orientacion final x,y,z de cada extremidad:

TIz = 0A11A2

2A33A4

4A55A6

6A77A8

8A9

TDer == 0A11A2

10A1111A12

12A1313A14

14A1515A16

3.2.2. Modelo cinematico a partir del metodo de Denavit – Harten-

berg

Denavit y Hartenberg propusieron un metodo sistematico para pasar de un eslabon

a otro mediante cuatro transformaciones basicas, primero ubica los ejes del robot e

identifica las articulaciones, posteriormente obtiene los cuatro parametros siguientes:

1. Obtener θi como el angulo que hay que girar en funcion de zi−1 para que xi y xi−1

queden paralelos.

2. Obtener di como la distancia, medida a lo largo de zi−1 que habrıa que desplazar

Si−1 para que xi y xi−1 queden alineados.

3. Obtener ai como la distancia medida a lo largo de xi que coincida con xi−1 que

habrıa que desplazar el nuevo Si−1 para que su origen coincida con Si .

4. Obtener αi como el angulo que habra que girar en torno a xi para que el nuevo

Si−1 coincida totalmente con Si.

Page 54: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 38

A partir del diseno del prototipo del robot bıpedo mostrado en la Figura 3.7, ubicamos

y numeramos las articulaciones y eslabones con sus respectivos ejes y separamos las

dos cadenas cinematicas para el pie derecho e izquierdo.

Figura 3.7: Cadenas cinematicas del robot bıpedo.

Procedemos a obtener los cuatro parametros de acuerdo al metodo de Denavit -

Hartenberg de las cadenas cinematicas izquierda y derecha mostradas en las Tablas

3.1 y 3.2 :

Para obtener la matriz de transformacion i−1A que asocian a los eslabones, se tiene

la simplificacion mostrada en 3.8:

i−1Ai =

cosθi −cosαi senθi senαi senθi aicosθisenθi cosαi cosθi −senαi cosθi aisenθi

0 senαi cosαi di

0 0 0 1

(3.8)

Page 55: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 39

qD θ d a α1 θ1 +

π/20 0 0

2 θ2 +π/2

-L21 0 - π/2

3 θ3 +π/2

0 0 - π/2

4 θ4 -π/2

-L23 0 - π/2

5 θ5 0 L34 - π/26 θ6 0 L45 07 θ7 0 L56 08 θ8 0 L67 π/29 θ9 0 L78 0

Tabla 3.1: Parametros DH de la cadena cinematica el pie derecho del robot bıpedo.

qI θ d a α1 θ1 +

π/20 0 0

2 θ2 +π/2

-L19 0 -π/2

10 θ10 +π/2

0 0 -π/2

11 θ11 -π/2

-L910

0 -π/2

12 θ12 0 L1011 -π/2

13 θ13 0 L1112 014 θ14 0 L1213 015 θ15 0 L1314 π/216 θ16 0 L1415 0

Tabla 3.2: Parametros DH de la cadena cinematica del pie izquierdo del robot bıpedo.

Sustituyendo los parametros de DH de la Tabla 3.2 en la matriz de trasformacion 3.8

se obtienen las siguientes matrices para la cinematica del pie derecho:

0A1 =

−sinθ1 cosθ1 0 0

cosθ1 −sinθ 1 0 0

0 0 1 0

0 0 0 1

(3.9)

Page 56: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 40

1A2 =

−sinθ2 0 −1 0

cosθ2 0 0 0

0 −1 0 L21

0 0 0 0

(3.10)

2A3 =

−sinθ3 0 −cosθ3 0

cosθ3 0 −sinθ3 0

0 −1 0 0

0 0 0 1

(3.11)

3A4 =

sinθ4 0 −cosθ4 0

cosθ4 0 sinθ4 0

0 −1 0 −L23

0 0 0 1

(3.12)

4A5 =

cosθ5 0 −senθ5 L34 cosθ5

senθ5 0 cosθ5 L34 senθ5

0 −1 −1 0

0 0 0 1

(3.13)

5A6 =

cosθ6 −senθ6 0 L45 cosθ6

senθ6 cosθ6 0 L45 senθ6

0 0 1 0

0 0 0 1

(3.14)

6A7 =

cosθ7 −senθ7 0 L56 cosθ7

senθ7 cosθ7 0 L56 senθ7

0 0 1 0

0 0 0 1

(3.15)

7A8 =

cosθ8 0 senθ8 L67 cosθ8

senθ8 0 −cosθ8 L67 senθ8

0 1 0 0

0 0 0 1

(3.16)

Page 57: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.2 Analisis de la cinematica directa del robot bıpedo 41

8A9 =

cosθ9 −senθ9 0 L78 cosθ9

senθ9 cosθ9 0 L78 senθ9

0 0 1 0

0 0 0 1

(3.17)

Ahora para la cinematica del pie Izquierdo:

0A1 =

−sinθ1 cosθ1 0 0

cosθ1 −sinθ1 0 0

0 0 1 0

0 0 0 1

(3.18)

1A2 =

−sinθ2 0 −1 0

cosθ2 0 0 0

0 −1 0 L19

0 0 0 0

(3.19)

2A10 =

−sinθ10 0 −cosθ10 0

cosθ10 0 −sinθ10 0

0 −1 0 0

0 0 0 1

(3.20)

10A11 =

sinθ11 0 −cosθ11 0

cosθ11 0 sinθ11 0

0 −1 0 −L910

0 0 0 1

(3.21)

11A12 =

cosθ12 0 −senθ12 L1011 cosθ12

senθ12 0 cosθ12 L1011 senθ12

0 −1 −1 0

0 0 0 1

(3.22)

12A13 =

cosθ13 −senθ13 0 L1112 cosθ13

senθ13 cosθ13 0 L1112 senθ13

0 0 1 0

0 0 0 1

(3.23)

Page 58: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.3 Analisis de la cinematica Inversa. 42

13A14 =

cosθ14 −senθ 14 0 L1213 cosθ14

senθ14 cosθ14 0 L1213 senθ14

0 0 1 0

0 0 0 1

(3.24)

14A15 =

cosθ15 0 senθ15 L1314 cosθ15

senθ15 0 −cosθ15 L1314 senθ15

0 1 0 0

0 0 0 1

(3.25)

15A16 =

cosθ16 −senθ16 0 L1415 cosθ16

senθ16 cosθ16 0 L1415 senθ16

0 0 1 0

0 0 0 1

(3.26)

3.3. Analisis de la cinematica Inversa.

Por el contrario, la cinematica inversa, determina los angulos que deben formar las

articulaciones para poder llevar el efector final a la posicion deseada, denotada por

3.27.

θ1

θ2

.

.

.

θn

= →

f

−1( x, y , z , α, β, γ) (3.27)

Para obtener la cinematica inversa es comun recurrir a la solucion analıtica cuando

se refiere a robots de pocos grados de libertad para obtener una solucion cerrada, en

este caso, para doce grados de libertad divididos en dos cadenas cinematicas resulta

muy difıcil, si no es que imposible la obtencion de la misma, por lo cual se puede

recurrir a las redes neuronales.

La estructura de la red neuronal consta de seis entradas donde x, y, z corresponden

a la posicion deseada del efector final y α, β, γ representan los angulos de orientacion;

en la salida se tiene nueve terminos, de donde se obtienen los datos que producen la

posicion de cada articulacion (servo motor) y producir la posicion final deseada (Figura

Page 59: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.3 Analisis de la cinematica Inversa. 43

3.8).

Figura 3.8: Relacion de entradas y salidas de la RNA para la resolucion de la cinematica inver-sa.

La RNA tambien tiene 10 capas ocultas y se entrenaron en el toolbox de RNA de

Matlab (Figura 3.9), mediante 75639 datos calculados de la cinematica directa, los cua-

les fueron calculados mediante el Algoritmo 2.

Figura 3.9: Toolbox de RNA en Matlab.

En la Tabla 3.3 se muestra los parametros de entrenamiento de la red:

Parametros de la red ValorEpocas 265Error cuadratico medio 1x10−8

Tamano de la matriz de entrenamientode entrada

9x75639

Tamano de la matriz de entrenamientode salida

6×75639

Metodo de entrenamiento Levenberg-MarquardtFuncion de activacion(Ocultas/Salida) tansig/purelin

Tabla 3.3: Parametros de entrenamiento de la red neuronal.

Para entrenar la RNA y resolver la cinematica inversa, se requirieron 256 epocas

iterando una matriz de datos de dimension 6×75639 mediante el algoritmo Levenberg-

Marquardt con funciones de activacion sigmoidal y lineal, en un tiempo estimado de

tres horas y media. En este proceso el error mınimo cuadrado se redujo a 1x10−8 (Ver

Page 60: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.3 Analisis de la cinematica Inversa. 44

Algoritmo 2 Algoritmo para crear la matriz de datos para el entrenamiento de la RNAque resuelve la cinematica inversa

1: Se define el numero de eslabones y articulaciones.2: Asignamos el tamano de paso=8 de salto de angulo para cada articulacion.3: Fijamos los angulos de las articulaciones globales q1,q2,q3 en 180 grados.4: Asignamos los valores de las distancias L, de cada eslabon.5: Se obtienen los parametros DH (θ,d,a,α) del bıpedo.6: Sustituimos los parametros DH en las relaciones matriciales para las dos cadenas

cinematicas:TIz = 0A1

1A22A3

3A44A5

5A66A7

7A88A9

TDer == 0A11A2

10A1111A12

12A1313A14

14A1515A16

7: Inician las iteraciones evaluando los angulos utiles permitidos del robot:8: for q1 = 170 : paso : 1909: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .

10: for q2 = 155 : paso : 21011: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .12: for q3 = 150 : paso : 21013: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .14: for q4 = 180 : paso : 24015: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .16: for q5 = 155 : paso : 20517: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .18: for q6 = 155 : paso : 20519: Obtenemos y almacenamos la posicion x,y,z y la orientacion α,β,γ .20: endfor21: endfor22: endfor23: endfor24: endfor25: endfor26: Construimos la matriz de datos para el entrenamiento de la RNA los datos alma-

cenados.

Page 61: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 45

Figura 3.10), que equivale a una tolerancia del error en las posiciones del robot de ±1

cm.

Figura 3.10: Grafica del rendimiento de la red.

3.4. Implementacion del controlador difuso para el se-

guimiento de trayectoria mediante ZMP

En la Figura 3.11 se muestra el sistema general para efectuar la caminata de un

robot bıpedo basado en un controlador de postura ZMP difuso, cuya funcion principal

es mantener en equilibrio la posicion erguida del robot en relacion al plano terrestre.

Al iniciar el controlador se establecen los parametros de la caminata que dictan la for-

ma de caminar del robot entre ellas se fija el tamano o longitud del paso, velocidad

de la caminata, altura del robot, limites de potencia en los motores; todos los parame-

tros son preparados por el bloque de planificacion, el cual contiene los algoritmos de

sincronizacion en funcion de la capacidad mecanica del robot y principalmente gene-

ra las posiciones deseadas de las piernas del robot para llevar a cabo el avance en la

caminata. La posicion que cada articulacion debe mantener para llevar al objetivo al

efector final (pie del robot) se calcula a traves de la cinematica inversa mediante redes

neuronales previamente entrenadas con datos calculados por la cinematica directa. En

esta etapa se calculan dos cinematicas, una en direccion del centro de masa hacia los

pies y el otro de los pies al origen. Los angulos obtenidos son enviados a los motores

Dinamixel y establece la posicion final de las articulaciones. Despues de obtener una

Page 62: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 46

determinada posicion es necesario calcular el ZMP para poder definir la trayectoria

del centro de masa y realizar una compensacion de dicha trayectoria, como se observa

en la Figura 3.12, esto se realiza mediante cuatro sensores de fuerza colocados en la

planta del pie formando el polıgono de soporte.

Figura 3.11: Esquema del controlador difuso de postura mediante ZMP para el robot bıpedo .

Figura 3.12: Planeacion de la Trayectoria deseada del ZMP del robot bıpedo

El calculo del ZMP real es comparado con el ZMP deseado, el error generado forma

parte de la primera variable de entrada de un sistema de inferencia difuso (FIS) que

en tiempo real es derivado para obtener la segunda variable de entrada del FIS (Varia-

cion del error), ver la Figura 3.13. La respuesta del FIS actua como compensacion para

Page 63: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 47

establecer la trayectoria de la cadera en la referencia deseada.

Figura 3.13: Sistema de inferencia difusa del controlador ZMP basado en sensores.

La variable linguıstica de entrada “Error” esta conformada por siete terminos

linguısticos very negative, negative, small negative, zero, small positive, positive,

very positive y son distribuidos en el universo de discurso en un intervalo de -13 cm a

13 cm, como se observa en la Figura 3.14, cinco terminos linguısticos corresponden a

funciones triangulares y dos a trapezoidales.

Figura 3.14: Universo de discurso de la variable “Error”

La variable linguıstica de entrada “Variacion” esta integrada por cinco funciones

de membresıa triangular y dos trapezoidales, en un rango de -10 cm hasta 10 cm. Los

terminos empleados son: very negative, negative, small negative, zero, small positive,

positive, very positive. La variable linguıstica de salida “Compensacion” (Figura 3.16),

esta integrada por siete funciones de membresıa triangulares en un universo de discur-

so delimitado en un rango de -10 a 10. Los terminos usados son: very negative, negati-

ve, small negative, zero, small positive, positive, very positive. El sistema difuso esta

gobernado por cuarenta y nueve reglas como se aprecia en la Tabla 3.4, que establecen

la accion correspondiente para efectuar la compensacion mas adecuada. Para obser-

var la respuesta del sistema de inferencia, en la Figura 3.17 se ilustra la superficie de

Page 64: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 48

Figura 3.15: Universo de discurso de la variable “Variacion del error”

Figura 3.16: Universo de discurso de la variable “Compensacion”.

control del sistema.

Figura 3.17: Superficie de control del controlador ZMP

Page 65: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 49

ZMP’/ZMP VN N SN Z SP P VP

VN VP VP VP VP VP VP VPN VP P P SP SP SP P

SN P P SP SP Z SP SPZ P SP Z Z Z SN NE

SP SN SN Z SN SN NE NEP N SN SN SN N N VN

VERYPOSITIVE VN VN VN VN VN VN VN

Tabla 3.4: Reglas del sistema de inferencia ZMP

3.4.1. Metodologıa para implementar un coprocesador difuso en el

procesador suave Microblaze

Para ejecutar las tareas de procesamiento en el robot bıpedo tales como la resolu-

cion de la cinematica directa e inversa con RNA, el FIS para la compensacion de tra-

yectoria, el FIS para la regulacion de velocidad de motores, la adquisicion del ZMP en

base a sensores colocados en el pie del robot, y la ejecucion del controlador, demanda

una gran capacidad procesamiento para un unico procesador en el sistema embebido,

agregar mas funcionalidades en el futuro implica incrementar las exigencias y se pone

en riesgo la eficiencia general. En este caso aprovechamos el recurso de la FPGA para

mejorar la eficiencia del FIS ZMP, convirtiendo la ejecucion secuencial por hardware

concurrente, mucho mas rapido y eficiente en energıa, a traves de la conversion del FIS

escrito en C a RTL con la herramienta HLS de Xilinx. El FIS ZMP tiene dos variables

de entrada y una de salida de tipo flotante de 32 bits, con cuarenta y nueve reglas que

genera una latencia considerable en el sistema, por ello es encapsulado mediante un IP

Core esclavo que se conecta al procesador Microblaze mediante el bus local de periferi-

cos que actua como un puente de transferencia entre ellos como se ilustra en la Figura

3.18. En la Figura 3.19 se muestra los pasos a seguir para crear una arquitectura con el

procesador Microblaze y el IP Core difuso. Primero resolvemos el algoritmo del FIS de

dos entradas y una salida en lenguaje C, quedando reducido a dos funciones con datos

de tipo punto flotante “float EvaluarFM(struct FuncionDeMembrecia *, float)” y “float

fis(float, float)”. EvaluarFM retorna el dato de la evaluacion de una funcion de mem-

bresıa mediante dos parametros, el primero es una estructura que incluye el nombre,

tipo de funcion que puede ser triangular o trapezoidal y los parametros a,b,c,d de las

mismas y el segundo parametro es el valor de entrada x. La funcion fis realiza todo

el proceso difuso, que incluye la evaluacion del antecedente para la estructura de re-

Page 66: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.4 Implementacion del controlador difuso para el seguimiento de trayectoriamediante ZMP 50

Figura 3.18: Coprocesador suave.

glas, la conclusion de las reglas por el metodo Mandani y la Defuzificacion a traves del

calculo del area del centroide con una resolucion de 100 muestras. El paso siguiente

consta en compilar el algoritmo en visual c y evaluar algunas entradas conocidas para

compararlas con los datos obtenidos mediante el Toolbox de logica difusa de Matlab

(Figura 3.20). Con los resultados satisfactorios, se procede exportar el codigo fuente a

Vivado HLS, realizar pruebas en el Testbench para la depuracion y validacion y ane-

xar las directivas (pragma) para especificar que las dos variables del FIS y la salida

sean convertidas a puertos de comunicacion (Registros de entrada y salida), incluso

si se desea, es posible agregar directivas para la optimizacion de bucles o estructuras.

Continuando, se ejecuta la sıntesis para la traduccion de codigo a C a lenguaje HDL

preferido, Vhdl o Verilog para proseguir a exportarlo como RTL o IP CORE. Conti-

nuando, en el software Xilinx XPS creamos la arquitectura personalizada para nuestro

controlador, que basicamente consta del procesador Microblaze, memoria de RAM de

16mb, bus de perifericos (PLB), modulo IIC , uart, GPIO y el IP CORE que contiene el

FIS en hardware. Para que finalmente se realice la sıntesis, exportamos la especifica-

cion de hardware al software SDK que ejecutara el firmware del controlador del robot

y descargamos los binarios al FPGA. Con esta metodologıa se reduce el tiempo de eje-

cucion de 1.8 ms obtenido con procesamientos secuencial, a 75 us con el coprocesador

difuso, lo que permite liberar capacidad de computo al procesador microblaze.

Page 67: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.5 Implementacion de controlador difuso para la velocidad de movimiento. 51

Figura 3.19: Secuencia de incorporacion del ip core difuso a Microblaze.

3.5. Implementacion de controlador difuso para la velo-

cidad de movimiento.

Ademas del controlador de trayectoria tambien se implementa un controlador de

velocidad de movimiento, el cual se utiliza para reducir la inercia que producen los seis

motores Dynamixel coordinados para generar el movimiento en las cadenas cinemati-

cas. El objetivo es reducir la velocidad cuando se aproxima al objetivo y aumentarla

cuando este se aleja. Para ello se usan las variables linguısticas de entrada “Error” y

“Cambio de error”, para la variable de salida “RPM” que configura directamente las

RPMs de los motores cuyos parametros se encuentran entre 0 y 33.3 RPM.

La variable linguıstica de entrada “Error” representa los valores absolutos de la di-

Page 68: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.5 Implementacion de controlador difuso para la velocidad de movimiento. 52

Figura 3.20: Comparacion de resultados del FIS en a) Matlab b)Visual C c)Vivado HLSd)Microblaze Ipcore.

ferencia del valor deseado y el valor actual ZMP y esta constituida por tres terminos

linguısticos que son distribuidos en el universo de discurso, y representados por una

funcion triangular y dos trapezoidales, que iniciando en 0 hasta 10 cm. Los terminos

para la variable “Error” usados son small, medium y large, como se observa en la Fi-

gura 3.21.

La variable linguıstica de entrada “Cambio de error” representa los valores abso-

lutos de la diferencia del Error actual y error anterior del ZMP, esta constituida por

tres terminos linguısticos que son distribuidos en el universo de discurso por una fun-

cion triangular y dos trapezoidales, en un intervalo 0 hasta 10 cm. Los terminos para

la variable “Cambio de error” usados son small, medium y large, ver Figura 3.22. La

variable linguıstica de salida “RPM” representa las velocidades de los motores, esta

Page 69: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.5 Implementacion de controlador difuso para la velocidad de movimiento. 53

Figura 3.21: Universo de discurso de la variable de entrada “Error” del controlador de veloci-dad de movimiento.

Figura 3.22: Universo de discurso de la variable de entrada “Cambio de error” del controladorde velocidad de movimiento.

constituida por tres terminos linguısticos que son distribuidos en el universo de dis-

curso por cinco funciones de membresıa triangulares qen el rango de 0 hasta 1, y que

normalizan respectivamente los parametros de fabrica de los motores. Los terminos

para la variable “RPM” usados son: very low, low, medium, high, very high, segun se

observa en la Figura 3.23.

La accion del controlador difuso esta basada en nueve reglas las cuales se ilustran

en la Tabla 3.5, y que permiten tener una respuesta de mayor precision y suavidad en

la ejecucion de los movimientos del robot bıpedo. Para apreciar el comportamiento, en

la Figura 3.24 se muestra la superficie de control del FIS.

Page 70: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

3.5 Implementacion de controlador difuso para la velocidad de movimiento. 54

Figura 3.23: Universo de discurso de la variable de salida “RPM” del controlador de velocidadde movimiento .

Figura 3.24: Superficie de control para el controlador de velocidad de movimiento

Error/CambioDe error Low Medium High

Small very low low mediumMedium medium medium highLarge high high very high

Tabla 3.5: Reglas del sistema de inferencia para el FIS de velocidad de movimiento.

Page 71: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Capıtulo 4

Resultados

4.1. Simulacion de la cinematica directa.

Para llevar a cabo la simulacion se utiliza el Toolbox de Matlab de Robotica desa-

rrollado por Peter Corke [37]. Esta herramienta proporciona muchas funciones que

son utiles para el estudio y simulacion de diferentes tipos de robots, incluyendo la ci-

nematica directa e inversa, la dinamica y la generacion de trayectorias. El toolbox man-

tiene la notacion y usa los metodos generales para la representacion de la cinematica y

dinamica que son utilizados como argumentos en las funciones escritas en el lenguaje

Matlab.

Obtenidos los parametros DH del analisis de la cinematica directa del robot bıpedo

se ingresan en la funcion del Toolbox llamada link que relaciona y crea un objeto con

las nueve articulaciones de la cinematica de una pierna y sus respectivos eslabones

necesarios para la simulacion. En la Figura 4.1 se observa la animacion del robot bıpedo

con sus respectivas articulaciones y eslabones al evaluar una posicion del efector final

(Pie izquierdo) en el plano.

4.2. Experimentacion, implementacion y metodologıa

de la cinematica inversa en hardware

El proceso de implementacion de cinematica inversa se ilustra en la Figura 4.2e

inicia con la creacion del modelo cinematico directo relacionando la morfologıa del

robot prototipo (articulaciones y eslabones) y los cuatro parametros de la metodologıa

de DH, con un modelo en Matlab usando el Toolbox de Robotica, especıficamente em-

pleando la funcion link que enlaza la morfologıa y la funcion fkine que resuelve la

55

Page 72: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.2 Experimentacion, implementacion y metodologıa de la cinematica inversa enhardware 56

Figura 4.1: Simulacion de la Cinematica directa del robot bıpedo mediante el Toolbox derobotica en Matlab.

cinematica directa. Las relaciones geometricas de cada extremidad estan referidas a

un sistema de coordenadas fijo dentro de su espacio de trabajo, cuyo origen comenzara

de la cadera hacia el pie (Vector OA).

Obtenido la cinematica directa, se delimitan los angulos de rotacion en las articu-

laciones para cada extremidad a un rango util, y se evalua la cinematica en varias posi-

ciones con el objetivo de crear un conjunto de datos que sirva como patron de entrada-

salida y entrenar una RNA en el Toolboox de Matlab. Se verifica y valida los angulos

obtenidos de la RNA ingresando posiciones xyz deseadas, previamente calculadas con

la cinematica directa hasta reducir el error a mınimos aceptables. Continuando, se ex-

porta la RNA a un bloque de Simulink, donde se hace uso de la herramienta EmbeddedCoder que convierte dicho bloque, con nuestra RNA previamente entrenada a codigo

C ANSI. Para compilar los archivos generados en C, se crea un arquitectura especifica

y personalizada en la herramienta XPS de Xilinx, la arquitectura de hardware que in-

cluye el procesador Microblaze y los perifericos necesarios para procesar nuestra RNA.

Posteriormente se exporta la arquitectura a la herramienta SDK de Xilinx para editar,

compilar, depurar, y descargar a la FPGA los archivos generados en C que albergan la

RNA.

La red se entrena previamente en el ToolBox RNA de Matlab para su posterior uso

Page 73: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.2 Experimentacion, implementacion y metodologıa de la cinematica inversa enhardware 57

Figura 4.2: Etapas del proceso para implementar la RNA en procesadores suaves.

en la herramienta de generacion de codigo C en los bloques de Simulink Embedded,

donde se prueban y se comparan fısicamente los resultados de la simulacion con las

pruebas de laboratorio. En la Figura 4.3 se muestran diferentes simulaciones y fotos

que evidencian las similitudes de los resultados de la simulacion y las pruebas con el

prototipo evaluando los vectores de posicion y orientacion, obteniendose resultados

favorables.

4.2.1. Cinematica inversa con cambio de referencia.

Es necesario calcular la cinematica inversa en la direccion opuesta a la cadena ci-

nematica de los pies mostrada en la Figura 4.4 (Direccion AO) para poder desarrollar

los controladores de postura ZMP y tener la plena manipulacion de la masa y reali-

zar la compensacion necesaria para ejecutar el seguimiento y mantener el equilibrio

del robot mediante el polıgono de soporte en cada ciclo de la caminata bıpeda. Con el

mismo procedimiento del calculo de la cinematica inversa en la direccion OA, se reor-

ganizan los parametros de DH se calcula la cinematica directa para entrenar la red y

se evaluan los puntos mediante el Toolbox de robotica de Peter Corke.

En la Figura 4.5 evaluamos algunos puntos en el espacio donde consideramos que

pudiese pasar el centro de masa del controlador ZMP en una movimiento hacia ade-

lante con la finalidad de establecer una postura vertical al plano de la tierra.

En la Tabla 4.1 se presenta el tiempo promedio de ejecucion de las funciones del

sistema de inferencias y las cinematicas.

Page 74: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.2 Experimentacion, implementacion y metodologıa de la cinematica inversa enhardware 58

Figura 4.3: Evaluacion de la cinematica inversa en el robot bıpedo

FuncionTiempo(ms)

Evaluar Fis ZMP (IP Core) .075

Evaluar Fis RPM .122

Calculo ZMP (DSC) 0.95

Cinematica inversa (RNA) 1.17

Cinematica directa 1.37

Tabla 4.1: Tiempos de ejecucion del procesador Microblaze de las funciones principales.

Page 75: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.2 Experimentacion, implementacion y metodologıa de la cinematica inversa enhardware 59

Figura 4.4: Plano sagital del robot bıpedo donde muestra una trayectoria del centro de masa.

Figura 4.5: Grafica de la evaluacion de puntos en el plano implementando la cinematica inversacon cambio de referencia.

Page 76: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.3 Experimentacion con la caminata bıpeda. 60

4.3. Experimentacion con la caminata bıpeda.

Para planear la caminata se localizaron puntos estables en los planos frontal (Figu-

ra 4.6), y sagital ( Figura 4.7), para llevar a cabo la trayectoria que debe seguir el centro

de masa para realizar el ciclo de caminata dinamica mediante la manipulacion de la

cinematica inversa. Esto dio como resultado una aproximacion a un caminado estetico

similar al ser humano.

Figura 4.6: Plano frontal de la caminata bıpeda.

Figura 4.7: Plano sagital de la caminata bıpeda.

Para facilitar el modelado del robot bıpedo, el analisis se basa en el pendulo inver-

tido, en el cual se implementa un controlador con estructura PD+I difuso, las simula-

ciones del controlador se realizan en simulink y se obtiene la respuesta mostrada en la

Page 77: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.3 Experimentacion con la caminata bıpeda. 61

grafica de la Figura 4.8 al estimulo de una senal de escalon unitario, logrando la esta-

bilidad de la senal de salida en un tiempo de 8 ms y con un reducido efecto de Gibbs.

Prosiguiendo con la experimentacion del controlador se ingresa un senal cuadrada

consiguiendo una respuesta deseable al seguimiento de los objetivos, ver Figura 4.9.

Figura 4.8: Simulacion del controlador ZMP para la respuesta al escalon unitario

Figura 4.9: Simulacion de seguimiento del controlador ZMP

Las pruebas realizadas de la caminata del robot se muestran en Figura 4.10, se ob-

serva la trayectoria planeada de referencia contra la senal de salida ZMP del robot

realizando una trayectoria recta con un avance de 2 cm por cada paso. Con una altura

de 46.6 cm, el robot se mantiene de forma estable sin caerse. En la Tabla 4.2 se mues-

tran las velocidades maximas alcanzadas por el robot bıpedo en una superficie plana,

Page 78: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

4.3 Experimentacion con la caminata bıpeda. 62

concluyendo que si el robot reduce la altura se puede incrementar el avance y por lo

tanto aumentar la velocidad de la caminata.

Figura 4.10: Respuesta real del controlador ZMP en el robot bıpedo a trayectorias deseadas

Alturadel robot

(cm)

Longitud de paso(cm)

Velocidad(m/min)

45.4 5 645.6 5 845.8 4.5 1046.0 4 1146.4 4 1246.6 3 15

Tabla 4.2: Velocidades maximas alcanzadas por el robot bıpedo.

Page 79: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Capıtulo 5

Conclusiones y trabajo futuro

5.1. Conclusion

El robot bıpedo experimental construido en el laboratorio presentado en este traba-

jo fue de gran utilidad para evaluar los algoritmos propuestos, sin embargo el diseno

de la planta del pie, que forma una parte indispensable para el desarrollo del contro-

lador, debe mejorarse con la inclusion de sensores que tenga la capacidad de medir

las fuerzas ejercidas en cualquier tipo de superficie, con la finalidad de calcular con

precision el ZMP.

La metodologıa para obtener la cinematica inversa mediante RNA, demuestra ex-

perimentalmente que para manipular los 12 grados de libertad de las cadenas ci-

nematicas de los pies, es una opcion valida y eficiente porque se obtiene gran pre-

cision en los movimientos durante la caminata, ademas que la ejecucion del algoritmo

pre-entrenado, en el hardware propicia una reduccion de latencias, idoneo en estos

sistemas embebidos.

Tambien esta propuesta comprueba que usar como base el conocimiento experi-

mental, para disenar el controlador de postura ZMP con logica difusa, favorece en una

implementacion mas simple que los metodos de control clasico, pero sin sacrificar la

operabilidad y eficiencia.

5.2. Trabajo Futuro

Construir la parte superior del robot y resolver la cinematica directa e inversa

para los brazos.

Replantear y redisenar el problema de locomocion del robot bıpedo teniendo en

63

Page 80: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

5.2 Trabajo Futuro 64

consideracion los movimientos y el peso del torso.

Disenar los controladores en logica difusa tipo 2.

Implementar el sistema de inferencia difusa tipo 2 en lenguaje C, HLS, VHDL, y

evaluar la respuesta en la FPGA.

Planear otras trayectorias para la caminata del robot.

Construir un controlador mediante el indicador de rotacion de la pierna (FRI)

util para predecir la caıda del robot .

Page 81: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Referencias

[1] M. Shieh, K. Chang, C. Chuang, J. Chiou, and J. Li. Anfis based controller design

for biped robots. In 2007 IEEE International Conference on Mechatronics, pages

1–6, May 2007.

[2] Miomir Vukobratovic and Olga Timcenko. Experiments with nontraditional hy-

brid control technique of biped locomotion robots. Journal of Intelligent and Ro-botic Systems, 16(1):25–43, May 1996.

[3] C. Zhou. Neuro-fuzzy gait synthesis with reinforcement learning for a biped

walking robot. Soft Computing, 4(4):238–250, 2000.

[4] M.-Y. Cheng and C.-S. Lin. Genetic algorithm for control design of biped locomo-

tion. Journal of Robotic Systems, 14(5):365–373, 1997.

[5] K. c. Choil, H. j. Lee, and M. C. Lee. Fuzzy posture control for biped walking

robot based on force sensor for zmp. In SICE-ICASE, 2006. International JointConference, pages 1185–1189, Oct 2006.

[6] Miomir Vukobratovic and Branislav Borobac. Zero-moment point - thirty five

years of its life. International Journal of Humanoid Robotics, 01(01):157–173, 2004.

[7] A. Goswami. Foot rotation indicator (fri) point: a new gait planning tool to eva-

luate postural stability of biped robots. In Proceedings 1999 IEEE InternationalConference on Robotics and Automation (Cat. No.99CH36288C), volume 1, pages

47–52 vol.1, May 1999.

[8] Ltd. Honda Motor Co. The Honda Humanoid Robot. Technical report, September

2007.

[9] M. Shimojo, T. Araki, Aigou Ming, and M. Ishikawa. A zmp sensor for a biped

robot. In Robotics and Automation, 2006. ICRA 2006. Proceedings 2006 IEEE Inter-national Conference on, pages 1200–1205, May 2006.

65

Page 82: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

REFERENCIAS 66

[10] T. McGeer. A control approach for actuated dynamic walking in biped robots.

Int. J. Robot. Res.,, 9(2):62–82, 1990.

[11] D. Braun and M. Goldfish. A control approach for actuated dynamic walking in

biped robots. IEEE Transactions on Industrial Electronics, vol. 25, no. 6(1):1292–

1303, Dec 2009.

[12] Christine Chevallereau. Bipedal robot, modeling, design and building walking robots.Wiley, 2009.

[13] Honda. Technical information, 2011.

[14] K. Choi, H. Lee, and M. C. Lee. Fuzzy posture control for biped walking robot

based on force sensor for zmp. pages 1185–1189, Oct 2006.

[15] Anibal Ollero. Bipedal robot, modeling, design and building walking robots. Mar-

combo, Barcelona, 2007.

[16] Takankhi Sinichi, Yarnaguchi; Atsuo. Design of Biped Walking Robots Having Anta-gonistic Driven Joints Using Nonlinear Spring Mechanism. Marcombo, Japon, 1997.

[17] Qiang Huang, K. Yokoi, S. Kajita, K. Kaneko, H. Arai, N. Koyachi, and K. Tanie.

Planning walking patterns for a biped robot. IEEE Transactions on Robotics andAutomation, 17(3):280–289, June 2001.

[18] P. Nauth. A method for goal understanding and self-generating will for humanoid

robots. pages 344–349, May 2010.

[19] Thomas Braunl. Embedded Robotics,mobile robot design and application with embed-ded systems. Springer, Berlin, 2008.

[20] Scott Hauck and Andre DeHon. Reconfigurable Computing: The Theory and Practiceof FPGA-Based Computation. Morgan Kaufmann Publishers Inc., San Francisco,

CA, USA, 2007.

[21] Xilinx Inc. High performance computing using fpgas. 2010.

[22] Xilinx Inc. Reconfigurable Computing Accelerating Computation with Field-Programmable Gate Arrays. 2010.

[23] Nikolaos Voros and Konstantinos Masselos. System Level Design of ReconfigurableSystems-on-Chip. Springer Publishing Company, Incorporated, 1st edition, 2010.

Page 83: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

REFERENCIAS 67

[24] Pong P. Chu. Embedded SoPC Design with Nios II Processor and VHDL Examples.Wiley, 1st edition, 2011.

[25] Digilent. ATLYS manual de referencia, 2018.

[26] Xilinx. ATLYS manual de referencia, 2011.

[27] Sanjay Churiwala. Designing with Xilinx® FPGAs: Using Vivado. Springer Inter-

national Publishing., Switzerland.

[28] Louise H. Crockett Ross A. Elliot. The Zynq Book. Xilinx,University of Strathclyde

Glasgow, SGlasgow, Scotland, UK, 2014.

[29] Roberto Sepulveda, Oscar Montiel, Oscar Castillo, and Patricia Melin. Funda-

mentos de logica difusa. Ediciones ILCSA, 1(1), 2002.

[30] Lotfi A. Zadeh. Fuzzy sets. Information and Control, 8(3):338–353, 1965.

[31] K. H. Lee. First Course On Fuzzy Theory And Applications. SpringerVerlag, 2004.

[32] Tariq Rashid. Make Your Own Neural Network. Packt Publishing Ltd., 1st edition,

2017.

[33] Valluru B. Rao. C++ Neural Networks and Fuzzy Logic. MIS:Press, 2st edition,

1995.

[34] Richard Santos, Jose; Duro. Evolucion Artificial y robotica autonoma. Alfaomega,

Mexico, 2005.

[35] J.S.R. Jang, C.T. Sun, and E. Mizutani. Neuro-fuzzy and Soft Computing: A Compu-tational Approach to Learning and Machine Intelligence. MATLAB curriculum se-

ries. Prentice Hall, 1997.

[36] Md. Rezaul. Practical Convolutional Neural Networks. Packt Publishing Ltd., 1st

edition, 2018.

[37] Peter Corke. Robotics, Vision and Control - Fundamental Algorithms in MATLAB®,

volume 73 of Springer Tracts in Advanced Robotics. Springer, 2011.

[38] Dinamyxel. Technical information, 2011.

Page 84: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

Apendice A

Diseno del prototipo

Para realizar pruebas experimentales se diseno un robot bıpedo cuyas extremida-

des son de aluminio (Figura A.1), con 12 grados de libertad totalmente actuado en sus

articulaciones mediante servomotores digitales marca Dynamixel con un torque maxi-

mo de 26 kg.cm a 12 V consumiendo 2.4 A. El servomotor, incorpora un reductor de

engranajes, un motor de corriente continua de precision y un circuito de control con

funciones de conectividad de red interna. La altura total del robot es 47 cm y un peso

de 1.71 kg.

Figura A.1: Prototipo del robot bıpedo.

sectionDiseno mecanico Los materiales elegidos par la construccion del robot fue-

ron aluminio y delrin, ya que tienen excelentes caracterısticas tales como alta rigidez,

baja friccion, bajo costo, ligero y una excelente estabilidad dimensional al momento de

maquinar. En la Figura A.2 se ilustra los pasos a seguir para llegar a una pieza termi-

nada. Como primera instancia ya obtenido el diseno individual de las partes del robot

en SolidWorks, el siguiente paso es crear un dibujo de la pieza a partir del 3D y ser

68

Page 85: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

69

guardados en formato .Dxf para ser importado por otro software de maquinado como

el Mastercam que traduce el diseno mecanico en 2D a codigo G indispensable para

realizar el maquinado en la maquina de control numerico (CNC del ingles Computer

Numerical Control).

Figura A.2: Proceso de diseno de partes.

En la Figura A.3 se puede observar en perspectiva el prototipo renderizado 3D en

SolidWorks con el modelo fısico ensamblado, dando como resultado una gran aproxi-

macion a las expectativas mecanicas planteadas en el prototipo.

Figura A.3: Prototipo 3d vs. Real.

Page 86: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.1 Comunicacion entre FPGA y motores 70

A.1. Comunicacion entre FPGA y motores

Los servomotores modelo AX-12 y 24-RX instalados en las extremidades del ro-

bot bıpedo contienen un actuador inteligente, modular que incorpora un reductor de

engranajes, un motor de corriente continua de precision y un circuito de control con

funcionalidad de red, se puede producir una gran fuerza a pesar de su reducido ta-

mano debido a su sistema estructural para soportar grandes fuerzas externas. Debido

a que estos motores operan digitalmente y la comunicacion es hecha por paquetes de

datos, se facilita la operacion y la reduccion de componentes para su interface [38].

Estos motores son completamente configurables y presentan grandes caracterısticas

como las que a continuacion se mencionan:

Control de precision con 1024 pasos por revolucion.

Retroalimentacion de las variables de posicion angular, velocidad angular y tor-

que.

Alertas de sobrecapacidad de parametros.

Facilidad de cableado (Figura A.4) y una velocidad maxima de comunicacion de

1 MBPS.

Indicador de estados y alarmas mediante leds y senales.

La ID (Identificacion) representa la direccion unica del motor, es un numero es-

pecıfico en un registro de 8 bits para la distincion de cada motor que esta vinculado al

bus de la red y solo es posible controlar el motor direccionado. El tipo de comunicacion

es RS232 y R485 con 8 bits de datos, 1 bit de parada, y sin paridad. La interconexion de

la red utiliza una terminal de transmision (TxD) y otra para la recepcion (RxD) y otras

dos terminales referidas a la fuente de alimentacion (Tierra y Vcc) (Figura A.4), permi-

tiendo un tipo de intercambio de datos Half Duplex, por lo tanto, es posible operar solo

un motor a la vez.

Figura A.4: Bus de interconexion de los servomotores.

Page 87: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.1 Comunicacion entre FPGA y motores 71

Nombre de la fun-cion

Descripcion

initialize() Inicializa los perifericos de laFPGA

ping() Prueba un motor dentro de lared

w byte() Escribe un byte en los regis-tros del servo

r byte() Lee un byte especıficoresultado() Verifica el resultado de la ope-

racionposicionar() Posiciona el motor en un de-

terminado Angulo.dxl txrx() Configura, recibe y envıa un

paquete.

Tabla A.1: Funciones escritas en C, para el control de servomotores Dynamixel.

Los movimientos son controlados mediante siete funciones (Tabla A.1) en lenguaje

C, compiladas en el procesador Microblaze a 100 Mhz, la cual produce la comunica-

cion serial respetando el protocolo de los motores dynamixel, y ejecuta las funciones

basicas como: inicializacion de los parametros, realizar un ping para obtener el estado

de un determinado motor en la red, escribir un byte en un registro o varios registros,

posicionar el motor en una ubicacion deseada, leer el estado de la operacion anterior,

y en general leer o escribir cualquier variable necesaria para realizar un algoritmo es-

pecıfico para el robot bıpedo.

Para mantener la autonomıa del prototipo bıpedo y la reduccion de peso en el di-

seno, se construyo la fuente de alimentacion y circuito de comunicacion de los motores

en una placa individual. Este cuenta con circuitos especıficos como el Max485UA, que

permiten el Handshaking entre las senales CMOS enviadas por la FPGA y los niveles

de voltaje bipolar del protocolo 485 de los motores RX24. El integrado TTL 74LS241

es un buffer que se tambien se usa para el acoplamiento de voltajes para una lınea bi-

direccional de datos. Las baterıas proporcionan un voltaje de 11 V necesarios para la

operacion de los motores, por lo tanto se regula a 5 V con el circuito integrado modelo

LM1084IT-5 para alimentar la FPGA y los circuitos integrados digitales, garantizando

una corriente permanente de 5 A. En la Figura A.5 se muestra el diagrama utilizado.

El regulador lm7008 es usado para proporcionar un voltaje de 8 V que mediante un

circuito operacional 741 es convertido en una fuente simetrica de 4 V que alimentan

la circuiterıa de los sensores de fuerza.

Page 88: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.1 Comunicacion entre FPGA y motores 72

Figura A.5: Esquematicos de la fuente de alimentacion y comunicacion de datos.

La alimentacion y comunicacion se redujo a un PCB que se muestra la Figura A.6.

Figura A.6: PCB de la fuente de alimentacion y comunicacion. .

Page 89: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.2 Circuito de adquisicion de datos de los sensores de fuerza. 73

A.2. Circuito de adquisicion de datos de los sensores de

fuerza.

Para calcular el centro de masa empleado en el controlador mediante ZMP (Zero

Moment Point) se colocaron cuatro sensores de fuerza en la planta del pie del robot.

Para tal funcion se eligio el sensor de fuerza modelo Flexiforce 301 (Figura A.7), este

sensor actua como una resistencia al aplicar un fuerza. Cuando se ejerce presion la re-

sistencia es muy alta y cuando se libera la resistencia disminuye. La Figura A.7 muestra

la relacion entre Fuerza vs. Resistencia y la Fuerza vs. conductancia (1/R).

Figura A.7: Grafica resistiva del sensor Flexiforce 301.

Para poder analizar el funcionamiento de los sensores, se realizo un programa de

adquisicion mediante el software de programacion grafica Labview (Figura A.8), el

cual permitio obtener los valores de las resistencias de los amplificadores de instru-

mentacion en configuracion de modo amplificador inversor. El programa solo permite

especificar la constante de proporcionalidad y a su vez la conversion de la adquisicion

analogica a las unidades en gramos.

En la Figura A.9 se muestra el instrumento virtual que traza la grafica de las medi-

ciones en gramos para los cuatro sensores de presion.

Se elaboro el circuito mostrado en la Figura A.10 que tiene como funcion el procesar

las lecturas de los sensores de presion. El CI MCP6004 es un amplificador operacional

de fuente unipolar que sirve para convertir las variaciones de resistencia de los senso-

res a un voltaje proporcional al peso. El voltaje obtenido de los OPAMs es procesado

por el DSC de Microchip modelo 33FJ12GP201 con una frecuencia de reloj de 20 Mhz,

que internamente obtiene las lecturas por cuatro canales de conversion, en base a estas

lecturas se calcula el ZMP, el resultado se transmite por I2C a una velocidad de 400

Kbps al dispositivo maestro (FPGA).

Page 90: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.2 Circuito de adquisicion de datos de los sensores de fuerza. 74

Figura A.8: Programacion grafica del sensor flexiforce 301.

Figura A.9: Graficas de obtenidas de las mediciones del sensor de fuerza.

El PCB que se muestra en la Figura A.11 fue disenado en el software ares-proteus,

para el grabado de las pistas se uso el “router CNC fireball V90” controlado por el

software “Mach3”.

Fue necesario un filtro pasa bajas tipo FIR para eliminar el ruido introducido cuan-

do surge el contacto entre las placas de metal que contienen los sensores de presion con

Page 91: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.2 Circuito de adquisicion de datos de los sensores de fuerza. 75

Figura A.10: Esquematico para el circuito de adquisicion de datos del sensor de fuerza.

Figura A.11: Hardware de adquisicion de sensores de presion.

la superficie del suelo. El filtro pasa bajas implementado fue un tipo FIR de ventana

Chebyshev con un orden de 32, una frecuencia de corte de 200 Hz, a una frecuencia

de muestreo por canal de 1 Khz (4 canales).

El filtro se diseno en Matlab utilizando el toolbox de filtros fdatool, que genera los

33 coeficientes en un archivo de cabecera (.h) con una precision de punto flotante.

Page 92: Jorge Arturo Quiñones Rivera 2020 - CS.pdf - Instituto ...

A.2 Circuito de adquisicion de datos de los sensores de fuerza. 76

Figura A.12: Grafica del filtro pasabajas.

Figura A.13: Coeficientes del filtro pasa bajas.