Вы находитесь на странице: 1из 101

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA ACADMICO
DE INGENIERA MECATRNICA
DISEO Y CONSTRUCCIN
PARA EL

INGENIERO MECA

AUTOR: Paul David lvarez Herrera
ASESOR: M. Sc. Ing.

UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL
DE INGENIERA MECATRNICA

DISEO Y CONSTRUCCIN DE UN BRAZO ROBOT
PARA EL TRAZADO DE DIAGRAMAS
TESIS
Para optar el Ttulo Profesional de
INGENIERO MECATRNICO
Paul David lvarez Herrera
M. Sc. Ing. Guillermo Quevedo Novoa
TRUJILLO PER
2014
UNIVERSIDAD NACIONAL DE TRUJILLO
PROFESIONAL

DE UN BRAZO ROBOT
TRAZADO DE DIAGRAMAS
TRNICO
i

A mis padres, Jorge y Merice.
ii

Resumen

El objetivo de la presente tesis fue disear y construir un brazo robot de bajo
costo apropiado para el trazado de diagramas en un plano. El brazo robot tiene dos
articulaciones rotacionales acopladas directamente a servomotores. El efector final
consiste en un mecanismo simple cuya funcin es de subir y bajar la herramienta de
trabajo que puede ser un lpiz, lapicero, etc. Se desarroll el modelo dinmico del
brazo robot mediante la formulacin de Lagrange, adems se modelaron los motores
y los sensores. Los modelos desarrollados contienen parmetros que debieron ser
hallados, los parmetros del modelo del brazo robot se hallaron mediante mtodos
simples de fsica bsica, mientras que los parmetros del modelo de los motores fue-
ron hallados mediante experimentos estmulo-respuesta, estos experimentos demos-
traron que el modelo se aproxima a la realidad.
Se desarroll un sistema de control basado en modelo, es decir, utilizando el
modelo dinmico del sistema. Por su alto costo computacional, el sistema de control
fue desarrollado en MATLAB, dejando de lado el circuito de control incluido en los
servomotores. Se us como interfaz entre la PC y el brazo robot un microcontrolador
PIC. Los integrados como el PIC, el puente H y el MAX232 simplificaron enorme-
mente la tarea de suministrar potencia, adquirir datos y comunicarse con una PC. El
brazo robot no requiri de un diseo mecnico complejo, ya que est expuesto a ba-
jos esfuerzos adems de que los servomotores tienen una estructura de gran adapta-
bilidad.
El costo del prototipo fue de S/. 150.00. El peso total del brazo robot fue de
410 g. El autor considera que el diseo y construccin de un brazo robot de bajo
costo y que d resultados satisfactorios es factible, siempre que se apliquen de mane-
ra correcta los fundamentos tericos asociados.
iii

Abstract

The thesis objective was to design and build a lowcost robot arm appropri-
ate for drawing diagrams on a plane. The robot arm has two rotational joints at-
tached directly to servomotors. The end-effector consists of a simple mechanism
whose function is to move up and down the tool that could be a pencil, pen, etc.
The dynamic model of the robot arm was developed by using the Lagrangian formu-
lation, motors and sensors were also modeled. The developed models contain param-
eters which must have been found, the robot arm model parameters were found
through simple methods of basic physics, whereas the motors model parameters were
found by stimulus-response experiments, these experiments demonstrated that the
model is close to reality.
A model-based control system was developed, i.e., using the dynamic model
of the system. Due to its high computational cost, the control system was developed
on MATLAB, leaving aside the control circuit included in the servomotors. A PIC
microcontroller was used as an interface between the PC and the robot arm. Inte-
grated circuits such as PIC, H bridge and MAX232 enormously simplified the task of
supplying power, acquire data, and communicate with a PC. The robot arm did not
require a complex mechanical design since it is exposed to low stresses, besides that
the motors have a structure of great adaptability.
The cost of the prototype was S/. 150.00 (US $54). The total weight of the
robot arm was 410 g. The author considers that the design and building of a low-
cost robot arm to produce satisfactory results is feasible, provided that the associat-
ed theoretical foundations are correctly applied.

iv

ndice general

I. Introduccin ................................................................................ 1
1.1 Realidad Problemtica .......................................................................... 1
1.2 Enunciado del problema ........................................................................ 2
1.3 Hiptesis ................................................................................................ 2
1.4 Objetivos ............................................................................................... 2
1.4.1 Objetivo general ............................................................................. 2
1.4.2 Objetivos especficos ....................................................................... 3
II. Mtodos y Materiales ................................................................. 4
2.1 Metodologa ........................................................................................... 4
2.2 Materiales .............................................................................................. 5
III. Desarrollo, Resultados y Discusin ........................................... 7
3.1 Modelamiento del Brazo Robot ........................................................... 10
3.1.1 Matrices Homogneas de Transformacin y Convencin
de DenavitHartenberg................................................................. 10
3.1.2 Modelo cinemtico ........................................................................ 15
3.1.3 Esttica ........................................................................................ 20
3.1.4 Dinmica ...................................................................................... 21
3.2 Modelamiento de Actuadores y Sensores ............................................. 27
3.2.1 Modelamiento de los motores dc .................................................. 27
3.2.2 Modelamiento del actuador del efector final ................................. 31
3.2.3 Modelamiento de los sensores ....................................................... 32
3.3 Determinacin de Parmetros ............................................................. 34
3.3.1 Determinacin de parmetros de los motores dc .......................... 35
3.3.2 Determinacin de parmetros del brazo robot .............................. 38
3.3.3 Calibracin Cinemtica ................................................................ 41
3.4 Diseo de la Parte Mecnica ............................................................... 45
3.5 Diseo de la Parte Electrnica y de Potencia ...................................... 56
3.6 Diseo del Sistema de control ............................................................. 63
v

3.6.1 Modelo del controlador ................................................................. 63
3.6.2 Determinacin de las constantes PID ........................................... 67
3.6.3 Controlador simplificado .............................................................. 68
3.6.4 Generacin de trayectorias ........................................................... 70
3.7 Resultados Especficos ......................................................................... 73
IV. Conclusiones y Recomendaciones .............................................76
4.1 Conclusiones ........................................................................................ 76
4.2 Recomendaciones ................................................................................. 77
Bibliografa ................................................................................................. 78
A. Anexos .......................................................................................79
A.1 Cdigo en MATLAB para el ajuste de curva y obtencin
de los valores

.......................................................................... 79
A.2 Cdigo en MATLAB para la Calibracin Cinemtica del
brazo robot.......................................................................................... 79
A.3 Cdigo en MATLAB del Sistema de Control ..................................... 81
A.4 Cdigo en PIC C para el PIC 16F877A ............................................. 85

vi

ndice de figuras

2.1 Metodologa de diseo y construccin ................................................... 4
3.1 Mecanismo propuesto ............................................................................ 9
3.2 Diagrama de bloques del sistema ........................................................... 9
3.3 Rotacin alrededor del eje x ................................................................ 11
3.4 Parmetros de DenavitHartenberg .................................................... 13
3.5 Brazo robot, visto desde arriba ........................................................... 14
3.6 Clculo del ngulo

.......................................................................... 17
3.7 Clculo del ngulo

.......................................................................... 17
3.8 Dos soluciones a la cinemtica inversa ................................................ 18
3.9 Brazo robot en contacto con el entorno ............................................... 20
3.10 Parmetros del brazo robot ............................................................... 22
3.11 Modelo de un motor dc con reduccin ............................................... 28
3.12 Seal de control para el servomotor................................................... 32
3.13 Potencimetro .................................................................................... 33
3.14 Ajuste de curva ................................................................................. 37
3.15 Espacio de trabajo para varias configuraciones .................................. 45
3.16 rea de trabajo total y rea de trabajo reducida ............................... 46
3.17 Servomotor TowerPro SG-5010 ......................................................... 47
3.18 Curva par-velocidad de un motor dc ................................................. 48
3.19 Efector final ....................................................................................... 52
3.20 Estructura mecnica del brazo robot ................................................. 54
3.21 Fotografa del brazo robot ................................................................. 55
3.22 Fotografa del brazo robot (vista superior) ........................................ 55
3.23 Seal PWM ....................................................................................... 59
3.24 Circuito electrnico ............................................................................ 62
3.25 Fotografa del circuito electrnico en protoboard .............................. 62
3.26 Diagrama de bloques del sistema robtico ......................................... 64
3.27 Linealizacin del sistema ................................................................... 65
vii

3.28 Simplificacin del sistema linealizado ................................................ 65
3.29 Control del sistema robtico basado en modelo ................................. 66
3.30 Control para bajas velocidades .......................................................... 69
3.31 Control articular independiente ......................................................... 69
3.32 Evolucin temporal de .................................................................... 71
3.33 Trazos de lneas rectas ....................................................................... 75




viii

ndice de tablas

3.1 Parmetros DenavitHartenberg para el brazo robot .......................... 14
3.2 Funcionamiento del puente H.............................................................. 59
3.3 Costo del prototipo .............................................................................. 74





ix

Simbologa

l
1
longitud del eslabn 1
l
2
longitud del eslabn 2
0
1
posicin angular, articulacin 1
0
2
posicin angular, articulacin 2
x coordenada 1 del efector final
y coordenada 2 del efector final
x vector posicin del efector final
q vector de ngulos articulares
k(q) funcin que representa cinemtica directa
](q) matriz Jacobiana
o
1
distancia del centro de masa del eslabn 1 a la articulacin 1
o
2
distancia del centro de masa del eslabn 2 a la articulacin 2
I
1
momento de inercia del eslabn 1
I
2
momento de inercia del eslabn 2
I Lagrangiano
K energa cintica del sistema
P energa potencial del sistema
m
1
masa del eslabn 1
m
2
masa del eslabn 2
x

1
torque en la articulacin 1

2
torque en la articulacin 2
z vector de torques articulares
B(q) trmino inercial del modelo dinmico del brazo robot
C(q, q ) trmino de Coriolis del modelo dinmico del brazo robot
z
J
vector de torques generados por las fuerza externas
J fuerza ejercida por el brazo robot sobre el entorno

mdulo de la fuerza de friccin herramienta-plano de trabajo


