Tesis de un robot
Tesis de un robot
Tesis de un robot
T E S I S
PRESENTADA COMO REQUISITO PARCIAL
PARA OBTENER EL GRADO DE:
DIRECTOR DE TESIS:
M.C. RAFAEL ARMANDO GALAZ BUSTAMANTE
Resumen
Instituto Tecnológico de Hermosillo
Departamento de Eléctrica y Electrónica
Acknowledgements
'Yo tengo juicio ya, libre y claro, sin las sombras caliginosas de la ignorancia,
que sobre él me pusieron mi amargo ir y devenir'......'Ya conozco mi necedad ...;
ya, por misericordia de Dios, escarmentando en cabeza propia estoy'
iii
Índice general
Resumen i
Acknowledgements ii
1. Introducción 1
1.1. Antededentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Justicación de la Tesis . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . 3
1.4. Objetivos General y Particulares . . . . . . . . . . . . . . . . . . 4
1.4.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2. Objetivos Particulares . . . . . . . . . . . . . . . . . . . . 4
1.5. Metas y alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Marco Teórico 5
2.1. Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1. Fotodiodos . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2. Fototransistores . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3. Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Convertidores de potencia . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1. Inversores . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2. Funcionamiento básico . . . . . . . . . . . . . . . . . . . . 13
2.3.3. Inversores monofásicos controlados por voltaje . . . . . . . 15
Modulación por ancho de un solo pulso . . . . . . . . . . . 16
2.4. Proceso de diseño de inversor . . . . . . . . . . . . . . . . . . . . 16
2.5. Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6. Cinemática de Robots manipuladores . . . . . . . . . . . . . . . . 18
Matrices de rotación . . . . . . . . . . . . . . . . . . . . . 19
Matrices de transformación homogénea . . . . . . . . . . . 22
2.7. Sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7.1. Respuesta transitoria y en estado estable . . . . . . . . . . 28
2.7.2. Sistemas de primer orden . . . . . . . . . . . . . . . . . . 29
2.7.3. Sistemas de segundo orden . . . . . . . . . . . . . . . . . 32
2.8. Lógica digital con dispositivos FPGA . . . . . . . . . . . . . . . . 33
2.8.1. Características de una implementación con FPGA . . . . 34
2.8.2. Lenguaje de descripción de hardware . . . . . . . . . . . . 35
2.8.3. Estructura de VHDL . . . . . . . . . . . . . . . . . . . . . 35
iv
3. Análisis cinemático 41
3.1. Obtención del modelo Denavit-Hartenberg . . . . . . . . . . . . . 42
3.2. Implementación del modelo . . . . . . . . . . . . . . . . . . . . . 44
3.3. Manipulación del modelo desarrollado . . . . . . . . . . . . . . . 45
4. Implementación 49
4.1. Inversor de puente completo L298 . . . . . . . . . . . . . . . . . . 50
4.2. Tarjeta FPGA Nexys 2 . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3. Fabricación de tarjeta con optoacopladores . . . . . . . . . . . . . 51
4.4. Software de control . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.1. Diseño de una memoria ROM con valores de la función Seno 51
4.4.2. Obtención de la posición mediante matrices de transfor-
mación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5. Resultados y conclusiones 54
Bibliografía 56
v
Índice de guras
Índice de cuadros
List of Symbols
a distancia m
P potencia W (J s−1 )
ω frecuencia angular rad
1
Capítulo 1
Introducción
Los seres humanos a través de su historia siempre han intentado desarrollar
artefactos que les ayuden en sus tareas, cada avance que se ha dado a lo largo de
este recorrido ha contribuido al desarrollo de la ciencia y la tecnología; desde la
invención del ábaco, ideada por mesopotámicos en el 3500 AC, el cual se supone
fue el primer instrumento que ayudó al ser humano en la realización de cálculos,
también se han encontrado mecanismos usados por los egipcios para extracción
de agua que datan del 3000 AC, así podemos seguir hasta el siglo XVII, donde
se comienza a dar una gran trasformación en todos los aspectos de la vida del
hombre.
Todas estas contribuciones dieron un gran impulso a la humanidad durante
la revolución industrial, en donde se utilizaron todas las técnicas hasta enton-
ces conocidas y nuevas que comenzaron a desarrollarse para mecanizar procesos,
aparece por primera vez en la historia la especialización del trabajo y se comen-
zaron a estudiar las tareas repetitivas en las que el hombre podía ser reemplazado
por máquinas.
Más adelante con el desarrollo de la tecnología y de las técnicas de control en
la segunda mitad del siglo XX, el uso de automatismos industriales ha crecido
hasta llegar a ser de uso común dentro de la industria.
La robótica, termino acuñado por Isac Asimov; es un área de estudio nueva
dentro de la ciencia y la tecnología, existen distintas deniciones, y en todas
siempre se esta hablando de máquinas automáticas que ejecutan un programa
para realizar alguna función o tarea, estás máquinas tendrán una parte mecánica,
un sistema de control electrónico, un software, e interfaces; si bien es cierto para
el enfoque que se le quiera dar siempre habrá que ajustar nuestra denición
a lo que queremos lograr, así que habrá diferencias en las deniciones que se
encuentren. [4]
1.1. Antededentes
El área de Robótica es multidiciplinaria, esto es, abarca muchas áreas de
conomimiento, desde la teoría de control, el control de motores, cinemática,
dinámica, resistencia de materiales, diseño estructuras y mecanismos, software
para simulación y control, sensores y actuadores, etc. [18] [15]
Los robots se han diversicado y se pueden encontrar muchas clasicaciones
según su tipo de aplicación o area de interés, en forma generalizada se han
distinguir algunos tipos: [18]
Capítulo 1. Introducción 2
Tradicionales de
engranes
Manipuladores Manipuladores
Transmisión
directa
Con ruedas
Terrestres
Robots Con patas
Orugas
Móviles
Acuáticos
Marinos
Articulaciones
Actuadores
Sensores
Capítulo 1. Introducción 3
Interface de potencia
Interface de control
Capítulo 2
Marco Teórico
2.1. Actuadores
La función de un actuador convertir algún tipo de energía en energía mecáni-
ca. Los actuadores se clasican según el tipo de energía con la que se alimentan:
actuadores neumáticos, eléctricos e hidráulicos; y por el tipo de movimiento que
generan, si este es un desplazamiento longitudinal o rotatorio. El tipo de actua-
dor que nos interesa investigar es el actuador eléctrico ya que sus características
de control sencillo, velocidad de respuesta y amplia variedad los hace los más
utilizados en la industria y estos se clasica según el tipo de energía eléctrica con
la que se alimentan, por el movimiento que generan y por su forma de excitación,
comúnmente les llamamos motores eléctricos.[19],[2]
Neumáticos
Alimentados por
corriente alterna
Actuadores
Eléctricos
Alimentados por
corriente directa
Hidráulicos
Los motores de corriente directa, que son los que se utilizan en esta investi-
gación constan de un rotor y un estator. El rotor es la parte móvil y es el que
empuja a la carga para generar el movimiento, y el estator es la parte ja que
proporciona el empuje magnético que induce la fuerza electromotriz. [17]
En general los motores eléctricos tienen velocidades de rotación muy elevadas
hasta 30000 rpm, en la mayoría de las aplicaciones de los brazos robots no se
necesita de tal velocidad bastaría con velocidades de 120 rpm pero que tengan la
fuerza necesaria para mover cargas pesadas que es algo que no posee un motor
tradicional. Para adaptar éstas características de los motores a la robótica lo
que se hace es acoplar al rotor un sistema de engranes que permita disminuir la
velocidad de giro pero que aumente el par de salida o la capacidad de carga que
tiene el motor, lo que se hace es sacricar velocidad y aumentar la fuerza en el
par. [9]
Capítulo 2. Marco Teórico 6
En derivación
Serie Serie
Compuestos
Convencional
Motores de
corriente directa
Rotor de disco Rotor de disco
Rotor de copa
Sin escobillas
Sin escobillas
De pasos
V(s)
J,b
q,w
V- V+
i+ i+
V- V+
i- i-
2.2. Sensores
Para dar una denición correcta de lo que es un sensor, primero hay que
recordar que es un transductor. La función de un transductor es la de convertir
una variable física en otra que tiene un dominio diferente, entonces un transduc-
tor puede ser un sensor pero también un actuador. Para realizar esta función
un transductor se vale de algún principio físico de transformación de energía,
y estos son: piezoresistivo, capacitivo, ultrasónico, magnético, térmico, fotoeléc-
trico, electroquímico, resistivo. Si clasicamos a los sensores por el principio de
transducción se encuentran: piezoresistivo, capacitivo, piezoeléctrico, ultrasóni-
co, magnético, termoeléctrico, fotoeléctrico, químico. En la gura 2.5 podemos
ver la clasicación de los sensores por el tipo de variable medida.[19]
Es importante analizar las características de los sensores y estas son estáti-
cas y dinámicas, las primeras no cambian con el tiempo y las segundas están
en función de este. Dentro de las características estáticas de un sensor están la:
Capítulo 2. Marco Teórico 8
De posición, velocidad
y aceleración
De nivel y
proximidad
De humedad y
temperatura
De fuerza y
deformación
Sensores De flujo y
presión
De color, luz
y visión
De gas y pH
Biométricos
De corriente
Sensibilidad, que se dene como la entrada mínima que requiere el sensor para
dar una salida. El Rango, es el intervalo entre el valor mínimo y el valor máximo
de la variable que se está midiendo. La Precisión, se reere a cuando el sensor
lee el mismo valor de entrada, este siempre dé el mismo valor a la salida. La
Exactitud, es la diferencia entre la lectura que da el sensor y el valor real de la
variable medida. Linealidad estática, esta depende de factores ambientales, que
tanto se ve afectado el sensor por la contaminación ambiental a su alrededor,
como por ejemplo ruido, vibraciones, temperatura, humedad, etc. El Oset, es
un corrimiento en el valor que da salida y siempre es el mismo para cierto rango
de operación, es como agregar una componente de Vdc en la salida. La Resolu-
ción, es la capacidad que tiene el sensor de registrar el cambio más pequeño en la
variable de salida. El Error Estático, es error que existe al hacer una medición,
siempre existirán errores en las lecturas, los sensores arrojan una cantidad y esa
normalmente se ajusta a una tabla de valores donde se realiza alguna interpo-
lación. Las características dinámicas son: El Tiempo de Respuesta, es el tiempo
que transcurre desde que se presenta un cambio en la variable que se mide y el
tiempo que tarda el sensor en registrar dicho cambio. Histéresis, es la capacidad
que tiene el sensor para seguir la curva de salida ideal, cuando se tiene un sensor
se linealiza la salida aunque en la práctica todos presentan no linealidades. La
Capítulo 2. Marco Teórico 9
2.2.1. Fotodiodos
+
V
-
2.2.2. Fototransistores
Los fototransistores tienen más sensibilidad a la luz que los fotodiodos, como
la conexión de la base está abierta, toda la corriente inversa entra a la base del
transistor, lo que sucede dentro del fototransistor es que la corriente de colector
es mayor a la corriente inversa multiplicada por un factor . La unión p-n foto-
sensible es la de colector a base, entonces, la diferencia entre un fotodiodo y un
fototransistor es el factor o ganancia de corriente , y es que la misma cantidad
de energía electromagnética produce en el transistor veces más corriente en un
fototransistor, la desventaja es que la velocidad de respuesta del fototransistor
mientras que el fotodiodo tiene corrientes de salida de micro amperes y conmu-
tación del orden de nanosegundos en el fototransistor se tienen corrientes en el
orden de mili amperes y tiempos de conmutación de microsegundos.[21]
Vcc
Rc
2.2.3. Encoders
πD
R= (2.1)
2a
Donde:
R = Resolución
D = Diámetro
a = Ancho de ranura
0000
0001 Fotoreceptores
0011
Emisores
de luz
Para que esto sea cierto debe de existir un interruptor ideal, el cual será un
dispositivo con dos estados de operación, uno en circuito abierto y el otro en
corto circuito, esto es; un dispositivo de conmutación.[16],[17]
Por lo tanto, la interfaz de potencia es aquella en la que se estudian los
sistemas de conversión de la energía eléctrica, es decir, los llamados convertidores
estáticos. Existen dos clasicaciones para los convertidores estáticos, según su
función y según el cuadrante de operación. [16],[17]
Los tipos de convertidores según su funcionamiento son:
Convertidor de cc-cc
Convertidor de cc-ca
Convertidor de ca-ca
Convertidor de ca-cd
iout iout
Vout Vout
iout iout
Vout
2.3.1. Inversores
+ v(t)
C1 Vcc sw1 D1
2
- Vcc
2
Vcc + Vo
Carga t
- T2 T T
- 2
+ - Vcc
C2 Vcc
sw2 D2 2
2
-
s
T
V cc 2
Z
2 2 Vcc
V0 = dt = (2.3)
T 0 4 2
El voltaje de salida para cualquier instante t se calcula analizando su forma
de onda mediante series Fourier obtenemos 2.4 [17]
∞
X 2Vcc
V0 = sen(nωt) (2.4)
nπ
n=1,3,5,...
i 0
T T t
2
+
C1 Vcc D1 sw1 sw3 D3
2
-
Vcc
+ Vo
Carga
-
+
Vcc sw4
C2 D4 sw2 D2
2
-
s
Z T
2 2
V0 = V cc 2 dt = Vcc (2.5)
T 0
∞
X 4Vcc
V0 = sen(nωt) (2.6)
nπ
n=1,3,5,...
4Vcc
V1 = √ = 0,90Vcc (2.7)
2π
La corriente de salida instantánea para una carga RL será 2.8. [17]
∞
X 4Vcc
i0 = p sen(nωt − θn ) (2.8)
n=1,3,5,... nπ R2 + (nωL)2
Carga Carga
Carga
2.5. Robótica
Cuando escuchamos la palabra robot lo primero que se nos viene a la mente
es la imagen de un sistema humanoide, cuando escuchamos la parabra robótica
lo que vemos es una estructura que semeja a un brazo humano, esto es debido
a la inuencia de los medios de comunicación y lo que ellos nos proyectan. En
Capítulo 2. Marco Teórico 17
los inicios de la robótica se pensaba que éstos sistemas superarian las labores
humanas y que seríamos reemplazados rápidamente, la realidad es que se necesita
un nivel de avance tecnológico que no se tiene y no se tendrá en mucho tiempo, así
que los robots están relegados en la actualidad a tareas repetitivas y que pueden
ser programadas por los seres humanos, lo anterior no signica que dichas tareas
sean sencillas.
Son muchas las disciplinas que intervienen en el desarrollo de la robótica y
mientras mas complejo es un sistema se hacen necesarias más areas del conoci-
miento, una denición formal de la palabra Robot tomada del diccionario de la
Real Academia Española es:
Puente
L298
Encoder
Motores
Sensores
de fin
de carrera FPGA Memoria
Fuente de alimentación
Un sistema mecanico.
Un sistema de potencia.
Sensores y actuadores.
Un sistema de control.
en necesario denir que son los grados de libertad. Un grado de libertad es una
coordenada independiente sobre la cual se describe la conguración del robot
manipulador.
En robótica un modelo cinemático debe ser capaz de enterder los movimien-
tos de rotación y traslación de los eslabones, y éstos movimientos deben ser
descritos en forma adecuada para que se establezca un orden, al establecer un
conjunto de sistemas de coordenadas en cada una de las articulaciones y que
queden establecidas las relaciones de éstos sitemas, ya que con ello se determi-
nan las posiciones y orientaciones que se pueden alcanzar al quedar determinado
el espacio de trabajo del robot.
Los brazos robóticos están formados por eslabones y a la unión de cada es-
labón se le llama articulación, el número de articulaciones que posea el robot
dene el número de grados de libertad que tendrá el sistema, las articulacio-
nes solo pueden realizar dos tipos de movimientos: movimiento lineal también
llamado prismático o movimiento rotacional. [10]
Los grados de libertad (DOF por sus siglas en inglés: degree-freedom) re-
presentan cada uno una coordenada independiente de cada una de las posicio-
nes que puede alcanzar esa articulación y permite denir la conguración del
sistema.Para denir los grados de libertad que posee un sistema es necesario
identicar aquellas articulaciones que proveen información que ayude a denir
la conguración de un sistema.[3]
De acuerdo con la denición de un cuerpo rígido, cada elemento de un sistema
debe tener un sistema coordenado que dena su posición y orientación, con
respecto a un sistema coordenado base. Si se cumple con la denición de cuerpo
rígido es posible aplicar la segunda ley de Newton que nos dice que la fuerza
sobre una partícula se calcula a partir de la masa y la derivada de la velocidad
y los postulados de Euler que permiten modelar el movimiento rotacional de un
cuerpo considerando sus propiedades inerciales.[Fundamentos de robotica]
Cuando se trata de ubicar el extremo nal del brazo robot se necesita solo
un punto en el espacio y este queda denido por sus componentes en x, y , z del
espacio cartesiano, además en un brazo robot también debemos denir la orien-
tación con respecto al sistema de referencia que estemos usando. Para denir la
orientación del extremo nal del robot también se requieren de tres componentes
linealmente independientes y se dene un nuevo sistema de referencia que esta
relacionado con el anterior sistema de referencia que dene el punto nal del
brazo. [2]
Matrices de rotación
Es necesario ahora dar una denición de sistema de referencia, se debe en-
tender que un sistema de referencia es un sistema de coordenadas x, y , z el cual
tiene un origen o. Cuando expresamos el punto nal de un robot lo que hace-
mos es denir un vector y cuando hacemos operaciones con vectores se requiere
que hagan referencia al mismo sistema coordenado o si los vectores pertenecen
a sistemas coordenados distintos éstos deberán ser paralelos. Así que si se reali-
zan operaciones con vectores que están en distintos sistemas de referencia pero
Capítulo 2. Marco Teórico 20
P = pu iu + pv ju (2.9)
px = ix P
(2.10)
py = jv P
Sustituyendo 2.9 en 2.10 se obtiene:[2]
px p
=R u (2.11)
py pv
donde:
i i i j
R= x u x v (2.12)
jy iu jy jv
A la ecuación 2.12 se le conoce como matriz de rotación, y de esta manera
queda denida la orientación del sistema OUV con respecto al sistema OXY, y
se trata de una matriz ortonormal, de tal forma que R−1 = RT . [2]
Si consideramos el sistema OUV girado un ángulo α con respecto al sistema
OXY, la matriz de rotación R queda como sigue: [2]
cos α −sen α
R= (2.13)
sen α cos α
Cuando los sistemas coordenados están en el espacio el sistema OXYZ es
ix ,jy ,kz , y el sistema OUVW es iu ,jv ,kw . Por lo tanto, un vector denido en este
espacio tridimensional se podrá denir para ambos sistemas de referencia como:
[2]
Pxyz = [px , px , pz ]T = px · ix + py · jy + pz · kz
(2.14)
Puvw = [pu , pv , pw ]T = pu · iu + pv · jv + pw · kw
Y como se hizo en el caso de dos dimensiones, ahora tenemos: [2]
px pu
py = R pv (2.15)
pz pw
Entonces la matriz R para el espacio tridimensional es: [2]
Capítulo 2. Marco Teórico 21
ix iu ix jv ix kw
R = jy iu jy jv jy kw (2.16)
kz iu kz jv kz kw
OU V W
Es es la matriz de rotación donde se dene la orientación del sistema
con respecto al sistema de referenciaOXY Z . Y como se vió en el espacio bidi-
mensional, también se cumple que R
−1 = RT . [2]
1 0 0
Rot x(α) = 0 cos α −sen α (2.17)
0 sen α cos α
De nuevo si giramos el sistema OU V W sobre el eje OV y este se matenga
sobre el eje OY , nos da la matrix de rotación con respecto a y,
cos φ 0 sen φ
Rot y(φ) = 0 1 0 (2.18)
−sen φ 0 cos φ
Por último rotamos el sistema OU V W sobre su eje OW y que coincide con
el eje OZ , la matriz de rotación que obtenemos es con respecto al eje z, [2]
cos θ −sen θ 0
Rot z(θ) = sen θ cos θ 0 (2.19)
0 0 1
Es posible poder utilizar estas tres matrices de rotación y expresarlas como
una multiplicación de matrices que representan una suceción de rotaciones de
tal forma que si tenemos una matriz que es rotada primero sobre el eje OW ,
posteriormente sobre el eje OV y por último sobre el eje OU que se pueda
representar como: [2]
T = Rotz(θ)Roty(φ)Rotx(α) (2.20)
Cθ −Sθ 0 Cφ 0 Sφ 1 0 0
= Sθ Cθ 0 0 1 0 0 Cα −Sα
0 0 1 −Sφ 0 Cφ 0 Sα Cα
CθCφ −SθCα + CθSφSα SθSα + CθSφCα
= SθCφ CθCα + SθSφSα −CθSα + SθSφCα
−Sφ CφSα CφCα
Aquí es muy importante el orden en que se realizan las rotaciones, ya que el
producto de matrices no es conmutativo y estas quedan denidas por la regla de
la mano derecha. [2],[12]
Esta matriz 2.22 también es conocida como representación Roll-Pitch-Yaw
(RPY)
Capítulo 2. Marco Teórico 22
Ahora supongamos que se tiene un vector P 1 = [3, 3, 0]T lo cual signica que
el vector está en el sistema de referencia OU V W y deseamos conocer la posición
de ese vector en el sistema de referencia OXY Z y que el ángulo α = 45 =
◦ π
4,
0
entonces el vector P es: [2],[12]
3 √ 0
P 0 = R10 P 1 = Rot x(45◦ ) 3 = 18
0 0
x aw a
y bw b
P = z = cw = c
(2.21)
w w 1
De esta denición de coordenada homogénea, podemos representar direccio-
nes con la forma [a, b, c, 0]T . Entonces para denir una matriz de transformación
homogénea T queda como: [2],[12]
R3x3 P3x1 Rotación T raslación
T = = (2.22)
f1x3 w1x1 P erspectiva Escalado
Si se supone nula la perpectiva y el escalado unitario, la matriz T es:
R3x3 P3x1 Rotación T raslación
T = = (2.23)
0 1 0 1
Hay que considerar que el sistema O'UVW está trasladado por un vector
P = px i + py j + pz k respecto al sistema jo OXYZ, que es la matriz básica de
traslación: [2],[12]
1 0 0 px
0 1 0 py
T (p) =
0
(2.24)
0 1 pz
0 0 0 1
Capítulo 2. Marco Teórico 23
rx 1 0 0 px ru ru + px
ry 0 1 0 py
rv = rv + py
= (2.25)
rz 0 0 1 pz rw rw + pz
1 0 0 0 1 1 1
De la misma forma, un vector r en el sistema OXY Z desplazado según la
traslación T tendrá como componentes r0 : [2],[12]
0
rx 1 0 0 px rx rx + px
ry0 0 1 0 py
ry = ry + py
= (2.26)
rz0 0 0 1 pz rz rz + pz
1 0 0 0 1 1 1
Las rotaciones de un vector alrededor de cada uno de los tres ejes OX, OY, OZ
en un ángulo α,se pueden realizar por la transformaciones de rotación, entonces
la transformación de rotación alrededor del eje x es: [2],[12]
1 0 0 0
0 cos α −sen α 0
Rot x(α) =
0 sen α cos α
(2.27)
0
0 0 0 1
cos φ 0 sen φ 0
0 1 0 0
Rot y(φ) =
−sen φ 0 cos φ
(2.28)
0
0 0 0 1
cos θ −sen θ 0 0
sen θ cos θ 0 0
Rot z(θ) =
0
(2.29)
0 1 0
0 0 0 1
Podemos calcular la representación del vector r cuyas coordenadas (rx , ry , rz )
que esta denido en el sistema de referencia OXYZ, realizando la multiplicación
de la matriz T por las coordenadas (ru , rv , rw ) del sistema girado O'UVW de la
siguiente forma: [2],[12]
rx ru
ry rv
=T (2.30)
rz rw
1 1
Es igualmente usada para representar la rotación y la traslación de un vector
respecto del sistema de referencia jo OXY Z dado por: [2],[12]
Capítulo 2. Marco Teórico 24
0
rx rx
ry0 ry
=T (2.31)
rz0 rz
1 1
1 0 0 px
0 cos φ −sen φ py
T (x)Rot x(φ) =
0 sen φ cos φ pz
(2.32)
0 0 0 1
Para representar la rotación de un ángulo θ sobre el eje OY seguido de una
traslación de vector P denido en el sistema OXYZ se tiene que: [2],[12]
cos θ 0 sen θ px
0 1 0 py
T (p)Rot y(θ) =
−sen θ
(2.33)
0 cos θ pz
0 0 0 1
Para representar la rotación de un ángulo ψ sobre el eje OZ seguido de una
traslación de vector P denido en el sistema OXYZ se tiene que: [2],[12]
cos ψ −sen ψ 0 px
sen ψ cos ψ 0 py
T (p)Rot z(ψ) =
0
(2.34)
0 1 pz
0 0 0 1
1 0 0 px
0 cos φ −sen φ py cos φ − pz sen φ
Rot x(φ)T (p) =
0 sen φ cos φ py sen φ + pz cos φ
(2.35)
0 0 0 1
cos θ 0 sen θ px cos θ + pz sen θ
0 1 0 py
Rot x(θ)T (p) =
−sen θ
(2.36)
0 cos θ pz cos θ − px sen θ
0 0 0 1
Y por último la matriz de traslación de p.
cos ψ −sen ψ 0 px cos ψ − py sen ψ
sen ψ cos ψ 0 px sen ψ + py cos θ
Rot x(ψ)T (p) =
0
(2.37)
0 0 pz
0 0 0 1
*********************************************************
Su costo es menor.
Un sistema de control esta formado por varios elementos, donde cada uno
de ellos realiza una determinada función. Es posible representar al sistema me-
diante bloques funcionales donde se muestre el ujo de la señal, este tipo de
representación es el más utilizado; cada bloque representa la descripción del
comportamiento de cada elemento dentro del sistema de control. [13],[5]
Función de
transferencia
G(s)
Para el caso lineal de un sistema de control en lazo cerrado este puede ser
representado en un diagrama de bloques por puntos de suma, bloques y rami-
caciones.
Función de
+- transferencia
G(s)
H(s)
Y (s) G(s)
= (2.40)
U (s) 1 + G(s)H(s)
muy precisos, los elementos de control de lazo abierto deben ser apropiadamente
seleccionados.[13],[5]
Función de
Controlador
+- K
transferencia
G(s)
H(s)
Un sistema de primer orden es aquel que se puede representar por una ecua-
ción diferencial de primer orden:
an−1 ẏ + an y = bm u (2.42)
Y (s) k
= (2.43)
U (s) τs + 1
donde k es la ganancia del sistema y τ es la constante de tiempo.
La representación en diagrama de bloques para la ecuación 2.43 se muestra
en la gura 2.21.
(
A
lı́mt→∞ to para 0 < t < to
u(t) =
0 para t < 0, to < t
Capítulo 2. Marco Teórico 30
1 −t
y(t) = eτ (2.44)
τ
La curva de la ecuación 2.44 es la respuesta del sistema en el dominio del
tiempo(t), la podemos observar en la gura 2.22.
1 -(t/t)
y(t)= t e
t
t t t t t t
k 1
Y (s) = (2.45)
τs + 1 s
Al resolver la ecuación 2.45, obtenemos la ecuación 2.46 para t ≥ 0.
−t
y(t) = 1 − e τ (2.46)
y(t)
1
Pendiente= t
63.2%
86.5%
98.2%
99.3%
95%
t t t t t t
k 1
Y (s) = (2.47)
τ s + 1 s2
Resolviendo esta ecuación para t utilizando la transformada inversa de La-
place, tenemos para t ≥ 0:
−t
y(t) = t − τ + τ e τ (2.48)
−t
y(t) = t − τ + τ e τ
−t
y(t) = 1 − e τ
Capítulo 2. Marco Teórico 32
5 t
u(t)=t
t
4
3
y(t)=t
2
0
t t
2 3t 4t t
5 t
6
1 −t
y(t) = eτ
τ
Esta propiedad solo existe en los sistemas lineales e invariantes en el tiempo.[13]
ao ÿ + a2 ẏ + a3 y = ku(t) (2.49)
Y (s) k
= (2.50)
U (s) s(s + p)
Donde k = Ganancia y p= Polo del sistema, la representación en lazo cerrado
se muestra en la gura 2.25.
Si obtenemos la raíces de la función de transeferencia en lazo en lazo cerrado
estas son:
Capítulo 2. Marco Teórico 33
1
+- K s(s+p)
k
s2 + ps + k
velocidad máxima de reloj dentro del diseño como es el uso de registros, pero
existe un castigo para esto ya que aumenta el retardo combinatorio entre registros
restantes, ya que se tiene que aumentar el tamaño del bus y se deben utilizar
operaciones extra para unir los procesos.[7]
Flujo de datos.
Código Principal
Library
declarations
ENTITY
ARCHITECTURE
Librerias y paquetes
Las librerias y los paquetes son usados en los lenguajes de programación, y
son mecanismos que sirven para reutilizar código. Las librerias pueden contener
uno o más paquetes y a su vez los paquetes pueden ser creados por el usuario
o estar denidos por algún mecanismo regulador o a través de estandares como
el IEEE (Institute of Electrical and Electronics Engineers) como parte de los
estándares que forman al lenguaje VHDL. [3] [6]
Library
Package Package
Functions Functions
Procedures Procedures
Constants Constants
Constants Constants
Types Types
Component Component
declarations declarations
Entidad(entity)
La entidad es la estructura fundamental y describe características físicas del
dispositivo como lo son sus entradas y salidas. La entidad es un bloque del
diseño que es tratado como un elemento individual, y puede representar una
Capítulo 2. Marco Teórico 37
in
inout
Entidad
out buffer
Para declarar una entidad se da una descripción de las entradas y las salidas
con los que cuenta el circuito que se está diseñando. Por ejemplo, si se desea
diseñar un multiplexor de dos entradas y una salida, con una señal para el
selector, se tiene que la representación esquemática del multiplexor corresponte
a la gura 2.29. [3]
A 1
Z
B 0
Sel
Arquitectura(architecture)
Denida la entidad ahora es posible denir la arquitectura cuyo propósito
es denir las funciones que realizará el módulo que se describió en la entidad,
por tanto, contiene algoritmos que ejecutan las instrucciones que se deben llevar
a cabo. Es aquí donde entra la creatividad del ingeniero de diseño y podrá
hacer las descripciones de hardware por el método que más se le facilite, existen
muchas formas de implementar una solución a un problema, y depende del tipo
de aplicación, el tamaño de esta y del estilo del programador. [3],[14]
Capítulo 2. Marco Teórico 38
Paréntesis.
Complementos.
Función And.
Función or.
Descripción funcional
En este tipo de descripción se puede suponer a las entidades como una espe-
cie de caja negra, en donde no importa su estructura interna y lo que realmente
interesa es lo que se obtiene a la salida. Primordialmente este tipo de descrip-
ción se basa en el uso de procesos y declaraciones secuenciales, esta descripción
funcional permite un rápido modelado de la función. Supongamos que desea-
mos hacer una descripción funcional de la compuerta Nand, cuya función de
transeferencia se conoce y se muestra en lenguaje VHDL. [3] [6]
Capítulo 2. Marco Teórico 39
Descripción estructural
Este tipo de descripción se basa en la utilización de estructuras o módulos
ya denidas que se vuelven a utilizar para crear un sistema más grande, esto
signica que un módulo se convierte en componente de otro módulo. Al reali-
zar una descripción estructural se obtienen múltiples niveles de jerarquía y los
componentes pueden ser agregados no importando que la descripción de éstos
módulos sea de otro tipo. [6] [11]
Los componentes de una descripción estructural se pueden ver en la gura
2.30
Entity
Architecture
Module_uno Module_dos
Entity Entity
Architecture Architecture
Module_uno_A Module_uno_B Module_dos_A Module_dos_B
1: entity moduloprincipal is
2: Port ( x1 : in STD_LOGIC; --entradas
3: x2 : in STD_LOGIC;
4: y1 : in STD_LOGIC; --entradas
5: y2 : in STD_LOGIC;
6: z : out STD_LOGIC);--salidas
7: end entity moduloprincipal;
8:
9: Architecture Behavioral of moduloprincipal is
10:
11: component Module_uno is
12: port ( a1 : in STD_LOGIC;
13: a2 : in STD_LOGIC;
14: a3 : out STD_LOGIC);
15: end component Module_uno;
16:
17: component Module_dos is
18: port ( b1 : in STD_LOGIC;
19: b2 : in STD_LOGIC;
20: b3 : out STD_LOGIC);
21: end component Module_dos;
Capítulo 2. Marco Teórico 40
22:
23: signal z1, z2 : std_logic := ’U’; --conectando s e a l e s
24:
25: begin
26:
27: sub1: Module_uno port map (a1=>x1, a2=>x2, a3=>z1);
28: sub2: Module_dos port map (b1=>y1, b2=>y2, b3=>z2);
29: z <= z1 xor z2;
30:
31: end Behavioral;
41
Capítulo 3
Análisis cinemático
Para construir el modelo cinemático que describe el movimiento del robot, se
tiene que analizar la estructura del robot para la cual se construye dicho modelo,
el robot utilizado es el Scorbot ER-V Plus y se analizan 3-gdl, nos interesan las
posiciones del extremo nal del segundo eslabón del robot, al observar la gura
podemos ir identicando cada una de sus partes. [8]
Al desglozar las partes del brazo robot podemos identicar sus eslabones y
sus articulaciones para poder entonces poder numerar los sistemas de referencia y
el tipo de movimiento que tiene cada articulación. Como se puede observar en la
gura 3.2 se muestran los eslabones y las articulaciones que posee la estructura.
[8]
Capítulo 3. Análisis cinemático 42
Antebrazo
Parte superior Codo
del brazo
Hombro Pitch
Cuerpo
Pinza
Roll
Base Base
Eslabones Articulaciones
6"
122.5cm
12.29c2
m"
14 cm
1.28"
1.53"
19 cm
X3 X3
3 Z2 Z2
Z3
q3 Z3
Y3 Y3
X1 X1
2
Z1
q2
Z1 Z1 Z1
Y1 Y1
1
Z0
1 {So} Z0 {So} Z0 Z0
X0 {So} {So}
Y0 Y0 Y0
Y0
X0 X0 X0
q1
DH1,DH2,DH3 DH4,DH5 DH6 DH7,DH8 DH9
Articulación θ d a α
1 q1 14 0 -90
2 q2 0 22 0
3 q3 0 22 0
Capítulo 3. Análisis cinemático 44
cos(q1) 0 −sen(q1) 0
sen(q1) 0 cos(q1) 0
[H]0 A1 = (3.1)
0 −1 0 14
0 0 0 1
cos(q2) −sen(q2) 0 22cos(q2)
sen(q2) cos(q2) 0 22sen(q2)
[H]1 A2 =
0
(3.2)
0 1 0
0 0 0 1
cos(q3) −sen(q3) 0 22cos(q3)
sen(q3) cos(q3) 0 22sen(q3)
[H]2 A3 =
0
(3.3)
0 1 0
0 0 0 1
De la multiplicación de las matrices 3.1,3.2,3.3 se obtiene la matriz T.
n o a p
[H]T = = 0 A3 = 0 A1 1 A2 2 A3
0 0 0 1
Realizada la operación de multiplicación podemos observar los valores x, y ,
z de las posiciones nales del extremo del brazo robot y corresponden a los tres
primeros valores de la cuarta columna de la matriz T resultante.
1 syms q1 q2 q3 l1 l2
2 pi1=sym(’pi’)
3 A01=mdh(q1,14,0,-pi/2)
4 A12=mdh(q2, 0,22,0)
5 A23=mdh(q2, 0,22,0)
6 T=A01*A12*A23
7 l1=22;l2=22
8 L1=link([pi/2 0 0 14])
9 L2=link([0 22 0 0])
10 L3=link([0 22 0 0])
11 RITH=robot({L1,L2,L3},’Robot ITH’)
12 drivebot(RITH)
Capítulo 3. Análisis cinemático 45
50
y
x
z
0
Z
Robot ITH
-50
50
50
0
0
Y -50 -50
X
q3 para observar las posiciones que va tomando el extremo nal del robot. Al
variar q1 90 en sentido contrario a las manecillas del reloj observamos que el
robot se mueve como se muestra en la gura 3.7.
50
xy z
0
Z
Robot ITH
-50
50
50
0
0
Y -50 -50
X
x
50 z
y
0
Z
Robot ITH
-50
50
50
0
0
Y -50 -50
X
q3 sólo se puede variar en el sentido de las manecillas del reloj así que se trabaja
con valores negativos de su ángulo de movimiento, gura 3.12.
50
0
Z
y
Robot ITH
xz
-50
50
50
0
0
Y -50 -50
X
Esta gráca 3.12 muestra las coordenadas articulares y nos permite cambiar
la posición del Robot, variando los ángulos q1,q2 y q3.
Capítulo 4
Implementación
Para la implementación física de éste controlador se tienen varias alternativas
para el control como son la utilización de plataformas como Arduino, Rasberry,
u otros similares a este tipo de tecnologías; para este trabajo se ha seleccionado
un dispositivo FPGA Nexys 2, ya que se busca que la programación sea con-
currente y trabaje en paralelo, no es el alcance de este trabajo presentar las
ventajas o desventajas de los distintas tecnologías con que puede desarrollarse
el controlador.
Para la etapa de potencia se utiliza un inversor comercial L298 que cumple
con las especicaciones sucientes para brindar una adeacuada señal de potencia
hacia los actuadores que trae integrados la estructura mecánica del brazo robot
y se diseño una tarjeta con optoacopladores para proteger la FPGA del sistema
de potencia.
La estructura de control que se utiliza es la que se muestra en la gura 4.1.
Puente
L298
Encoder
Motores
Sensores
de fin
de carrera FPGA Memoria
Fuente de alimentación
El ujo de la señal se genera dentro del FPGA, donde primero se lee el valor
de las entradas de los sensores de límite que están conectados a las entradas
PMOD de la tarjeta Nexys para sensar si alguno esta en su posición inicial,
aquellas articulaciones que no estén en su origen se les envía una señal que va
hacia los inversores para que a su vez los actuadores lleven la articulación hasta
el sensor de límite y que dicha articulación quede en su posición de inicio. Una
vez que el robot esta en su posición inicial los valores de los ángulos q1,q2 y q3
Capítulo 4. Implementación 50
La señal que se hace llegar al inversor es una señal PWM, en donde lo que
se hace es variar el ciclo de trabajo, como la velocidad del motor depende de la
potencia y esta a su vez del voltaje y corriente aplicado por lo que para variar
la potencia modica la potencia media con la que se alimenta a los motores y
para esto lo adecuado es variar el voltaje, ya que por razones de diseño hay
que mantener la corriente constante hasta donde esto sea posible, por tanto, el
Capítulo 4. Implementación 51
Para los propositos de este trabajo se requiere una memoria de sólo lectura y
sin señal de reloj, lo que se esta formando es una pila de valores pre-almacenados
los cuales se leen cuando se ingresa su dirección de almacenamiento. Cuando se
diseña una ROM, los registros no son inferidos, porque no existe una asignación
de una señal a otra en la transición de estado, y son compuertas lógicas las que
forman una LUT (LookUp Table).
Capítulo 4. Implementación 52
Como
Capítulo 4. Implementación 53
Mrom_valor_seno111
I0 valor_seno_1_OBUF
I O 1
angulo_0_IBUF I1 O valor_seno[7:0]
0 I O
angulo[2:0] I2 OBUF
IBUF LUT3
Mrom_valor_seno21
angulo_2_IBUF
2 I O I0 valor_seno_2_OBUF
I O 2
I1 O
IBUF
I2 OBUF
angulo_1_IBUF LUT3
1 I O
Mrom_valor_seno31
IBUF I0 valor_seno_3_OBUF
I O 3
I1 O
I2 OBUF
LUT3
Mrom_valor_seno41
I0 valor_seno_4_OBUF
I O 4
I1 O
I2 OBUF
LUT3
Mrom_valor_seno51
I0 valor_seno_5_OBUF
I O 5
I1 O
I2 OBUF
LUT3
Mrom_valor_seno61
I0 valor_seno_6_OBUF
I O 6
I1 O
I2 OBUF
LUT3
Mrom_valor_seno71
I0 valor_seno_7_OBUF
I O 7
I1 O
I2 OBUF
LUT3
valor_seno_0_OBUF
I O 0
OBUF
Capítulo 5
Resultados y conclusiones
55
Bibliografía
[1] Ramón Pallás Areny. Sensores y acondicionadores de señal. Marcombo,
2004. 10, 11
[2] Antonio Barrientos, Luis Felipe Peñin, Carlos Balaguer, and Rafael Aracil.
Fundamentos de robótica. McGraw-Hill, Interamericana de España, 2007.
5, 11, 19, 20, 21, 22, 23, 24
[3] Fernando Pardo Carpio and José A Boluda Grau. VHDL: Lenguaje para
síntesis y modelado de circuitos. Ra-ma, 1999. 35, 36, 37, 38
[5] Richard Dorf. Sistemas de control moderno, volume 10. Pearson, 2005. 9,
25, 26, 27, 28
[6] William Kag. VHDL 101,Everything you need to know to get started.
[8] Eshed Robotec Limited. Scorbot-ER Vplus User's Manual, volume 3. Eshed
Robotec Limited, 1998. 41, 42
[10] Albert Paul Malvino and David J Bates. Principios de electrónica, volume 2.
McGraw-Hill, 1991. 6
[14] Volnei A. Pedroni. Circuit Design witch VHDL. MIT Press, 2004. 37, 38
[16] Eduardo Ballester Portillo, Robert Piqué, and Robert Piqué López. Electró-
nica de potencia: principios fundamentales y estructuras básicas, volume 3.
[19] Fernando Reyes Cortés, JAIME Cid Monjaraz, and E Vargas Soto. Meca-
trónica, Control y Automatización. 2013. 5, 7, 9