DISENO Y CONSTRUCCI˜ ON DE UN BRAZO´ MANIPULADOR...
Transcript of DISENO Y CONSTRUCCI˜ ON DE UN BRAZO´ MANIPULADOR...
DISENO Y CONSTRUCCION DE UN BRAZO
MANIPULADOR SCARA
TESIS
Para obtener el grado de
INGENIERO ELECTRICISTA
presenta
Omar Rıos Lopez
Leonardo Romero Munoz
Director de Tesis
Universidad Michoacana de San Nicolas de Hidalgo
Noviembre 2006
A Dios, por tener la familia que tengo.
A mis padres y hermanos, por su constante e infinito carino, ası como a mis
dos pequenos sobrinos por el simple hecho de existir.
A mis maestros. Especialmente al Dr. Leonardo Romero por su valiosa
asesorıa.
A la Universidad Michoacana de San Nicolas de Hidalgo y al Consejo Nacional
de Ciencia y Tecnologıa, por el apoyo otorgado para realizar estos estudios.
Contenido
Dedicatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Contenido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Lista de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Lista de Sımbolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1. Introduccion 1
1.1. El robot SCARA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Objetivo de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2. Retos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3. Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5. Plataforma de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6. Organizacion del documento (tentativamente) . . . . . . . . . . . . . . . . . 12
2. El robot SCARA 15
2.1. Arquitectura del robot SCARA . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Esquema de conexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1. Programacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5. Manejadores para los motores de CD . . . . . . . . . . . . . . . . . . . . . . 20
2.6. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.1. Odometro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7. Fuente de potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3. Control del robot SCARA 29
3.1. Medicion de posicion y velocidad . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.1. Medicion de posicion . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.2. Medicion de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. Estructura del sistema de control de lazo cerrado . . . . . . . . . . . . . . . 37
3.3. Control de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
v
vi Contenido
3.3.1. Control IP digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.2. Obtencion del modelo del robot SCARA . . . . . . . . . . . . . . . . 443.3.3. Diseno del control IP digital . . . . . . . . . . . . . . . . . . . . . . . 47
3.4. Control de posicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.4.1. Obtencion del modelo aproximado del controlador de velocidad . . . 553.4.2. Diseno del controlador IP digital . . . . . . . . . . . . . . . . . . . . 60
4. Extra 674.1. Control de los motores de CD . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A. Hojas de datos de fabricantes 69A.1. Motor de CD Pittman GM8724S011 . . . . . . . . . . . . . . . . . . . . . . 69A.2. Motor de CD Pittman GM9236S021 . . . . . . . . . . . . . . . . . . . . . . 70A.3. Motor de CD Pittman GM9236S027 . . . . . . . . . . . . . . . . . . . . . . 70A.4. Motor de CD Pittman GM14904S016 . . . . . . . . . . . . . . . . . . . . . . 70
B. Circuitos impresos desarrollados 79
C. Programa del microcontrolador 81
Referencias 83
Indice alfabetico 87
Lista de Figuras
1.1. Categorıas de los robots manipuladores. . . . . . . . . . . . . . . . . . . . . 3
1.2. Configuracion tıpica de un robot SCARA y su respectiva area de trabajo. . 4
1.3. Robot SCARA Serpent II de Tecnologıa Educativa . . . . . . . . . . . . . . 5
1.4. Diferentes robots SCARA comerciales. . . . . . . . . . . . . . . . . . . . . . 13
2.1. Robot SCARA desarrollado y construido localmente. . . . . . . . . . . . . . 16
2.2. Esquema de conexion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3. Modulo Adapt9S12DP256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4. Imagenes de los motores de CD del robot y encoder HP . . . . . . . . . . . 20
2.5. Arreglo tıpico de un puente H. . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6. Diagrama de bloques funcional del LMD18200. . . . . . . . . . . . . . . . . 23
2.7. Circuito monolıtico LMD18200. . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8. Esquema del odometro incremental adjunto al motor. . . . . . . . . . . . . 24
2.9. Senal en cuadratura generada por el odometro. . . . . . . . . . . . . . . . . 25
2.10. Imagenes del odometro o encoder que utilizan los motores Pittman del robotSCARA construido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.11. Diagrama electrico de la fuente de 5 V de CD a 5 A. . . . . . . . . . . . . . 26
2.12. Diagrama de la fuente de 24 V de CD a 8 A. . . . . . . . . . . . . . . . . . 26
2.13. Imagenes de la fuente de potencia disenada y construida. . . . . . . . . . . 28
3.1. Diagrama esquematico de los motores de CD del robot SCARA. . . . . . . 30
3.2. Senales utilizadas para medir posicion. . . . . . . . . . . . . . . . . . . . . . 32
3.3. Acoplamiento mecanico entre el motor y su carga. . . . . . . . . . . . . . . 34
3.4. Medicion de velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5. Diagrama de bloques del sistema de control de posicion. . . . . . . . . . . . 38
3.6. Diagrama de bloques de Gp(s). . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.7. Diagrama de bloques del control de velocidad. . . . . . . . . . . . . . . . . . 39
3.8. Control de velocidad IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.9. Diagrama de bloques del esquema de control de velocidad IP digital. . . . . 43
3.10. Diagrama de bloques reducido del esquema de control de velocidad IP digital. 43
3.11. Respuesta al escalon del motor M0 (hombro). . . . . . . . . . . . . . . . . . 47
3.12. Respuesta al escalon del motor M1 (codo). . . . . . . . . . . . . . . . . . . . 48
3.13. Respuesta al escalon del motor M2 (Theta Z). . . . . . . . . . . . . . . . . . 49
vii
viii Lista de Figuras
3.14. Respuesta al escalon del motor M3 (Z). . . . . . . . . . . . . . . . . . . . . 50
3.15. Comparacion del modelo simulado del eje M0 (hombro) del robot SCARAcon la respuesta obtenida del mismo. . . . . . . . . . . . . . . . . . . . . . . 51
3.16. Comparacion del modelo simulado del eje M1 (codo) del robot SCARA conla respuesta obtenida del mismo. . . . . . . . . . . . . . . . . . . . . . . . . 52
3.17. Comparacion del modelo simulado del eje M2 (Theta Z) del robot SCARAcon la respuesta obtenida del mismo. . . . . . . . . . . . . . . . . . . . . . . 53
3.18. Comparacion del modelo simulado del eje M3 (Z) del robot SCARA con larespuesta obtenida del mismo. . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.19. Graficas de la respuesta de cada eje del robot SCARA ante una entradaescalon ωref = 30 pulsos/mseg. con los valores del controlador IP disenadode la Tabla 3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.20. Graficas de la respuesta de cada eje del robot SCARA ante una entradaescalon ωref = 30 pulsos/mseg. utilizando los valores de la Tabla 3.4 en elcontrolador IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.21. Diagrama de bloques del control de posicion en lazo cerrado. . . . . . . . . 573.22. Diagrama de bloques del control de posicion agrupando el controlador de
velocidad y Gp(s) en Fp(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.23. Control de posicion proporcional. . . . . . . . . . . . . . . . . . . . . . . . . 573.24. Graficas de la respuesta de cada eje del robot SCARA ante una entrada
escalon θref = 10000 con un controlador proporcional (P = 0,01) comocontrol de posicion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.25. Graficas que describen el comportamiento del control de velocidad ante laprueba de escalon realizada que fue aplicada al control de posicion. La ve-locidad deseada es representada mediante la lınea continua, mientras que lavelocidad del motor mediante la discontinua. . . . . . . . . . . . . . . . . . 62
3.26. Graficas de la respuesta de cada eje del robot SCARA ante una entradaescalon θref = 10000 con un controlador proporcional (P = 0,001) comocontrol de posicion y con las ganancias del controlador IP de velocidad de laTabla 3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.27. Diagrama de bloques del control IP de posicion con Hp(s) como diagramaequivalente de la Figura 3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.28. Diagrama de bloques del control IP de posicion en forma digital. . . . . . . 64
3.29. Graficas de la respuesta de cada eje del robot SCARA ante una entradaescalon θref = 10000 usando el controlador IP digital de posicion disenado ylas ganancias digitales de la Tabla 3.7. . . . . . . . . . . . . . . . . . . . . . 65
3.30. Graficas de la respuesta de cada eje del robot SCARA ante una entradaescalon θref = 10000 utilizando las ganancias de la Tabla 3.8 en el controladorIP digital de posicion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.1. Curvas caracterısticas del motor Pittman GM8724S011 . . . . . . . . . . . . 69
A.2. Curvas caracterısticas del motor Pittman GM9236S021 . . . . . . . . . . . . 70A.3. Curvas caracterısticas del motor Pittman GM9236S027 . . . . . . . . . . . . 71
A.4. Curvas caracterısticas del motor Pittman GM14904S016 . . . . . . . . . . . 71A.5. Hoja de datos del drive LMD18200 para los motores . . . . . . . . . . . . . 76
Lista de Figuras ix
A.6. Hoja de datos del drive LMD18200 para los motores . . . . . . . . . . . . . 77
Lista de Tablas
2.1. Principales caracterısticas de los motores usados en el robot SCARA . . . . 212.2. Valores de los elementos de las fuentes construidas. . . . . . . . . . . . . . . 272.3. Caracterısticas principales de los transformadores reductores de voltaje usa-
dos en las fuentes de voltaje regulado de 5 y 24 volts. . . . . . . . . . . . . . 27
3.1. Algoritmo para deducir la direccion del movimiento de los motores. . . . . . 323.2. Parametros estimados del modelo de primer orden de los ejes del robot SCARA. 463.3. Ganancias calculadas para el controlador IP de velocidad. . . . . . . . . . . 533.4. Ganancias modificadas a prueba y error que optimizan el desempeno del
controlador IP de velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.5. Ganancias ajustadas para el controlador IP de velocidad. . . . . . . . . . . 593.6. Parametros estimados del modelo de primer orden de la Figura 3.23. . . . . 593.7. Ganancias analogicas y digitales calculadas para el controlador IP de posicion
del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.8. Ganancias digitales modificadas de las calculadas para que el controlador IP
de posicion del robot cumpla con las caracterısticas deseadas en la curva derespuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.1. Datos principales del motor Pittman GM8724S011 . . . . . . . . . . . . . . 72A.2. Datos principales del motor Pittman GM9236S021 . . . . . . . . . . . . . . 73A.3. Datos principales del motor Pittman GM9236S027 . . . . . . . . . . . . . . 74A.4. Datos principales del motor Pittman GM14904S016 . . . . . . . . . . . . . 75
xi
Lista de Sımbolos
α angulo de barrido horizontal del telemetro laser.β angulo de giro del pan-tilt.δΦ tamano de paso.λ constante para hacer ∇2 definido positivo.∇ matriz de primeras derivadas (Jacobiano).∇2 matriz de segundas derivadas (Hessiano).ω angulo de inclinacion del pan-tilt.Φ transformacion rıgida de rotacion y traslacion.ρmc estimador de mınimos cuadrados.ρσ estimador Lorentziano.σ parametro para el control de la influencia sobre los
errores grandes utilizando el estimador Lorentziano.θ orientacion (rotacion) de un rastreo laser.d distancia reportada por el telemetro laser.ex,i error de distancia en x.ey,i error de distancia en y.lj j-esimo rastreo laser.lj+1 siguiente rastreo laser despues del j-esimo.l′j+1 siguiente rastreo laser despues de aplicar la transformacion rıgida.
(px, py) posicion de un rastreo laser.tx traslacion con respecto al eje coordenado X.ty traslacion con respecto al eje coordenado Y .tz traslacion con respecto al eje coordenado Z.(xi, yi) i-esimo punto de un rastreo laser.(xj,i, yj,i) i-esimo punto del j-esimo rastreo laser.(xj+1,i, yj+1,i) i-esimo punto del siguiente rastreo laser.(x′
j+1,i, y′
j+1,i) i-esimo punto del siguiente rastreo laser despues
de aplicar la transformacion rıgida.(xψ(i), xψ(i)) punto mas cercano al i-esimo punto del siguiente rastreo laser.
E suma de los errores de distancia en x y y.I matriz identidad.Mts matriz de traslacion en el sistema de referencia del sensor.Mri matriz de rotacion en el sistema de referencia de inclinacion.
xiii
xiv Lista de Sımbolos
Mrg matriz de rotacion en el sistema de referencia de giro.Mrr matriz de rotacion en el sistema de referencia del robot.Mtr matriz de traslacion en el sistema de referencia del robot.Ps un punto en el sistema de referencia del sensor.Pr un punto en el sistema de referencia del robot.Vi i-esimo vertice de coordenadas (x, y, z).
Capıtulo 1
Introduccion
En esta tesis se trata el diseno y construccion de un brazo-robot tipo SCARA (del
ingles Selective Compliance Assembly Robot Arm [Robotics06b]) de 4 grados de libertad de
plataforma abierta, construido localmente. En este capıtulo se presenta una introduccion al
robot SCARA, ası como los antecedentes y el trabajo previo realizado relacionado con este
trabajo; el objetivo de la tesis, las contribuciones, el esquema de trabajo, la plataforma de
desarrollo y la organizacion del documento.
1.1. El robot SCARA
El termino robot fue introducido en 1917 por Karel Capek en su obra Opilec
[Ramırez98, Spong89], el cual proviene de la palabra checoslovaca robota que significa labor
monotona o trabajo forzado. Primero como parte de imaginacion de un hombre en su obra
literaria, despues como parte de la ciencia ficcion y mas adelante como poderosas maquinas
capaces de desempenar cualquier tarea en casi cualquier condicion de trabajo, los robots
han sido el producto del ingenio humano y han estado presentes desde la ultima mitad del
siglo XX en la vida cotidiana del ser humano debido a su gran uso industrial. A traves
de los anos desde su aparicion, el significado de robot ha tenido una cantidad muy gran-
de de definiciones. Sin embargo, la definicion con mayor aceptacion es la adoptada por el
Instituto Norteamericano de Robots [Ramırez98]: “Un robot industrial es un manipulador
reprogramable con funciones multiples, disenado para mover materiales, partes, herramien-
tas o dispositivos especializados a traves de movimientos programados variables para el
desempeno de una gran diversidad de tareas”. De esta definicion se pueden remarcar las
1
2 Capıtulo 1: Introduccion
palabras “manipulador” y “reprogramable”, que proporcionan una idea de que se trata de
una maquina capaz de realizar distintas funciones con objetos y que en cualquier momento
puede realizar otra tarea diferente.
En general, un robot manipulador consta de un manipulador o brazo mecanico
articulado, sensores para conocer su ambiente, actuadores para moverse, elemento terminal
para realizar una tarea especıfica (herramienta) y uno o varios controladores que dan las
ordenes de lo que se tiene que hacer a los actuadores y reciben la informacion de los sensores
(cerebro del robot) [Romero99, Barrientos97]. Las grandes ventajas que ha aprovechado la
industria con el uso de los robots manipuladores han sido muchas, que van desde el incre-
mento de la produccion, la calidad, la eficiencia, confiabilidad y flexibilidad, la disminucion
del uso de la mano de obra y de los costos de produccion, hasta su uso en ambientes insegu-
ros para el ser humano como las tareas en zonas toxicas, radioactivas y explosivas, ası como
en aplicaciones espaciales y submarinas [Ramırez98, Romero99].
Los brazos manipuladores estan compuestos de eslabones o enlaces conectados por
medio de uniones o articulaciones en una cadena cinematica abierta [Petriu06]. Existen dos
tipos comunes de uniones: (1) rotacionales (R), que permite una rotacion relativa entre
dos uniones (tal como una bisagra); y (2) prismaticas (P), que permiten un movimiento
lineal relativo entre dos uniones [Spong89]. Las uniones de un manipulador se mueven
debido a los actuadores que estan asociados a estas, que pueden ser electricos, neumaticos o
hidraulicos. Tıpicamente, un brazo manipulador deberıa tener 6 grados de libertad (DOF):
3 para posicionamiento y los otros 3 para orientacion. No obstante, hay aplicaciones que
requieren de mas grados de libertad, aunque al incrementar el numero de eslabones de un
manipulador se incrementa la dificultad para controlarlo.
Existe una gran variedad de tipos de brazos manipuladores y se pueden clasifi-
car de distintas formas: por su estructura, por su forma de control, por su area de apli-
cacion, por su fuente de potencia, por su geometrıa, por su movimiento cinematico, etc
[Spong89, Ramırez98]. Hoy en dıa, los manipuladores estan agrupados en clases de acuerdo
a la combinacion de uniones usadas en su construccion [Petriu06], y son usualmente cla-
sificados en base a los tres primeros ejes del robot (base, hombro y codo). Generalmente
se encuentran en una de las siguientes categorıas (ver Figura 1.1): (1) manipulador de
coordenadas cartesianas (PPP), que tienen tres ejes prismaticos y que pueden llegar a
cualquier posicion dentro de su espacio de trabajo rectangular a traves de movimientos car-
tesianos de sus eslabones; (2) manipulador de coordenadas cilındricas (RPP), que se
1.1. El robot SCARA 3
forma al sustituir la union base del manipulador de coordenadas cartesianas por una union
rotacional y puede alcanzar cualquier posicion dentro de su espacio de trabajo cilındrico con
una combinacion de movimientos de rotacion y traslacion; (3) manipulador de coorde-
nadas polares o esfericas (RRP), que se forma al sustituir tambien la union hombro del
manipulador de coordenadas cilındricas por una union rotacional, con lo cual el espacio de
trabajo de este manipulador se parece a un grueso armazon esferico; y (4) manipulador de
coordenadas angulares (RRR), que se forma al anadir una union rotacional en la union
codo del manipulador de coordenadas esfericas, cuyo espacio de trabajo es practicamente
todo el interior de una esfera.
Espacio de trabajo
(a) Cartesianas (PPP)
Alcance horizontalAlcance horizontal
maximo
minimo
Trazo horizontal
Trazo
vertical
movimientoTopes de
(b) Cilındricas (RPP)
Trazohorizontal
Giro verticalalrededor del
hombro
Barrido alrededorde la base
(c) Esfericas o polares (RRP)
Alcance
Giro alrededorde la base
horizontal
(d) Angulares (RRR)
Figura 1.1: Diferentes categorıas en las que se encuentran los robots manipuladores y susrespectivas areas de trabajo [Petriu06].
En 1979 el diseno del robot SCARA (Selective Compliance Assembly Robot Arm),
mostrado en la Figura 1.2, fue introducido por primera vez en Japon [Spong89]. Debido a
4 Capıtulo 1: Introduccion
(a) Vista lateral (b) Vista superior (c)Area de trabajo tıpi-
ca de un robot SCA-
RA
Figura 1.2: Configuracion tıpica de un robot SCARA y su respectiva area de trabajo[Rosen06, Solutions06].
su configuracion adquirio rapidamente gran popularidad en operaciones de montaje. Este
tipo de brazo robot se clasifica en la categorıa de manipuladores de coordenadas cilındricas.
En general, los robots SCARA tienen 4 grados de libertad y se pueden mover a cualquier
coordenada X-Y-Z dentro de su espacio de trabajo. Ademas, posee otro movimiento so-
bre su propio eje en el plano Z, denominado comunmente “rotacion de muneca” (Theta-Z)
[Robotics06b]. Los movimientos en las direcciones X, Y y Theta-Z se obtienen con tres
uniones rotacionales de ejes paralelos. El movimiento vertical es usualmente un eje lineal
independiente que se encuentra ya sea en el extremo del brazo o en la base del robot, el cual
puede ser usado para mover objetos relativamente pesados en el plano horizontal. Como
virtud del esquema de uniones rotacionales de ejes paralelos, el brazo-robot puede ubicarse
en cualquier punto de las direcciones X y Y, pero es rıgido en la direccion Z, de ahı el
termino Selective Compliance [Yamaha06]. Lo anterior es una ventaja para varios tipos de
operaciones de montaje. Otro atributo que tienen los robots SCARA es que emulan las ca-
racterısticas de un brazo humano, por lo que tambien se denominan brazos articulados. Esta
caracterıstica permite al manipulador extenderse hasta areas confinadas y despues reple-
garse. Las uniones rotatorias de los brazos manipuladores SCARA son a menudo preferidos
por su fuerza, poca friccion y fiabilidad [Petriu06].
En la Figura 1.3 se puede apreciar la configuracion que posee un robot SCARA
comercial obtenido de [Educativa06]. Aunque todos los robots de este tipo tienen una forma
1.1. El robot SCARA 5
y geometrıa similar, no todos son iguales debido a que no existe un modelo geometrico base
para definir a un robot como de tipo SCARA. Prueba de ello se puede observar en la Figura
1.4, donde se pueden visualizar las distintas formas y geometrıas de algunos de los robots
SCARA comerciales.
Figura 1.3: Robot SCARA Serpent II de Tecnologıa Educativa SA [Educativa06].
Las consideraciones acerca del espacio de trabajo, particularmente cuando se pla-
nea evadir colisiones, juegan un papel muy importante en la seleccion de un robot para una
determinada aplicacion. Todos los fabricantes dan especificaciones detalladas del area de
trabajo de sus robots y de su equipo asociado [Petriu06]. Para un robot SCARA, el area
de trabajo o de operacion se puede describir en forma de doble rinon a la derecha y a la
izquierda del centro del robot, tal como se muestra en la Figura 1.2(c).
Los robots SCARA son ideales para operaciones de precision a gran velocidad, tales
como cerrar, sellar, distribuir, insertar partes (pick and place), montar, trasladar compo-
nentes, envasar, empaquetar, pintar en spray, soldar, perforar, rellenar, recubrir, atornillar,
etc. [Actuator06, Yamaha06, Wikipedia06, Salimian06, Brumson06]. Son ampliamente uti-
lizados en las industrias de moldeado plastico, circuitos impresos electronicos (para colocar
circuitos integrados y otros componentes en las tarjetas de computadoras y equipo simi-
lar), montaje de automoviles, fibra optica, medicina (equipo medico quirurgico), pintura y
alimentos, entre otras.
Otra de las caracterısticas que poseen los SCARA es un area de instalacion pequena
que provee un mayor grado de libertad en el diseno de un sistema, y que adicionalmente,
provee la ventaja de que en caso de que el sistema ya no se use mas en el futuro, el robot
6 Capıtulo 1: Introduccion
puede ser facilmente instalado en otro sistema [Yamaha06]. A menudo, los robots SCARA
son comparados con los robots cartesianos cuando se requiere realizar aplicaciones sencillas.
Normalmente, dependiendo de la aplicacion, los robots SCARA son mas rapidos, tienen
mejor repetibilidad y fortaleza estructural, mueven menos masa, son mas pequenos y faciles
de transportar que los robots cartesianos, ademas, pueden ser usados en ambientes corrosivos
o polvorientos, o bien, en aplicaciones bajo agua [Brumson06]. En ocasiones, el parametro
que define que tipo de robot se utilizara para determinada aplicacion es el costo del mismo.
Los robots SCARA han demostrado tener una gran popularidad dentro de la industria y
por lo regular son la primera opcion de los fabricantes.
1.2. Motivacion
Actualmente, practicamente todos los robots SCARA que se encuentran en el mer-
cado son de origen extranjero. Para que una empresa establecida en el paıs consiga un robot
de este tipo es necesario importarlo. Esto trae consigo varias desventajas [Romero01]: (1)
son caros y su costo se incrementa con el pago de gastos de importacion; (2) el manteni-
miento es lento y caro, sı ocurre alguna averıa hay que exportarlo y reimportarlo con todo
lo que ello implica, o bien, llamar a un equipo de tecnicos expertos de la empresa extranjera
a la que se le compro y pagar los servicios y viaticos del grupo; (3) es usual que se trate
de sistemas cerrados, por lo que no se tiene la posibilidad de anadir nuevas capacidades.
Los robots que se usan para investigacion de robotica en Mexico se enfrentan a las mismas
adversidades.
Para enfrentar esto, existe mucha gente interesada en usar y desarrollar software
y hardware abierto. Lo anterior se ve reflejado en el trabajo de un pequeno grupo de inves-
tigadores japoneses, que esperan emular el exito del movimiento del codigo abierto que ha
tenido el sistema operativo Linux, en el mundo de los humanoides [Williams02, Arellano05].
El proyecto se llama Open PINO Platform, cuya intencion es acelerar la investigacion y
desarrollo de robots humanoides abriendo a todo mundo la informacion tecnica de PINO.
Siguiendo esta idea es que se desarrolla y construye un robot SCARA flexible,
robusto, expansible, economico y de plataforma abierta. La idea principal es contribuir al
impulso del desarrollo de la tecnologıa en el area de robotica, mediante la descripcion deta-
llada del funcionamiento y operacion de los dispositivos, circuitos y programas de control
integrados en el robot SCARA desarrollado. Con este, se da inicio a un nuevo proyecto
1.2. Motivacion 7
de investigacion en el amplio campo de la robotica en la Universidad Michoacana de San
Nicolas de Hidalgo, proporcionando con este trabajo de tesis, la base para realizar a futuro
aplicaciones que proyecten un alto impacto en la industria nacional.
El costo de un robot siempre se toma en cuenta al momento de seleccionarlo.
Es parte de este trabajo desarrollar un robot SCARA que sea economico, pero a la vez
fiable y preciso. Por lo general, los SCARA comerciales tienen un costo sumamente alto,
que, dependiendo de las caracterısticas de este, puede oscilar entre 9000 y 25000 USD
[Com06b, Actuator06, Technology, Robotics06a, Educativa06].
Los robots SCARA comerciales poseen muchas caracterısticas optimas para labo-
rar dentro de las industrias, dentro de las cuales, se resumen a continuacion las mas des-
tacables [Com06a, Actuator06, Solutions06, Com06a, Technology, Fisnar06, Motoman06,
Educativa06]:
Velocidad. La mayorıa de los robots SCARA comerciales tienen rangos de velocidad
que van desde los 500 mm/seg hasta poco mas de los 7100 mm/seg (alta velocidad).
Repetibilidad. Tienen una excelente repetiblidad que, comunmente, se encuentra
entre 0,01 mm. y 0,02 mm.
Actuadores. En los SCARA grandes se usan dispositivos neumaticos, mientras que
los mas pequenos hacen uso de motores de pasos de 5 fases o servomotores de CD con
encoders. Algunos otros combinan los dos tipos de actuadores mencionados con el fin
de obtener mayor fuerza, rendimiento o precision en una o mas uniones del robot.
Controlador. El controlador de estos robots es por lo general de tipo digital, comunmen-
te se trata de un microcontrolador o un PLC.
Software. Los controladores estan basados en programacion mediante software muy
amigable, por lo que no se requiere experiencia para su programacion, tienen muchas
funciones de ayuda y muchas veces se trata de programacion grafica. El sofware viene
incluido con el equipo y contiene una amplıa gama de funciones como capacidad
para interpolar lıneas, arcos y rutas en 3D, es compatible con sistemas de vision y
redes de ethernet, puede correr cualquier programa lınea por lınea, tiene simulador,
su capacidad de almacenamiento es de 100 programas y/o 600 puntos por tarjeta de
memoria, la entrada de datos puede ser directa, remota o manual, son capaces de
reproducir un movimiento continuo o punto a punto, entre otras.
8 Capıtulo 1: Introduccion
Capacidad de carga. Algunos de estos SCARA se usan para transportar material
u objetos por lo que son capaces de mover objetos que tengan un peso maximo que
oscila entre 5 y 20 Kg.
Otras caracterısticas. Son fiables las 24 hrs. del dıa, algunos poseen sistemas de
enfriamiento, son capaces de rotar los 360 sobre su base, algunos hacen uso de un
sistema de engranaje de alta precision (enhanced harmonic gearing) en vez de cajas
de engranes o bandas.
Costo. Los robots SCARA tienen una gran diversidad de formas, tamanos y aplicacio-
nes por lo que su costo varia ampliamente. De acuerdo a [Actuator06, Educativa06]
un robot SCARA comercial con la menor precision, velocidad y capacidad de car-
ga cuesta alrededor de 9000 USD, lo cual es realmente significativo al momento de
seleccionar un robot para una determinada aplicacion.
Mediante la presente tesis, se desea contribuir e impulsar el desarrollo de la tec-
nologıa robotica del paıs, ası como adentrarse en aspectos de diseno relevantes para que en
el futuro maestros y alumnos tomen como base este trabajo para ayudar a que crezca a
nivel regional el uso y construccion de robots para fines industriales en pequenas, medianas
y grandes empresas nacionales.
1.3. Antecedentes
Los antecedentes previos, realizados en la Division de Estudios de Postgrado de la
Facultad de Ingenierıa Electrica, de la Universidad Michoacana de San Nicolas de Hidalgo,
se refieren, no a un trabajo realizado directamente sobre el robot SCARA, sino a trabajos
realizados en cuanto a desarrollo de software y de hardware aplicado a otros proyectos en
el area de robotica. Estos trabajos son: la construccion de un robot movil de plataforma
abierta desarrollado por el Dr. Leonardo Romero Munoz desde su trabajo de tesis docto-
ral [Romero01, Romero04b]; los trabajos de tesis de maestrıa [Arellano05] y [Estrada06]
titulados Reconstruccion tridimensional de ambientes interiores utilizando un robot movil
equipado con un telemetro laser y Diseno de un sistema de control de seguimiento de tra-
yectorias para un robot movil respectivamente; ası como los trabajos realizados por el autor
de esta tesis durante la prestacion del Servicio Social y las Practicas Profesionales, referen-
tes al Diseno y elaboracion de hardware y software de control para sistemas embebidos y
1.4. Objetivo de la tesis 9
al Diseno y construccion de drives para motores de CD sin escobillas. Cada uno de estos
trabajos ha proporcionado a la presente conocimiento invaluable para llegar a obtener un
resultado satisfactorio.
1.4. Objetivo de la tesis
El objetivo de la tesis es presentar el robot SCARA de 4 grados de libertad cons-
truido en la Universidad Michoacana de San Nicolas de Hidalgo y que se muestra en la
Figura 2.1, describiendo sus caracterısticas, su funcionamiento y su plataforma abierta,
detallando cada parte que lo compone y dando a conocer la forma en la que sus partes
electricas, mecanicas, sensoriales y su controlador, por medio del software programado, se
relacionan entre sı. Lo anterior con el fin de manipular de tal forma el robot para que se
pueda obtener un movimiento con la mejor precision posible, una repetibilidad aceptable,
una velocidad moderada, provisto de potentes capacidades y que tenga un costo accesible
para que pequenas y medianas empresas puedan disponer de el.
1.4.1. Alcance
Las consideraciones y restricciones de las caracterısticas con las que se diseno y
construyo el robot SCARA son:
Robot SCARA fijo en su base. El robot esta fijo en su base para proporcionar
soporte a toda su estructura.
Capacidad de giro sobre su base. El robot SCARA es capaz de girar sobre su
base casi 360. No se alcanzan los 360 debido a que detras de su base se encuentra
el actuador mas grande.
Capacidad de adaptar distintas herramientas al brazo. Esta caracterıstica es
util para darle al robot una amplıa gama de aplicaciones en las que puede intervenir.
Se pueden tener diversos programas del robot para que realice determinada tarea
como puede ser destornillar, perforar, recoger, soldar, entre otras.
Actuadores. Se usan motores de CD con caja de engranes y encoder integrados con
los cuales se pretende alcanzar las metas propuestas en cuanto a precision, velocidad,
repetibilidad y costo.
10 Capıtulo 1: Introduccion
Controlador. Solo se considera el uso de un microcontrolador para llevar a cabo el
control de movimiento de todo el brazo manipulador, debido principalmente al deseo
de no incrementar el costo y a la capacidad de depuracion para programar haciendo
uso de la menor cantidad de recursos del microcontrolador.
Costo. El costo del brazo robot construido se pretende estimar conforme a los ele-
mentos escogidos para su funcionamiento, siendo estos elementos no los mejores del
mercado pero si de buena calidad y con las caracterısticas requeridas en el diseno para
obtener un buen desempeno. Uno de los principales objetivos de este proyecto es que
la inversion que se haga para construir el brazo robot sea la menor posible a fin de
que la adquisicion de este sea costeable para pequenas y medianas empresas.
1.4.2. Retos
Existen varios problemas involucrados en el desarrollo de un robot SCARA con
los objetivos anteriormente planteados, algunos de los cuales son:
Obtener precision y repetibilidad aceptables con motores de CD. Debido a
su estructura y propiedades, es difıcil controlar con precision la posicion de los motores
de CD ya que esto implica controlar de la mejor manera el voltaje aplicado en sus
terminales y el tiempo de aplicacion, siendo indispensable un buen modelo del sistema.
Ademas se requiere de reductores de velocidad tales como engranes, bandas o poleas
que pueden producir holgura en el sistema, la cual se traduce como imprecision. Al
tener un sistema de control digital y sensores odometricos para obtener posicion y
velocidad, es un verdadero reto optimizar al maximo cada componente del sistema
para que el robot tenga una precision y repetibilidad adecuadas.
Maximizar la capacidad del controlador. Debido a que se quiere obtener un robot
lo mas economico posible, se desea maximizar la capacidad del microcontrolador para
que controle los 4 actuadores (motores), uno por cada grado de libertad, recibiendo
las senales de cada odometro y enviando a cada controlador las senales adecuadas
para controlar con precision cada actuador.
Sistema de instrumentacion adecuado. Con el fin de que no ocurran fenomenos
de induccion e interferencia electromagnetica que puedan alterar de forma significativa
las lecturas de los odometros, es necesario el uso de pantallas electrostaticas. Estas
1.5. Plataforma de desarrollo 11
proporcionan fiabilidad y certeza en las mediciones y, por lo tanto, tambien lo hacen
en el lazo de control del robot.
1.4.3. Contribuciones
Las principales contribuciones que se hicieron durante el desarrollo de este trabajo
de tesis se describen brevemente a continuacion:
Diseno y construccion de la fuente de poder y de las tarjetas para los
drives. Se diseno y construyo la fuente de poder que provee de energıa electrica a
los actuadores, sensores y controlador del robot. Del mismo modo se realizaron las
tarjetas que contienen la conexion de las senales de control y de los sensores a los
controladores usados para el manejo de los motores de CD.
Sistema de instrumentacion aplicado a todo el robot. Se llevo a cabo la insta-
lacion de pantallas electrostaticas en toda la estructura del robot aislando las senales
de control de las de potencia. Ası mismo, se hizo un cableado adecuado tomando en
cuenta cada parte que compone el robot.
Codigo. Se desarrollo el codigo de operacion del robot en lenguaje “C” para el mi-
crocontrolador.
1.5. Plataforma de desarrollo
Una parte importante que se tiene que resaltar dentro de la elaboracion de este tra-
bajo, es que el uso y desarrollo del software y los algoritmos de control se realizaron bajo el
sistema operativo Linux. Dentro del software desarrollado, la codificacion del control se im-
plemento en lenguaje C, bajo el proyecto 68hcs12 [Carrez06] de licencia GNU [Stallman01].
Ası mismo, la obtencion del modelo del sistema y simulacion de los algoritmos de control
se realizo con el uso de Octave[Eaton06] de licencia publica y de Matlab.
Existen varias ventajas que respaldan el uso de Linux, siendo sin lugar a dudas el
uso de software libre y codigo abierto la mas destacable (ver 2.3). Para el diseno y elabora-
cion del hardware de control, se utilizo la licencia freeware del programa para elaboracion
de circuitos impresos Cadsoft Eagle en su version mas reciente.
Cabe tambien senalar que la presente tesis se desarrollo utilizando LATEX2ε, un
procesador muy poderoso para preparar documentos.
12 Capıtulo 1: Introduccion
1.6. Organizacion del documento (tentativamente)
El presente trabajo se encuentra dividido en 5 Capıtulos, 3 Apendices y las refe-
rencias bibliograficas, donde los lectores interesados en estos temas pueden encontrar una
referencia comoda y facil de usar.
El Capıtulo 2, “El robot SCARA”, describe de forma detallada los dispositivos que
conforman el robot SCARA de 4 grados de libertad construido, explicando el funcionamiento
de cada parte y la manera en que interactuan entre sı todos los dispositivos.
En el Capıtulo 3, “Control del robot SCARA”, se aborda el modelo que gobierna
el comportamiento de todo el robot SCARA y la forma en la que se controla, describiendo
con detalle la forma en que operan los sensores, actuadores y el controlador para obtener el
movimiento deseado.
El Capıtulo 4, “Desempeno del robot SCARA”, habla acerca del desempeno del
robot SCARA obtenido en base al control de posicion y velocidad disenado e implementado,
analizando su respuesta tomando como referencia los parametros mencionados en el objetivo
de esta tesis.
En el Capıtulo 5, “Sistema de Posicion XYZ”, se describe el sistema de posicion
desarrollado con el robot SCARA en forma practica, y las principales caracterısticas de
su respuesta. Tambien se discute su desempeno como posicionador en base a las metas
planteadas en este trabajo.
Finalmente, en el Capıtulo 6 titulado “Conclusiones”, se dan a conocer los resulta-
dos obtenidos a lo largo del desarrollo de este trabajo, ası como algunas ideas que se pueden
incorporar al proyecto en un futuro.
En los Apendices se reporta en su mayorıa secciones de codigo pertenecientes a
los programas que controlan los diferentes dispositivos con los que cuenta el robot SCARA,
ası como las hojas de datos de los fabricantes.
1.6. Organizacion del documento (tentativamente) 13
(a) SCARA JRS 4400 de JANO-
ME [Com06a].
(b) SCARA de IntelliSpen-
ce Inc.[Solutions06].
(c) SCARA Ki-
NEDEx de
Peak Robotics
[Robotics06a]
(d) SCARA SS-HD
de Peak Robotics
[Robotics06a]
(e) SCARA SI-600
de Peak Robotics
[Robotics06a]
(f) SCARA SH-800
de Peak Robotics
[Robotics06a]
(g) SCARA Cobra s600 de
Adept [Technology]
Figura 1.4: Diferentes robots SCARA comerciales [Com06a, Solutions06, Robotics06a,Technology].
Capıtulo 2
El robot SCARA
El objetivo de este capıtulo es presentar la arquitectura del robot SCARA construi-
do mediante la descripcion de sus caracterısticas, funcionamiento y capacidades, detallando
cada uno de los componentes que lo conforman: actuadores, circuitos de control, sensores,
procesamiento y control, y la manera en que estos interactuan entre sı. De esta manera se
tendra una vision mas clara del comportamiento de cada uno de los elementos que confor-
man el robot, y del sistema en sı, para posteriormente dar a conocer la estrategia de control
aplicada al robot SCARA para alcanzar el comportamiento deseado.
2.1. Arquitectura del robot SCARA
La arquitectura de un robot es la disposicion de los elementos que conforman o
integran el robot [Estrada06]. La Figura 2.1 muestra el robot SCARA descrito en esta tesis.
Se trata de un robot SCARA de 4 grados de libertad (DOF) construido localmente, fijo
en su base y hecho de acero y aluminio. El robot tiene una altura de 57 cm., la extension
maxima de su brazo es de 60 cm., es capaz de girar casi 360 sobre su base, y su peso
aproximado es de 50 Kg. Los primeros dos ejes rotacionales del robot (hombro y brazo)
estan equipados con un freno mecanico cuyo fin es disminuir la holgura del brazo oponiendo
resistencia a su movimiento. La estructura fısica del robot fue realizada por una pequena
companıa dedicada a la robotica, establecida en Paracho, Michoacan, llamada Cervantes
Co.
15
16 Capıtulo 2: El robot SCARA
Figura 2.1: Robot SCARA desarrollado y construido localmente.
2.2. Esquema de conexion
La Figura 2.2 muestra el esquema de conexion del robot a manera de diagrama
de bloques. La energıa que alimenta al robot se obtiene de una fuente de poder regulada
de 24 y 5 V, a 8 y 5 A respectivamente, una de las cuales alimenta la etapa de potencia
y la otra la etapa de control e instrumentacion. La etapa de potencia esta conformada por
cuatro motores de CD con escobillas con sus respectivas cajas de engranes acopladas, que
le dan movimiento a cada eje, y por cuatro puentes H que controlan el funcionamiento de
cada motor de forma independiente (controladores). La etapa de control e instrumentacion
se compone del microcontrolador, los odometros (o encoders) acoplados a la flecha de los
motores, los sensores de lımite o de fin de carrera y las pantallas electrostaticas. Como se
observa en la Figura 2.2, la conexion entre la etapa de potencia y la de control e instrumen-
tacion ocurre a traves de los puentes H, ya que estos reciben las senales del microcontrolador
y proporcionan un determinado voltaje en las terminales de los motores.
El microcontrolador se puede comunicar con una PC a traves de un bus de datos
serial (RS-232), de donde recibe instrucciones en forma de comandos reconocibles por el
microcontrolador y, desde donde tambien, se puede programar o descargar el programa que
se ejecutara.
2.3. Microcontrolador 17
Encoder
Encoder
Encoder
Encoder24V Reg. Puente H
Puente H
Puente H
Puente H
Microcontrolador
Motor 0
Motor 1
Motor 2
Motor 3
PC
RS232
5V Reg.
M
M
M
M
Figura 2.2: Esquema de conexion.
2.3. Microcontrolador
El microcontrolador es el dispositivo mas sofisticado del robot, el cual adhiere utiles
ventajas en cuanto a versatilidad, consumo de energıa, tamano y facil uso. Pero sobre todo,
el microcontrolador introduce una herramienta muy poderosa en la solucion de multiples
problemas de diseno al controlar el robot: el software [Arellano05].
El robot SCARA usa un solo modulo Adapt9S12DP256 con el microcontrolador
9S12DP256C de Motorola [Arts04], el cual se muestra en la Figura 2.3.
El microcontrolador 9S12DP256 es un dispositivo de 16-bits compuesto de periferi-
cos estandar on-chip. La Figura 2.3(a) muestra el diagrama de los principales bloques del
modulo Adapt9S12DP256. Contiene una unidad central de procesamiento HCS12CPU, 256
KB de Flash EEPROM, 12 KB de RAM, 4 KB de EEPROM, dos interfaces de comuni-
cacion serial asıncrona (SCI), tres interfaces perifericas (SPI), un temporizador de captura
mejorado de 8 canales, dos convertidores analogicos de 10 bits (ADC), un puerto de modu-
lacion de ancho de pulso (PWM) con 8 canales, un controlador de enlace de datos digitales,
29 canales digitales discretos de I/O (Puerto A, Puerto B, Puerto K y Puerto E), 20 lıneas
digitales discretas de I/O con capacidad de interrupcion y activacion, 5 CAN 2.0 A,B de
18 Capıtulo 2: El robot SCARA
modulos compatibles de software (MSCAN12), y un Bus Inter-IC. El microcontrolador tiene
un bus de datos de 16 bits internamente, sin embargo, el bus externo puede operar a 8 bits.
Ademas utiliza 5 V de corriente regulada y trabaja a una frecuencia maxima de reloj de 24
MHz. Para obtener informacion mas detallada del microcontrolador ver [Motorola02].
IIC
2 x SCI
3 x SPI
16−key WakeupIRQ Ports
V reg 5V to 2.5V
HCS12CPU
2.0 A/B
5 x CAN
Inte
rnal
Bus
256K FLASH
12K RAM 4K EEPROM
ATD08 ch, 10−bit 8 ch, 10−bit
ATD1
Enhanced Capture Timer
8 ch, 8−bit / 4 ch, 16−bit
PWM
8 ch, 16−bit
(a) Diagrama de bloques (b) Modulo Adapt9S12DP256
Figura 2.3: Diagrama de los principales bloques e imagen del modulo Adapt9S12DP256 delmicrocontrolador 68hcs12 [Arts04].
El microcontrolador juega un papel de vital importancia en el desarrollo del robot
SCARA, ya que se encarga de realizar multiples tareas entre las cuales se encuentran propor-
cionar las instrucciones de control de velocidad y posicion de los motores, la adquisicion de
datos (a traves de sensores) y la comunicacion con la PC. Como parte del proyecto ROCA y
el desarrollo de multiples prototipos de robots moviles [Arellano05, Estrada06, Concha06] a
cargo del Dr. Leonardo Romero Munoz desde su trabajo de tesis doctoral [Romero01], se ha
desarrollado el software de comunicacion y control para este microcontrolador [Romero04a],
el cual se tomo como base para el desarrollo de este trabajo.
El microcontrolador proporciona bastantes capacidades, por lo que serıa casi im-
posible utilizarlas todas. Sin embargo se hace uso de un numero limitado de ellas, que en
futuras versiones pueden ser de gran utilidad.
2.4. Motores 19
2.3.1. Programacion
La construccion y habilitacion de un robot generalmente involucra codificacion
en lenguaje ensamblador. La programacion en lenguaje ensamblador consiste en escribir
codigo de un conjunto de especıfico de instrucciones disenado para un microcontrolador en
particular. Sin embargo, para acelerar el proceso de desarrollo y abstraerse un poco de la
arquitectura especıfica del microcontrolador se utiliza un lenguaje de programacion de alto
nivel como el lenguaje C. En el caso del robot SCARA desarrollado, la codificacion del
control se implemento en dicho lenguaje, bajo el proyecto 68hcs12 [Carrez06] de licencia
GNU [Stallman01].
A lo largo de este trabajo se ira presentando parte del codigo desarrollado y pseu-
docodigo para explicar con mas detalle la forma en la que opera el microcontrolador para
dar movimiento al robot SCARA.
2.4. Motores
Los motores son dispositivos electromagneticos capaces de transformar la energıa
electrica que se aplica en sus terminales, a movimiento mecanico que proporciona su flecha.
Los motores tienen la funcion de proporcionar movimiento a los ejes del robot SCARA.
Existen muchos tipos de motores, pero solo unos cuantos son utiles en robotica,
y dento de estos se encuentran los motores de corriente directa [Jones98]. Los motores
o servomotores de CD son preferidos debido a su relativa facilidad para ser controlados
comparados con otros tipos de motores de CD y con los motores de CA [Estrada06].
En total se usaron cuatro motores de CD de la marca Pittman de 24 V, de las series
GM800, GM9000 y GM14000, dotados de una caja de engranes para reducir la velocidad e
incrementar el par. Ademas tienen un encoder optico Hewlett-Packard (HP) con tres senales
y 500 cuentas por revolucion (CPR) para poder obtener la posicion, velocidad y direccion del
motor (ver 2.6). Para el primer eje de rotacion (hombro) del robot SCARA se uso el motor
GM14904S016 Lo-Cog DC Servo Motor, para el segundo eje de rotacion (codo) se utilizo el
motor GM9236S027 Lo-Cog DC Servo Motor, para el eje Z el motor GM9236S021 Lo-Cog
DC Servo Motor, y para el eje de rotacion de muneca (Theta-Z) el motor GM8724S011
Lo-Cog DC Servo Motor. Las imagenes de la Figura 2.4 muestran las fotografıas de los
motores y del encoder optico que se usaron, donde se puede apreciar claramente la caja de
20 Capıtulo 2: El robot SCARA
engranes de cada motor.
(a) Motor GM14904S016 (b) Motor GM9236S027 (c) Motor GM9236S021
(d) Motor GM8724S011 (e) Encoder
HP
Figura 2.4: Imagenes de los motores de CD y del encoder usados en el robot SCARA[Automation06].
Las principales caracterısticas de estos motores se muestran en la Tabla 2.1. Los
datos de esta tabla se obtuvieron de las hojas de datos de los motores mencionados, las
cuales se proporcionan en [Automation06]. Para una mayor informacion de los motores y
sus caracterısticas vease el Apendice A.
2.5. Manejadores para los motores de CD
Un manejador o controlador para un motor es un dispositivo o un conjunto de
estos, que permite de alguna manera controlar o manipular al motor. En el caso de los
motores de CD es muy comun encontrar los manejadores llamados puentes H.
Un puente H es un conjunto de cuatro elementos de switcheo (semiconductores
por lo general) que se encuentran arreglados tal como se muestra en la Figura 2.5. Toma un
voltaje de alimentacion de CD y provee un control de cuatro cuadrantes a la carga conectada
entre dos pares de transistores switcheadores de potencia. Debido a que los transistores
permiten a la corriente fluir en forma bi-direccional, el voltaje en la carga y la direccion de
la corriente a traves de la carga puede ser de ambas polaridades. Los puentes H son a menudo
usados para controlar la velocidad, la posicion y el torque de motores de CD y de pasos.
Son tradicionalmente implementados con transistores bipolares discretos o monolıticos, los
2.5. Manejadores para los motores de CD 21
Modelo M0 M1 M2 M3Eje de uso hombro codo Theta-Z Z
Datos de montaje
Vel s/carga (rpm) 179 71 236 720Torque continuo max. (oz-in) 374 480 153 15Torque pico al arranque (oz-in) 2934 2585 860 42
Datos del motor
Torque constante (oz-in) 8.67 6.49 6.49 6.18Resistencia (Ω) 1.01 2.49 2.49 17Inductancia (mH) 1.6 2.63 2.63 9.35Corriente s/carga (A) 0.26 0.16 0.16 0.09Corriente pico al arranque (A) 23.8 9.64 9.64 1.41Cte. de tiempo electrica (ms) 1.58 1.06 1.06 0.54Cte. de tiempo mecanica (ms) 7 8.5 8.5 14.7Temp. max. del devanado (C) 155 155 155 155
Datos de la caja de engranes
Relacion de reduccion 19.7 65.5 19.7 6.3Eficiencia 0.84 0.8 0.84 0.95Torque max. permitido (oz-in) 500 500 500 500
Tabla 2.1: Principales caracterısticas de los motores usados en el robot SCARA. M0 repre-senta el motor con modelo GM14904S016, M1 el GM9236D027, M2 el GM9236S021y M3 elGM8724S011.
cuales al incorporar soluciones integradas completas han incrementado su popularidad en
impresoras, plotters, robotica y aplicaciones de control de procesos [Semiconductor99].
Para nuestro caso se utilizo el dispositivo LMD18200 de National Semiconductor
que viene integrado en un solo circuito monolıtico. Su diagrama de bloques funcional se
muestra en la Figura 2.6, mientras que en la Figura 2.7 se puede ver una foto de este dis-
positivo. El LMD18200 fue implementado en un proceso que permite la incorporacion de
dispositivos bipolares, CMOS y DMOS. Lo anterior proporciona diferentes caracterısticas
tıpicas de cada tecnologıa que, al integrarlas, permite tomar ventaja de muchas tecnicas
innovadoras de diseno para obtener beneficios de facil uso que tıpicamente no estan aso-
ciados con un simple manejador para motor [Semiconductor99]. El LMD18200 soporta una
corriente hasta de 3A continuos y 6A de pico, y opera en un rango de voltaje de 12 a 55V.
Para informacion mas detallada ver el Apendice A.4.
22 Capıtulo 2: El robot SCARA
Suministrode Voltaje
+
−
Puente−HS1
S2
S3
S4
V+ −
Motor
Figura 2.5: Arreglo tıpico de un puente H.
2.6. Sensores
De acuerdo a [Jones98], un sensor es un transductor que convierte algun fenomeno
fısico en senales electricas que el microcontrolador puede leer. La funcion mas importante de
un sensor para un sistema embebido recae en el envıo de informacion del mundo real al mun-
do abstracto de la unidad logica de procesamiento [Valvano04]. Dentro del area de robotica
existen varios tipos de sensores, sin embargo los mas utilizados son aquellos que proporcio-
nan datos de movimiento, de cambios inerciales y aquellos que miden la estructura externa
en el ambiente [Arellano05]. El robot SCARA desarrollado cuenta con sensores odometricos
y sensores de lımite que reportan un valor binario. Los convertidores analogico-digitales
(ADC) del microcontrolador se usan como sensores de voltaje para medir la corriente que
circula por los motores a traves del LMD18200. En el siguiente apartado se describen con
mayor detalle los sensores odometricos utilizados en el robot SCARA, mientras que el fun-
cionamiento de los sensores de lımite y el ADC se explican con mayor claridad en el siguiente
capıtulo.
2.6.1. Odometro
Un odometro es un sensor que mide la posicion o rango de rotacion de un eje,
que en nuestro caso se trata de la flecha del motor. La senal entregada por este dispositivo
sensor puede ser de dos tipos [Jones98]: (1) un codigo que corresponde a una orientacion en
particular del eje, o (2) un tren de pulsos. En el primero de los casos se le llama odometro
absoluto, mientras que en el segundo caso odometro incremental. En el caso del robot
2.6. Sensores 23
Figura 2.6: Diagrama de bloques funcional del LMD18200.
desarrollado se cuenta con odometros incrementales que vienen incluidos junto con los cuatro
motores de CD.
El odometro incremental es un disco que tiene numerosas ranuras a lo largo de
su parte exterior. Un LED infrarrojo es colocado en uno de los lados del disco, de manera
que la luz es proyectada a traves de las ranuras. Un fototransistor sensitivo al infrarrojo es
colocado en posicion opuesta al LED, tal como se muestra en la Figura 2.8. Cuando la flecha
del motor comienza a girar, el disco ranurado gira con el, y a traves de las ranuras pasa la
luz intermitentemente. El resultado obtenido, tal como se puede ver desde el fototransistor,
es una serie de rafagas de luz, o dicho de otra manera, un tren de pulsos [Arellano05].
Los odometros incrementales permiten saber el sentido de giro del motor utilizando
dos LEDs y dos fototransistores colocados en cuadratura. esto es, uno adelantado 90 del
periodo del otro. Ası, conociendo como cambian las senales (A y B), se puede conocer el
sentido de rotacion. Ademas de estas dos senales, tambien existe una tercera senal (senal I)
que se activa cuando la flecha del motor ha producido una vuelta completa. De esta forma,
los odometros permiten hacer una retroalimentacion del estado de giro de la flecha de los
motores y, con ello, se logra tener un mayor control sobre la posicion, velocidad y aceleracion
del robot.
En la Figura 2.9 se muestran las senales generadas por el odometro, en tanto
que en la Figura 2.10(a) se observa la foto de la cabeza lectora del odometro o encoder
24 Capıtulo 2: El robot SCARA
Figura 2.7: Circuito monolıtico LMD18200.
LED
Motor
Tren de pulsos(Salida del fototransistor)
Fototransistor
Odométro
Figura 2.8: Esquema del odometro incremental adjunto al motor.
marca HP modelo HEDS-9140#A00 que utilizan los motores Pittman del robot SCARA
(ver tambien Figura 2.4(d) de la seccion 2.4). Se puede apreciar claramente en la Figura
2.10(b), la disposicion de los elementos que conforman el odometro de los motores utilizados
para el robot SCARA, donde se observa como es que el disco ranurado y la cabeza lectora
se encuentran distribuidos fısicamente con respecto a la flecha del motor.
2.7. Fuente de potencia
Otra parte del robot SCARA que es importante describir es la fuente de poten-
cia o de energıa. Esta proporciona la energıa necesaria para que todos los elementos del
robot funcionen adecuadamente: motores, controladores, encoders, sensores de lımite y el
microcontrolador.
Debido a que se trata de un robot SCARA que por lo general se encuentra en la
2.7. Fuente de potencia 25
Señal B
Señal A
Señal I
Figura 2.9: Senal en cuadratura generada por el odometro.
(a) Imagen de la cabeza lecto-
ra, marca HP modelo HEDS-
9140#A00, de los encoders de
los motores.
(b) Imagen del montaje del encoder de
los motores del robot SCARA.
Figura 2.10: Imagenes del odometro o encoder que utilizan los motores Pittman del robotSCARA construido.
industria y es fijo en su base, no esta provisto de baterıas o acumuladores para proporcionar
la energıa a los dispositivos que conforman el robot. En cambio, toma energıa del proveedor
de servicios electricos para llevar a cabo su proposito.
Para alimentar todos los dispositivos del robot mencionados es necesario transfor-
mar el voltaje de CA que recibe la fuente a un voltaje de CD con los niveles adecuados para
cada elemento. Lo anterior se traduce en desarrollar dos fuentes reguladas de voltaje de CD
de 5 y 24 volts, a 5 y 8 amperes, respectivamente. El diagrama electrico de estas fuentes se
muestra en las Figuras 2.11 y 2.12.
Como se puede observar, las fuentes de potencia desarrolladas contienen un rec-
tificador tipo puente despues de la entrada y un capacitor electrolıtico (C1 en ambos dia-
26 Capıtulo 2: El robot SCARA
Figura 2.11: Diagrama electrico de la fuente de 5 V de CD a 5 A.
Figura 2.12: Diagrama de la fuente de 24 V de CD a 8 A.
gramas). La fuente de 5 volts tiene un simple regulador de voltaje L7805T a 5 amperes y
capacitores de filtrado (C3 y C4), junto con un led que enciende mientras la fuente este pren-
dida. La fuente de 24 volts tiene, ademas del regulador de voltaje L7824T y los capacitores
de filtrado (C2 y C3), un diodo (D1) para impedir la circulacion inversa de la corriente y un
transistor TIP2955 en paralelo con la salida del regulador L7824T para proporcionar mas
corriente a la salida de la fuente de la que se puede obtener con solo el regulador de voltaje
de 24 volts. Lo anterior con el fin de poder tener mediante la fuente de 24 volts mayor ca-
pacidad de corriente para suministrar a los controladores y a los motores, pues la corriente
de arranque de los motores es alta (ver Apendice A) y no es posible que la proporcione el
regulador L7824T por sı solo. Los valores de los elementos de las fuentes mostradas en las
Figuras 2.11 y 2.12 se proporcionan en la Tabla 2.2.
2.7. Fuente de potencia 27
Elemento Valor Unidades
Fuente de 5 Volts
C1 4700 µFC2 4700 µFC3 4700 µFC4 4700 µFR1 1000 Ω
Fuente de 24 Volts
C1 4700 µFC2 0.33 µFC3 0.1 µFR1 10 Ω
Tabla 2.2: Valores de los elementos de las fuentes construidas.
En las figuras de la conexion electrica de las fuentes construidas, se parte del hecho
de que reciben un voltaje de CA. Este voltaje, en ambos casos, proviene no directamente del
proveedor del servicio electrico, sino del devanado secundario de un transformador reductor
de voltaje de CA. Las caracterısticas principales de estos transformadores se muestran en
la Tabla 2.3.
Tension del Tension del Corriente del Fusible deprimario secundario secundario proteccion
Fuente de 5 Volts
127 VCA 9 VCA 2 A 0.5 A
Fuente de 24 Volts
127 VCA 24 VCA 5 A 2 A
Tabla 2.3: Caracterısticas principales de los transformadores reductores de voltaje usadosen las fuentes de voltaje regulado de 5 y 24 volts.
En la Figura 2.13 se muestran algunas imagenes de la fuente de potencia disenada
y construida. En dichas imagenes se puede observar el diseno terminado de la fuente y la
disposicion fısica de los elementos que la conforman.
28 Capıtulo 2: El robot SCARA
(a) Vista frontal de la fuente de po-
tencia.
(b) Imagen del frente
de la fuente sin la
tapa.
(c) Imagen de la
fuente vista
desde arriba.
(d) Vista lateral de la fuente de po-
tencia.
(e) Imagen de los componentes
electronicos que conforman la
fuente montados en una tableta
ubicada dentro de la carcasa.
Figura 2.13: Imagenes de la fuente de potencia disenada y construida.
Capıtulo 3
Control del robot SCARA
Dentro de la robotica intervienen varias disciplinas, dentro de las cuales la teorıa
de control y el modelado de sistemas son hoy en dıa de vital importancia para su crecimien-
to. El conocimiento de estas, es necesario para desarrollar una estrategia de control que
sera aplicada a los actuadores del robot SCARA. Para determinar el tipo de control que
gobernara el sistema, es imprescindible conocer el modelo del sistema que se va a controlar,
lo que significa obtener el modelo matematico del robot SCARA descrito en el Capıtulo
2. Esto proporcionara informacion valiosa y util para desarrollar un control (en software)
que el microcontrolador aplicara al robot, con el cual los objetivos planteados se cumplan y
se obtenga un resultado satisfactorio. En este Capıtulo se describen las acciones realizadas
para medir la posicion y la velocidad de los motores del robot, para la obtencion del modelo
del robot SCARA, ası como el procedimiento llevado a cabo para disenar e implementar la
accion de control que dirige el comportamiento de este.
3.1. Medicion de posicion y velocidad
Las variables necesarias a controlar en el robot SCARA son la posicion y la velo-
cidad de cada eje. Estas dos variables son obtenidas directamente de las senales de salida
del odometro, descrito en la seccion 2.6.1. La forma en la que estas senales se manipulan
para obtener las variables deseadas se describe a continuacion.
29
30 Capıtulo 3: Control del robot SCARA
3.1.1. Medicion de posicion
Como ya se menciono, el odometro o encoder es un disco perforado de 500 CPR
(cuentas por revolucion) acoplado a la flecha del motor. Cabe mencionar que la flecha
del motor no es la flecha de la carga (salida del sistema), porque los motores, que fueron
descritos en la seccion 2.4, cuentan con una caja de engranes que reduce la velocidad y
aumenta el par de salida. En la Figura 3.1 se puede ver con mayor claridad la disposicion
de estos elementos adicionales de los motores, donde Va es el voltaje aplicado a la armadura
del motor de CD.
MOTORDE CD
REDUCTORDE VELOCIDAD
ENCODER
´mecanicoAcople
posicion y velocidadMedicion de
´´
Va
Figura 3.1: Diagrama esquematico de los motores de CD del robot SCARA.
Las senales que entrega el odometro son trenes de pulsos de los canales A, B
e I, los cuales entran al microcontrolador. El microcontrolador cuenta un con un modulo
acumulador de pulsos [Motorola02] que es capaz de detectar pulsos tanto en flanco de subida
como de bajada. Este modulo se uso en las primeras versiones del software, sin embargo
se abandono debido a que sı solo se usa este metodo de medicion, no es posible saber con
certeza sı todos los pulsos contados fueron en la misma direccion (CW o CCW). Lo anterior
trae como consecuencia grandes errores de medicion y por lo tanto tambien en el desempeno
del robot.
En su lugar, se programo el microcontrolador para que realizara una interrupcion
de tiempo real (RTI) cada lapso de tiempo de 10 microsegundos, a traves del modulo
Enhaced Capture Timer (ECT) y configurando el canal PT7 para que actue como de tipo
output compare. La manera en que se configuraron los registros se muestra en seguida:
/*********PORTS*********/
DDRT = b(0,0,0,0,0,0,0,0); //all are input, I encoders signals from each motor
/**********ECT**********/
DLYCT |= b(0,0,0,0,0,0,0,0); //Delay Counter disabled
3.1. Medicion de posicion y velocidad 31
TIOS |= b(1,0,0,0,0,0,0,0); //All channels are input capture but OC7
TIE = b(1,0,0,0,1,1,1,1); //Timer Interrupt Enable Register (I encoders for each motor & OC7)
TSCR2 = b(0,0,0,0,1,0,1,1); //Timer Prescaler = Bus clock / 8 = 0.333 microseg.
TSCR1 = b(1,0,0,0,0,0,0,0); //TEN=1 Timer Enabled
TC7 = 30; // 10 microseg.
Ahora bien, despues de configurar la RTI, el servicio de atencion a la interrupcion
(ISR) ejecutara el siguiente codigo cada vez que ocurra la interrupcion, es decir cada 10
microsegundos:
void __attribute__ ((interrupt)) ISR_OC7(void)
asm("sei"); //Deshabilita todas las interrupciones
get_arm_encoder(); //Captura los canales A y B de M0
get_elbow_encoder(); //Captura los canales A y B de M1
get_twist_encoder(); //Captura los canales A y B de M2
get_z_encoder(); //Captura los canales A y B de M3
TFLG1 |= mT_OC7; //Limpia el registro de la interrupcion
asm("cli"); //Habilita las interrupciones configuradas
donde las funciones que llama (get arm encoder() por ejemplo) capturan los trenes de
pulsos de los canales A y B del odometro de cada motor. La manera en que realizan esto es
en base a las caracterısticas de las senales que capturan y se detalla en las siguientes lıneas.
El microcontrolador posee varios puertos, dentro de los cuales el puerto H se des-
tino para capturar las senales A y B del odometro, en tanto el puerto T se uso para generar
interrupciones cuando se detecte la senal I. Esto se explicara mas adelante (ver Apendice
C). Tambien se utilizo el puerto A como lector de las posiciones que adquieren los switches
de tope, los cuales se usan para indicar al microcontrolador que los ejes del motor se en-
cuentran en su posicion inicial u origen. La Figura 3.2 muestra esta disposicion de manera
grafica para un motor.
Para detectar la direccion del movimiento con el odometro, que no se puede de-
tectar utilizando los acumuladores de pulsos, se aplica el siguiente algoritmo en la rutina
de atencion a la interrupcion: se leen los estados de los canales A y B del motor correspon-
diente y con esta informacion se deduce la direccion de rotacion haciendo uso de la Tabla
3.1, donde:
CW = sentido de las manecillas del reloj
CCW = sentido contrario a las manecillas del reloj
Mediante esta forma de medicion, es posible detectar 2000 pulsos por revolucion
con un encoder de 500 CPR. La unica desventaja es que es muy dependiente del tiempo
32 Capıtulo 3: Control del robot SCARA
POSICION CERO
INDICE
CANAL B
CANAL A PORT H
PORT T
PORT A
PORT H
Figura 3.2: Senales utilizadas para medir posicion.
Canal A Canal B Indice
Direccion A B A B A B
CW 1 0 1 1 1 0
CW 0 1 0 0
CCW 1 1 1 0 0 1
CCW 0 0 0 1
Tabla 3.1: Algoritmo para deducir la direccion del movimiento de los motores.
debido a la interrupcion de tiempo real que ocurre cada 10 microsegundos. Sin embargo,
este tiempo se calculo para garantizar una lectura apropiada de los encoders, sin errores de
medicion y sin provocar una saturacion de interrupciones en el microcontrolador, con la cual
el desempeno del robot serıa desastroso. La velocidad maxima permitida para cada motor
tambien se limito, con el fin de anular cualquier tipo de error en la medicion de posicion.
Estos errores se refieren a los tiempos de ejecucion y de muestreo del algoritmo que captura
la posicion de los motores.
Dentro del microcontrolador, la forma en que se implemento este algoritmo de
medicion de posicion se muestra a continuacion, tomando como ejemplo la funcion que
captura las senales del encoder de M0:
const unsigned char enc_forward[4] = 2,0,3,1;
const unsigned char enc_backward[4] = 1,3,0,2;
static void inline get_arm_encoder()
if (edo_motor[ARM_MOTOR]) //Verifica que el motor este operando
enc_actual[ARM_MOTOR] = GET_FILTER_PORT(mB_AB_filter,ARM_MOTOR_ENCODER_PORT);
//Captura los pines del puerto correspondientes a M0
3.1. Medicion de posicion y velocidad 33
if (enc_derr[ARM_MOTOR] != enc_actual[ARM_MOTOR]) //Verifica sı se ha movido el motor
if(enc_forward[enc_derr[ARM_MOTOR]] == enc_actual[ARM_MOTOR])
//Verifica si se movio en sentido CW
g_pulses[ARM_MOTOR]++; //Aumenta la posicion de M0 en un pulso
enc_derr[ARM_MOTOR] = enc_actual[ARM_MOTOR];
//Hace que la ultima lectura sea la que acaba de capturar
if(enc_backward[enc_derr[ARM_MOTOR]] == enc_actual[ARM_MOTOR])
//Verifica si se movio en sentido CCW
g_pulses[ARM_MOTOR]--; //Decrementa la posicion de M0 en un pulso
enc_derr[ARM_MOTOR] = enc_actual[ARM_MOTOR];
//Hace que la ultima lectura sea la que acaba de capturar
Cabe senalar que las unidades de medicion de la posicion son pulsos, los cuales son 2000
por cada vuelta de la flecha del motor. Existen relaciones que transforman las unidades de
medicion de la posicion, las cuales pueden ser de gran utilidad. Algunas de estas se muestran
a continuacion.
Revoluciones = (No. pulsos)
(
1 Revolucion
Pulsos / Revolucion
)
(3.1)
rad = (No. pulsos)
(
2π
Pulsos / Revolucion
)
(3.2)
Es necesario recalcar que la flecha del motor no es la flecha de salida o de la carga,
sino que la flecha del motor esta acoplada mecanicamente a una caja de engranes, la cual
esta acoplada a su vez a la carga correspondiente al motor mediante una banda dentada.
En la Figura 3.3 se muestra graficamente este acoplamiento entre el motor y su carga.
Las variables expresadas dentro de la Figura 3.3 representan los siguientes parame-
tros:
34 Capıtulo 3: Control del robot SCARA
CARGAMOTORDE CD
θm T
Caja de engranes
Banda dentada
R
Rb
m
θL TL
J
J
m
L
m
n
n
n
L
m
ng h
θ θ
ThTg
g h
Figura 3.3: Acoplamiento mecanico entre el motor y su carga.
θm = Posicion angular del eje del motor
θL = Posicion angular del eje de la carga
Tm = Torque a la salida del eje del motor
TL = Torque a la salida del eje de la carga
Jm = Inercia del eje del motor
JL = Inercia del eje de la carga
Rm = Constante de reduccion entre el eje del motor y el eje de salida de
la caja de engranes
Rb = Constante de reduccion entre el eje de salida de la caja de engranes
y el eje de la carga
nm, ng, nh, nL = Numeros de dientes de los engranes mostrados en la Figura 3.3
De acuerdo al acoplamiento mecanico del motor con su estructura (Figura 3.3) se
pueden plantear las siguientes relaciones.
TmTg
=θgθm
=nmng
= Rm (3.3)
ThTL
=θLθh
=nhnL
= Rb (3.4)
3.1. Medicion de posicion y velocidad 35
La relacion entre los parametros del motor y de la carga se obtiene de las expre-
siones 3.3 y 3.4.
θg = RmθmTm = RmTg
θL = RbθhTh = RbTL
Pero del aoplamiento mecanico se observa que θg = θh y Tg = Th, por lo tanto:
θL = Rb(Rmθm)
θL = RmRbθm (3.5)
y
Tm = Rm(RbTL)
TL =1
RmRbTm (3.6)
Sı se hace a = RmRb, entonces las expresiones 3.5 y 3.6 finalmente quedan:
θL = aθm (3.7)
TL =1
aTm (3.8)
donde a representa la constante de reduccion entre el eje del motor y el eje de la carga y
los valores que toma son diferentes para cada motor del robot.
3.1.2. Medicion de velocidad
La velocidad tambien se calcula en base a la informacion recibida proveniente del
encoder de los motores. Ası la velocidad se calcula como numero de pulsos entre el periodo
de muestreo. La Figura 3.4 muestra graficamente esta definicion, mientras la ecuacion 3.9
la describe matematicamente.
ω =No. pulsos
Periodo de muestreo(3.9)
La manera en que se implemento esta medicion en el microcontrolador fue a traves
de la programacion de una interrupcion de tiempo real diferente de la usada para medir la
36 Capıtulo 3: Control del robot SCARA
No. de pulsos
Periodo de muestreo
Figura 3.4: Medicion de velocidad.
posicion. Se trata de una interrupcion interna que depende del Timer del microcontrolador
y que ocurre cada 1,024 milisegundos. Al entrar en esta interrupcion, la unica accion que
realiza el microcontrolador es medir la diferencia de pulsos o en la posicion entre la inte-
rrupcion actual y una anterior a esta. El tiempo que transcurre entre una interrupcion y
otra es fijo como ya se menciono. Por lo tanto el unico parametro que se determina para
obtener la velocidad de a cuerdo a la ecuacion 3.9 es el numero de pulsos capturados entre
una interrupcion y otra (periodo de muestreo).
Dentro del microcontrolador se configuro el modulo CRG (Clocks and Reset Gene-
rator) para generar una RTI cada 1,024 milisegundos. Para ello se llevo acabo una adecuada
configuracion de los registros correspondientes, como se muestra en seguida en el programa
en C que se creo para tal fin.
#define rtimask b(0,1,0,0,0,0,0,1) //(1/16Mhz)2*2^13=1.024 msec interrupt
#define RTIF b(1,0,0,0,0,0,0,0)
#define RTIE b(1,0,0,0,0,0,0,0)
static void inline set_rti()
RTICTL = rtimask; //Inicializa la RTI cada 1.024 mseg.
CRGFLG |= RTIF; //Limpia la bandera de interrupcion
CRGINT |= RTIE; //Habilita la RTI
TSCR1 = b(1,0,0,0,0,0,0,0); //TEN=1 Timer Enabled
El algoritmo que ejecuta el microcontrolador al entrar en la RTI se programo como
sigue. En el Apendice C se encuentra un listado completo del programa creado en lenguaje
C, el cual se compila y se carga al microcontrolador para su ejecucion. Los listados de
las partes de los algoritmos pretenden dar solo una idea mas clara de la forma en que se
implementaron las distintas tareas dentro del microcontrolador, pues la programacion de
sistemas embebidos requiere de un mayor numero de conocimientos en la materia. No es
parte de este trabajo exponer lo anterior, por lo que se recomiendan acudir a los trabajos de
3.2. Estructura del sistema de control de lazo cerrado 37
[Valvano04], [Motorola02], [Arellano05], [Estrada06], [Romero99], [Romero01], [Romero04a]
y [Romero04b] para una descripcion mas amplia.
/* Real Time Interrupt is running each milisecond */
void __attribute__ ((interrupt)) ISR_RealTimeInt(void)
CRGFLG |= RTIF; //Limpia la bandera de la RTI
get_vel(); //Obtiene las velocidades de los motores
real_time_flag=1; //Activa bandera que se usa en el control
static void inline get_vel()
g_vel[ARM_MOTOR] = g_pulses[ARM_MOTOR] - g_pulses_derr[ARM_MOTOR];
g_pulses_derr[ARM_MOTOR] = g_pulses[ARM_MOTOR];
g_vel[ELBOW_MOTOR] = g_pulses[ELBOW_MOTOR] - g_pulses_derr[ELBOW_MOTOR];
g_pulses_derr[ELBOW_MOTOR] = g_pulses[ELBOW_MOTOR];
g_vel[TWIST_MOTOR] = g_pulses[TWIST_MOTOR] - g_pulses_derr[TWIST_MOTOR];
g_pulses_derr[TWIST_MOTOR] = g_pulses[TWIST_MOTOR];
g_vel[Z_MOTOR] = g_pulses[Z_MOTOR] - g_pulses_derr[Z_MOTOR];
g_pulses_derr[Z_MOTOR] = g_pulses[Z_MOTOR];
Analogamente al caso de la ecuacion para medir la posicion, para la velocidad
tambien existen relaciones que permiten transformarla a otras unidades. Algunas de estas
son:
ω(RPM) =
(
No. pulsos
Periodo de muestreo
)(
1 rev.
pulsos / rev.
)(
60 seg.
1 min.
)
(3.10)
ω(rad/seg.) =
(
No. pulsos
Periodo de muestreo
)(
2π
pulsos / rev.
)
(3.11)
3.2. Estructura del sistema de control de lazo cerrado
En la Figura 3.5 se muestra el diagrama de bloques del sistema de control de posi-
cion en lazo cerrado para cada uno de los ejes del robot SCARA. Donde Gp(s) esta formado
por la salida PWM del microcontrolador, el puente H (LMD18200), el motor de CD corres-
pondiente al eje y el sistema mecanico acoplado al motor, los cuales se muestran a manera
de diagrama de bloques en la Figura 3.6.
Este sistema de control de posicion de lazo cerrado es el que se aplicara a cada eje
del robot SCARA: hombro, codo, Theta-Z y Z. Estos ejes corresponden cada uno al control
38 Capıtulo 3: Control del robot SCARA
−
S
Control de
Velocidad Gp(s)
Microcontrolador
θ
ω
θref Control de
Posicion
ωref
pulsos
+
_
+
Figura 3.5: Diagrama de bloques del sistema de control de posicion.
PWM MotorLMD182000
puente HMecanicoSistemaU
ω
Gp(s)
Figura 3.6: Diagrama de bloques de Gp(s).
de uno de los cuatro motores que tiene el robot, junto con todos los elementos mostrados
en la Figura 3.6. Como se trata de un control digital, el microcontrolador llevara a cabo
el control de posicion y velocidad, ası como la captura de la posicion de cada motor y su
respectiva velocidad.
3.3. Control de velocidad
Para realizar el sistema de control del robot, mostrado en la Figura 3.5, se parte
del hecho de que en dicha figura se desea implementar solo el control de velocidad. Esto se
presenta en forma de diagrama de bloques en la Figura 3.7. El resto del sistema de control
(control de posicion) se aborda en la siguiente seccion.
El control de velocidad mostrado en la Figura 3.7 se implemento haciendo uso
de un control IP digital, conocido tambien como control PI digital en forma de velocidad
[Ogata96, Ramırez98]. La Figura 3.8 presenta el diagrama de control de velocidad en su
3.3. Control de velocidad 39
−
S
Control de
Velocidad Gp(s)ref +ω θ
ω
U
Figura 3.7: Diagrama de bloques del control de velocidad.
forma analogica [Ramırez98].
−
KiS
Gp(s)
Kp
pulsos
seg
pulsos
seg
−
ref +ω ω+ U(s)
Controlador IP
Figura 3.8: Control de velocidad IP.
La funcion de transferencia del diagrama de bloques de la Figura 3.8 es la siguiente:
ω(s)
ωref(s)=
Ki
sGp(s)
1 +
(
Kp +Ki
s
)
Gp(s)
(3.12)
donde:
Ki = ganancia integral analogica
Kp = ganancia proporcional analogica
ωref = velocidad de referencia
ω = velocidad de salida
Una de las ventajas de este esquema de control IP es, de acuerdo a [Ogata93,
Ramırez98], que elimina la saturacion del termino integral automaticamente, porque la
integracion para de forma automatica cuando la salida esta limitada. Lo anterior elimina la
40 Capıtulo 3: Control del robot SCARA
necesidad del llamado antiwindup. Otra de sus ventajas es que ayuda a suprimir correcciones
excesivas en sistemas de control de procesos. Lo anterior significa que se pueden evitar
grandes cambios en las senales de control debido a las acciones de control proporcional
cuando hay un cambio brusco en la entrada, pues el termino proporcional no depende de la
entrada sino de la salida. La idea basica de control IP es evitar grandes senales de control
dentro del sistema, las cuales pueden producir el fenomeno de saturacion. Otra razon por la
cual se uso este tipo de control es debido a que ya ha sido utilizado en otro proyecto dentro
de la Facultad de Ingenierıa Electrica, el cual tuvo un desempeno aceptable y cumplio con
las expectativas generadas; fue implementado por Salvador Ramırez Zavala en su tesis de
maestria[Ramırez98].
3.3.1. Control IP digital
La ecuacion 3.12 representa el modelo matematico del control IP en forma analogi-
ca, sin embargo, para obtener la ecuacion del control IP en tiempo discreto se considera la
diferencia hacia atras en la accion de control u(kT ). Esto se muestra mediante la ecuacion
3.13.
∆u(kT ) = u(kT ) − u((k − 1)T ) (3.13)
De acuerdo a [Astrom98], la accion de control PI analogica esta dada por la si-
guiente ecuacion:
u(t) = Kp
(
e(t) +1
Ti
∫ t
0e(t)dt
)
(3.14)
donde:
e(t) = entrada al controlador (senal de error actuante)
u(t) = salida del controlador
Kp = ganancia proporcional
Ti = tiempo integral o tiempo de reajuste
Para obtener la funcion de transferencia pulso del controlador PI digital se puede
discretizar la ecuacion 3.14 aproximando el termino integral mediante la sumatoria trape-
zoidal, como lo muestra la ecuacion 3.15.
3.3. Control de velocidad 41
u(kT ) = Kp
„
e(kT ) +T
Ti
»
e(0) + e(T )
2+
e(T ) + e(2T )
2+ . . . +
e((K − 1)T ) + e(kT )
2
–«
(3.15)
Sustituyendo la ecuacion 3.15 en la ecuacion de diferencias 3.13, se obtiene:
∆u(kT ) = Kp
(
e(kT ) − e((k − 1)T ) +T
2Ti[e(kT ) + e((k − 1)T )]
)
= Kp
(
e(kT ) − e((k − 1)T ) − T
2Ti[e(kT ) − e((k − 1)T )] +
T
Tie(kT )
)
=
(
Kp −KpT
2Ti
)
[e(kT ) − e((k − 1)T )] +KpT
Tie(kT )
∆u(kT ) = Kpd[e(kT ) − e((k − 1)T )] + Kide(kT ) (3.16)
donde:
Kid =KpT
Ti= KiT (3.17)
Kpd =
(
Kp −KpT
2Ti
)
= Kp −1
2Kid (3.18)
e(kT ) = ωref(kT ) − ω(kT ) (3.19)
Sustituyendo la ecuacion del error 3.19 en 3.16, se tiene:
∆u(kT ) = Kpdωref (kT )−ωref ((K−1)T )−ω(kT )+ω((K−1)T )+Kidωref (kT )−ω(kT )(3.20)
La ecuacion 3.20 se puede modificar para hacer frente a grandes cambios subitos
en el punto de ajuste. En el esquema de control PI en forma de velocidad, el error en
la velocidad es modificado solamente por el termino integral y sumado al producto del
42 Capıtulo 3: Control del robot SCARA
termino proporcional por la velocidad de salida, para dar lugar a la accion de control que se
aplicara al sistema. Es importante destacar que la accion de control proporcional no afecta
de forma directa la senal del error, sino que fue quitado para no producir grandes cambios
en la salida del controlador cuando la senal de entrada (ωref ) presenta un cambio subito
grande. De este modo, la accion de control proporcional no depende de la entrada ωref , sino
unicamente de la salida ω. Por lo tanto, al modificar la ecuacion 3.20 se obtiene:
∆u(kT ) = −Kpdω(kT ) − ω((k − 1)T ) + Kidωref (kT ) − ω(kT ) (3.21)
u(kT ) − u((k − 1)T ) = −Kpdω(kT ) − ω((k − 1)T ) + Kidωref (kT ) − ω(kT ) (3.22)
u(kT ) = −Kpdω(kT ) − ω((k − 1)T ) + Kide(kT ) + u((k − 1)T ) (3.23)
La ecuacion 3.23 es la ecuacion matematica implementada dentro del controlador
que rige o controla el comportamiento de la velocidad del sistema. Si aplicamos la transfor-
mada Z a la ecuacion 3.22 obtenemos:
(1 − z−1)U(z) = −Kpd(1 − z−1)ω(z) + Kid[ωref (z) − ω(z)]
U(z) = −Kpdω(z) + Kidωref (z) − ω(z)
1 − z−1(3.24)
La ecuacion 3.24 representa el esquema de control PI en forma de velocidad, donde:
Kpd = Kp −Kid
2= ganancia proporcional digital (3.25)
Kid =KpT
Ti= KiT = ganancia integral digital (3.26)
De las ecuaciones 3.25 y 3.26 se puede observar claramente que la ganancia pro-
porcional digital (Kpd) para el controlador digital IP es menor que la ganancia proporcional
analogica (Kp) del controlador analogico IP por el termino Kid/2, mientras que la ganancia
3.3. Control de velocidad 43
integral analogica (Ki) es afectada por el periodo de muestreo T para obtener la ganancia
integral digital (Kid).
Al introducir la transformada Z en el control de velocidad obtenemos un control
de velocidad digital, el cual es mostrado a manera de diagrama de bloques en la Figura 3.9.
La reduccion de este diagrama de bloques se muestra en la Figura 3.10.
−
ω(z)Gp(z)
z−1z
−
(z)ωref
pdK
K id
+ U(z)+
Controlador IP digital
Figura 3.9: Diagrama de bloques del esquema de control de velocidad IP digital.
−
(z)ωref Kid zz−1 Gp(z)Kpd1+
Gp(z)ω(z)+
Figura 3.10: Diagrama de bloques reducido del esquema de control de velocidad IP digital.
La funcion de transferencia de lazo cerrado del diagrama de bloques de la Figura
3.10 esta dada por:
ω(z)
ωref(z)=
KidGp(z)
(1 − z−1)(1 + Gp(z)Kpd) + KidGp(z)(3.27)
Para obtener apropiadamente las caracterısticas del controlador IP (ganancias) es
necesario obtener primeramente el modelo matematico de Gp(s). En la siguiente seccion
se describe el metodo usado para la obtencion de la estimacion del modelo matematico de
Gp(s) que se usara posteriormente para disenar el control de velocidad digital IP.
44 Capıtulo 3: Control del robot SCARA
3.3.2. Obtencion del modelo del robot SCARA
Para obtener el modelo matematico del sistema del robot, se procede a obtener de
manera particular el modelo de cada eje del robot SARA. Considerando que la frecuencia de
conmutacion de PWM del microcontrolador es alta (mayor de 20 Khz), se puede usar una
aproximacion del conjunto Gp(S) [Ramırez98], el cual es mostrado a manera de diagrama de
bloques en la Figura 3.6. La funcion de transferencia de un motor de CD, con una entrada
de voltaje y una salida de velocidad, es de segundo orden. Sin embargo, es posible utilizar
un modelo de primer orden para disenar el controlador, debido a que la constante de tiempo
mecanica del motor es mucho mayor que su constante de tiempo electrica. Esto hace que
el motor se pueda aproximar a un sistema dominante de primer orden. De esta manera, el
conjunto Gp(s) se puede representar mediante:
Gp(s) =ω(s)
U(s)=
A
τs + 1=
K
s + α(3.28)
donde:
ω = velocidad angular en pulsos/ms
U = comando de velocidad en forma digital enviado por el microcontrolador
A = ganancia de CD (valor final al que se aproxima la respuesta al escalon unitario)
τ = constante de tiempo del conjunto Gp(s)
α = valor del polo del conjunto Gp(s)
Los parametros a encontrar son la ganancia de CD y la constante de tiempo del
conjunto Gp(s). Para encontrar dichos valores se aplico una entrada escalon por medio del
microcontrolador a cada eje de movimiento del robot SCARA (hombro, codo, Z y Theta
Z), con lo cual se estimo para cada eje el modelo dado por la ecuacion 3.28. La entrada
escalon aplicada se trata del comando digital u = 64 = cte., enviado por el microcontrolador
a traves de su puerto PWM al conjunto Gp(s). Ademas, se capturo la salida de velocidad
en pulsos/ms ante la entrada escalon aplicada, la cual posteriormente se comparo con la
ecuacion analıtica de ω(t).
De la ecuacion 3.28:
3.3. Control de velocidad 45
ω(s) =K
s + αU(s)
Haciendo U(s) = u/s:
ω(s) =K
s + α
u
s(3.29)
La respuesta en el tiempo de esta ecuacion es:
ω(t) =Ku
α(1 − e−αt) (3.30)
De aquı se obtiene la velocidad en estado estable ωss:
ωss = ω(∞) =Ku
α(3.31)
Despejando la ganancia K se tiene:
K =ωssu
α (3.32)
De la ecuacion 3.28 se tiene que:
A =K
α(3.33)
y
τ =1
α(3.34)
Sustituyendo la ecuacion 3.32 en 3.33 se tiene:
A =ωssu
(3.35)
46 Capıtulo 3: Control del robot SCARA
La constante de tiempo τ se puede obtener al considerar un valor de velocidad ωp
menor a ωss a un tiempo tp en la ecuacion 3.30, tal como sigue:
ωp =Ku
α(1 − e−αtp) (3.36)
Sustituyendo la ecuacion 3.32 en 3.36:
ωpωss
= (1 − e−αtp)
e−αtp = 1 − ωpωss
α = −ln
(
1 − ωpωss
)
tp(3.37)
Sustituyendo la ecuacion 3.37 en la ecuacion 3.34
τ = − tp
ln
(
1 − ωpωss
) (3.38)
En las Figuras 3.11, 3.12, 3.13 y 3.14 se muestran las respuestas al escalon de cada
uno de los ejes del robot SCARA.
Al aplicar las ecuaciones 3.35 y 3.38 a las graficas de las respuestas al escalon de
los ejes del robot SCARA (Figuras 3.11 a 3.14), se obtienen los valores mostrados en la
Tabla 3.2.
Motor ωss (pulsos/ms) tp (ms) ωp (pulsos/ms) τ (ms) A (pulsos/ms)
M0 47 17.5 30.1 17.11 0.73
M1 50 10.2 41 5.94 0.78
M2 73 26 64 12.42 1.14
M3 80 12 40.44 17.04 1.25
Tabla 3.2: Parametros estimados del modelo de primer orden de los ejes del robot SCARA.
3.3. Control de velocidad 47
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35
40
45
50Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
Figura 3.11: Respuesta al escalon del motor M0 (hombro).
Haciendo uso de Simulink se validaron los modelos obtenidos de los ejes del robot
SCARA, introduciendo la funcion de transferencia de cada eje y aplicandole la entrada
escalon digital que el microcontrolador le aplico para realizar la prueba, esto es el comando
digital u = 64. Las respuestas de la simulacion se muestran en las Figuras 3.15 a 3.18, donde
se muestran tambien, como referencia, las respuestas del sistema al escalon de las Figuras
3.11 a 3.14. En estas graficas se puede observar que el modelo matematico obtenido del
robot SCARA es semejante y lo suficientemente aproximado al modelo real del robot.
3.3.3. Diseno del control IP digital
En esta seccion se describe el metodo mediante el cual se diseno el control IP
digital. Para ello, se parte del diagrama de bloques de la accion de control analogica que se
muestra en la Figura 3.8, cuya funcion de transferencia de lazo cerrado es:
48 Capıtulo 3: Control del robot SCARA
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
Figura 3.12: Respuesta al escalon del motor M1 (codo).
Gp(s) =ω(s)
ωref(s)=
Ki
sGp(s)
1 +
(
Kp +Ki
s
)
Gp(s)
(3.39)
donde Gp(s) se aproxima a un sistema de primer orden dado por:
Gp(s) =A
τs + 1(3.40)
Sustituyendo la ecuacion 3.40 en 3.39, se tiene:
Gp(s) =ω(s)
ωref (s)=
Ki
s
A
τs + 1
1 +
(
Kp +Ki
s
)
A
τs + 1
(3.41)
Reduciendo la ecuacion 3.41:
3.3. Control de velocidad 49
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60
70
80Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
Figura 3.13: Respuesta al escalon del motor M2 (Theta Z).
G(s) =
KiA
s(τs + 1)
1 +KpAs + KiA
s(τs + 1)
=KiA
s(τs + 1) + KpAs + KiA=
KiA
s2τ + s(1 + KpA) + KiA
G(s) =
KiA
s
s2 + s
(
1 + KpA
τ
)
+KiA
τ
(3.42)
donde:
Ki = ganancia integral analogica
Kp = ganancia proporcional analogica
A = ganancia de CD de cada eje del robot
τ = constante de tiempo de cada eje del robot
50 Capıtulo 3: Control del robot SCARA
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60
70
80
90Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
Figura 3.14: Respuesta al escalon del motor M3 (Z).
Las ganancias analogicas del controlador IP (Ki y Kp) se pueden obtener com-
parando la ecuacion 3.42 con la funcion de transferencia general de segundo orden, que
esta dada por:
Y (s)
R(s)=
ω2n
s2 + 2ξωns + ω2n
(3.43)
donde:
ωn = frecuencia natural no amortiguada
ξ = relacion de amortiguamiento
Comparando las ecuaciones 3.42 y 3.43, se tiene que estas son iguales sı:
ω2n =
KiA
τ(3.44)
2ξωn =1 + KpA
τ(3.45)
3.3. Control de velocidad 51
0 0.5 1 1.5 2 2.5 3 3.50
5
10
15
20
25
30
35
40
45
50Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta al escalon del modelo del robot SCA-
RA usando Simulink.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35
40
45
50Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta del robot SCARA ante la entrada es-
calon (u = 64).
Figura 3.15: Comparacion del modelo simulado del eje M0 (hombro) del robot SCARA conla respuesta obtenida del mismo.
Por lo que:
Ki =ω2nτ
A(3.46)
Kp =2ξωnτ − 1
A(3.47)
Los parametros ωn y ξ se seleccionan de manera que el maximo sobreimpulso
y la tolerancia alrededor del valor final sean lo menor posibles. Usualmente se elige un
sobreimpulso Mp menor al 5 % y una tolerancia del 2%.
El valor de la tolerancia (2 %) permite obtener de la ecuacion que rige el compor-
tamiento del tiempo de establicimiento ts la sigueinte relacion:
e−ξωnts ≤ 0,02
−ξωnts ≤ ln|0,02|
ξωnts ∼= 4
Por lo que:
ωn ≈ 4
ξts(3.48)
52 Capıtulo 3: Control del robot SCARA
0 0.5 1 1.5 2 2.5 3 3.50
5
10
15
20
25
30
35
40
45
50Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta al escalon del modelo del robot SCA-
RA usando Simulink.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta del robot SCARA ante la entrada es-
calon (u = 64).
Figura 3.16: Comparacion del modelo simulado del eje M1 (codo) del robot SCARA con larespuesta obtenida del mismo.
Por otro lado, el maximo sobreimpulso ocurre en el tiempo pico (tiempo que tarda
el sistema en alcanzar su maxima magnitud en la salida ante una entrada escalon) y es
una medida de la naturaleza oscilatoria del sistema. La relacion que define el maximo
sobreimpuslo Mp es:
%Mp = 100e−(ξπ/√
1−ξ2) (3.49)
Despejando ξ de la ecuacion 3.49:
ξ =
√
ln2(Mp)
ln2(Mp) + π2(3.50)
Ası, para obtener un sobreimpulso menor al 5 % se requiere que ξ = 0,707. Con este
valor del factor de amortiguamiento y planteando por eleccion el tiempo de establecimiento
deseado del sistema, se puede calcular ωn de la ecuacion 3.48. Una vez realizado esto, se
obtienen las ganancias del cotrolador de las ecuaciones 3.46 y 3.47.
Aplicando el procedimiento descrito a cada eje del robot SCARA se obtuvieron las
ganancias analogicas y digitales a traves de las ecuaciones 3.46, 3.47, 3.25 y 3.26, las cuales
se muestran en la Tabla 3.3. La respuestas de los ejes del robot ante una entrada escalon
3.3. Control de velocidad 53
0 0.5 1 1.5 2 2.5 3 3.50
10
20
30
40
50
60
70
80Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta al escalon del modelo del robot SCA-
RA usando Simulink.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60
70
80Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta del robot SCARA ante la entrada es-
calon (u = 64).
Figura 3.17: Comparacion del modelo simulado del eje M2 (Theta Z) del robot SCARA conla respuesta obtenida del mismo.
de velocidad de valor 30 pulsos/mseg. usando los valores de las ganancias de la Tabla 3.3,
se muestran en la Figura 3.19.
Motor ts ωn Ki analogico Kp analogico Kid digital Kpd digital
M0 50 ms 114.285 306.13 2.38 0.31 2.22
M1 50 ms 114.285 99.44 -0.06 0.10 -0.11
M2 50 ms 114.285 142.3 0.87 0.14 0.79
M3 50 ms 114.285 178.05 1.38 0.18 1.29
Tabla 3.3: Ganancias calculadas para el controlador IP de velocidad.
En las respuestas de la Figura 3.19 el comportamiento de los motores no es el
optimo, salvo para M0, por lo que se modificaron las ganancias de la Tabla 3.3 para que su
comportamiento se acercara mas al deseado. En la Tabla 3.4 se encuentran las ganancias
para el controlador disenado que se obtuvieron a prueba y error tomando como base los
valores de las ganancias calculadas de la Tabla 3.3. Las graficas de las respuestas de los
motores utilizando las ganancias de la Tabla 3.4 en el controlador IP digital se muestran en
la Figura 3.20.
54 Capıtulo 3: Control del robot SCARA
0 0.5 1 1.5 2 2.5 3 3.50
10
20
30
40
50
60
70
80Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta al escalon del modelo del robot SCA-
RA usando Simulink.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
10
20
30
40
50
60
70
80
90Velocidad vs. t
Tiempo (seg.)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta del robot SCARA ante la entrada es-
calon (u = 64).
Figura 3.18: Comparacion del modelo simulado del eje M3 (Z) del robot SCARA con larespuesta obtenida del mismo.
Motor Kid digital Kpd digital
M0 0.32 2.24
M1 0.11 0.14
M2 0.09 0.9
M3 0.15 1.40
Tabla 3.4: Ganancias modificadas a prueba y error que optimizan el desempeno del contro-lador IP de velocidad.
El control digital de velocidad se implemento en el microcontrolador utilizando las
ganancias digitales y usando la ecuacion 3.23 como salida del mismo.
3.4. Control de posicion
Despues de haber obtenido el control de velocidad adecuado para cada eje del
robot SCARA, se requiere tambien de disenar e implementar el control de posicion. Este
control debe tener la propiedad de garantizar que la posicion final en la cual se encuentre
cada eje del robot sea igual a la posicion final en la cual se desea que este.
Debido a la simplicidad y a la experiencia adquirida en el analisis del control IP
usado en el controlador de velocidad, se usara el mismo tipo de control para controlar
3.4. Control de posicion 55
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta de M0 al escalon de velocidad
con el controlador IP disenado.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta de M1 al escalon de velocidad
con el controlador IP disenado.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35
40Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(c) Respuesta de M2 al escalon de velocidad
con el controlador IP disenado.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(d) Respuesta de M3 al escalon de velocidad
con el controlador IP disenado.
Figura 3.19: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonωref = 30 pulsos/mseg. con los valores del controlador IP disenado de la Tabla 3.3.
la posicion de cada eje del robot. Sin embargo, para simplificar el analisis del control de
posicion se obtendra un modelo aproximado del controlador IP de velocidad. La idea basica
es aproximar el controlador de velocidad a un modelo de primer orden.
3.4.1. Obtencion del modelo aproximado del controlador de velocidad
La Figura 3.5 muestra el diagrama de control en lazo cerrado tanto del control de
velocidad como del de posicion. Si agrupamos en un bloque el controlador de velocidad y
la planta Gp(s), como se muestra en la Figura 3.21, entonces el diagrama de control queda
como en la Figura 3.22.
56 Capıtulo 3: Control del robot SCARA
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(a) Respuesta de M0.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(b) Respuesta de M1.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(c) Respuesta de M2.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.350
5
10
15
20
25
30
35Velocidad vs. t
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
(d) Respuesta de M3.
Figura 3.20: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonωref = 30 pulsos/mseg. utilizando los valores de la Tabla 3.4 en el controlador IP.
Sı se usa un controlador proporcional en el control de posicion de la Figura 3.22
y se aplica una entrada escalon, se obtendra una respuesta similar a la de un sistema de
primer orden. Esto es debido a que, de manera analoga a la aproximacion que se hizo de
Gp(s) en la seccion 3.3.2, Fp(s) se puede aproximar a un sistema de primer orden cuando su
constante de tiempo es grande. Ası, el controlador de posicion se modifica a un controlador
proporcional, como se muestra en la Figura 3.23.
De esta manera, al hacer P = 0,01 y aplicando una entrada escalon θref = 10000
pulsos, se obtienen las respuestas para cada eje del robot, las cuales se muestran en la Figura
3.24.
Como se observa en las graficas de la Figura 3.24, la posicion final de los motores
3.4. Control de posicion 57
−
S
Control de
Velocidad Gp(s)
θ
ω
θref Control de
Posicionpulsos
+
_
+ωref
Fp(s)
Figura 3.21: Diagrama de bloques del control de posicion en lazo cerrado.
θref Control de
Posicionpulsos
+
_
ωrefFp(s)
θ
Figura 3.22: Diagrama de bloques del control de posicion agrupando el controlador develocidad y Gp(s) en Fp(s) .
(θ) es diferente de la posicion deseada (θref ), siendo este error muy significativo. De acuerdo
a las bases de teorıa de control, un sistema bajo un control proporcional debe ser capaz de
llegar al valor de la referencia aplicada. Esto no ocurrio al realizar esta prueba en los ejes
del robot, por lo que se reviso el controlador. Al analizar con mayor detalle el control de
velocidad se determino que este no era muy eficiente, ya que, como se puede observar en
las graficas de la Figura 3.25, para velocidades pequenas y negativas el control ya no sigue
la velocidad deseada. Es debido a este hecho que el valor final de la posicion no sea el valor
deseado, por lo tanto se tendra que ajustar el controlador de velocidad.
θref
pulsos
+
_
ωrefFp(s)
θP
Figura 3.23: Control de posicion proporcional.
58 Capıtulo 3: Control del robot SCARA
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Posicion vs. t
Tiempo (seg)
Pos
icio
n (p
ulso
s)
(a) Respuesta de M0 ante la entrada escalon en
el control de posicion.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Posicion vs. t
Tiempo (seg)
Pos
icio
n (p
ulso
s)
(b) Respuesta de M1 ante la entrada escalon en
el control de posicion.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
2000
4000
6000
8000
10000
Posicion vs. t
Tiempo (seg)
Pos
icio
n (p
ulso
s)
(c) Respuesta de M2 ante la entrada escalon en
el control de posicion.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
2000
4000
6000
8000
10000
Posicion vs. t
Tiempo (seg)
Pos
icio
n (p
ulso
s)
(d) Respuesta de M3 ante la entrada escalon en
el control de posicion.
Figura 3.24: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonθref = 10000 con un controlador proporcional (P = 0,01) como control de posicion.
Ajuste del controlador de velocidad
Para eliminar el error en estado estable que surge en el control de posicion es
necesario eliminar primero el error del controlador de velocidad. El primer paso para lograr
el objetivo es ajustar los valores de las ganancias Kid y Kpd del controlador de velocidad.
Ası, mediante prueba y error, teniendo como base el analisis realizado para el calculo de
estas ganancias y haciendo uso del programa desarrollado con el fin de reducir en la practica
este error, se obtuvieron los valores ajustados de las ganancias del controlador de velocidad
de la Tabla 3.5.
3.4. Control de posicion 59
Motor Kid digital Kpd digital
M0 1.2 4.0
M1 1.0 4.0
M2 1.1 3.0
M3 1.6 4.0
Tabla 3.5: Ganancias ajustadas para el controlador IP de velocidad.
Al realizar de nuevo la prueba mostrada como diagrama de bloques en la Figura
3.23 con P = 0,001 y con los nuevos valores de las ganancias Kid y Kpd de la Tabla 3.5, se
obtienen las respuestas de la Figura 3.26.
En las graficas de respuesta de la Figura 3.26 se observa que el valor final de la
posicion en los cuatro ejes del robot alcanza el valor de la referencia θref = 10000 pulsos
antes de cuatro segundos. Esto significa que con los nuevos valores de las ganancias del
controlador de velocidad se ha eliminado el error que se tenıa, y que ahora para cada eje del
robot su velocidad sigue la velocidad deseada sin importar que valor tenga. Lo anterior se
cumple siempre y cuando la velocidad deseada se encuentre dentro de los lımites permisibles
de velocidad de cada eje del robot.
Modelo aproximado del controlador de velocidad
Una vez obtenidas las respuestas del controlador de posicion aplicado a los ejes
del robot SCARA, se obtienen los modelos correspondientes al aproximarlos a un sistema
de primer orden, de forma similar a como se realizo con Gp(s) en la seccion 3.3.2. Los
parametros obtenidos en base a las respuestas de la Figura 3.26 se muestran en la Tabla
3.6.
Motor θss (pulsos) tp (seg.) θp (pulsos) τ (seg.) A (pulsos)
M0 10 000 1.511 7286 1.1586 1
M1 10 000 1.165 6400 1.1403 1
M2 10 000 1.37 7010 1.1348 1
M3 10 000 1.702 7660 1.1718 1
Tabla 3.6: Parametros estimados del modelo de primer orden de la Figura 3.23.
60 Capıtulo 3: Control del robot SCARA
3.4.2. Diseno del controlador IP digital
El control para la posicion se trata de un control IP, igual que el de velocidad. Este
se muestra en la Figura 3.27 a manera de diagrama de bloques en forma analogica, donde
Hp(s) es la funcion aproximada de la Figura 3.23 y sus parametros son los mostrados en la
Tabla 3.6. En la Figura 3.28 se muestra este mismo diagrama en forma digital.
Siguiendo la metodologıa aplicada en la seccion 3.3.3 para obtener las ganancias
del controlador IP digital de velocidad, se calcularon los parametros correspondientes para
obtener las ganancias digitales para el controlador IP de posicion de la Figura 3.27. Para la
obtencion de las ganancias analogicas y digitales se planteo un tiempo de establecimiento de
2.5 seg. y se usaron las ecuaciones 3.46, 3.47, 3.48, 3.17 y 3.18, acoplandolas a las variables
del caso del controlador de posicion. Las ganancias calculadas se muestran en la Tabla 3.7.
Motor ts (seg.) ωn Ci analogica Cp analogica Cid digital Cpd digital
M0 2.5 2.263 5.9337 2.7074 0.006076 2.7044
M1 2.5 2.263 5.8401 2.6489 0.00598 2.646
M2 2.5 2.263 5.8116 2.6312 0.005951 2.6282
M3 2.5 2.263 6.0015 2.7498 0.006145 2.7467
Tabla 3.7: Ganancias analogicas y digitales calculadas para el controlador IP de posiciondel robot.
Al introducir las ganancias digitales Cid y Cpd calculadas en el controlador IP de
posicion, y aplicando la entrada escalon θref = 10000 al sistema mostrado en la Figura 3.21
se obtienen las respuestas mostradas en la Figura 3.29.
Se puede ver claramente en las graficas de la Figura 3.29 que la posicion de los ejes
del robot no alcanzan el valor de la posicion deseada θref , razon por la cual se modificaron
las ganancias del controlador IP de posicion de manera que se cumplieran las caracterısticas
deseadas en la curva de respuesta de la posicion. La razon por la cual las respuestas obtenidas
difieren tanto de las esperadas en un controlador IP, se debe a que el modelo estimado
de Hp(s) es un modelo aproximado y no representa en la realidad el modelo matematico
aproximado del conjunto de la Figura 3.23, ademas de que el controlador proporcional
de posicion se hizo P = 0,001 (reduce la ganancia de CD) y se considero en el modelo
matematico del bloque Hp(s) que la accion del lazo de retroalimentacion era nula. Las
ganancias modificadas para el controlador IP de posicion se muestran en la Tabla 3.8.
3.4. Control de posicion 61
Observese que los valores de la ganancia Cpd se mantienen practicamente iguales a los valores
calculados, mientras que los valores de la ganancia Cid fueron grandemente modificados.
Las graficas de la Figura 3.30 muestran la respuesta de cada motor al escalon de posicion
haciendo uso de estas ganancias modificadas.
Motor Cid digital Cpd digital
M0 0.20 2.70
M1 0.22 2.65
M2 0.24 2.70
M3 0.22 2.80
Tabla 3.8: Ganancias digitales modificadas de las calculadas para que el controlador IP deposicion del robot cumpla con las caracterısticas deseadas en la curva de respuesta.
62 Capıtulo 3: Control del robot SCARA
0 1 2 3 4 5
0
20
40
60
80
100
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
Velocidad vs. t
Vel.Vel. deseada
(a) Velocidades deseada y real del eje M0 obtenidas
en la prueba realizada al controlador de posicion
proporcional.
0 1 2 3 4 5
0
20
40
60
80
100
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
Velocidad vs. t
Vel.Vel. deseada
(b) Velocidades deseada y real del eje M1 obtenidas
en la prueba realizada al controlador de posicion
proporcional.
0 1 2 3 4 5
0
20
40
60
80
100
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
Velocidad vs. t
Vel.Vel. deseada
(c) Velocidades deseada y real del eje M2 obtenidas
en la prueba realizada al controlador de posicion
proporcional.
0 1 2 3 4 5
0
20
40
60
80
100
Tiempo (seg)
Vel
ocid
ad (
puls
os/m
s)
Velocidad vs. t
Vel.Vel. deseada
(d) Velocidades deseada y real del eje M3 obtenidas
en la prueba realizada al controlador de posicion
proporcional.
Figura 3.25: Graficas que describen el comportamiento del control de velocidad ante laprueba de escalon realizada que fue aplicada al control de posicion. La velocidad deseadaes representada mediante la lınea continua, mientras que la velocidad del motor mediantela discontinua.
3.4. Control de posicion 63
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(a) Respuesta de M0 ante la entrada escalon en el
control de posicion con las nuevas ganancias del
controlador de velocidad.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(b) Respuesta de M1 ante la entrada escalon en el
control de posicion con las nuevas ganancias del
controlador de velocidad.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(c) Respuesta de M2 ante la entrada escalon en el
control de posicion con las nuevas ganancias del
controlador de velocidad.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(d) Respuesta de M3 ante la entrada escalon en el
control de posicion con las nuevas ganancias del
controlador de velocidad.
Figura 3.26: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonθref = 10000 con un controlador proporcional (P = 0,001) como control de posicion y conlas ganancias del controlador IP de velocidad de la Tabla 3.5.
64 Capıtulo 3: Control del robot SCARA
− −
θref refω+ +
Controlador IP
Hp(s)
pulsos pulsos
θi
S
p
C
C
Figura 3.27: Diagrama de bloques del control IP de posicion con Hp(s) como diagramaequivalente de la Figura 3.23 .
−z−1z
−
(z) (z)ωref++
Controlador IP digital
ref (z)id
pd
Hp(z)C
C
θ θ
Figura 3.28: Diagrama de bloques del control IP de posicion en forma digital.
3.4. Control de posicion 65
0 1 2 3 4 5 60
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(a) Respuesta de M0 ante el controlador IP de po-
sicion.
0 1 2 3 4 5 60
1000
2000
3000
4000
5000
6000
7000
8000
9000Posicion vs. t
Tiempo (seg.)P
osic
ion
(pul
sos)
(b) Respuesta de M1 ante el controlador IP de po-
sicion.
0 1 2 3 4 5 60
1000
2000
3000
4000
5000
6000
7000
8000
9000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(c) Respuesta de M2 ante el controlador IP de po-
sicion.
0 1 2 3 4 5 60
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(d) Respuesta de M3 ante el controlador IP de po-
sicion.
Figura 3.29: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonθref = 10000 usando el controlador IP digital de posicion disenado y las ganancias digitalesde la Tabla 3.7.
66 Capıtulo 3: Control del robot SCARA
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(a) Respuesta de M0.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(b) Respuesta de M1.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(c) Respuesta de M2.
0 1 2 3 4 5 60
2000
4000
6000
8000
10000
12000Posicion vs. t
Tiempo (seg.)
Pos
icio
n (p
ulso
s)
(d) Respuesta de M3.
Figura 3.30: Graficas de la respuesta de cada eje del robot SCARA ante una entrada escalonθref = 10000 utilizando las ganancias de la Tabla 3.8 en el controlador IP digital de posicion.
Capıtulo 4
Extra
4.1. Control de los motores de CD
Los problemas principales que se enfrentaron durante este trabajo fueron: (1) el
diseno e implementacion de un algoritmo de control (posicion y velocidad) que cumpla con
determinadas caracterısticas especıficas, con las cuales se considera que el brazo-robot tiene
un desempeno aceptable en cuanto a precision, repetibilidad y velocidad, y (2) el diseno y
construccion de los circuitos de potencia, control e instrumentacion asociados al brazo-robot
para que realice un buen desempeno.
67
Apendice A
Hojas de datos de fabricantes
A.1. Motor de CD Pittman GM8724S011
La Tabla A.1 muestra los datos principales de este dispositivo en cuanto a montaje,
caja de engranes, encoder y el propio motor.
En la Figura A.1 se pueden observar las curvas caracterısticas de este motor.
(a) Curva caracterıstica del motor Velocidad y
Corriente vs. Torque.
(b) Curva caracterıstica del motor Potencia y Efi-
ciencia vs. Torque.
Figura A.1: Curvas caracterısticas del motor Pittman GM8724S011
69
70 Apendice A: Hojas de datos de fabricantes
A.2. Motor de CD Pittman GM9236S021
La Tabla A.2 muestra los datos principales de este dispositivo en cuanto a montaje,
caja de engranes, encoder y el propio motor.
En la Figura A.2 se pueden observar las curvas caracterısticas de este motor.
(a) Curva caracterıstica del motor Velocidad y
Corriente vs. Torque.
(b) Curva caracterıstica del motor Potencia y Efi-
ciencia vs. Torque.
Figura A.2: Curvas caracterısticas del motor Pittman GM9236S021
A.3. Motor de CD Pittman GM9236S027
La Tabla A.3 muestra los datos principales de este dispositivo en cuanto a montaje,
caja de engranes, encoder y el propio motor.
En la Figura A.3 se pueden observar las curvas caracterısticas de este motor.
A.4. Motor de CD Pittman GM14904S016
La Tabla A.4 muestra los datos principales de este dispositivo en cuanto a montaje,
caja de engranes, encoder y el propio motor.
En la Figura A.4 se pueden observar las curvas caracterısticas de este motor.
A.4. Motor de CD Pittman GM14904S016 71
(a) Curva caracterıstica del motor Velocidad y
Corriente vs. Torque.
(b) Curva caracterıstica del motor Potencia y Eficien-
cia vs. Torque.
Figura A.3: Curvas caracterısticas del motor Pittman GM9236S027
(a) Curva caracterıstica del motor Velocidad y
Corriente vs. Torque.
(b) Curva caracterıstica del motor Potencia y Efi-
ciencia vs. Torque.
Figura A.4: Curvas caracterısticas del motor Pittman GM14904S016
72 Apendice A: Hojas de datos de fabricantes
Datos de montaje Unidades Valor
Voltaje de referencia V 24Velocidad s/carga rpm (rad/s) 720 (75.4)Torque continuo (max.) oz-in (N-m) 15 (1.0E-01)Torque pico al arranque oz-in (Nm) 42 (3.0E-01)Peso oz (g) 11.2 (316)
Datos del motor
Torque constante oz-in/A (N-m/A) 6.18 (4.36E-02)Fuerza contraelectromotriz constante V/krpm (V/rad/s) 4.57 (4.36E-02)Resistencia Ω 17.0Inductancia mH 9.35Corriente s/carga A 0.09Corriente pico al arranque A 1.41
Constante del motor oz − in/√
W (N − m/√
W ) 1.49 (1.05E-02)Torque de friccion oz-in (N-m) 0.35 (2.5E-03)Inercia del rotor oz − in − s2 (kg − m2) 2.3E-04 (1.6E-06)Constante de tiempo electrica ms 0.54Constante de tiempo mecanica ms 14.7Viscosidad de amortiguamiento oz-in/krpm (N-m-s) 0.020 (1.4E-06)Constante de amortiguacion oz-in/krpm (N-m-s) 1.6 (1.1E-04)Temperatura maxima de devanado F (C) 311 (155)Impedancia termica F/watt (C/watt) 70.5 (21.4)Constante de tiempo termica min 10.7
Datos de caja de engranes
Relacion de reduccion 6.3Eficiencia 0.95Torque max. permitido oz-in (N-m) 100 (0.71)
Datos del encoder
Canales 3Resolucion CPR 500
Tabla A.1: Datos principales del motor Pittman GM8724S011
A.4. Motor de CD Pittman GM14904S016 73
Datos de montaje Unidades Valor
Voltaje de referencia V 24Velocidad s/carga rpm (rad/s) 236 (24.7)Torque continuo (max.) oz-in (N-m) 153 (1.1E+00)Torque pico al arranque oz-in (Nm) 860 (6.1E+00)Peso oz (g) 23.3 (661)
Datos del motor
Torque constante oz-in/A (N-m/A) 6.49 (4.58E-02)Fuerza contraelectromotriz constante V/krpm (V/rad/s) 4.80 (4.58E-02)Resistencia Ω 2.49Inductancia mH 2.63Corriente s/carga A 0.16Corriente pico al arranque A 9.64
Constante del motor oz − in/√
W (N − m/√
W ) 4.11 (2.90E-02)Torque de friccion oz-in (N-m) 0.80 (5.6E-03)Inercia del rotor oz − in − s2 (kg − m2) 1.0E-03 (7.1E-06)Constante de tiempo electrica ms 1.06Constante de tiempo mecanica ms 8.5Viscosidad de amortiguamiento oz-in/krpm (N-m-s) 0.053 (3.5E-06)Constante de amortiguacion oz-in/krpm (N-m-s) 12.5 (8.5E-04)Temperatura maxima de devanado F (C) 311 (155)Impedancia termica F/watt (C/watt) 56.3 (13.5)Constante de tiempo termica min 13.5
Datos de caja de engranes
Relacion de reduccion 19.7Eficiencia 0.84Torque max. permitido oz-in (N-m) 500 (3.53)
Datos del encoder
Canales 3Resolucion CPR 500
Tabla A.2: Datos principales del motor Pittman GM9236S021
74 Apendice A: Hojas de datos de fabricantes
Datos de montaje Unidades Valor
Voltaje de referencia V 24Velocidad s/carga rpm (rad/s) 71 (7.4)Torque continuo (max.) oz-in (N-m) 480 (3.4E+00)Torque pico al arranque oz-in (Nm) 2585 (1.8E+01)Peso oz (g) 23.7 (671)
Datos del motor
Torque constante oz-in/A (N-m/A) 6.49 (4.58E-02)Fuerza contraelectromotriz constante V/krpm (V/rad/s) 4.80 (4.58E-02)Resistencia Ω 2.49Inductancia mH 2.63Corriente s/carga A 0.16Corriente pico al arranque A 9.64
Constante del motor oz − in/√
W (N − m/√
W ) 4.11 (2.90E-02)Torque de friccion oz-in (N-m) 0.80 (5.6E-03)Inercia del rotor oz − in − s2 (kg − m2) 1.0E-03 (7.1E-06)Constante de tiempo electrica ms 1.06Constante de tiempo mecanica ms 8.5Viscosidad de amortiguamiento oz-in/krpm (N-m-s) 0.053 (3.5E-06)Constante de amortiguacion oz-in/krpm (N-m-s) 12.5 (8.5E-04)Temperatura maxima de devanado F (C) 311 (155)Impedancia termica F/watt (C/watt) 56.3 (13.5)Constante de tiempo termica min 13.5
Datos de caja de engranes
Relacion de reduccion 65.5Eficiencia 0.80Torque max. permitido oz-in (N-m) 500 (3.53)
Datos del encoder
Canales 3Resolucion CPR 500
Tabla A.3: Datos principales del motor Pittman GM9236S027
A.4. Motor de CD Pittman GM14904S016 75
Datos de montaje Unidades Valor
Voltaje de referencia V 24Velocidad s/carga rpm (rad/s) 179 (18.7)Torque continuo (max.) oz-in (N-m) 374 (2.6)Torque pico al arranque oz-in (Nm) 2934 (20.7)Peso oz (g) 44.7 (1268)
Datos del motor
Torque constante oz-in/A (N-m/A) 8.67 (6.12E-02)Fuerza contraelectromotriz constante V/krpm (V/rad/s) 6.41 (6.12E-02)Resistencia Ω 1.01Inductancia mH 1.6Corriente s/carga A 0.26Corriente pico al arranque A 23.8
Constante del motor oz − in/√
W (N − m/√
W ) 8.63 (6.09E-02)Torque de friccion oz-in (N-m) 1.6 (1.1E-02)Inercia del rotor oz − in − s2 (kg − m2) 3.7E-03 (2.6E-05)Constante de tiempo electrica ms 1.58Constante de tiempo mecanica ms 7.0Viscosidad de amortiguamiento oz-in/krpm (N-m-s) 0.18 (1.2E-05)Constante de amortiguacion oz-in/krpm (N-m-s) 55 (3.7E-03)Temperatura maxima de devanado F (C) 311 (155)Impedancia termica F/watt (C/watt) 45.9 (7.7)Constante de tiempo termica min 28.8
Datos de caja de engranes
Relacion de reduccion 19.7Eficiencia 0.84Torque max. permitido oz-in (N-m) 500 (3.53)
Datos del encoder
Canales 3Resolucion CPR 500
Tabla A.4: Datos principales del motor Pittman GM14904S016
76 Apendice A: Hojas de datos de fabricantes
Figura A.5: Hoja de datos del drive LMD18200 para los motores
A.4. Motor de CD Pittman GM14904S016 77
Figura A.6: Hoja de datos del drive LMD18200 para los motores
Apendice B
Circuitos impresos desarrollados
79
Apendice C
Programa del microcontrolador
81
Referencias
[Actuator06] Actuator, I. IX SCARA, 2006.
URL http://www.dispensinglink.com/scara robot.htm/.
Updated: 2006/02/28
[Arellano05] Arellano, J. Reconstruccion tridimensional de ambientes interiores uti-
lizando un robot movil equipado con un telemetro laser. Proyecto Fin de
Carrera, Universidad Michoacana de San Nicloas de Hidalgo, Facultad
de Ingenierıa Electrica, Division de Estidios de Posgrado, Agosto 2005.
[Arts04] Arts, T., 2004.
URL http://technologicalarts.com/. Updated: 2004/09/22
[Astrom98] Astrom, K. J. y Hagglund, T. PID Controlers. Instrument Society of
America, 1998.
[Automation06] Automation, C. Gearmotors Products Series Data Sheet, 2006.
URL http://www.clickautomation.com/products/index.php
Updated: 2006/10/20
[Barrientos97] Barrientos, A., Balaguer, C., Penin, L. F., y Arcil, R. Fundamentos de
Robotica. McGraw Hill, 1997.
[Brumson06] Brumson, B. Scara vs. Cartesian Robots: Selecting the Right Type for
Your Applications, 2006.
URL http://www.roboticsonline.com/public/articles/-
archivedetails.cfm?id=518/. Updated: 2006/02/03
[Carrez06] Carrez, S. GNU for 68HC11/68HC12, 2006.
URL http://stephane.carrez.free.fr/. Updated 2006/02/28
83
84 Referencias
[Com06a] Com, R. D. Dispensing Robot - SCARA JSR 4400 Series, 2006.
URL http://www.dispensingrobots.com/SCARA.htm/. Updated:
2006/03/09
[Com06b] Com, R. D. JS SCARA Series, 2006.
URL http://www.scara-robots.com/JS250350brochure.pdf/.
Updated: 2006/03/09
[Concha06] Concha, A. Diseno y construccion de un robot movil. En Tesis de Licen-
ciatura, Universidad Michoacana de San Nicolas de Hidalgo, Facultad
de Ingenierıa Electrica. Noviembre 2006.
[Eaton06] Eaton, J. W. Octave software, 2006.
URL http://octave.org. Updated 2006/04/15
[Educativa06] Educativa, T. Robot SCARA didactico de 4 ejes - Serpent, 2006.
URL http://www.tecnoedu.com/Feedback/Serpent.php/.
Updated: 2006/03/15
[Estrada06] Estrada, C. Diseno de un sistema de control de seguimiento de tra-
yectorias para un robot movil. Proyecto Fin de Carrera, Universidad
Michoacana de San Nicloas de Hidalgo, Facultad de Ingenierıa Electri-
ca, Division de Estidios de Posgrado, Marzo 2006.
[Fisnar06] Fisnar, I. Robot SCARA TMB100, 2006.
URL http://www.ijfisnar.com/spain/details.asp?product=46/.
Updated: 2006/03/04
[Jones98] Jones, J. L., Flynn, A. M., y Seiger, B. A. Mobile Robots. Cambridge
University Press., 1998.
[Motoman06] Motoman. HM & HS Series SCARA: The Right Robot to Meet Your
4-Axis Needs, 2006.
URL http://www.motoman.com/products/robots/models/scara.htm/.
Updated: 2006/03/09
Referencias 85
[Motorola02] Motorola. MC9S12DP256B Device User V02.11, 2002.
URL http://e-www.motorola.com/file/soft dev tools/data sheet/-
9S12DP256B-ZIP.zip
[Ogata93] Ogata, K. Ingenierıa de Control Moderna. Prentice Hall., 1993.
[Ogata96] Ogata, K. Sistemas de Control en Tiempo Discreto. Prentice Hall.,
1996.
[Petriu06] Petriu, E. M. Manipulators Arms, 2006.
URL http://www.site.uottawa.ca/ petriu/-
CEG4392-IntroRobotics-Arms.pdf/. Updated: 2006/02/15
[Ramırez98] Ramırez, S. Diseno y construccion de un manipulador con dos grados
de libertad y orientacion del efector final. Proyecto Fin de Carrera, Uni-
versidad Michoacana de San Nicloas de Hidalgo, Facultad de Ingenierıa
Electrica, Division de Estidios de Postgrado, Octubre 1998.
[Robotics06a] Robotics, P. Robot Products, 2006.
URL http://www.peakrobotics.com/Products.htm/. Updated:
2006/02/12
[Robotics06b] Robotics, P. What is a SCARA?, 2006.
URL http://www.peakrobotics.com/What is a SCARA.htm/.
Updated: 2006/02/12
[Romero99] Romero, L. Navegacion de robots moviles en ambientes interiores. En
Informe tecnico, Instituto Tecnologico y de Estudios Superiores de Mon-
terrey, Campus Cuernavaca. 1999.
[Romero01] Romero, L. Construccion de mapas y localizacion de robots moviles: un
enfoque probabilısta. Tesis Doctoral, Instituto Tecnologico y de Estudios
Superiores de Monterrey, Campus Cuernavaca, 2001.
[Romero04a] Romero, L. Protocolo de comunicacion serial con el robot, 2004. Uni-
versidad Michoacana de San Nicolas de Hidalgo. Facultad de Ingenierıa
Electrica. Division de Estudios de Posgrado.
86 Referencias
[Romero04b] Romero, L. y Arellano, J. Building an open platform for mobile robotics.
August 2004. International Symposium on Robotics and Automation
(ISRA 2004).
URL http://faraday.fie.umich.mx/ lromero
[Rosen06] Rosen, J. Manipulator Mecanical Design. En Department of Electrical
Engineering. University of Washington, 2006.
[Salimian06] Salimian, M. Robot Configurations: SCARA, 2006.
URL http://jewel.morgan.edu/ salimian/courses/IEGR470/-
scara.html/. Updated: 2006/03/10
[Semiconductor99] Semiconductor, N. LMD18200 3A, 55V H-Bridge, 1999.
URL http://www.national.com/LM/LMD18200.pdf/
[Solutions06] Solutions, I. D. SCARA Robot, 2006.
URL http://www.intelligentactuator.com/products/SCARA/-
Default.asp/. Updated: 2006/01/27
[Spong89] Spong, M. W. y Vidyasagar, M. Robot Dynamic and Control. John
Wiley & Sons, 1989.
[Stallman01] Stallman, R. The GNU project, 2001.
URL http://www.gnu.org/. Updated: 2004/05/26
[Technology] Technology, A.
URL http://www.adept.com/. Updated: 2006/02/22
[Valvano04] Valvano, J. W. Developing Embedded Software in C. En University of
Texas. 2004.
URL http://www.ece.utexas.edu/ valvano/. Updated:
2004/01/23
[Wikipedia06] Wikipedia. SCARA Robot, 2006.
URL http://en.wikipedia.org/wiki/SCARA robot/. Updated:
2006/03/10
[Williams02] Williams, M. Building the linux of the robot world. PCWorld, March
2002.
Referencias 87
[Yamaha06] Yamaha, M. What is the SCARA robot, 2006.
URL http://www.yamaha-motor.co.jp/global/business/-
robot/ykx/what/index.html/. Updated: 2006/01/17