u
u
vector unitario en la direccin de la velocidad del efector final
K
t
constante de torque del motor
K
b
constante de fuerza contra-electromotriz
o, [, y, o parmetros del modelo simplificado del motor
:
1
voltaje aplicado al motor 1
:
2
voltaje aplicado al motor 2
u vector de voltajes
s
pot
valor digital del voltaje
p
1
, q
1
, p
2
, q
2
coeficientes del modelo de los sensores

n
velocidad sin carga del motor dc

s
torque con rotor parado del motor dc
P potencia mecnica que entrega un motor dc
q
r
posicin articular deseada
q error de posicin angular
xi

K
p
constante proporcional del controlador
K
d
constante derivativa del controlador
K

constante integral del controlador


I
mcd
velocidad media de operacin del brazo robot

1

Captulo I
Introduccin

1.1 Realidad Problemtica
La robtica es la rama de la tecnologa que se dedica al diseo, construccin,
operacin, disposicin estructural, manufactura y aplicacin de los robots. Un robot
es por lo general un sistema electromecnico que, por su apariencia o sus movimien-
tos, ofrece la sensacin de tener un propsito propio.
No hay un consenso sobre qu mquinas pueden ser consideradas robots, pero
s existe un acuerdo general entre los expertos y el pblico sobre que los robots tien-
den a hacer parte o todo lo que sigue: moverse, hacer funcionar un brazo mecnico,
sentir y manipular su entorno y mostrar un comportamiento inteligente.
La robtica se ha desarrollado en los ltimos aos de una manera increble.
Esto se debe a las grandes ventajas que posee en trminos de eficiencia y eficacia en
la produccin como tambin en la mejora de la calidad de vida, entre las ventajas
principales de la robtica estn:
-Los robots y sistemas automatizados a diferencia de los humanos no necesi-
tan descansar, realizan labores repetitivas una y otra vez sin disminuir su
desempeo.
-Realizan tareas de precisin y exactitud imposibles para el humano.
-Realizan tareas en ambientes peligrosos evitando el riesgo a la salud o vida
de humanos.
-A los precios actuales de mercado, los robots abaratan muchos costos de
produccin.
2

Por esas y otras razones la robtica es imprescindible para el desarrollo y
competitividad de un pas. Debe quedar claro que no se est hablando de importa-
cin de tecnologa de otros pases sino ms bien de la comprensin de la ciencia que
hay detrs y el desarrollo de propia tecnologa.

1.2 Enunciado del problema
El problema planteado por el autor es el siguiente:
De qu manera, a partir del modelamiento de brazos robot, la teora de di-
seo mecnico, las leyes y principios de electrnica, las teoras y tcnicas de control
de brazos robot y las mltiples herramientas de programacin, podemos disear y
construir un brazo robot de bajo costo para el trazado de diagramas?

1.3 Hiptesis
La hiptesis planteada es la siguiente:
A partir del desarrollo de un modelo dinmico del sistema robtico y la de-
terminacin de sus parmetros, podemos disear y construir la estructura mecnica,
la etapa electrnica y el sistema de control de un brazo robot de bajo costo para el
trazado de diagramas.

1.4 Objetivos
1.4.1 Objetivo general
El objetivo de la presente tesis es desarrollar y aplicar los diversos conoci-
mientos en las reas de robtica, electrnica, mecnica, control y otras, con el fin de
producir un brazo robot de bajo costo para el trazado de diagramas.
3

1.4.2 Objetivos especficos
-Modelar el sistema robtico: Desarrollar el modelo cinemtico y dinmi-
co del brazo robot, el modelo dinmico de los actuadores y de los sensores.
Determinar los parmetros de dichos modelos.
-Disear la parte mecnica: Determinar las dimensiones, forma y estruc-
tura del brazo robot.
-Disear la parte electrnica: Desarrollar un circuito capaz de actuar de
interfaz PC - Brazo robot.
-Desarrollar e implementar el sistema de control: Desarrollar un con-
trolador basado en el modelo dinmico del sistema e implementarlo.













4

Captulo II
Mtodos y Materiales

2.1 Metodologa
Metodologa se refiera a una secuencia lgica utilizada para conseguir los re-
sultados requeridos en base a ciertos requerimientos. En base a otras investigaciones
hechas en diseo y construccin de brazos robot se propone la siguiente metodologa
secuencial para el diseo y construccin del brazo robot:
Figura 2.1 Metodologa de diseo y construccin

Fuente: Elaboracin propia
El proceso empieza con las consideraciones iniciales, que son consideraciones
que el autor cree pertinentes, stas llevan a proponer en trminos generales la forma
y estructura bsicas del sistema robtico.
El modelamiento de un sistema consiste en representar el sistema mediante
ecuaciones, diagramas u otras formas de tal manera que podamos extraer informa-
cin til y trabajar con ella, el modelo dinmico del brazo robot se puede derivar
Modelamiento
Diseo Sistema
de Control
Diseo Etapa
Electrnica y
Potencia
Diseo Mecnico
Implementacin
Calibracin y
Pruebas
Consideraciones
y Propuesta
5

mediante la formulacin de Lagrange, el modelo de los actuadores, que son motores
elctricos, est determinado por las ecuaciones diferenciales que gobiernan la parte
elctrica y mecnica de los motores.
El diseo mecnico, tiene como objetivo determinar las dimensiones, forma y
estructura del brazo robot. Los actuadores estn incrustados en el brazo robot y por
tal deben incluirse en el diseo mecnico. Los software CAD son tiles al momento
de realizar todo tipo de planos.
La etapa de potencia se encarga de suministrar suficiente energa y de forma
controlada a los actuadores para que estos realicen sus funciones adecuadamente. En
base al modelo del sistema se harn aproximaciones de los requerimientos de poten-
cia y corriente elctrica del sistema robtico
Se utilizar un microcontrolador y otros integrados con el fin de crear una in-
terfaz entre el brazo robot y la PC.
La etapa de control se encarga de dar las ordenes correctas a los actuado-
res para que realicen la funcin deseada, esto con ayuda de informacin proveniente
de los sensores. El controlador se disea en base al modelo del sistema, y ser nece-
saria una PC para implementarlo, el mtodo de ZieglerNichols ofrece una manera
sencilla de determinar los parmetros del controlador.

2.2 Materiales
-Bibliografa especializada; libros, papers.
-Software MATLAB, Compilador CCS.
-Computador personal
-Componentes electrnicos
-Elementos mecnicos del brazo robot.
-Elementos para el montaje y calibracin.
-Multmetro
6

-Pistola de soldar
-Fuente de Poder
-Otros

















7

Captulo III
Desarrollo, Resultados y Discusin

La reproducibilidad es uno de los principios esenciales del mtodo cientfico,
y se refiere a la capacidad que tenga una prueba o experimento de ser reproducido o
replicado. En esta investigacin se puso nfasis en esto de tal manera que se tomaron
todas las consideraciones posibles para que los resultados obtenidos en la presente
tesis puedan ser reproducidos sin dificultades, esto tambin con el objetivo de que
permita el aprendizaje y sea base para futuros desarrollos en el rea de robtica en
la regin. Los principios utilizados en la presente tesis forman parte de los conoci-
mientos slidos en las reas de robtica, electrnica y otras, se hizo todo lo posible
por referenciar cada seccin a los libros ms destacados y reconocidos en cada rea.
Los Brazos Robots industriales cuestan miles de dlares, esto es as ya que el
costo de desarrollo es muchas veces alto. Incluso los brazos robots educativos llegan
a costar grandes sumas de dinero. Conseguir desarrollar un brazo robot de bajo co-
sto sera un precedente que ayudara a no limitar investigaciones futuras en robtica.
Por tales motivos se decidi minimizar el costo del prototipo. Es posible reducir mu-
chos costos si se utilizan piezas simples y fciles de conseguir, tratando de minimizar
los costos de maquinado, adems se procurar el uso de materiales comerciales y
estandarizados.
Sobre el uso de tecnologas, se opt por utilizar las mismas que se utilizan en
la Escuela de Ingeniera Mecatrnica, por ejemplo el uso de MATLAB es habitual en
muchos cursos de ciclos superiores, o tambin el uso de microcontroladores PIC.
Para el trazado de diagramas en un plano (2 dimensiones) se requiere un
brazo robot de 2 grados de libertad, en otras palabras 2 articulaciones. Y en cada
articulacin un actuador que en este caso sern motores elctricos.
8

Existen 2 tipos de articulaciones; lineales y rotacionales, con diferentes com-
binaciones de estas se estructuran configuraciones diferentes de brazos robot. Una
articulacin rotacional tiene la ventaja de que se puede acoplar directamente al mo-
tor, generalmente motor con reduccin de engranes incluida, es por eso que se deci-
di usar articulaciones rotacionales.
En la bsqueda de motores y sensores a utilizar en las dos articulaciones, se
opt por servomotores dc, se eligieron por que los servomotores incluyen adems del
motor, una caja de reduccin y un sensor de posicin, generalmente un potencime-
tro. Un servomotor tambin cuenta con un pequeo circuito de control integrado,
este circuito de control es muy til para determinadas aplicaciones pero cuando se lo
desea para movimientos suaves o para la aplicacin de otro tipo de control ms ela-
borado se vuelven algo intiles. Sin embargo es sencillo extraer este circuito de con-
trol para remplazarlo por uno propio de acuerdo a nuestras necesidades y eso es lo
que se hizo. Se escogieron los servomotores TowerPro SG-5010, como se ver des-
pus, la eleccin del motor no es un elemento crtico en el proceso de diseo ya que
se trabajar a bajas velocidades y por ende bajos torques, cabe sealar tambin que
el mercado local tampoco ofrece muchas opciones.
A pesar de que solo necesitamos dos articulaciones y 2 motores para abarcar
una superficie, es necesario un efector final que realiza la tarea de subir y bajar la
herramienta de trabajo ya que si no solo se podra hacer un trazo continuo. La
herramienta de trabajo puede ser un lpiz, lapicero, marcador, un pincel, etc. Para
esta tarea de subir y bajar se necesita un 3er actuador, en este actuador la precisin
no es un factor muy importante. Se decidi usar el servomotor Mystery SD90 ya que
es pequeo, ligero y tiene el suficiente torque para levantar la ligera herramienta de
trabajo. El brazo robot lucira aproximadamente como en la Figura 3.1.
Toda la parte mecnica del brazo robot se discutir en la seccin 3.4.
La etapa de control ser implementada en MATLAB ya que cuenta con mu-
chas herramientas para ello.


Fuente: http://prime.jsc.nasa.gov/ROV/types.html
Se utilizar un microcontrolador para direccionar la informacin de control
recibida de la PC hacia la etapa de potencia, la cual finalmente proveer de la ener
a necesaria y calculad
Microcontrolador tambin recibir informacin de los sensores para as cerrar el ci
cuito de control. El Microcontrolador se comunicara con la PC por medio de com
nicacin serial, la cual es senci
comandos especficos. En resumen, se propone el siguiente sistema:
Figura 3.2
Comunicacin
PC
MATLAB
Figura 3.1 Mecanismo propuesto

Fuente: http://prime.jsc.nasa.gov/ROV/types.html
Se utilizar un microcontrolador para direccionar la informacin de control
recibida de la PC hacia la etapa de potencia, la cual finalmente proveer de la ener
a necesaria y calculada para cada motor y para el actuador del efector final. El
Microcontrolador tambin recibir informacin de los sensores para as cerrar el ci
cuito de control. El Microcontrolador se comunicara con la PC por medio de com
nicacin serial, la cual es sencilla de utilizar en MATLAB ya que ste cuenta con los
comandos especficos. En resumen, se propone el siguiente sistema:
Figura 3.2 Diagrama de bloques del sistema
Fuente: Elaboracin propia

Comunicacin
Serial
Brazo Robot
Circuito de
Potencia
Microcontrolador
Motores
Sensores
9
Fuente: http://prime.jsc.nasa.gov/ROV/types.html
Se utilizar un microcontrolador para direccionar la informacin de control
recibida de la PC hacia la etapa de potencia, la cual finalmente proveer de la energ-
a para cada motor y para el actuador del efector final. El
Microcontrolador tambin recibir informacin de los sensores para as cerrar el cir-
cuito de control. El Microcontrolador se comunicara con la PC por medio de comu-
lla de utilizar en MATLAB ya que ste cuenta con los
comandos especficos. En resumen, se propone el siguiente sistema:


Circuito de
Potencia
Actuador del
Efector Final
10

3.1 Modelamiento del Brazo Robot
En la tarea de entender el comportamiento de un sistema, hacer un modelo
de este es muy til, un modelo es una representacin de la realidad, que en nuestro
caso es una representacin matemtica, es decir, ecuaciones. Estas ecuaciones refle-
jan las relaciones entre las diferentes variables y no variables del sistema (longitudes,
torques, velocidades, etc.).
Nosotros podemos medir las posiciones angulares de las articulaciones me-
diante sensores y podemos dar torques controlados a cada articulacin, pero al fin y
al cabo quien realiza la tarea es el efector final, por tanto necesitamos conocer las
relaciones entre las variables articulares y las variables del efector final. Cuando
hablamos de las posiciones, velocidades, aceleraciones y fuerzas/torques en cada arti-
culacin nos referimos al espacio articular. Cuando hablamos de las posiciones, velo-
cidades, aceleraciones y fuerzas/torques en el efector final nos referimos al espacio de
trabajo. Tambin se suele hablar de coordenadas internas a los ngulos/distancias en
cada articulacin y de coordenadas externas a la posicin X-Y-Z del efector final.
Hablamos de un modelo cinemtico cuando encontramos las relaciones que
existen entre el movimiento de las articulaciones y el movimiento del efector final sin
importar las fuerzas o torques que producen tal movimiento.
Hablamos de un modelo dinmico cuando encontramos ecuaciones que re-
lacionan el movimiento del robot con las causas que los producen; fuerzas o torques.

3.1.1 Matrices Homogneas de Transformacin y Con-
vencin de DenavitHartenberg
Sea un punto cualquiera visto desde cierto sistema de referencia p: (x, y, z), y
sea ese mismo punto visto desde otro sistema referencia p: (x, y, z), la relacin en-
tre x, y, z y x, y, z queda establecida por una transformacin, para sta se utilizan
las denominadas matrices homogneas de transformacin.
11

Una matriz homognea de transformacin relaciona dos sistemas de referen-
cia. Por ejemplo si el origen del segundo sistema de referencia se encuentra en la
posicin o, b, c respecto del primer sistema de referencia y los ejes de ambos sistemas
son paralelos, es decir, un sistema de referencia se encuentra trasladado respecto del
otro, entonces para cualquier punto con coordenadas p: (x, y, z) se pueden encon-
trar sus coordenadas respecto al primer sistema p: (x, y, z) mediante ([1], pg. 9-13):
_
x
y
z
1
_ = _
1 u u o
u 1 u b
u u 1 c
u u u 1
_ _
x
y
z
1
_
donde un punto es representado por una matriz de 4x1, con el ltimo elemento igual
a 1. Y la matriz de transformacin se denota por:
H = Irons(o, b, c) = _
1 u u o
u 1 u b
u u 1 c
u u u 1
_
En el caso de rotaciones ocurre algo similar, por ejemplo una rotacin respec-
to al eje x un ngulo o (Figura 3.3) es denotada por:
H = Rot(x, o) = _
1 u u u
u cos o scn o u
u scn o cos o u
u u u 1
_
Figura 3.3 Rotacin alrededor del eje x

Fuente: [1], pg. 11
12

En general un segundo sistema de referencia puede estar trasladado y rotado
respecto al primero, y se representa por una matriz de transformacin:
H = _
r1 r2 rS o
r4 rS r6 b
r7 r8 r9 c
u u u 1
_
donde o, b, c representan la translacin y r1, r2, .. r9 representan la rotacin, para
representar una rotacin solo bastan 3 valores reales independientes, por ejemplo un
vector unitario (2 valores reales) paralelo al eje de rotacin y el ngulo de rotacin
sobre ese eje.
Sea H
1
0
la matriz de transformacin que nos permite pasar del sistema de re-
ferencia S
1
al sistema de referencia S
0
, y sea H
2
1
la matriz de transformacin que
nos permite pasar del sistema de referencia S
2
al sistema de referencia S
1
, entonces,
la matriz de transformacin que nos permitir pasar del sistema de referencia S
2
al
sistema de referencia S
0
es igual a la posmultiplicacin de las matrices anteriores:
H
2
0
= H
1
0
H
2
1

El problema a resolver ahora es: Dado un sistema referencia fijo al efector fi-
nal, y dado un sistema de referencia fijo a la base del robot, Cules son las trans-
formaciones necesarias para pasar de uno a otro sistema de referencia?
J. Denavit y R. Hartenberg presentaron en 1955 un mtodo con el fin de es-
tandarizar los sistemas de referencia de los eslabones espaciales. Es un mtodo sis-
temtico y general para definir mediante parmetros la posicin y orientacin relati-
vas de 2 eslabones consecutivos. El problema es determinar 2 sistemas de referencia
unidos a 2 eslabones sucesivos y calcular las transformaciones de coordenadas entre
ellos. Para ello se establecieron una serie de reglas y pasos para determinar tales
parmetros, estos se simplifican bastante y son fciles de hallar para sistemas de
referencia paralelos, como es el caso de nuestro brazo robot.
Sea un sistema de referencia S
-1
con origen 0
-1
unido al eslabn i 1, y
sea un sistema de referencia S

con origen 0

unido al eslabn i (Figura 3.4), como


se demuestra en ([2], pg. 61-65) solo son necesarios 4 parmetros para describir
13

totalmente la relacin entre los dos sistemas de referencia: o

, o

, J

y 0

. sta rela-
cin viene establecida por la matriz de transformacin:
A

-1
= _
c0

s0

co

s0

so

c0

s0

c0

co

c0

so

s0

u so

co

u u u 1
_ (3.1)
donde c0

es el coscno Jc 0

, y s0

es el scno Jc 0

, de igual manera para o.


Figura 3.4 Parmetros de DenavitHartenberg

Fuente: [2], pg. 62
Entonces, como se vio antes, para encontrar la matriz de transformacin en-
tre el sistema de referencia del efector final y la de la base del robot solo debemos
posmultiplicar las matrices individuales del tipo A

-1
.
Nuestro brazo robot, visto desde arriba luce como en la Figura 3.5 en la cual
estn incluidos los sistemas de referencia unidos a la base y a los eslabones, en nues-
tro caso el sistema de referencia unido al efector final coincide con el sistema de refe-
rencia unido al eslabn 2, ya que el efector final est simplemente en el extremo del
eslabn 2, fijo a ste. Entonces, a partir de la Figura 3.5, obtenemos los parmetros
de DenavitHartenberg (Tabla 3.1).

14

Figura 3.5 Brazo robot, visto desde arriba

Fuente: [3], pg. 75
Tabla 3.1 Parmetros DH para el brazo robot
Eslabn
o


1 l
1
u u 0
1

2 l
2
u u 0
2

Fuente: Elaboracin propia
donde 0
1
y 0
2
son las variables articulares. Reemplazando estos valores en la ecua-
cin (3.1) tenemos:
A
1
0
(0
1
) = _
c1 s1 u l
1
c1
s1 c1 u l
1
s1
u u 1 u
u u u 1
_
A
2
1
(0
2
) = _
c2 s2 u l
2
c2
s2 c2 u l
2
s2
u u 1 u
u u u 1
_
donde c1 = cos0
1
, c2 = cos0
2
, s1 = scn0
1
y s2 = scn0
2
, entonces la matriz de
transformacin que relaciona los sistemas de referencia del efector final y de la base
del robot es:
15

T
2
0
= A
1
0
A
2
1
= _
c12 s12 u l
1
c1 +l
2
c12
s12 c12 u l
1
s1 +l
2
s12
u u 1 u
u u u 1
_ (3.2)
donde c12 = cos(0
1
+0
2
) y s12 = scn(0
1
+0
2
).

3.1.2 Modelo cinemtico
Modelo cinemtico directo de posicin
El problema a resolver es; Dados ciertos ngulos articulares, Cul es la posi-
cin del efector final?
Como dijimos, el efector final se encuentra al extremo del eslabn 2, en el
origen del sistema de referencia 2, entonces, las coordenadas del efector final en el
sistema de referencia 2 son:
p
c]ccto
= (u, u, u)
2

y en el sistema de referencia base
p
c]ccto
= (x
0
, y
0
, z
0
) = (x, y, z)
donde z = u. Entonces ambas expresiones estn relacionadas mediante la matriz de
transformacin T
2
0
:
p
c]ccto
= T
2
0
p
c]ccto

reemplazando y usando las matrices de 4x1 para representar puntos, tene-
mos:
_
x
y
u
1
_ = _
c12 s12 u l
1
c1 +l
2
c12
s12 c12 u l
1
s1 +l
2
s12
u u 1 u
u u u 1
_ _
u
u
u
1
_
de donde nos queda:
16

_
x
y
u
1
_ = _
l
1
c1 +l
2
c12
l
1
s1 +l
2
s12
u
1
_
para luego obtener:
x = l
1
c1 +l
2
c12 (3.3)
y = l
1
s1 +l
2
s12 (3.4)
las 2 ecuaciones anteriores podemos escribirlas como:
x = k(q) (3.5)
donde: x = |
x y
] describe la posicin del efector final, y llamaremos a q =
|0
1
0
2
] el vector de ngulos articulares. Redefinimos el vector posicin del efector
final con solo las coordenadas x y y, ya que z = u, esto nos facilitara el anlisis pos-
terior.
Las ecuaciones (3.3), (3.4) y (3.5) nos dicen que conocidos los ngulos articu-
lares, es decir, los ngulos que han girado cada uno de los eslabones, podemos obte-
ner la posicin del efector final en el sistema de referencia base, fijo a la base del
robot.

Modelo cinemtico inverso de posicin
El problema a resolver ahora es; Dada cierta posicin del efector final, Cu-
les son los ngulos articulares? Para ello utilizamos el mtodo geomtrico, con un
poco de intuicin, geometra y algebra se resuelve el problema.
Con relacin a la Figura 3.6, por la regla de cosenos tenemos:
x
2
+y
2
= l
1
2
+l
2
2
2l
1
l
2
cos (18u 0
2
)
entonces
17

0
2
= orcos
x
2
+y
2
l
1
2
l
2
2
2l
1
l
2
(3.6)
Figura 3.6 Clculo del ngulo 0
2


Fuente: [1], pg. 36
Figura 3.7 Clculo del ngulo 0
1


Fuente: [1], pg. 36
El ngulo en la primera articulacin es calculado utilizando la Figura 3.7,
ste es igual a:
0
1
= o
1
o
2

entonces
18

0
1
= aictan_
y
x
] aictan (
l
2
scn0
2
l
1
+l
2
cos0
2
) (3.7)
Cuando calculamos 0
2
tenemos 2 soluciones: codo arriba y codo abajo
como se muestra en la Figura 3.8. Para resolver esto solo debemos limitar 0
2
, por
ejemplo 0
2
e |u, n].
Figura 3.8 Dos soluciones a la cinemtica inversa

Fuente: [1], pg. 37

Modelo cinemtico directo de velocidad
El problema a resolver es; Dadas ciertas velocidades articulares, Cul es la
velocidad del efector final?
Las coordenadas del efector final son funciones de los ngulos articulares los
cuales a su vez son funciones del tiempo ([1], pg. 35).
x = x ( 0
1
(t), 0
2
(t))
y = y ( 0
1
(t), 0
2
(t))
se calculan las derivadas temporales y se colocan en una matriz
19

_
x
y
_ =
l
l
l
l
ox
o0
1
ox
o0
2
oy
o0
1
oy
o0
2
1
1
1
1
_
0

1
0

2
_
utilizando las ecuaciones (3.3) y (3.4) obtenemos:
_
x
y
_ = _
l
1
s1 l
2
s12 l
2
s12
l
1
c1 +l
2
c12 l
2
c12
_ _
0

1
0

2
_ (3.8)
La matriz que en este caso es de segundo orden es llamada matriz Jacobiana
](q). Entonces la ecuacin anterior puede ser escrita
x = ](q)q (3.9)
donde
](q) = _
l
1
s1 l
2
s12 l
2
s12
l
1
c1 +l
2
c12 l
2
c12
_
con lo que queda resuelta la cinemtica directa para velocidades.

Modelo cinemtico inverso de velocidad
El problema a resolver es; Dada cierta velocidad del efector final, Cules son
las velocidades articulares?
A partir de la ecuacin (3.9), invirtiendo la matriz Jacobiana, tenemos
q = ]
-1
(q)x (3.10)
las matrices de orden 2x2 pueden ser invertidas de la siguiente manera:
A = j
o b
c J
[ A
-1
=
1
oJ cb
j
J b
c o
[
para nuestro robot tenemos
_
0

1
0

2
_ =
1
l
1
l
2
s2
_
l
2
c12 l
2
s12
l
1
c1 l
2
c12 l
1
s1 l
2
s12
_ _
x
y
_ (3.11)
20

3.1.3 Esttica
Ahora encontraremos la relacin entre los torques articulares y la fuerza que
ejerce el efector final sobre el entorno, considerando que el brazo robot est quieto.
En la Figura 3.9 se observan los torques articulares H
1
y H
2
, los cuales son
producidos por los actuadores, adems de la fuerza I que el brazo robot ejerce sobre
el entorno, sta se encuentra descompuesta en sus componentes paralelos a los ejes x
y y.
Figura 3.9 Brazo robot en contacto con el entorno

Fuente: [1], pg. 38
Por el principio de accin y reaccin, las fuerzas externas sobre el efector
final son opuestas a las ejercidas por el efector final sobre el entorno. Ya que el bra-
zo robot est quieto, la suma de torques externos sobre ste es igual a cero. Entonces
H
1
+F
x
y F

x = u
reemplazando x y y por sus valores calculados en (3.3) y (3.4) obtenemos
H
1
= F
x
(l
1
s1 +l
2
s12) +F

(l
1
c1 +l
2
c12) (3.12)
21

considerando solo es eslabn 2, la suma de torques externos sobre ste tambin es
igual a cero
H
2
+F
x
l
2
s12 F

l
2
c12 = u
o tambin
H
2
= F
x
l
2
s12 +F

l
2
c12 (3.13)
las ecuaciones anteriores pueden ser escritas en forma matricial
_
H
1
H
2
_ = _
l
1
s1 l
2
s12 l
1
c1 +l
2
c12
l
2
s12 l
2
c12
_ _
F
x
F

_ (3.14)
la matriz en la ecuacin anterior es la matriz Jacobiana transpuesta ]
T
(q), entonces
podemos reescribir la ecuacin (3.14) como
z = ]
T
(q)I (3.15)
donde z = _
H
1
H
2
_ y I = _
F
x
F

_

3.1.4 Dinmica
La obtencin del modelo dinmico de un manipulador juega un importante
papel en la simulacin de movimiento, anlisis de estructuras de manipuladores y
diseo de algoritmos de control.
Para hallar el modelo dinmico del brazo robot se utilizar el mtodo basado
en la Formulacin de Lagrange el cual es conceptualmente simple y sistemtico.
El brazo robot (Figura 3.10) tiene 2 eslabones de longitudes l

, cada uno con


masa m

, con centros de masa a una distancia o

de la articulacin i, adems cada


eslabn tiene una inercia I

respecto a su centro de masa, todo esto para i = 1, 2.


El Lagrangiano I est definido como la diferencia entre la energa cintica K
y la energa potencial P de un sistema ([4], pg. 157-161) ([2], pg. 247-248).
22

I = K P
La energa cintica y potencial del sistema puede ser expresada en cualquier
sistema de coordenadas que simplifique el problema.
Figura 3.10 Parmetros del brazo robot

Fuente: [2], pg. 266
Las ecuaciones dinmicas, en trminos de las coordenadas usadas, son obte-
nidas como
F

=
J
Jt

oI
oq


oI
oq

(3.16)
Donde los q

son las coordenadas en las cuales la energa cinetica y potencial


estn expresadas, q

es la correspondiente velocidad y F

la correspondiente fuerza o
torque. F

es una fuerza o un torque dependiendo de si q

es una coordenada lineal o


angular. Estas fuerzas, torques y coordenadas son conocidas como fuerzas, torques y
coordenadas generalizadas. Hacemos los clculos para nuestro brazo robot:
La energa cintica K es la suma de las energas cinticas de cada eslabn
K = K
1
+K
2

la energa cintica del eslabn 1 es
K
1
=
1
2
m
1
o
1
2
0

1
2
+
1
2
I
1
0

1
2

23

Para hallar la energa cintica del eslabn 2, necesitamos diferenciar las ecua-
ciones de posicin del centro de masa del eslabn 2, (x
2
, y
2
).
x
2
= l
1
c1 +o
2
c12
y
2
= l
1
s1 +o
2
s12
derivando respecto al tiempo tenemos
x
2
= l
1
s10

1
o
2
s12(0

1
+0

2
)
y
2
= l
1
c10

1
+o
2
c12(0

1
+0

2
)
la velocidad del centro de masa del eslabn 2 es
:
2
= _x
2
2
+y
2
2

entonces
:
2
2
= l
1
2
s
2
10

1
2
+o
2
2
s
2
12(0

1
+0

2
)
2
+2l
1
o
2
s1s120

1
(0

1
+0

2
) +l
1
2
c
2
10

1
2
+o
2
2
c
2
12(0

1
+0

2
)
2
+2l
1
o
2
c1c120

1
(0

1
+0

2
)
y la energa cintica del eslabn 2 es
K
2
=
1
2
m
2
:
2
2
+
1
2
I
2
(0

1
+0

2
)
2

reemplazando :
2
2
y simplificando
K
2
=
1
2
m
2
|l
1
2
0

1
2
+o
2
2
(0

1
2
+20

1
0

2
+0

2
2
) +2l
1
o
2
c2(0

1
2
+0

1
0

2
)] +
1
2
I
2
(0

1
2
+0

2
2
+20

1
0

2
)
La energa potencial P del sistema es la suma de las energas potenciales de
cada eslabn
P = P
1
+P
2

La energa potencial es debida al campo gravitatorio. Ya que no hay movi-
miento vertical, si establecemos la referencia a la misma altura que el brazo robot,
tenemos
24


(3.17)
P
1
= m
1
gb = m
1
g(u) = u
P
2
= m
2
gb = m
2
g(u) = u
entonces el Lagrangiano es
I = K P = 0

1
2
_
1
2
m
1
o
1
2
+
1
2
I
1
+
1
2
m
2
l
1
2
+
1
2
m
2
o
2
2
+
1
2
I
2
] +0

2
2
_
1
2
m
2
o
2
2
+
1
2
I
2
]
+0

1
0

2
(m
2
o
2
2
+I
2
) +m
2
l
1
o
2
c2(0

1
2
+0

1
0

2
)
Usando la ecuacin (3.16) hallamos F
1
=
1
que en este caso es un torque en
la articulacin 1.
oI
o0
1

= 0

1
(m
1
o
1
2
+I
1
+m
2
l
1
2
+m
2
o
2
2
+I
2
) +0

2
(m
2
o
2
2
+I
2
) +m
2
l
1
o
2
c2(20

1
+0

2
)
la derivada temporal es
J
Jt
oI
o0
1

= 0

1
(m
1
o
1
2
+I
1
+m
2
l
1
2
+m
2
o
2
2
+I
2
) +0

2
(m
2
o
2
2
+I
2
)
+m
2
l
1
o
2
|s20

2
(20

1
+0

2
) +c2(20

1
+0

2
)]
y el segundo trmino es
oI
o0
1
= u
por lo que

1
=
J
Jt
oI
o0
1


oI
o0
1

y obtenemos

1
= (I
1
+I
2
+m
1
o
1
2
+m
2
(l
1
2
+o
2
2
+2l
1
o
2
c2))0

1
+(I
2
+m
2
(o
2
2
+l
1
o
2
c2))0

2
(2m
2
l
1
o
2
s2)0

1
0

2
(m
2
l
1
o
2
s2)0

2
2

Ahora hallamos F
2
=
2
que es un torque en la articulacin 2
oI
o0
2

= 0

2
(m
2
o
2
2
+I
2
) +0

1
(m
2
o
2
2
+I
2
) +m
2
l
1
o
2
c20

1

la derivada temporal es
25

J
Jt
oI
o0
2

= 0

2
(m
2
o
2
2
+I
2
) +0

1
(m
2
o
2
2
+I
2
) +m
2
l
1
o
2
(s20

2
0

1
+c20

1
)
y el segundo trmino es
oI
o0
2
= m
2
l
1
o
2
s2(0

1
2
+0

1
0

2
)
por lo que

2
=
J
Jt
oI
o0
2


oI
o0
2

y obtenemos

2
= (I
2
+m
2
(o
2
2
+l
1
o
2
c2))0

1
+(I
2
+m
2
o
2
2
)0

2
+(m
2
l
1
o
2
s2)0

1
2

(3.18)
Los torques en las articulaciones pueden ser escritos en la siguiente forma ge-
neral
z = B(q)q +C(q, q )q (3.19)
donde
q = _
0
1
0
2
_ q = _
0

1
0

2
_ q = _
0

1
0

2
_
el vector z = j

2
[ es el vector de torques.
El primer trmino del lado derecho de la ecuacin (3.19) se denomina trmi-
no inercial. En nuestro caso es una matriz de 2x2.
B(q) = _
I
1
+I
2
+m
1
o
1
2
+m
2
(l
1
2
+o
2
2
+2l
1
o
2
c2) I
2
+m
2
(o
2
2
+l
1
o
2
c2)
I
2
+m
2
(o
2
2
+l
1
o
2
c2) I
2
+m
2
o
2
2
_
El segundo trmino del lado derecho de la ecuacin (3.19) se denomina
trmino de Coriolis e incluye efectos centrfugos y de velocidad. Tambin es una
matriz de 2x2.
26

C(q, q ) = _
2m
2
l
1
o
2
s20

2
m
2
l
1
o
2
s20

2
m
2
l
1
o
2
s20

1
u
_
La ecuacin (3.19) es an incompleta, no estn incluidos los efectos de fric-
cin en las articulaciones ni los efectos de friccin del plano de trabajo sobre la
herramienta de trabajo ubicada en el efector final.
Ya que los actuadores, que son motores elctricos con reduccin, estn aco-
plados directamente a las articulaciones, la friccin en las articulaciones ser consi-
derada en el modelado del motor (seccin 3.2.1).
Al pasar la herramienta de trabajo por el plano de trabajo se genera una
fuerza de friccin sobre el efector final que se opone al movimiento de ste. Parte de
los torques
1
,
2
es usada para equilibrar los torques inducidos en las articulaciones
por las fuerzas de contacto herramienta-plano de trabajo ([2], pg. 257). De manera
anloga a (3.15) tales torques estn dados por
z
J
= ]
T
(q)J
Como un modelo simplificado de la friccin, sta se supondr constante en
mdulo y en sentido opuesto al movimiento de la herramienta. Como se dijo antes, J
es la fuerza ejercida por el brazo robot sobre el entorno, por lo que J es igual y
opuesta a las fuerzas de friccin. Entonces
J =

u
u

donde

= constontc y u
u
es un vector unitario en la direccin de la velocidad del
efector final. Recordando la ecuacin (3.9), ste vector unitario es igual a:
u
u
=
1
x
2
+y
2
_
x
y
_ =
1
[ x [
x =
1
[ ](q)q [
](q)q
por lo que
J =

[ ](q)q [
](q)q (3.20)
entonces
27

z
J
=

[ ](q)q [
]
T
(q)](q)q (3.21)
Agregando el trmino z
J
en la ecuacin (3.19):
z = B(q)q +C(q, q )q +z
J
(q, q ) (3.22)
la ecuacin anterior representa el modelo dinmico del brazo robot. Dado cierto mo-
vimiento del brazo robot, determinado por ciertas posiciones, velocidades y acelera-
ciones articulares q, q , q , podemos hallar los torques necesarios z, para causar tal
movimiento.
En robtica se habla de modelo dinmico directo cuando las ecuaciones per-
miten determinar el movimiento articular a partir de los torques o fuerzas que pro-
ducen este movimiento y se habla de modelo dinmico inverso cuando las ecuaciones
permiten determinar los torques (o fuerzas) a partir del movimiento articular. La
ecuacin (3.22) representa el modelo dinmico inverso del brazo robot: z = z(q, q , q ).

3.2 Modelamiento de Actuadores y Sensores
3.2.1 Modelamiento de los motores dc
Por las consideraciones hechas al comienzo del captulo, se eligieron servomo-
tores dc (TowerPro SG-5010). Un servomotor consiste bsicamente en un motor dc,
un potencimetro como sensor, una reduccin de engranes y un sistema de control
con circuito integrado. El sistema de control que viene incluido con los servomotores
usa generalmente un control proporcional o un control PID de parmetros fijos, este
controlador es muy til para determinadas aplicaciones pero cuando se lo desea para
la aplicacin de algn tipo de control ms elaborado, como el que se usar en la pre-
sente tesis, se vuelven algo intiles. Es sencillo extraer este circuito de control para
remplazarlo por uno propio de acuerdo a nuestras necesidades y eso es lo que se
hizo.
28

En esta seccin nos ocuparemos de modelar el motor dc junto con la reduc-
cin de engranes.
La ecuacin (3.22) nos dice cuales son los torques necesarios z, para causar
determinado movimiento del brazo robot. Estos torques son ejercidos por los moto-
res luego de pasar por la reduccin de engranes. Los motores sern controlados por
voltaje, es decir, se variar el voltaje aplicado a cada motor para conseguir diversos
torques.
Figura 3.11 Modelo de un motor dc con reduccin

Fuente: Elaboracin propia
En la Figura 3.11 se observa el modelo de un motor dc con reduccin. Un
campo magntico es desarrollado por imanes estacionarios permanentes llamado
campo fijo ([5], pg. 79-82). Un circuito rotatorio llamado armadura, a travs del
cual fluye una corriente i, pasa a travez de este campo magnetico y experimenta una
fuerza F = li, donde es la intensidad del campo magntico y l es la longitud del
conductor. El torque resultante gira el rotor, la parte rotativa del motor. As, el tor-
que desarrollado por el motor (antes de la reduccin de engranes) es proporcional a
la corriente de armadura.

= K
t
i (3.23)
29

donde K
t
es una constante de proporcionalidad llamada constante de torque del mo-
tor.
Un conductor movindose en ngulos rectos respecto de un campo magntico
genera un voltaje en sus terminales igual a c = l:, donde c es el voltaje y : la ve-
locidad del conductor normal al campo magntico. Ya que la armadura est rotando
en un campo magntico, el voltaje es proporcional a la velocidad angular. As,
:

= K

(3.24)
:

es llamado fuerza contra-electromotriz, K

es una constante de proporcionalidad


llamada constante de fuerza contra-electromotriz, y 0

es la velocidad angular del


motor (antes de la reduccin de engranes). En un consistente sistema de unidades
(como el Sistema Internacional de Unidades) el valor de K

es igual al valor de K
t
,
como se puede demostrar esto debe ser as por el principio de conservacin de la
energa.
Usando la ley de tensiones de Kirchhoff en el circuito de la armadura,
tenemos
: = Ri +I
Ji
Jt
+:


Tal como se plantea en ([5], pg. 81) si se asume que I es pequeo compara-
do con R, lo cual es usual en motores dc, y usando tambin (3.23) y (3.24) podemos
reescribir la ecuacin anterior como
: = R

K
t
+K

(3.25)
La reduccin de engranes se modela como un par de engranes con nmeros
de dientes n
1
y n
2
con n
1
n
2
, esto nos lleva a
=
n
2
n
1
=
r
2
r
1
=
0

=
0

(3.26)
donde r
1
y r
2
son los radios de los engranes.
30

Al considerar la friccin, se la model como la suma de la friccin viscosa y la
friccin de Coulomb ([2], pg. 257). La friccin viscosa es proporcional a la velocidad

= , siendo la velocidad angular y


]

un torque que se opone a . La fric-


cin de Coulomb es constante en modulo y solo depende del sentido de , la pode-
mos representar como
]

= J sgn(), donde sgn es la funcin signo. Entonces


para el eje del rotor en la Figura 3.11 tenemos

]
=

sgn(0

) (3.27)
y para el eje de salida tenemos

]
=

sgn(0

) (3.28)
donde
]
y
]
son los torques producidos por las fuerzas de friccin. Queda claro que

, J

, J

son constantes.
Ahora consideramos la fuerza tangencial F que debe existir entre los dos en-
granes n
1
y n
2
de la Figura 3.11 y aplicamos para cada eje la ley del movimiento de
rotacin de un slido rgido:
torqcs = momcnto Jc incrcio occlcrocion onglor
obtenemos

+
]
Fr
1
=


y
+Fr
2
+
]
= u
eliminando F de ambas ecuaciones y despejando

obtenemos

=
r
1
r
2
(
]
)
]
+


reemplazando

en (3.25)
: =
R
K
t
_
r
1
r
2
(
]
)

]
+

] +K


31

reemplazando los valores de
]
y
]
de las ecuaciones (3.28) y (3.27) y usando la
ecuacin (3.26) en la ecuacin anterior obtenemos finalmente
: =
R

K
t
0

+K

+
R
K
t
0

+
RJ
K
t
sgn(0

) +
R
K
t
(3.29)
donde
=

J =
J

+J


La ecuacin (3.29) puede ser reescrita como
: = o0

+0

+sgn(0

) + (3.30)
considerando los dos motores tenemos:
:
1
= o
1
0

1
+
1
0

1
+
1
sgn(0

1
) +
1

1

:
2
= o
2
0

2
+
2
0

2
+
2
sgn(0

2
) +
2

2

las dos ecuaciones anteriores pueden ser escritas como
u = q +q +sgn(q ) +z (3.31)
donde u = j
:
1
:
2
[, = _
o
1
u
u o
2
_, = _

1
u
u
2
_, = _

1
u
u
2
_ y = _

1
u
u
2
_
la ecuacin anterior representa el modelo dinmico de los motores con reduccin.
Dadas ciertas velocidades y aceleraciones articulares q , q requeridas, y dados ciertos
torques requeridos (3.22), podemos hallar los voltajes que son necesarios aplicar a los
motores.

3.2.2 Modelamiento del actuador del efector final
Como se dijo al inicio del captulo, se escogi el servomotor Mystery SD90
como actuador del efector final. El efector final tiene la tarea de subir y bajar la
herramienta de trabajo ya que si no solo se podra hacer un trazo continuo. Ya que
32

la tarea a realizar es bastante simple, se utilizara el controlador que viene con el
servomotor, es decir se utilizar el servomotor sin modificarlo.
Como se dijo antes un servomotor consiste en un motor dc, un potencime-
tro, una reduccin de engranes y un circuito de control. El controlador ejerce un
control de posicin sobre el eje de salida, es decir mediante una seal le decimos al
servomotor a qu posicin debe ir y ste va hacia esa posicin. Los servomotores se
controlan mediante impulsos de ancho variable que deben refrescarse peridicamente
cada aproximadamente 20 ms (Figura 3.12), de acuerdo al ancho del impulso el ser-
vomotor se ubicar (o tratar de ubicarse) en determinada posicin. Para el servo-
motor en cuestin tenemos la siguiente relacin
0
c
= n
o
t
u.S
2
(3.32)
donde 0
c
es el ngulo en radianes a donde se le ordena ir al servomotor, o
t
es el an-
cho del impulso en milisegundos. El servomotor abarca poco mas de n rad, por lo
que o
t
va desde 0.5 a 2.5 ms. Otros servomotores pueden tener otros rangos de valo-
res para 0
c
y o
t
.
Figura 3.12 Seal de control para el servomotor

Fuente: Elaboracin propia

3.2.3 Modelamiento de los sensores
Como se dijo antes, el sensor a utilizar es el potencimetro que viene integra-
do en el servomotor, al extraer el circuito de control quedan libres las tres terminales
33

del potencimetro. Un potencimetro es un dispositivo electromecnico que consiste
en una resistencia de valor fijo sobre la que se desplaza un contacto deslizante. El eje
del potencimetro est localizado en el eje de salida del servomotor de tal manera
que queda acoplado con el eje articular (Figura 3.13).
Figura 3.13 Potencimetro

Fuente: [1], pg. 52
La resistencia del potencimetro a lo largo de

es igual a R, mientras que


r representa la resistencia de la parte

. El ngulo del contacto deslizante con


respecto a la referencia es denotado por 0. Cuando la resistencia fija circular es
uniforme y cuando la distancia entre los punto y es despreciable, podemos escri-
bir
r
R
=

=
0
2n

Si el potencimetro es alimentado por el voltaje

, el voltaje de salida me-


dido en el contacto cumple con

ot

=
r
R
=
0
2n

o tambin
0 =
2n

ot

Como se ver en la seccin 3.5 el voltaje
ot
es medido por un microcontro-
lador y transformado a un valor digital, con la siguiente relacin
34

ot
=
S
1u2S
s
ot

donde s
ot
es el valor digital del voltaje de salida
ot
. s
ot
puede ir desde u o 1u2S,
y
ot
de u o S .
A partir de las dos ecuaciones anteriores tenemos
0 =
2n

S
1u2S
s
ot

Un modelo ms exacto considerando que existe un desfase, es decir 0 u
cuando el contacto deslizante esta en , y que la distancia entre los punto y no
es despreciable, es el siguiente
0 = s
ot
+q (3.33)
para los dos sensores de los dos motores tenemos
0
1
=
1
s
ot
1
+q
1
(3.34)
0
2
=
2
s
ot
2
+q
2
(3.35)
donde
1
debera ser igual a
2
, pero puede variar ya que los potencimetros de am-
bos motores no son exactamente iguales.
Las dos ecuaciones anteriores pueden ser escritas como
q = _
0
1
0
2
_ = _

1
u
u
2
_ _
s
ot
1
s
ot
2
_ +j
q
1
q
2
[ (3.36)

3.3 Determinacin de Parmetros
Ahora que ya tenemos el modelo dinmico del brazo robot (3.22), el modelo
dinmico de los motores dc con reduccin (3.31), el modelo simplificado del actuador
del efector final (3.32), y el modelo de los sensores (3.36), vemos que existen par-
35

metros (constantes) que debemos determinar. Para determinar el valor de tales
parmetros se utilizaron diversos mtodos, como se ver a continuacin.

3.3.1 Determinacin de parmetros de los motores dc
Aunque un motor dc con reduccin tiene varios parmetros, a decir
R, I, K
t
= K

, J

, J

, n
1
, n
2
(seccin 3.2.1) no es necesario conocerlos todos
para determinar el comportamiento del motor (al menos el comportamiento de las
variables de inters). La ecuacin (3.30) nos dice que solo necesitamos conocer cua-
tro parmetros: o, , y .
Se han desarrollado muchos mtodos para determinar los parmetros de un
motor dc, muchos de ellos incluyen herramientas tales como voltmetros, amperme-
tros y dinammetros, adems de un sistema de adquisicin de datos.
Aqu se ha desarrollado un mtodo simple basado en la respuesta en posicin
0 a un estmulo de voltaje : constante. Para ello solo se utiliza un sistema de adqui-
sicin de datos hecho con el microcontrolador PIC 16F877A. Este mtodo nos per-
mitir hallar los valores de los parmetros o, , y . Se utilizaron algunas ideas
desarrolladas en [8].
Aplicamos un voltaje constante :
0
para t > u, con las condiciones iniciales
0

= u, 0

= u . Si el eje de salida del motor no est acoplado a nada, es decir = u,


tenemos a partir de (3.30) que
:
0
= o0

+0

+sgn(0

) (3.37)
Ahora trataremos de hallar 0 = 0(t). Para que el motor empiece su movi-
miento :
0
debe ser mayor que sgn(0

) y considerando el movimiento en la direccin


positiva, es decir, 0

u, tenemos
(:
0
) = o0

+0


la solucin para esta ecuacin diferencial es
36

(3.38)
0

= _
:
0

] (1 c
-
[
u
t
)
simplificada como:
0

= k
1
(1 c
-k
2
t
)
donde
k
1
= _
:
0

] k
2
=

o

por lo que
0 = _0

= k
1
t +
k
1
k
2
(c
-k
2
t
) +
con = constontc.
Aplicamos cierto voltaje :
0
al motor y obtenemos 0(t) mediante el sistema
de adquisicin de datos (puntos azules en Figura 3.14), luego hacemos un ajuste de
curva segn la ecuacin (3.38) con ayuda del software MATLAB (lnea roja en Figu-
ra 3.14) y obtenemos los parmetros k
1
y k
2
. El cdigo se muestra en el Anexo A.1.
Ahora que conocemos k
1
y k
2
tenemos el siguiente sistema de ecuaciones
j
:
0
u
[ = _
u k
1
1
k
2
1 u
_ _
o

_
como vemos tenemos tres incgnitas y dos ecuaciones, lo que significa que al menos
debemos repetir el experimento para dos voltajes :
0
distintos. La experiencia nos
dice que mientras ms datos tengamos mayor ser la exactitud de los valores obte-
nidos. Supongamos que realizamos n experimentos con n voltajes diferentes
:
0
1
, :
0
2
, ., :
0
n
, tendramos el siguiente sistema de ecuaciones:
37

l
l
l
l
l
l
l
:
0
1
u
:
0
2
u
.
:
0
n
u
1
1
1
1
1
1
1
=
l
l
l
l
l
l
l
l
u k
1
1
1
k
2
1
1 u
u k
1
2
1
k
2
2
1 u
. . .
u k
1
n
1
k
2
n
1 u
1
1
1
1
1
1
1
1
_
o

_
el cual es resuelto mediante el mtodo de mnimos cuadrados. Se obtuvo los siguien-
tes resultados para ambos motores:
o
1
= u.u749 vs
2

1
= u.422 vs
1
= u.7Su v
o
2
= u.u7uS vs
2

2
= u.4S1 vs
2
= u.68u v
Figura 3.14 Ajuste de curva

Fuente: Elaboracin propia
Ahora solo nos falta determinar , para ello debe ser diferente de u en
(3.30). Supongamos que conectamos al eje de salida del motor una inercia con mo-
mento de inercia
c
respecto del eje de salida del motor, entonces el torque es igual
a:
=
c
0


reemplazando en la ecuacin (3.30) para un voltaje : constante tenemos
38

:
0
= (o +
c
)0

+0

+sgn(0

)
o
:
0
= o0

+0

+sgn(0

)
con o

= o +
c

la ecuacin anterior tiene la misma forma que (3.37) por lo que aplicamos exacta-
mente el mismo procedimiento que se explico en los prrafos anteriores, los valores
obtenidos para y de deben ser similares a los del primer experimento, es de espe-
rarse que o tenga un mayor valor que o.
Ya que tenemos o

y o , adems que la inercia


c
es conocida, podemos hallar
mediante
=
o

c

se obtuvo para ambos motores:

1
= 22.1 vNm
2
= 26.S vNm

3.3.2 Determinacin de parmetros del brazo robot
El modelo dinmico del brazo robot (3.22) tiene los siguientes parmetros:
l
1
, l
2
, o
1
, o
2
, m
1
, m
2
, I
1
, I
2
y

, los cuales deben ser hallados.


l
1
y l
2
fueron preestablecidos como l
1
= l
2
= 12u mm. Luego del proceso de
construccin del prototipo puede que ni l
1
ni l
2
sean exactamente 12u mm, podran
estas longitudes variar en unas decimas o quiz en algunos milmetros. En la seccin
3.3.3 se ver cmo pueden conocerse con mayor exactitud los valores de l
1
y l
2
luego
de construido el prototipo.
o

, i = 1,2 es la distancia de la articulacin i al centro de masa del eslabn i.


Para determinar estos valores simplemente se ubico cada eslabn suelto sobre una
lnea de apoyo, cuando el eslabn se encuentre en equilibrio, su centro de masa es-
39

tar encima de la lnea de apoyo. Conocida la posicin del centro de masa y de la
articulacin, podemos hallar o

. Se obtuvo o
1
= 62 mm, o
2
= 66 mm.
Las masas m
1
y m
2
fueron halladas con una balanza. Se obtuvo m
1
= 1uu g,
m
2
= 8S g. Cabe sealar que m
2
incluye la masa del efector final y de la herramien-
ta de trabajo.

Determinacin de inercias
Aunque se podra haber hallado I
1
e I
2
mediante un modelo CAD, se prefiri
hacerlo mediante un mtodo experimental usando los principios que gobiernan un
pndulo fsico.
Un pndulo fsico es un cuerpo rgido que puede oscilar libremente en el
campo gravitatorio alrededor de un eje horizontal fijo, que no pase por su centro de
masa. En el caso de que la amplitud angular de las oscilaciones sea pequea, el pe-
riodo de la oscilacin es
I = 2n_
I
o
mgo

donde I
o
es el momento de inercia del cuerpo respecto al eje de oscilacin, m la masa
del cuerpo, o la distancia del centro de masa al eje de oscilacin y g la aceleracin
de la gravedad.
A cada eslabn i se lo hace oscilar alrededor de un eje que pase por la articu-
lacin i y se mide el periodo de oscilacin I (es mucho ms preciso medir el tiempo
de muchas oscilaciones consecutivas y luego dividir este valor entre el numero de
oscilaciones), ya que son conocidos los valores de m y o para cada eslabn, podemos
hallar I
o
mediante la ecuacin anterior.
Pero lo que nos interesa conocer es el momento de inercia respecto al centro
de masa I
cg
= I. Usando el teorema de ejes paralelos tenemos
40

I
o
= I +mo
2

por lo que
I = mo
gI
2
4n
2
o
mediante la ecuacin anterior se obtuvo I
1
= 1.41 1u
-4
kg m
2
, I
2
= 1.Su
1u
-4
kg m
2
.

Determinacin de la fuerza de friccin
Para determinar el valor de

realizaremos un experimento similar al descri-


to en la seccin 3.3.1. Obviamente

depende de las caractersticas de la herramien-


ta de trabajo y de la superficie de trabajo, aqu se hallo

para un lapicero sobre


papel.
Supongamos que conectamos al eje de salida del motor 1 el brazo robot ex-
tendido (0
2
= u), este tendr una inercia respecto del eje de salida del motor

c
= I
1
+m
1
o
1
2
+I
2
+m
2
(l
1
+o
2
)
2

c
= SS.88 1u
-4
kg m
2

adems, la herramienta de trabajo est en rozamiento con el entorno, entonces el
torque en (3.30) es igual a
=
c
0

r
donde r = l
1
+l
2
= 24u mm
Reemplazando en (3.30) para un voltaje : constante tenemos
:
0
= (o
1
+
1

c
)0

+
1
0

+
1
sgn(0

) +
1

r
o tambin
(:
0

1

r) = (o
1
+
1

c
)0

+
1
0

+
1
sgn(0

)
41

la ecuacin anterior tiene la misma forma que la ecuacin (3.37) por lo que aplica-
mos exactamente el mismo procedimiento que se explico en la seccin 3.3.1, tenemos:
0

= _
:
0

1

1

1
] (1 c
-
[
1
u
1
+c
1
]
c
t
)
o tambin
0

= k
1
(1 c
-k
2
t
)
donde
k
1
= _
:
0

1

1

1
] k
2
=

1
o
1
+
1

c

Para hallar

solo nos interesa k


1
, ste se halla mediante un ajuste de curva
como se explico anteriormente. Entonces tenemos

=
:
0

1
k
1

1
r

Se realizo el experimento para diversos valores de :
0
y se obtuvo como media

= u.286 N

3.3.3 Calibracin Cinemtica
En este punto solo nos falta determinar los valores
1
,
2
, q
1
y q
2
de las ecua-
ciones (3.34) y (3.35). Aprovecharemos tambin para determinar valores ms exactos
de l
1
y l
2
. Los parmetros que se acaban de nombrar deben ser lo ms exactos posi-
bles con el fin de mejorar la exactitud del brazo robot. Las tcnicas de calibracin
cinemtica estn destinadas a encontrar estimaciones exactas de los parmetros de
DenavitHartenberg en base a una serie de mediciones de la posicin del efector
final.
Las ecuaciones (3.3) y (3.4) pueden ser reescritas usando las ecuaciones (3.34)
y (3.35) como
42

x = l
1
cos [
1
s
ot
1
+q
1
+l
2
cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

y = l
1
scn [
1
s
ot
1
+q
1
+l
2
scn [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

es decir la ecuacin (3.5) ahora es
x = j
x
y
[ = k(l
1
, l
2
,
1
,
2
, q
1
, q
2
, s
ot
1
, s
ot
2
) (3.39)
Sea x

la posicin medida (real) del efector final y x

la posicin nominal
que puede ser calculada mediante la ecuacin anterior con los valores nominales de
los parmetros l
1
, l
2
,
1
,
2
, q
1
y q
2
y los valores de los sensores s
ot
1
y s
ot
2
.
Entindase por valores nominales a los valores que en general vienen con la
hoja de datos del brazo robot, pero que en nuestro caso son mediciones burdas
hechas de tales parmetros. Los valores nominales de l
1
y l
2
son los valores prees-
tablecidos para el prototipo: l
1
= l
2
= 12u mm. Los valores nominales de
1
,
2
, q
1
y
q
2
fueron hallados con un trasportador, se media el ngulo para cada valor de s
ot
y
se hallaban los valores de y q segn (3.33), obviamente estos valores hallados
estn lejos de ser exactos.
La desviacin Ax = x

nos da una medida de la exactitud en cierta pos-


tura del brazo robot (postura determinada por s
ot
1
y s
ot
2
). Si suponemos que es-
tas desviaciones son pequeas, como aproximacin, es posible escribir la siguiente
relacin a partir de (3.39):
Ax =
ok
ol
1
Al
1
+
ok
ol
2
Al
2
+
ok
o
1
A
1
+
ok
o
2
A
2
+
ok
oq
1
Aq
1
+
ok
oq
2
Aq
2
+
ok
os
ot
1
As
ot
1
+
ok
os
ot
2
As
ot
2

donde Al
1
, Al
2
, A
1
, A
2
, Aq
1
, Aq
2
denota las desviaciones entre los valores de los
parmetros de la estructura real y los valores nominales de tales parmetros.
43


(3.40)
La posicin medida x

es funcin de ciertos s
ot
1
y s
ot
2
, y la posicin no-
minal x

es calculada con los mismos valores dados por los sensores, s


ot
1
y s
ot
2
,
por lo que As
ot
1
= As
ot
2
= u. Entonces podemos escribir
Ax = _
Ax
Ay
_ =
l
l
l
l
l
ox
ol
1
ox
ol
2
ox
o
1
ox
o
2
ox
oq
1
ox
oq
2
oy
ol
1
oy
ol
2
oy
o
1
oy
o
2
oy
oq
1
oy
oq
2
1
1
1
1
1
l
l
l
l
l
l
Al
1
Al
2
A
1
A
2
Aq
1
Aq
2
1
1
1
1
1
1

con:
ox
ol
1
= cos [
1
s
ot
1
+q
1

ox
ol
2
= cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

ox
o
1
= s
ot
1
l
1
scn [
1
s
ot
1
+q
1
s
ot
1
l
2
scn[
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

ox
o
2
= s
ot
2
l
2
scn[
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

ox
oq
1
= l
1
scn [
1
s
ot
1
+q
1
l
2
scn[
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

ox
oq
2
= l
2
scn [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

oy
ol
1
= sen[
1
s
ot
1
+q
1

oy
ol
2
= sen[
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

oy
o
1
= s
ot
1
l
1
cos [
1
s
ot
1
+q
1
+s
ot
1
l
2
cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

oy
o
2
= s
ot
2
l
2
cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

oy
oq
1
= l
1
cos [
1
s
ot
1
+q
1
+l
2
cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

44

oy
oq
2
= l
2
cos [
1
s
ot
1
+q
1
+
2
s
ot
2
+q
2

La ecuacin (3.40) puede ser escrita como
Ax = 4(

)A
con
A =
l
l
l
l
l
l
Al
1
Al
2
A
1
A
2
Aq
1
Aq
2
1
1
1
1
1
1
4(

) =
l
l
l
l
l
ox
ol
1
ox
ol
2
ox
o
1
ox
o
2
ox
oq
1
ox
oq
2
oy
ol
1
oy
ol
2
oy
o
1
oy
o
2
oy
oq
1
oy
oq
2
1
1
1
1
1

Podemos calcular A conociendo

, x

y el valor medido x

. Sin embargo
vemos que tenemos 6 incgnitas pero solo 2 ecuaciones, lo que implica que debemos
realizar mediciones para al menos 3 posturas diferentes del brazo robot, mientras
ms mediciones se tengan, mayor ser la exactitud de los resultados.
Si realizamos mediciones para k > S posturas diferentes del brazo robot,
tendramos el sistema de ecuaciones:
Ax = _
Ax
1
Ax
2
.
Ax
k
_ = _
4
1
4
2
.
4
k
_ A = 4

A
el cual podemos resolver mediante el mtodo de mnimos cuadrados.
Entonces, la primera estimacin de parmetros est dada por

+A
La ecuacin anterior nos dice que los parmetros estimados

pueden ser
hallados a partir de los parmetros nominales

y de la desviacin calculada A.
Ya que este es un problema de estimacin no lineal, el procedimiento debe
ser repetido hasta que A converja a valores cercanos a cero. El proceso de calibra-
cin fue desarrollado en MATLAB (Anexo A.2). Se obtuvo l
1
= 121.Su mm, l
2
=
122.76 mm,
1
= u.uuS292,
2
= u.uuS988, q
1
= u.767S, q
2
= S.72S.
45

3.4 Diseo de la Parte Mecnica
Espacio de trabajo
El espacio de trabajo de un robot consiste en todos los puntos que pueden ser
alcanzados por el efector final del robot. En nuestro caso el espacio de trabajo con-
siste en una determinada rea. Los servomotores usados tienen un rango de movi-
miento de poco mas de 180 por lo que de acuerdo a como est colocado el motor 2
(articulacin 2) tendremos diferentes espacios o reas de trabajo. Como se demuestra
en ([1], pg. 42), se consigue la mayor rea de trabajo cuando l
1
= l
2
, y eso fue lo
que se consider. En la Figura 3.15 se observan los diferentes espacios de trabajo
para diversas posiciones del motor 2: Lineal, perpendicular y en superposicin.
Figura 3.15 Espacio de trabajo para varias configuraciones

Fuente: [6], pg. 17
Se descarta la configuracin lineal ya que tiene muy poco espacio de trabajo,
y se descarta la configuracin en superposicin por las limitaciones mecnicas que
46

puede generarse al pasar un eslabn encima del otro, por lo que se escoge la configu-
racin perpendicular.
Aunque podemos usar toda el rea de trabajo de la configuracin perpendicu-
lar, muchas veces es ms til tener un rea de trabajo de forma cuadrada o rectan-
gular, por ello se decidi reducir el rea de trabajo a un rea de trabajo reducida
de forma cuadrada, ambas se muestran en la Figura 3.16. Aunque el mximo tama-
o posible es de un cuadrado de aproximadamente 20 cm de lado, se decidi usar un
rea de trabajo reducida cuadrada de 16 cm de lado ya que existen limitaciones
mecnicas en el centro del espacio de trabajo adems de que la precisin del brazo
robot disminuye en los puntos ms alejados del centro (cerca el permetro).
Figura 3.16 rea de trabajo total y rea de trabajo reducida

Fuente: Elaboracin propia

Actuadores
Se decidi usar como actuadores los servomotores TowerPro SG-5010 (Figura
3.17), stos incluyen un motor dc, una caja de reduccin, un sensor de posicin (po-
tencimetro) y un pequeo circuito de control integrado. Cabe sealar que la elec-
cin del motor no es crtica ya que se trabajar a bajas velocidades y por ende bajos
torques.

Las principales caractersticas (no se consideran caractersticas relacionadas
con el circuito de control ya que ste ser extrado) del servomotor TowerPro SG
5010 son las siguientes:
Peso = 38 g
Medidas = 402043 mm
Torque con rotor parado = 0.540 N m (4.8 V), 0.638 N m (6 V)
Velocidad de operacin = 0.2 s/60 (4.8 V), 0.16 s/60 (6 V)
Voltaje de operacin = 4.8
Figura 3.17
A continuacin se comprobar si los motores elegidos pueden cumplir con los
requerimientos.
El torque mximo
el fabricante no da informacin sobre la potencia mxima que pu
tor, es posible hacer una estimacin. A partir de la velocidad de operacin, podemos
hallar la velocidad angular mxima que es la velocidad sin carga
En general, la curva par
taje constante es una relacin lineal inversa (Figura
Las principales caractersticas (no se consideran caractersticas relacionadas
con el circuito de control ya que ste ser extrado) del servomotor TowerPro SG
5010 son las siguientes:
Medidas = 402043 mm
Torque con rotor parado = 0.540 N m (4.8 V), 0.638 N m (6 V)
Velocidad de operacin = 0.2 s/60 (4.8 V), 0.16 s/60 (6 V)
Voltaje de operacin = 4.8 - 6 V
Figura 3.17 Servomotor TowerPro SG-5010
Fuente: http://www.towerpro.com.tw
A continuacin se comprobar si los motores elegidos pueden cumplir con los
El torque mximo
s
que puede entregar el motor es de 0.638 N m. Aunque
el fabricante no da informacin sobre la potencia mxima que pu
tor, es posible hacer una estimacin. A partir de la velocidad de operacin, podemos
hallar la velocidad angular mxima que es la velocidad sin carga

=
'0
1)0

0,1'
',&% HG"
En general, la curva par-velocidad de un motor dc al que se le aplica un vo
taje constante es una relacin lineal inversa (Figura 3.18) dada por:
47
Las principales caractersticas (no se consideran caractersticas relacionadas
con el circuito de control ya que ste ser extrado) del servomotor TowerPro SG-
Torque con rotor parado = 0.540 N m (4.8 V), 0.638 N m (6 V)
Velocidad de operacin = 0.2 s/60 (4.8 V), 0.16 s/60 (6 V)


A continuacin se comprobar si los motores elegidos pueden cumplir con los
que puede entregar el motor es de 0.638 N m. Aunque
el fabricante no da informacin sobre la potencia mxima que puede entregar el mo-
tor, es posible hacer una estimacin. A partir de la velocidad de operacin, podemos

:
e se le aplica un vol-
) dada por:
48

s s

K1

]
Figura 3.18 Curva par-velocidad de un motor dc

Fuente: Elaboracin propia
Entonces la potencia P que entrega el motor es:
P = =
s
_1

]
la potencia es mxima para =

2, entonces:
P
ux
=
s
_1
1
2
]

2

reemplazando obtenemos
P
ux
= 1.u4S W
la cual es la potencia mxima que puede entregar el motor.
Ahora veamos cuales son los requerimientos del brazo robot. Ya que vamos a
trabajar a velocidades bajas, podemos considerar 0

= u, 0

= u, entonces, el nico
torque que tiene que vencer el motor es el causado por la friccin

de la ecuacin
(3.21), este torque es mximo para el motor 1 cuando el brazo robot est extendido,
es igual a

(l
1
+l
2
) = u.286 (u.12 +u.12) = u.u69 N m, el cual es mucho menor que

s
.
Suponiendo que las velocidades de trabajo las limitaremos por
49


#
$.27 roJs
la potencia mxima que podra entregar el motor 1 es:
P
1
= u.226 W
sta potencia es menor que P
ux
.

Transmisin de potencia
La transmisin de potencia es la forma en cmo la potencia se transmite des-
de los actuadores hacia los eslabones, en muchos brazos robot es usual encontrar
correas de transmisin como tambin reducciones de engranes. Una correa de trans-
misin es til por ejemplo cuando los ejes del motor y del eslabn no son los mismos.
Una reduccin de engranes es til cuando se desea un mayor torque del que provee
el motor dc, en general cada etapa de la reduccin es 90% eficiente. Ya que el rango
de movimiento de los servomotores est limitado a 180, una reduccin de engranes
limitara an ms este rango, adems, los servomotores ya cuentan con una reduc-
cin interna.
Mover los eslabones mediante un acoplamiento directo a los motores es lo
que se conoce como accionamiento directo y tiene la ventaja de no generar ningu-
na prdida de potencia, adems de que es ms simple de implementar y ms barata
ya que cuenta con menos partes.
El servomotor viene con un componente plstico denominado servo-horn
que conecta el eje de salida del servomotor con cualquier otro elemento. El servo-
horn encaja perfectamente en el eje de salida ranurado del servomotor adems es
ajustado mediante un perno. Los servo-horns fueron agujereados con el mismo
patrn que los eslabones y luego conectados mediante pernos.
Cada eje de rotacin debe soportar el peso de la estructura, el eje del motor 1
soporta el peso de los dos eslabones mientras que el eje del motor 2 soporta solo el
peso del segundo eslabn. En forma general (motor 1 o motor 2), el eje del motor
50

soporta una fuerza a

a una distancia

(donde est ubicado el centro de masa),


esto es equivalente a una fuerza a

sobre el eje de rotacin sumado a un torque


s

.
Aunque la gravedad no ejerce torques en la direccin del eje de rotacin de
cada motor (eje vertical), si lo hace en los dos ejes perpendiculares a ste (plano
horizontal). Estos torques s

generan fuerzas entre el eje de rotacin y los elementos


que soportan ste eje, estas fuerzas aumentan el rozamiento el cual a su vez genera
torques de friccin en la direccin del eje de rotacin afectando el desempeo del
brazo robot. Este rozamiento podra generar desgaste significativo en algunos casos.
Los elementos que soportan el eje de rotacin deben entonces soportar el peso
mismo a

y el torque s

, la solucin clsica a esta necesidad son los rodamientos. Los


servomotores TowerPro SG-5010 incluyen 2 pequeos rodamientos de bolas que so-
portan el eje de salida del servomotor. El motor 1 claramente soporta mucha ms
carga que el motor 2, debe soportar el peso de los dos eslabones ms el peso del mo-
tor 2 ms el peso del efector final. El peso que soporta el motor 1 depende de la pos-
tura que tenga el brazo robot y es mximo cuando el brazo est extendido.
Con el fin de evitar un desgaste prematuro de los rodamientos del motor 1,
se decidi colocar un rodamiento adicional. Este rodamiento con capacidades de car-
ga mucho mayores que los propios del servomotor debe ser alineado lo ms preciso
posible con el eje de salida del servomotor para evitar esfuerzos adicionales.
El rodamiento fue colocado con elementos simples no maquinados. Se usaron
4 pernos para mantener fijo el rodamiento a la base del robot y se uso un perno co-
mo eje, este eje es conectado de manera rgida al eslabn 1 mediante un conector de
aluminio.

Eslabones
Los eslabones son los elementos mecnicos de conexin, el eslabn 1 conecta
el motor 1 que esta fijo a la base con el motor 2 y el eslabn 2 conecta el motor 2
51

con el efector final. En cuanto al uso de materiales, existen diversas opciones: made-
ra, ABS (plstico), aluminio o cualquier otro siempre que pueda soportar las cargas
con poca deflexin.
Se opto por usar aluminio, en concreto perfiles de aluminio ya que existen en
muchas formas y por tal ahorran el costo en general elevado del maquinado. Se uso
un perfil en forma de T para ambos eslabones, el perfil usado en el eslabn 1 tiene
mayor espesor que el del eslabn 2 ya que soporta mayores cargas.

Efector final
En nuestro caso el efector final tiene la tarea de subir y bajar la herramienta
de trabajo con el fin de no hacer solo un trazo continuo.
El actuador del efector final debe oscilar entre dos posiciones preestablecidas
(arriba y abajo) con suficiente precisin como para que el extremo de la herramienta
de trabajo (punta) siempre se encuentre justo sobre la superficie de trabajo.
Para esta tarea puede usarse el mecanismo de husillo, un actuador neumti-
co, un mecanismo de cuatro barras, un motor de bobina de voz o muchas otras op-
ciones. Se eligi el mecanismo ms sencillo que consiste en un motor fijo al eslabn 2
cuyo eje esta acoplado a un pequeo brazo de rotacin, en el extremo de este peque-
o brazo se encuentra la herramienta de trabajo (Figura 3.19).
Ya que la herramienta de trabajo debe tener la facilidad de poderse poner y
sacar de forma rpida, mediante remaches se uni al brazo de rotacin un cilindro de
aluminio. A este cilindro de aluminio se le hicieron dos agujeros roscados en los cua-
les entrarn 2 pernos, estos pernos se encargaran de ajustar y fijar la herramienta de
trabajo al cilindro.
Se escogi como actuador al servomotor Mystery SD90 ya que es ligero, pe-
queo, simple de controlar, barato y como no va a levantar mucho peso, el torque
que puede dar el servomotor es ms que suficiente.
52

Figura 3.19 Efector final

Fuente: Elaboracin propia

Construccin
En la Figura 3.20 se observa el brazo robot completo con todos sus elementos
en una vista lateral en brazo extendido, en la figura no se incluyen pernos, tuercas ni
anillos con el fin de apreciar mejor la imagen.
Todos los elementos fueron hechos con perfiles de aluminio, como herramien-
tas en la fabricacin de las piezas se usaron: sierra, taladro, tornillo de banco y mar-
tillo. Para el ensamble se usaron llaves y desarmadores.
La base es la parte que se fija al entorno, consta de dos partes unidas por
pernos; la base 1 est hecha de una platina de aluminio de 205mm1 doblada
90 por la mitad, la base 2 se une mediante dos pernos a la base 1, est hecha de un
tubo rectangular de aluminio de 30mm31 de 2.2mm de espesor al cual se le
quito una seccin en la cual se ubico el motor 1.
El rodamiento tiene dimetro interno igual a 6mm, dimetro exterior igual a
19 mm y altura igual a 6mm. El eje es un perno de 1.
53

El conector esta hecho de un tubo rectangular de aluminio de
30mm31 de 2.2mm de espesor al cual se le quito una seccin para obtener
una forma de U la cual une el eje con el eslabn 1.
El eslabn 1 est hecho de una T de aluminio de 107mm11 de 3mm de
espesor. El eslabn 2 est hecho de dos partes: una T de aluminio doblada de
107mm11 de 1.5mm de espesor unida mediante pernos a un tubo rectangular
de aluminio de 20mm21 de 1mm de espesor.
El brazo de rotacin del efector final est hecho de una platina de aluminio
de 50mm11/16 unida mediante remaches con un tubo redondo de 45mm, 5/8
de dimetro y 1mm de espesor.
En las Figuras 3.21 y 3.22 se presentan fotografas del prototipo.













b
a
s
e

1
s
u
p
e
r
f
i
c
i
e
d
e

t
r
a
b
a
j
o
b
a
s
e

2
e
j
e
m
o
t
o
r

1
s
e
r
v
o
-
h
o
r
m
c
o
n
e
c
t
o
r
e
s
l
a
b
o
n

1
m
o
t
o
r

2
s
e
r
v
o
-
h
o
r
m
e
s
l
a
b
o
n

2
m
o
t
o
r
e
f
e
c
t
o
r

f
i
n
a
l
b
r
a
z
o

d
e

r
o
t
a
c
i
o
n
h
e
r
r
a
m
i
e
n
t
a
d
e

t
r
a
b
a
j
o
r
o
d
a
m
i
e
n
t
o
F
i
g
u
r
a

3
.
2
0

E
s
t
r
u
c
t
u
r
a

m
e
c
a
n
i
c
a

d
e
l

b
r
a
z
o

r
o
b
o
t

Figura 3.22




Figura 3.21 Fotografa del brazo robot

Figura 3.22 Fotografa del brazo robot (vista superior)
55

Fotografa del brazo robot (vista superior)

56

3.5 Diseo de la Parte Electrnica y de Potencia
El sistema de control ser ejecutado por una PC, a travs del software MA-
TLAB, la PC se comunicar con el brazo robot mediante comunicacin serial.
Es necesario un circuito capaz de recibir las rdenes de la PC y ejecutarlas,
para ello debe poder comunicarse de forma serial, debe poder administrar la potencia
que debe ir a cada motor y tambin debe ser capaz de adquirir datos sensados.
La solucin que se adopto fue el uso del microcontrolador PIC 16F877A de
Microchip, ste cuenta con las caractersticas que necesitamos, adems que es barato
y fcil de conseguir en el mercado local.

El microcontrolador
El microcontrolador PIC 16F877A es un circuito integrado que puede ser
programado para tareas especificas. Las partes bsicas de un microcontrolador son
tres: La unidad de procesamiento que se encarga de procesar la informacin, la me-
moria que se encarga de almacenar el programa y datos temporales, y los perifricos
que se encargan de comunicar el microcontrolador con el exterior.
El microcontrolador ejecuta una a una las rdenes que se encuentran en el
programa almacenado en su memoria. Este programa debe ser construido por el
usuario y luego transferido al microcontrolador.
Existen varios entornos de programacin (software) donde el usuario puede
programar, puede hacerlo en alto nivel, lo que significa que las instrucciones estn
adecuadas a la capacidad cognitiva humana o en bajo nivel donde las instrucciones
van de acuerdo al funcionamiento especifico de la mquina.
El programa del microcontrolador fue desarrollado con el software CCS
Compiler, a partir del programa se genera un cdigo el cual mediante un programa-
dor es transferido al microcontrolador, el programador usado fue el PICKIT 2.
57

El PIC 16F877A debe ser alimentado con corriente continua, el rango de ten-
siones de alimentacin va desde 2.0 a 5.5 V, se escogi usar 5V. El PIC tambin
debe ser conectado a un reloj u oscilador, en cada pulso del oscilador el PIC ejecuta
alguna accin.

Comunicacin serial
El PIC 16F877A tiene la posibilidad de comunicarse de forma serial con otro
dispositivo, que en este caso es la PC, sin embargo los voltajes que salen de la PC no
son compatibles con los que usa el PIC, para solucionar esto se usa el integrado
MAX232 el cual convierte las seales de un puerto serie RS-232 a seales compati-
bles con el PIC.
El cdigo que necesita el PIC para la comunicacin serial est especificado en
detalle en el Anexo A.4.

Lectura de datos analgicos
Como se vio en la seccin 3.2.3, los sensores son potencimetros, los cuales de
acuerdo al ngulo de estos, dividen la tensin de entrada. La tensin de salida es
entonces convertida en valor digital mediante el PIC.
El PIC 16F877A tiene 8 canales para leer valores analgicos de voltaje, de
stos solo usamos 2. La resolucin mxima de la conversor A/D del PIC es 10 bits lo
que significa que los valores digitales obtenidos van desde 0 hasta 2
10
-1=1023. Si el
voltaje a medir es 0V obtendremos como valor digital 0, si el voltaje a medir es 5V,
obtendremos como valor digital 1023, existiendo una relacin lineal. Los comandos
usados para la lectura de datos anlogos estn especificados en el Anexo A.4.


58

Control de la potencia en los actuadores
Como sabemos, el actuador es un motor dc que puede soportar mximo 6V.
En la seccin 3.4 se vio que una estimacin de la potencia mecnica mxima que
podra suministrar el motor era P
mux
= 1.u4S W si asumimos que la eficiencia del
motor es al menos del 75%, entonces la potencia elctrica mxima ser:
P
c,mux
=
1.u4S
u.7S
= 1.S9 W
la cual est dada para 6V, eso nos dice que la corriente mxima que puede entrar al
motor es:
I
mux
=
1.S9
6
= u.2S2 A
La ecuacin del modelo dinmico del motor (3.30) nos dice que voltaje debe-
mos aplicar al motor para determinado comportamiento de ste. Aunque no lo men-
cionamos antes, un motor puede ser controlado por voltaje o por corriente, sin em-
bargo es mucho ms fcil hacerlo por voltaje y eso fue lo que se hizo. Una forma
sencilla de producir un voltaje controlado mediante un PIC es mediante la modula-
cin por ancho de pulsos (PWM).
La modulacin por ancho de pulsos es una tcnica en la que se modifica el ci-
clo de trabajo de una seal peridica, ya sea para transmitir informacin a travs de
un canal de comunicaciones o para controlar la cantidad de energa que se enva a
una carga. En la figura 3.23 se observa una seal PWM, sta oscila entre el valor de
u y I
p
y tiene un periodo preestablecido I, la modulacin significa que podemos va-
riar el ancho de pulso o periodo en alto A, a la relacin entre el periodo en alto y el
periodo de la seal I se le conoce como ciclo de trabajo:
ct =
A
I
1uu%
El PIC 16F877A es capaz de generar seales PWM mediante los mdulos
CCP, cabe sealar que el PIC sigue ejecutando instrucciones mientras genera las
seales PWM.
59

Figura 3.23 Seal PWM

Fuente: Elaboracin propia
Aunque el PIC puede generar seales PWM de voltaje, no es capaz de sumi-
nistrar suficiente corriente como la que necesitan los motores. Para ello se utiliza un
circuito integrado llamado puente H. Un puente H controla el flujo de energa, debe
estar alimentado con una fuente que suministre la potencia elctrica necesaria para
los motores y es controlado por entradas lgicas las cuales le dicen cmo distribuir la
energa a la carga. Un puente H adems tiene la capacidad de invertir el voltaje en
sus salidas, esto nos permitir hacer girar un motor en ambos sentidos.
El integrado que hemos usado es el L298N, ste cuenta con dos puentes H
que pueden suministrar hasta 2 amperios cada uno, lo cual es ms que suficiente.
Cada puente H es controlado por tres entradas lgicas: en, in1 e in2, generando dife-
rentes funciones, segn la Tabla 3.2.
Tabla 3.2 Funcionamiento del puente H
Entradas Funcin
en=H
in1=H; in2=L avance
in1=L; in2=H retroceso
in1=in2 parada rpida
en=L in1=X; in2=X marcha libre
H=alto, L=bajo, X=no importa
Fuente: L298N Datasheet
Aunque las 3 son entradas lgicas es posible aplicar una seal PWM a cual-
quiera de ellas, por ejemplo, si in1=H; in2=L y aplicamos una seal PWM en en,
sobre el motor habr un voltaje con forma de la seal PWM aplicada y el motor ir
en un sentido, si en cambio in1=L; in2=H y aplicamos la misma seal PWM, sobre
60

el motor habr un voltaje con forma de la seal PWM pero con polaridad invertida
y el motor ir en sentido contrario al anterior.
Pero, si se aplica a un motor un voltaje de forma PWM, de qu manera po-
demos usar el modelo del motor de la ecuacin (3.30)? Claramente el voltaje : en
(3.30) es un valor continuo, pero el PWM no lo es. Sin embargo, si la frecuencia de
la seal PWM es suficientemente alta ocurren dos efectos, primero, la inductancia I
del motor (Figura 3.11) es un elemento inercial y por tal se resiste a los cambio
bruscos de corriente, por lo cual la corriente en el motor de alguna manera ha sido
filtrada atenuando las frecuencias altas, y segundo, la inercia del rotor [
m
y tambin
la inercia de los eslabones se resisten a cambios bruscos de velocidad angular por lo
que tambin actan como filtros, generando que en la velocidad angular no existan
frecuencias altas. Por lo anterior, es perfectamente posible considerar un motor al
cual se le aplica un voltaje PWM como si se le aplicara un voltaje en continua,
siempre y cuando la frecuencia del PWM sea lo suficientemente alta. Se puede decir
que el motor no sabe si se trata de voltaje continuo o PWM.
Si aplicamos un voltaje PWM que oscila entre u y I
p
con cierto ciclo de tra-
bajo ct a un motor, ste se comportar como si le aplicramos un voltaje I
cq
, enton-
ces a qu es igual I
cq
?
Supngase que tenemos dos motores idnticos, al primero le aplicamos un
voltaje I
cq
constante y al segundo un voltaje PWM y supongamos que los 2 se com-
portan exactamente de la misma manera, entonces podemos suponer que la potencia
elctrica que consumen ambos son iguales, la potencia elctrica que consume el pri-
mer motor es I
cq
I y la potencia elctrica que consume el segundo es I
p
I ct por lo
que tenemos:
I
cq
= I
p
ct
Lo anterior nos dice que si aplicamos un voltaje PWM a un motor con cierto
ciclo de trabajo ct a cierto voltaje I
p
, el motor se comportar como si aplicramos
un voltaje I
cq
constante, siempre que la frecuencia sea suficientemente alta.
61

La ecuacin anterior no nos pone limitaciones en cuanto a I
p
, por ejemplo si
un motor puede soportar como mximo 6V, podemos usar un I
p
de 12V siempre que
el ciclo de trabajo no sobrepase el 50%.
El cdigo necesario para hacer que el PIC genere una seal PWM se muestra
en el Anexo A.4.

Control del efector final
Como se vio, el efector final es movido por un servomotor, la posicin del eje
del servomotor debe oscilar entre dos posiciones para ordenar que el eje del servomo-
tor vaya a cierta posicin de debe enviar un impulso de ancho o
t
segn (3.32).
Para generar este impulso basta con poner en 1 la salida del PIC que va al
servomotor, hacer una pausa de duracin o
t
para luego poner a 0 dicha salida. Es
necesario repetir la secuencia anterior cada aproximadamente 20ms hasta que el ser-
vomotor alcance la posicin deseada, el PIC no tiene manera de saber cuando suce-
di esto por lo cual es necesario hacer algunas pruebas para saber la cantidad de
impulsos que son necesarios.

Implementacin
En la Figura 3.24 se muestra el circuito electrnico desarrollado en PRO-
TEUS, el cual es un software de diseo y simulacin electrnica, con este software se
hicieron tambin muchas pruebas preliminares. En la Figura 3.25 se presenta una
fotografa del circuito armado en protoboard.




Figura 3.25
Figura 3.24 Circuito electrnico
Fuente: Elaboracin propia
Figura 3.25 Fotografa del circuito electrnico en protoboard

62

Fotografa del circuito electrnico en protoboard

63

3.6 Diseo del Sistema de Control
Controlar significa dirigir, guiar, regular, etc. un sistema. La etapa de control
se encarga de dar las ordenes correctas a los actuadores para que realicen la fun-
cin deseada, esto con ayuda de informacin proveniente de los sensores.
El conocimiento de cmo se comporta un sistema es fundamental para des-
arrollar un sistema de control, este conocimiento esta dado por el modelo del sistema
el cual incluye el modelo dinmico del brazo robot (3.22) y el modelo dinmico de
los motores (3.31), aunque los sensores tambin forman parte del sistema, no los
consideraremos ya que solo consisten en relaciones algebraicas simples (3.33).

3.6.1 Modelo del controlador
El problema a resolver consiste en calcular los voltajes que deben ser aplica-
dos a los motores para que el robot ejecute exitosamente su tarea. Existen muchos
mtodos de control que pueden variar en complejidad y efectividad, aqu se desarro-
llara un control basado en el modelo dinmico del sistema.
Reemplazando el torque z de (3.22) en (3.31) tenemos:
u = (u +oB(q))q +( +oC(q, q ))q +ysgn(q ) +oz
J
(q, q ) (3.41)
Para simplificar, definimos dos nuevas variables n(q, q ) y A(q) de la si-
guiente manera:
n(q, q ) = ( +oC(q, q ))q +ysgn(q ) +oz
J
(q, q )
A(q) = (u +oB(q))
entonces podemos escribir
u = A(q)q +n(q, q )
la ecuacin anterior representa el modelo dinmico de todo el sistema (brazo robot +
actuadores). Dado cierto movimiento del brazo robot, determinado por ciertas posi-
64

ciones, velocidades y aceleraciones articulares q, q , q , podemos hallar los voltajes u
que son necesarios aplicar en los motores para causar tal movimiento. El sistema es
no lineal ya que existen por ejemplo funciones senoidales y funciones cuadrticas de
las variables. El sistema es tambin acoplado ya que por ejemplo el voltaje :
1
no
solo depende de 0
1
(o sus derivadas) sino tambin de 0
2
(o sus derivadas).
De la ecuacin anterior, despejando q tenemos
q = A
-1
(q)(u - n(q, q ))
Una forma til de representar un sistema es mediante diagrama de bloques.
El diagrama de bloques del sistema es construido a partir de la ecuacin anterior, se
muestra en la Figura 3.26.
Figura 3.26 Diagrama de bloques del sistema robtico

Fuente: Elaboracin propia
Se vio que el sistema es no lineal, es posible linealizarlo agregando bloques al
sistema en la Figura 3.26, estos bloques forman parte del sistema de control ([1],
pg. 82-85). Las matrices A(q) y n(q, q ) son valores reales del sistema, sea la matriz
A

(q) una aproximacin de A(q) y la matriz n(q, q ) una aproximacin de n(q, q ),


stas aproximaciones son hechas con los parmetros encontrados en la seccin 3.3,
entonces el sistema es linealizado como se muestra en la Figura 3.27.
65

Figura 3.27 Linealizacin del sistema

Fuente: Elaboracin propia
La idea al agregar los bloques es que si asumimos que A

(q) es muy aproxi-


mado a A(q) y n(q, q ) muy aproximado a n(q, q ), es decir considerando A

(q) =
A(q) y n(q, q ) = n(q, q ), el diagrama de bloques de la Figura 3.27 puede ser simpli-
ficado, los bloques n(q, q ) se anulan entre ellos y A(q)A
-1
(q) nos da la matriz iden-
tidad por lo que el diagrama de bloques anterior sera equivalente a:
Figura 3.28 Simplificacin del sistema linealizado

Fuente: Elaboracin propia
A partir de la figura anterior nos damos cuenta que la variable y debe ser
igual a q . El sistema, aparte de ser ahora lineal, es tambin desacoplado ya que por
ejemplo el primer elemento del vector y solo tiene influencia en el primer elemento
del vector q.
En un caso ideal donde A

(q) = A(q) y n(q, q ) = n(q, q ), el problema de con-


trol estara resuelto, solo necesitaramos conocer las aceleraciones requeridas q
r
y
haciendo y = q
r
, el sistema de control seguira las trayectorias deseadas. Ya que es
66

imposible obtener el modelo dinmico exacto del sistema, existir una diferencia
entre las posiciones articulares deseadas y las reales e incrementar con el tiempo.
Definimos el error de posicin como
q = q
r
-q
donde q
r
representa la posicin deseada del robot, q es la posicin real del robot. De
la misma manera definimos el error en velocidad
q

= q
r
-q
El vector y no solo debe ser igual a q
r
sino que debe incluir trminos que es-
tabilicen el sistema, para un control PID tenemos:
y = q
r
+K
p
(q
r
-q) +K
d
(q
r
-q ) +K

] (q
r
-q)
t
0
Jt (3.42)
donde K
p
= _
K
p
1
u
u K
p
2
_, K
d
= _
K
d
1
u
u K
d
2
_, K

= _
K

1
u
u K

2
_ son matrices diagonales.
Los K
p
se denominan constantes proporcionales, los K
d
constantes derivativas y los
K

constantes integrales. En la Figura 3.29 se representa el sistema de control.


Figura 3.29 Control del sistema robtico basado en modelo

Fuente: Elaboracin propia
67

El sistema de control est entonces compuesto por el control PID de estabili-
zacin ms la compensacin y desacoplamiento. La respuesta del sistema est de-
terminada por los valores que tomen K
p
, K
d
y K

.
Podemos escribir entonces (Figura 3.29):
u = A

(q)y +n(q, q )
reemplazando y de (3.42) tenemos:
u = A

(q) [q
r
+K
p
q +K
d
q

+K

] q
t
0
Jt +n(q, q ) (3.43)
la ecuacin anterior representa el modelo del controlador, esta ecuacin tambin se
conoce como ley de control.

3.6.2 Determinacin de las constantes PID
Los parmetros necesarios para determinar las matrices A

(q) y n(q, q ) fue-


ron hallados en la seccin 3.3, ahora solo basta determinar las matrices K
p
, K
d
y K

,
existe un rango de valores de estas constantes con los que el sistema es ms eficiente
y mejor controlado. A la accin de determinar valores adecuados para K
p
, K
d
y K


se denomina sintonizacin.
Una manera sencilla de hallar una aproximacin para K
p
, K
d
y K

es me-
diante el mtodo de sintonizacin de ZieglerNichols ([7], pg. 568-572). En nuestro
caso, este mtodo es desarrollado para cada articulacin de manera independiente.
Consideremos la articulacin 1 actuada por el motor 1 al cual se le aplica un
voltaje :
1
. El mtodo de sintonizacin es el siguiente: Supngase que solamente uti-
lizamos el control proporcional, es decir, K
d
= u y K

= u. Debemos incrementar K
p

desde 0 hasta un valor crtico K
c
en el cual la salida 0
1
presente oscilaciones soste-
nidas, todo esto para 0
2
= ctc. El periodo P
c
de tales oscilaciones es medido expe-
rimentalmente mediante un sistema de adquisicin de datos. Entonces las constantes
PID pueden ser halladas mediante:
68

K
p
= u.6K
c

K
d
= u.u7SK
c
P
c

K

= 1.2
K
c
P
c

Los resultados obtenidos varan de acuerdo a 0
2
= ctc, una posible eleccin
sera ubicar 0
2
en su punto medio: 0
2
= 9u.
El experimento anterior debe ser repetido para la articulacin 2. Se obtuvo
los siguientes resultados:
K
p
1
= 78, K
d
1
= 216, K

1
= 7.1
K
p
2
= 84, K
d
2
= 26S, K

2
= 6.7

3.6.3 Controlador simplificado
El modelo del controlador propuesto en la seccin anterior tiene la desventaja
de tener un alto costo computacional, ya que las matrices A

(q) y n(q, q ) deben cal-


cularse en tiempo real. Por tal se decidi considerar controladores ms simples.

Control para movimiento a baja velocidad
Si el brazo robot ejecuta una tarea a baja velocidad q u y q u, ciertos
trminos en (3.41) pueden ser omitidos, trminos relacionados directamente con la
velocidad y aceleracin articular, as podemos escribir:
u = ysgn(q ) +oz
J
(q, q )
El termino ysgn(q ) no puede ser omitido ya que tiene un modulo constante
no despreciable y el termino oz
J
(q, q ) no tendr valores reducidos en movimiento a
baja velocidad ya que recordando la seccin 3.1.4, J =

u
u
tiene modulo constante.
69

Figura 3.30 Control para bajas velocidades

Fuente: Elaboracin propia
Entonces los trminos ysgn(q ) y oz
J
(q, q ) sern trminos compensatorios.
En la Figura 3.30 se muestra un controlador PID con compensacin de los trminos
ysgn(q ) y oz
J
(q, q ).
Figura 3.31 Control articular independiente

Fuente: Elaboracin propia


70

Control articular independiente
Una de las formas ms bsicas de controlar un sistema es mediante un con-
trolador PID simple, sin considerar el modelo del sistema, generalmente son tiles
cuando se desea alcanzar un punto en particular y no seguir una trayectoria q(t).
Tal controlador se muestra en la Figura 3.31.

3.6.4 Generacin de trayectorias
La trayectoria requerida para cierta tarea del robot est determinada por q
r
,
q
r
y q
r
. Dependiendo de la tarea que vaya a ejecutar el robot, la determinacin de
q
r
, q
r
y q
r
varia. Por ejemplo si el robot tiene la tarea de mover objetos de un lu-
gar a otro solo interesa conocer el punto inicial y final mientras que la trayectoria
seguida no es de mucha importancia. Pero en nuestro caso debemos garantizar que el
robot siga una trayectoria especfica q
r
(t), una forma de hacer esto es mediante la
interpolacin mediante puntos va. Los puntos va son puntos intermedios entre el
punto inicial y final, pero ya que el sistema de control debe ser alimentado con una
funcin continua q
r
(t), se debe construir interpolaciones entre puntos consecutivos.
En el caso comn de que se requiera trazar patrones conocidos como por
ejemplo lneas rectas, arcos, elipses, etc. puede ser til obtener funciones analticas
del movimiento (a diferencia de los puntos va). Aqu solo se ver a modo de ejem-
plo, la generacin de una lnea recta.
Para construir una lnea recta en forma analtica necesitamos conocer el pun-
to inicial p
|
= |
x

]' y el punto final p


J
= |
x
]
y
]]', adems necesitamos definir el
tiempo I en el cual queremos que sea ejecutado el trazo, en tal caso, la velocidad
media de operacin est dada por:
I
mcd
=
J
I
=
[
p
]
-p
[
I
=
_(x
]
-x

)
2
+(y
]
-y

)
2
I

donde J es la longitud de la lnea recta.
71

Una descripcin paramtrica de una lnea recta est dada por
p(s) = p

+
s
J
(p
]
-p

)
donde s va desde 0 hasta J. En tal caso x(s) y y(s) estn dados por
x(s) = x

+
s
d
(x
]
-x

) (3.44)
y(s) = y

+
s
d
(y
]
-y

) (3.45)
Ahora debemos expresar s como una funcin temporal, debemos tener en
cuenta que la velocidad inicial y final son ambas 0. Una manera simple de definir la
evolucin temporal de s es la siguiente: empieza con velocidad 0 y por un tiempo t
c

mantiene una aceleracin constante o
c
, luego se mantiene a velocidad constante
(o = u) hasta el tiempo I -t
c
, en este punto desacelera con la misma aceleracin o
c

hasta llegar finalmente al reposo en t = I. Lo anterior se muestra en la Figura 3.32.
Figura 3.32 Evolucin temporal de s

Fuente: [1], pg. 68
72

(3.46)
La distancia total recorrida por s debe ser igual a J, sta la dividimos en 3
tramos: u t t
c
; t
c
< t I -t
c
; I -t
c
< t I.
Para cada tramo tenemos:
J
1
=
1
2
o
c
t
c
2

J
2
= o
c
t
c
(I -2t
c
)
J
3
= J
1

entonces debe cumplirse que
J = J
1
+J
2
+J
3

lo que nos da
J = o
c
t
c
2
+o
c
t
c
(I -2t
c
) = o
c
t
c
(I -t
c
)
ya que J y I estn dados, existe una restriccin, es decir, o
c
y t
c
no son indepen-
dientes uno del otro. Suponiendo que predefinimos o
c
, podemos hallar t
c
mediante:
t
c
=
I
2
-
1
2
_I
2
-4
J
o
c

finalmente obtenemos s(t):
s(t) =
1
2
o
c
t
2
; u t t
c

s(t) = o
c
t
c
(t -
t
c
2
) ; t
c
< t I -t
c

s(t) = J -
1
2
o
c
(I -t)
2
; I -t
c
< t I
reemplazando s(t) en (3.44) y (3.45) obtenemos x(t) = x(s(t)) y y(t) = y(s(t)), las
cuales son funciones temporales para construir una lnea recta entre dos puntos en
un tiempo I. Usando el modelo cinemtico inverso de posicin (ec. (3.6) y (3.7))
podemos determinar 0
1
(t) y 0
2
(t), obviamente a partir de esto podemos hallar las
velocidades y aceleraciones. o
c
est restringida a los actuadores, es decir, determina-
73

dos actuadores podran no dar torques suficientes como para generar una aceleracin
o
c
alta.
En el caso de que se desee tener una aceleracin o
c
mnima, debemos consi-
derar que para que eso suceda t
c
debe ser mximo, es decir t
c
= I2, reemplazando
en (3.46) tenemos:
I
2
=
I
2
-
1
2
_I
2
-4
J
o
c

lo que nos da:
o
c
min
=
4J
I
2

Toda la etapa de control y generacin de trayectorias fue implementada en
MATLAB, el cdigo se muestra en el Anexo A.3.

3.7 Resultados Especficos
Mediante el uso de diversas herramientas matemticas, se obtuvo el modelo
cinemtico y dinmico del brazo robot, ste es no lineal y fuertemente acoplado, la
determinacin de los parmetros de dicho modelo se obtuvo mediante mtodos bas-
tante sencillos, la fuerza de friccin herramienta-entorno calculada dio diversos valo-
res un tanto alejados entre ellos para varios experimentos, de los cuales se considero
la media, la variacin puede deberse al modelo no lineal de la friccin y tambin a la
variacin de la fuerza normal herramienta-entorno, esta fuerza normal puede variar
significativamente si el brazo robot esta desnivelado unos cuantos milmetros.
Se obtuvo el modelo dinmico de los actuadores, considerando una inductan-
cia pequea y por tal despreciable, los experimentos realizados para la obtencin de
parmetros demostraron que el modelo se aproximaba a la realidad, sin embargo,
como es conocido, existes factores no lineales en los motores dc, stos tambin afec-
taron los resultados de los experimentos.
74

El costo del prototipo fue el siguiente:
Tabla 3.3 Costo del prototipo
Parte mecnica
Estructura 35.00
Actuadores 78.00
Parte electrnica 37.00
Total S/. 150.00

La tabla anterior no incluye el costo de desarrollo (horas hombre, software,
etc.), el brazo robot es controlado por una PC, el costo de sta y del software MA-
TLAB tampoco se incluyen.
El peso total del brazo robot (incluyendo la base) fue de 410 g, el cual es pe-
queo comparado con otros similares.
Las pruebas que se realizaron consistieron en trazar lneas rectas sobre el es-
pacio de trabajo reducido (160x160 mm), para ello se implemento el controlador con
la ley de control de la ecuacin (3.43). Las funciones temporales de las lneas rectas
trazadas fueron obtenidas mediante las ecuaciones desarrolladas en la seccin 3.6.4.
Se trabajo a una velocidad media I
mcd
igual a 1cm/s. Los trazos obtenidos (en azul)
y los de referencia (en rojo) se muestran en la Figura 3.33.







75

Figura 3.33 Trazos de lneas rectas








76

Captulo IV
Conclusiones y Recomendaciones

4.1 Conclusiones
El modelo cinemtico y dinmico de un brazo robot puede ser obtenido de
manera metdica, se empieza por la determinacin de los parmetros Denavit
Hartenberg, se determina la matriz Jacobiana la cul es un elemento til tanto para
el modelo cinemtico como dinmico, la formulacin de Lagrange ofrece una manera
sencilla de encontrar el modelo dinmico a partir de funciones de energa. Casi todos
los parmetros del modelo dinmico pueden ser hallados mediante mtodos simples
de fsica bsica.
Aunque un motor dc tiene un modelo complejo, ste puede ser simplificado.
Los experimentos estimulo-respuesta ofrecen una manera sencilla de determinar los
parmetros de un motor dc, an si no se cuenta con la hoja de datos del motor. Los
datos congruentes de los experimentos dictan que es posible utilizar un modelo sim-
plificado de un motor dc e incluirlo en el algoritmo de control.
Un brazo robot como el desarrollado aqu no requiere de un diseo mecnico
complejo, ya que est expuesto a bajos esfuerzos adems de que los servomotores
tienen una estructura de gran adaptabilidad.
Los requerimientos de potencia elctrica se calcularon de manera aproxima-
da, stos indican que en general el consumo de potencia por el brazo robot es bajo
para la tarea de trazar a baja velocidad, existen integrados como el PIC, el puente H
y el MAX232 que simplifican enormemente la tarea de suministrar potencia, adquirir
datos y comunicarse con una PC.
77

El uso del MATLAB permite implementar estrategias de control complejas
de alto costo computacional en tiempo real no poniendo limitaciones a la velocidad
del ciclo de control.
En conclusin, el autor considera que el diseo y construccin de un brazo
robot de bajo costo y que de resultados satisfactorios es factible, siempre que se apli-
quen de manera correcta los fundamentos tericos asociados.

4.2 Recomendaciones
El autor recomienda lo siguiente para futuros trabajos:
-Es posible determinar los parmetros de un motor dc. Para un mismo modelo
(cdigo del motor), estos parmetros varan de motor a motor sobre todo si son mo-
tores baratos, eso implica que si es necesario reemplazar uno de ellos, los parmetros
de ste deben hallarse nuevamente. Por tal, si se disea un sistema de control basa-
do en el modelo de los motores sera conveniente usar motores de marcas reconoci-
das.
-La comunicacin serial PC-PIC es algo lenta, sta influye en el periodo del ciclo de
control, este periodo fue de aproximadamente 15ms, un periodo alto obviamente
limita la velocidad de operacin del brazo robot, por tal, sera til investigar o des-
arrollar formas ms eficientes de comunicacin PC-PIC sin elevar mucho el presu-
puesto.
-Las velocidades angulares fueron obtenidas mediante derivacin de las posiciones
sensadas, estas derivaciones generan mucho ruido el cual puede entorpecer el sistema
de control, una solucin posibles a esto es implementar un filtro digital, otra sera
utilizar sensores de velocidad como tacmetros.


78

Bibliografa

[1] T. Bajd et al, Robotics, Springer, 2010.
[2] B. Siciliano et al, Robotics, Modelling, Planning and Control, Springer, 2009.
[3] W. Spong et al, Robot Modeling and Control, John Wiley & Sons, 2005.
[4] R. Paul, Robot Manipulators: Mathematics, Programming and Control, MIT
Press, 1981.
[5] N. Nise, Control Systems Engineering, 6ta ed, John Wiley & Sons, 2011.
[6] D. Lafferty, A Simple, Versatile Robotic Arm for Classroom and Student Labo-
ratory Use, Tesis, Massachusetts Institute Of Technology, 2006.
[7] K. Ogata, Modern Control Engineering, 5ta ed, Prentice Hall, 2010.
[8] W. Wu, DC Motor Parameter Identification Using Speed Step Responses,
Hindawi Publishing Corporation, 2012.



79

Anexos

A.1 Cdigo en MATLAB para el ajuste de curva y
obtencin de los valores



linf=1;
lsup=227;

for i=1:(lsup-linf+1)
dtiempo(i,1)=(i-1)*tiempo(m,1)/m;
ddata(i,1)=graf1(i+linf-1,1)*0.003356105632960;
end

g = fittype( @(k1,k2,k3,x) k3+k1*x+(k1/k2)*exp(-k2*x)-k1/k2)
f = fit(dtiempo,ddata,g)
figure
plot(f,dtiempo,ddata)



A.2 Cdigo en MATLAB para la Calibracin
Cinemtica del brazo robot
clc
clear all
close all

%% variables nominales
l1=1.20e+02;
l2=1.200e+02;
p1=0.0035;
p2=-0.0037;
q1=-0.9;
q2=3.5;

Enominal=[l1 l2 p1 p2 q1 q2]';

%% numero de mediciones
n=9;

%% Seales sensadas por los potencimetros- una S=[0,0]; por cada
medicion
S(1,:)=[631,370];
S(2,:)=[759,838];
S(3,:)=[540,826];
80

S(4,:)=[85,368];
S(5,:)=[609,518];
S(6,:)=[586,730];
S(7,:)=[311,516];
S(8,:)=[320,277];
S(9,:)=[431,462];

%% Mediciones hechas sistema X-Y
XS(1:2,1)=[0;0];
XS(3:4,1)=[0;160];
XS(5:6,1)=[160;160];
XS(7:8,1)=[160;0];
XS(9:10,1)=[0;80];
XS(11:12,1)=[80;160];
XS(13:14,1)=[160;80];
XS(15:16,1)=[80;0];
XS(17:18,1)=[80;80];

%% Bucle

for h=1:10

for i=1:n
s1=S(i,1);
s2=S(i,2);

%% hallando los terminos de A: derivadas parciales
da1=cos(p1*s1+q1);
da2=cos(p1*s1+q1+p2*s2+q2);
da3=-s1*l1*sin(p1*s1+q1)-s1*l2*sin(p1*s1+q1+p2*s2+q2);
da5=-l1*sin(p1*s1+q1)-l2*sin(p1*s1+q1+p2*s2+q2);
da4=-s2*l2*sin(p1*s1+q1+p2*s2+q2);
da6=-l2*sin(p1*s1+q1+p2*s2+q2);

db1=sin(p1*s1+q1);
db2=sin(p1*s1+q1+p2*s2+q2);
db3=s1*l1*cos(p1*s1+q1)+s1*l2*cos(p1*s1+q1+p2*s2+q2);
db5=l1*cos(p1*s1+q1)+l2*cos(p1*s1+q1+p2*s2+q2);
db4=s2*l2*cos(p1*s1+q1+p2*s2+q2);
db6=l2*cos(p1*s1+q1+p2*s2+q2);

A(2*i-1,:)=[da1 da2 da3 da4 da5 da6];
A(2*i,:)=[db1 db2 db3 db4 db5 db6];

%% Hallando los XS Nominales
xn=l1*cos(p1*s1+q1)+l2*cos(p1*s1+q1+p2*s2+q2);
yn=l1*sin(p1*s1+q1)+l2*sin(p1*s1+q1+p2*s2+q2);
xsn=xn+81;
ysn=yn-65;

XSn(2*i-1:2*i,1)=[xsn;ysn];

end

%% Rersultados
Enominal;
81

A;
XS;
XSn;

DeltaX=XS-XSn;

DeltaE=A\DeltaX

Enominal=Enominal+DeltaE

l1=Enominal(1,1);
l2=Enominal(2,1);
p1=Enominal(3,1);
p2=Enominal(4,1);
q1=Enominal(5,1);
q2=Enominal(6,1);


end


A.3 Cdigo en MATLAB del Sistema de Control
clc
clear all
close all

l1=0.12150;
l2=0.12276;
m1=0.100;
m2=0.083;
a1=0.062;
a2=0.066;
I1=0.000141;
I2=0.000130;
fr=0.286;

alfa=[0.0749 0;0 0.0703];
beta=[0.422 0;0 0.451];
gamma=[0.750 0;0 0.680];
sigma=[22.1 0;0 26.3];

p1=0.003292;
q1=-0.7675;
p2=-0.003988;
q2=3.723;

Kp=[78 0;0 84];
Kd=[216 0;0 263];
Ki=[7.1 0;0 6.7];


xi=0.000;
yi=0.000;
82

xf=0.080;
yf=0.000;

Vmed=0.01; %velocidad media
ac=0.02;

dT=0.0001;
d=sqrt((xf-xi)^2+(yf-yi)^2);
T=d/Vmed;

mtf=10000*T;
imtf=int64(mtf);
T=double(imtf/10000);
Tiempo=[0:dT:T]';
T=Tiempo(length(Tiempo));
tc=T/2-0.5*sqrt(T*T-4*d/ac);

for i=1:T/dT+1
if (Tiempo(i,1)<=tc)
S(i,1)=0.5*ac*Tiempo(i,1)^2; end
if (Tiempo(i,1)<=T-tc)&& (Tiempo(i,1)>tc)
S(i,1)=ac*tc*(Tiempo(i,1)-tc/2); end
if (Tiempo(i,1)<=T)&& (Tiempo(i,1)>T-tc) S(i,1)=d-
0.5*ac*(Tiempo(i,1)-T)^2; end
end

X=xi+S*(xf-xi)/d;
Y=yi+S*(yf-yi)/d;

X=X-0.081;
Y=Y+0.065;

%% VALORES DE REFERENCIA
%%Cinematica inversa
TITA2R=acos((X.^2+Y.^2-l1^2-l2^2)/(2*l1*l2));
TITA1R=atan2(Y,X)-atan2((l2*sin(TITA2R)),(l1+l2*cos(TITA2R)));

%%Velocidad Angular
mu=T/dT;
for i=2:mu
W1R(i,1)=(TITA1R(i+1,1)-TITA1R(i-1,1))/(dT*2);
end
W1R(1,1)=W1R(2,1);
W1R(mu+1,1)=W1R(mu,1);

for i=2:mu
W2R(i,1)=(TITA2R(i+1,1)-TITA2R(i-1,1))/(dT*2);
end
W2R(1,1)=W2R(2,1);
W2R(mu+1,1)=W2R(mu,1);

%%aceleracion Angular
for i=2:mu
ALFA1R(i,1)=(TITA1R(i+1,1)-2*TITA1R(i,1)+TITA1R(i-1,1))/(dT^2);
end
ALFA1R(1,1)=ALFA1R(2,1);
83

ALFA1R(mu+1,1)=ALFA1R(mu,1);

for i=2:mu
ALFA2R(i,1)=(TITA2R(i+1,1)-2*TITA2R(i,1)+TITA2R(i-1,1))/(dT^2);
end
ALFA2R(1,1)=ALFA2R(2,1);
ALFA2R(mu+1,1)=ALFA2R(mu,1);

%% puero serial
s=serial('COM1','BaudRate',19200);
fopen(s)

%% Envio inicial para iniciar el bucle del pic
fprintf(s,'%s',17)
fprintf(s,'%s',1)
fprintf(s,'%s',17)
fprintf(s,'%s',1)

%% Inicializacion variables
tic
integ=[0 0]';
stop=0;
m=1;
TiempoM(1,1)=0;
W1(1,1)=0;
W2(1,1)=0;
while (stop==0)

dato1= fscanf(s); %lectura de datos
dato2= fscanf(s); %lectura de datos

%% Tiempo
time=toc;
tic
deltaT(m,1)=time;
if (m>1)TiempoM(m,1)=TiempoM(m-1,1)+deltaT(m,1); end
tiempo_actual=TiempoM(m,1);
ind=int16(tiempo_actual/dT)+1;
if (ind>mu) ind=mu+1; end
Tiempo(ind,1);

%% MOTOR 1
Spot1=str2num(dato1);
sensor1(m,1)=Spot1;
TITA1(m,1)=sensor1(m,1)*p1+q1;
if (m>1) W1(m,1)=(TITA1(m,1)-TITA1(m-1,1))/deltaT(m,1);end


%% MOTOR 2
Spot2=str2num(dato2);
sensor2(m,1)=Spot2;
TITA2(m,1)=sensor2(m,1)*p2+q2;
if (m>1) W2(m,1)=(TITA2(m,1)-TITA2(m-1,1))/deltaT(m,1);end

%% valores medidos
q=[TITA1(m,1) TITA2(m,1)]';
84

qd=[W1(m,1) W2(m,1)]';

%% referencia
qR=[TITA1R(ind,1) TITA2R(ind,1)]';
qdR=[W1R(ind,1) W2R(ind,1)]';
qddR=[ALFA1R(ind,1) ALFA2R(ind,1)]';

%% matrices modelo dinamico y control
C=m2*l1*a2*sin(q(2))*[-2*qd(2) -qd(2);qd(1) 0];
J=[-l1*sin(q(1))-l2*sin(q(1)+q(2)) -
l2*sin(q(1)+q(2));l1*cos(q(1))+l2*cos(q(1)+q(2)) l2*cos(q(1)+q(2))];
f=(fr/norm(J*qd))*J*qd;

b11=I1+I2+m1*a1^2+m2*(l1^2+a2^2+2*l1*a2*cos(q(2)));
b12=I2+m2*(a2^2+l1*a2*cos(q(2)));
b21=I2+m2*(a2^2+l1*a2*cos(q(2)));
b22=I2+m2*a2^2;

B=[b11 b12;b21 b22];

E_pos=qR-q;
E_vel=qdR-qd;
integ=integ+E_pos*time;

A=alfa+sigma*B;
n=(beta+sigma*C)*qd+gamma*sign(qd)+sigma*J'*f;
v=A*(qddR+Kp*E_pos+Kd*E_vel+Ki*integ)+n;

PWM=(1024/12)*v;
pwm1=PWM(1);
pwm2=PWM(2);

alfa1=pwm1 % de -1024 a 1024
beta1=double(int16(alfa1));
cont1=beta1+1024; %de 0 a 2048
bbb1=mod(cont1,64);
aaa1=(cont1-bbb1)/64;
aaa1=aaa1+1;
bbb1=bbb1+1;

alfa2=pwm2; % de -1024 a 1024
beta2=double(int16(alfa2));
cont2=beta2+1024; %de 0 a 2048
bbb2=mod(cont2,64);
aaa2=(cont2-bbb2)/64;
aaa2=aaa2+1;
bbb2=bbb2+1;

%% ENVIAR DATOS AL PIC

fprintf(s,'%s',aaa1)
fprintf(s,'%s',bbb1)
fprintf(s,'%s',aaa2)
fprintf(s,'%s',bbb2)

m=m+1;
85

if (ind==mu+1) stop=1; end

end

%% detiene el pwm
pause(0.03)
fprintf(s,'%s',17)
fprintf(s,'%s',1)
fprintf(s,'%s',17)
fprintf(s,'%s',1)

%%
toc
fclose(s)

%% Visualizacion de Informacion
figure
plot(Tiempo,X)
hold all
plot(Tiempo,Y)

figure
plot(Tiempo,TITA1R)
hold all
plot(Tiempo,TITA2R)
hold all
plot(TiempoM,TITA1)
hold all
plot(TiempoM,TITA2)

figure
plot(Tiempo,W1R)
hold all
plot(Tiempo,W2R)
hold all
plot(TiempoM,W1)
hold all
plot(TiempoM,W2)



A.4 Cdigo en PIC C para el PIC 16F877A
#include <16F877A.h>
#device adc=10

#FUSES NOWDT N! Wa"ch D!# Ti$e%
#FUSES &S '%()"al !)c <= *$h+ ,!% -'.-'& / 0$h+ "! 10 $h+ ,!% -'D
#FUSES NO-UT N! -!1e% U2 Ti$e%
#FUSES NO-3OTE'T '!de n!" 2%!"ec"ed ,%!$ %eadin#
#FUSES NODE4U5 N! De6u# $!de ,!% 7'D
#FUSES NO43OWNOUT N! 6%!1n!u" %e)e"
#FUSES NO89- N! l!1 v!l"a#e 2%#$in#/ 40:-7'16; !% 4<:-7'18; u)ed ,!% 7O
#FUSES NO'-D N! EE 2%!"ec"i!n
86

#FUSES NOW3T -%!#%a$ $e$!%( n!" 1%i"e 2%!"ec"ed

#u)e dela(:cl!c==>0000000;
#u)e %)>0>:6aud=1?>00/2a%i"(=N/@$i"=-7NA'6/%cv=-7NA'7/6i")=8; D73E'T79A 'O.UN7'A'7ON
SE37A8

#4BTE T37SA = 0@8<
#4BTE -O3TA = 0@0<
#4BTE T37S4 = 0@86
#4BTE -O3T4 = 0@06
#4BTE T37S' = 0@87
#4BTE -O3T' = 0@07
#4BTE T37SD = 0@88
#4BTE -O3TD = 0@08

v!id $ain:;
C
)e"u2AadcA2!%"):A88AANA8O5;D
)e"u2Aadc:AD'A'8O'EAD79A6*;D

)e"u2A"i$e%A>:T>AD79A4BA1/><</1;D iniciali+a% "i$e% >
)e"u2Acc21:''-A-W.;D ''-1 en $!d! -W.
)e"u2Acc2>:''-A-W.;D ''-> en $!d! -W.

9A37A48ES
cha% da"!1D
cha% da"!>D
cha% da"!0D
cha% da"!*D
in"16 da1$a(D
in"16 da1$enD
in"16 da>$a(D
in"16 da>$enD
in"16 c!n"1D
in"16 c!n">D
in"16 21$1D
in"16 21$>D
in"16 da"!D

7N7'7A87FA'7ON
6i"Aclea%:T37S'/1;D
6i"Aclea%:T37S'/>;D

6i"Aclea%:T37SD/0;D
6i"Aclea%:T37SD/1;D
6i"Aclea%:T37SD/>;D
6i"Aclea%:T37SD/0;D

!u"2u"Al!1:-7NAD0;D
!u"2u"Al!1:-7NAD1;D
!u"2u"Al!1:-7NAD>;D
!u"2u"Al!1:-7NAD0;D
87


8E'TU3A DATOS 7N7'7A8ES
2%in",:GHnG;D
da"!1=#e"cha%:;D
da"!>=#e"cha%:;D
da"!0=#e"cha%:;D
da"!*=#e"cha%:;D

1hile:1; C
SENSADO .OTO3 1
)e"AadcAchannel:0;D
dela(Au):>0;D
da"! = %eadAadc:;D
2%in",:GIluHnG/da"!;D


SENSADO .OTO3 >
)e"AadcAchannel:1;D
dela(Au):>0;D
da"! = %eadAadc:;D
2%in",:GIluHnG/da"!;D

8E'TU3A 'O.UN7'A'7ON SE37A8
da"!1=#e"cha%:;D
da"!>=#e"cha%:;D
da"!0=#e"cha%:;D
da"!*=#e"cha%:;D

'ON9E3'7ON DE DATOS
da1$a(=:in"16;da"!1D
da1$en=:in"16;da"!>D
da>$a(=:in"16;da"!0D
da>$en=:in"16;da"!*D

'A8'U8O DE8 9A8O3 O3757NA8
c!n"1=da1$a(J6*Kda1$enL6<D
c!n">=da>$a(J6*Kda>$enL6<D

SEMA8 -W. A .OTO3 1
i, :c!n"1>10>*;
C !u"2u"Ahi#h:-7NAD1;D
!u"2u"Al!1:-7NAD0;D
21$1=c!n"1L10>*D
)e"A21$1Adu"(:21$1;D
N el)e i, :c!n"1<10>*;
C !u"2u"Ahi#h:-7NAD0;D
!u"2u"Al!1:-7NAD1;D
21$1=10>*Lc!n"1D
)e"A21$1Adu"(:21$1;D
N
el)e
C !u"2u"Al!1:-7NAD0;D
88

!u"2u"Al!1:-7NAD1;D
)e"A21$1Adu"(:0;D
N

SEMA8 -W. A .OTO3 >
i, :c!n">>10>*;
C !u"2u"Ahi#h:-7NAD0;D
!u"2u"Al!1:-7NAD>;D
21$>=c!n">L10>*D
)e"A21$>Adu"(:21$>;D
N el)e i, :c!n"><10>*;
C !u"2u"Ahi#h:-7NAD>;D
!u"2u"Al!1:-7NAD0;D
21$>=10>*Lc!n">D
)e"A21$>Adu"(:21$>;D
N
el)e
C !u"2u"Al!1:-7NAD>;D
!u"2u"Al!1:-7NAD0;D
)e"A21$>Adu"(:0;D
N
N

)e"u2AadcA2!%"):NOAANA8O5S;D
)e"u2Aadc:AD'A'8O'EAD79A>;D
)e"u2A2)2:-S-AD7SA48ED;D
)e"u2A)2i:S-7ASSAD7SA48ED;D
)e"u2A"i$e%A0:3T''A7NTE3NA8O3T''AD79A1;D
)e"u2A"i$e%A1:T1AD7SA48ED;D
)e"u2A"i$e%A>:T>AD7SA48ED/0/1;D
)e"u2Ac!$2a%a"!%:N'AN'AN'AN';D
)e"u2Av%e,:FA8SE;D

N

Вам также может понравиться