Reporte Final

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 51

2010

Instituto Politécnico Nacional


Unidad Profesional Interdisciplinaria de Ingenierías y Tecnologías
Avanzadas

Reporte final de la construcción de un robot tipo SCARA

Asignatura: Mecatrónica VI

Alumnos:

Álvarez Toledo Jorge


Cortez Vázquez Ricardo
García Facio David
Morales Cabrera Gustavo
Rabadán Ortiz Adrian
Rodríguez Hernández Héctor
Rodríguez Palomeque Yair
Sánchez Chaparro Miguel Ángel
San Miguel Rodríguez Josué Daniel

Carrera: Ingeniería en Mecatrónica

Semestre: 8º 2009-2010 B

Grupo: 8MM1
Índice

1. Campos de aplicación de un robot tipo SCARA


1.1 Objetivos generales
1.2 Objetivos Particulares
1.3 Justificación del uso de un robot tipo SCARA
1.4 Requerimientos necesarios para el uso de un robot tipo SCARA

2. Viabilidad económica
2.1 Beneficios esperados
2.1.1 A nivel macroeconómico
2.1.2 A nivel microeconómico
2.1.3 A nivel personal
2.2 Distribución de las labores dentro del equipo de trabajo
2.3 Análisis Costo Beneficio
2.3.1 Recursos Disponibles
2.3.2 Costos esperados
2.3.3 Costo de producción unitario
2.3.4 Fijación del precio de venta
2.3.5 Proyección económica a 5 años

3. Especificaciones técnicas del robot

4. Desarrollo técnico del robot


4.1 Validación mecánica del diseño
4.1.2 Análisis de eslabón 2
4.1.3 Análisis de eslabón 1
4.2 Adaptaciones y modificaciones finales al diseño
4.2.1 Rodamientos
4.2.2 Transmisión por cadena
4.2.3 Dimensiones finales de los eslabones
4.3 Control de posición de motores de CD
4.4 Diseño y control del actuador final (gripper)
4.5 Control por visión artificial
4.5.1 Área de Visión y Calibración de Cámara
4.5.2 Programación
4.6 Interfaz de Usuario
4.7 Modelo Dinámico del Robot Scara

5. Conclusiones

6. Referencias bibliográficas

7. Anexo A: Tablas sobre viabilidad económica

8. Anexo B: Validación del diseño mecánico

9. Anexo C: Planos del diseño mecánico

10. Anexo D: Desarrollo matemático para control de motores de CD

11. Anexo E: Programas para el control de posición en motores de CD


Diseño y Construcción de robot SCARA
1. Campos de aplicación de un robot tipo Scara
Figura 2.3b. Aplicaciones de los robots SCARA.
1.1 Objetivos Generales
Crear un robot Scara que sea capaz de realizar 1.4 Requerimientos
movimientos con alto grado de precisión y repetitividad. Los requerimientos básicos con los que debe de cumplir
un Robot SCARA que tenga aplicaciones dentro de la
1.2 Objetivos Particulares industria farmacéutica o alimenticia, son los siguientes:
 Aplicar los conceptos básicos de cinemática  Dimensiones. Las dimensiones de la estructura
directa e inversa, así como la matriz jacobiana. del robot se muestran en la figura 2. Éstas están
directamente relacionadas con el espacio de
 Diseñar y validar la estructura mecánica del
trabajo requerido para la aplicación.
robot.
 Desarrollar un sistema de control PID para
 Área de trabajo. El área de trabajo bajo la que
regular la posición motores de CD.
está delimitado el robot se muestra en la figura
 Implementar un sistema de control
2.
retroalimentado por visión artificial.
 Construir un gripper que sea capaz de
mantenerse a una altura constante respecto a una
superficie.

1.3 Justificación
Los robots de configuración SCARA son ideales para
procesos en los que se manejan pequeños productos y al
mismo tiempo se demanda velocidad y precisión en los
movimientos. En industrias donde están presentes
procesos de agarrar y posicionar (pick and place) los
robots SCARA son ideales, pues su tamaño es sumamente
reducido en comparación con manipuladores cartesianos,
además que su mantenimiento es relativamente más
barato y por su propia configuración presentan
movimientos más limpios.

Las tareas principales que desempeñan los robots SCARA


dentro de la industria farmacéutica y alimenticia son las
de separar objetos en las líneas de producción, ya sea por
defecto o porque serán empacados, motivo por el cual los
movimientos deben ser rápidos y precisos, tal como se
puede observar en la figura 1.
Una necesidad que suele presentarse es la de esquivar Figura 1.4a. Dimensiones de los robots SCARA.
objetos que estén dentro de un rango de alturas, para ello
el gripper del robot SCARA es capaz de adaptar su altura
de forma automática sin dejar de sujetar el objeto
transportado.

Figura 1.3a. Aplicaciones de los robots SCARA.

Figura 1.4b. Área de trabajo de los robots SCARA.

Longitud
Parámetro
(mm)
H1 265
L1 222
L2 220
H2 180 mantenimiento de maquinaria, pues las
Radio exterior 400 refacciones se encuentran dentro del país.
Radio interior 230  Disminuir la perdida de ganancias de las
Ángulo de empresas cuando éstas reparan o dan
216°
apertura mantenimiento a su maquinaria.
 Favorecer al ahorro de las industrias en el
aspecto energético.
 Contribuir a que las empresas logren procesos
más limpios y precisos, obteniendo así productos
de mayor calidad que se verán reflejados en
mayores ganancias.
 Poner a disposición de las empresas una
variedad de opciones de pago en la compra de
tecnología.

2.1.3 A nivel personal


Tabla 1.4a. Dimensiones de los robots SCARA.  Llevar a la práctica los conocimientos adquiridos
en clase.
 Velocidad. La velocidad a la que trabajara el  Resolver problemas prácticos que en el salón de
robot será una velocidad constante de 240°/s, la clase no se presentan.
cual es una velocidad suficiente para recorrer el  Tener la oportunidad de conocer la aplicación
área de trabajo en un tiempo óptimo. industrial del proyecto.
 Tener la oportunidad de lograr introducir el
 Carga. La capacidad de carga que se exige para proyecto dentro de una empresa.
el funcionamiento del robot es pequeña sin  Lograr que las empresas se interesen por los
rebasar 1kg, pues los objetos que manejará son proyectos realizados dentro de la Escuela y del
del tamaño y peso de pastillas en blíster o de Instituto.
alimentos empacados con un peso máximo de  Comprender todos los procesos administrativos
500 gr. que dentro de una empresa se llevan a cabo para
que ésta trabaje correctamente.
 Control por visión artificial. Para aplicaciones  Obtener una visión más amplia de la situación
en las que se requiere que el robot distinga entre económica y tecnológica del país.
objetos con diversas características es necesario  Tener una alternativa para poder formar una
implementar un sistema de visión artificial que empresa y lograr ser independientes.
ayuda a la identificación de éstas y de esta forma
usar esta información para trabajar con los
distintos objetos. 2.2 Distribución de las labores dentro del equipo de
trabajo

Para la fabricación del robot se crearon cinco diferentes


2. Viabilidad económica departamentos con tareas específicas con la finalidad de
obtener un mejor desempeño en la elaboración del
2.1 Beneficios esperados proyecto, estos departamentos se pueden observar en la
tabla 1 mostrada en el anexo A.
2.1.1 A nivel macroeconómico La asignación de los integrantes de cada departamento así
 Contribuir a la reducción de la fuga de capital. como la distribución de las tareas se llevo a cabo con base
 Tener disponible tecnología nacional de buena a las habilidades de cada integrante del equipo.
calidad, comparable con la tecnología extranjera.
 Lograr la apertura de fuentes de empleo. 2.3 Análisis Costo Beneficio
 Que las autoridades escolares y gubernamentales
reconozcan que la inversión en tecnología es un 2.3.1 Recursos Disponibles
negocio redituable. En la tabla 2 del anexo A se muestran los recursos
 Lograr un proyecto que sea energéticamente materiales con los que se contaba cuando se realizó la
eficiente, contribuyendo de esta forma a construcción del proyecto, en su mayoría son
disminuir la contaminación ambiental. herramientas mecánicas y equipo de cómputo.
2.1.2 A nivel microeconómico Para el cargo de depreciación de los recursos con los que
 Poner a disposición de las industrias tecnología ya se contaban se tomo como referencia la Ley del
de calidad a un buen costo. Impuesto Sobre la Renta a partir de su artículo 40. La
 Lograr que las industrias tengan un mayor tabla 3 del anexo A muestra el porcentaje de depreciación
interés por la tecnología nacional. de cada recurso con el que se cuenta.
 Ahorrar tiempos muertos en las industrias
cuando éstas requieren la reparación o 2.3.2 Costos esperados
En la tabla 4 del anexo A se muestra la duración de cada Gananciamensual =100 ( $ 37,264.012 )−$ 2 , 760 ,297 . 2=$ 96
actividad, con su correspondiente responsable. Para
determinar el costo de cada hora de trabajo se tomó como 2.3.5 Proyección económica a 5 años
referencia un salario mínimo de $52.59 (que incluye 8 Considerando la inversión inicial para la producción de
horas laborales), por lo que cada hora de trabajo tiene un robots SCARA se tiene en la tabla 8 del anexo A.
costo de $7.323. Considerando un requerimiento mensual constante de 100
robots durante 5 años se tendrá una ganancia de:
Para la manufactura de las piezas se tiene un costo
especial, pues se utilizó un centro de maquinado CNC y
Ganancia5 a ñ os=$ 57 , 966 , 240 . 000
un torno convencional, el costo de manufactura se
muestra en la tabla 5 del anexo A.
Por lo que la inversión se recuperará en:
Por lo que se tiene un costo total de mano de obra por
$10,914.772 Total de inversi ó n por 100robots mensua
Tiemporecuperaci ó n=
Ganancia mensual por 100unidades
Los costos de los materiales que se utilizaron para la
construcción del proyecto se muestran en la tabla 6 del
anexo A. Dicha tabla de costos servirá para determinar el
costo unitario y de venta del proyecto.

La tabla 7 del anexo A muestra una relación de otros


gastos que se tuvieron durante la construcción del
proyecto.

2.3.3 Costo de producción unitario


Es el costo que adquiere el producto terminado,
consecuencia de la suma de todos los costos de los
materiales utilizados en su fabricación. El costo de
producción unitario se fija a partir de la siguiente
fórmula:

CP=Mano de obra+ Materiales + Depreciaci ó n+Otros

Sustituyendo valores se tiene lo siguiente:

CP=10,914.772+2,185.000+13,983.20+610.000

CP=$ 27 , 602. 972


El costo unitario de producción para 100 unidades
mensuales es de:

CP mensual=$ 2 , 760 ,297 . 2

2.3.4 Fijación del precio de venta


Para la fijación del precio de venta se toma en cuenta un
35% de ganancia, por lo que se tiene lo siguiente:

CV =( 1.35 ) (27602.972)

CV =$ 37,264.012
De lo anterior se puede deducir la ganancia mensual para
la fabricación de 100 unidades mensuales, ésta se calcula
como:
3. Especificaciones técnicas del robot  Motor para eslabón 2 (WMOT2) = (0.750 Kg)
(9.81 m/s2) = 7.36 N
Las especificaciones técnicas del funcionamiento del 4.1.2 Análisis para el eslabón 2
robot se muestran en la siguiente tabla: Las cargas a las que está sometido este eslabón son: W L,
WMG, WE2, WM3, WMOT3. Se sabe que la resistencia del
Tensión de alimentación aluminio a la fluencia (σy) es de 255 MPa, mismo que es
25 Volts
de motores el esfuerzo de falla, y considerando un coeficiente de
Corriente mínima de seguridad de 2, se obtiene lo siguiente:
0.50 Ampers
alimentación
Corriente máxima de σy
1.20 Ampers
alimentación Coeficiente de seguridad=
Velocidad de trabajo 240°/s (40 rpm) σ Trabajo
Carga de trabajo 0.50 Kg σy
Apertura máxima de → σ Trabajo =
tenazas
0.05 m Coeficiente de seguridad
Peso del robot 5.00 kg
Tabla 3a. Especificaciones técnicas de robot SCARA. 255
σ Trabajo = =125 MPa
2
4. Desarrollo técnico del robot
Haciendo un análisis de esfuerzos en Autodesk Inventor
4.1 Validación mecánica del diseño 2010, se obtiene los resultados mostrados en la figura 1
Mediante al análisis de elemento finito se comprueba el del anexo B, donde se puede observar que el esfuerzo
diseño de cada una de las placas que integran los máximo al que está sometida la pieza es de 15.43 MPa,
eslabones del robot. Dicho análisis se llevo a cabo en esfuerzo mucho menor al esfuerzo de trabajo, por lo que
Autodesk Inventor 2010, el cual cuenta con un módulo de se asegura la durabilidad de éste.
análisis de elemento finito. En la figura 2 del anexo B se puede observar la
Recordando la distribución de cargas mostradas en la deformación que sufre la pieza debido a las fuerzas
figura 3 se divide el análisis en cada eslabón del robot. presentes en ésta, siendo la deformación
máxima sufrida de 0.2205 mm.

4.1.3 Análisis para el eslabón 1


Las cargas a las que está sometido este eslabón son:
WROD, WE1, WM1, WMOT2. Debido a las fuerzas de reacción
que tiene el eslabón 2 sobre el eslabón 1 existe una carga
de 39.245 N. Se sabe que la resistencia del aluminio a la
fluencia (σy) es de 255 MPa, mismo que es el esfuerzo de
falla, y considerando un coeficiente de seguridad de 2, se
obtiene lo siguiente:

σy
Coeficiente de seguridad=
σ Trabajo
Figura 4.1a. Cargas a las que esta sometidas el robot.
σy
→ σ Trabajo =
Coeficiente de seguridad
La distribución de cargas enlista a continuación:
 Carga máxima a levantar 255
(WL) = (0.500 Kg) (9.81 m/s2) = 4.905 N σ Trabajo = =125 MPa
2
 Mecanismo del gripper
(WMG) = (1.0 Kg) (9.81 m/s2) = 9.81 N Haciendo un análisis de esfuerzos en Autodesk Inventor
 Peso del eslabón 2 2010, se obtiene los resultados mostrados en la figura 3
(WE2) = (0.750 Kg) (9.81 m/s2) = 7.36 N del anexo B, donde se puede observar que el esfuerzo
 Mecanismo de eslabón 2 máximo al que está sometida la pieza es de 53.75 MPa,
(WM3) = (1.0 Kg) (9.81 m/s2) = 9.81 N esfuerzo mucho menor al esfuerzo de trabajo, por lo que
 Motor para gripper se asegura la durabilidad de éste.
(WMOT3) = (0.750 Kg) (9.81 m/s2) = 7.36 N En la figura 4 del anexo B se puede observar la
 Rodamientos entre eslabón 2 y 1 deformación que sufre la pieza debido a las fuerzas
(WROD) = (0.200 Kg) (9.81 m/s2) = 1.962 N presentes en ésta, siendo la deformación máxima sufrida
 Peso del eslabón 1 de 2.282 mm.
(WE1) = (0.750 Kg) (9.81 m/s2) = 7.36 N
 Mecanismo de eslabón 1 (WM1) = (1.0 Kg) (9.81
m/s2) = 9.81 N
4.2 Adaptaciones y modificaciones finales al diseño
De acuerdo con el diseño mecánico planteado en un inicio
existen variaciones respecto a la selección de
rodamientos, transmisión por cadena y longitud de los
eslabones.

4.2.1 Selección de rodamientos


En el reporte anterior se desarrolló la selección de
rodamientos con base a las tablas características de la
marca SKF, dando como resultado un rodamiento 6201,
pero debido al alto costo que éste presentaba y sobre todo
que su espesor no correspondía con el esperado para el
diseño se decidió buscar otras opciones. De la búsqueda
se obtuvo como resultado un rodamiento de la marca
URB modelo R8-2R5 cuyas características se muestran a
continuación:

B 7.93 mm
D 28.575 mm
d 12.7 mm

Figura 4.2.1a. Cargas a las que esta sometidas el robot.

El rodamiento anterior soporta una velocidad angular


máxima de 175 rpm y tiene una vida media de 7200
horas.

4.2.2 Transmisión por cadena


Finalmente para la transmisión se selecciono una
transmisión por cadena flexible del número 15 con paso
de ¼” siendo capaz de soportar una potencia de 0.0402
hp, la cual es proporcionada por los motores.
Debido a la selección de esta cadena se tuvo que
rediseñar la distancia entre centros de los sprockets
siendo de 142 mm.

4.2.3 Reajuste de las dimensiones de los eslabones


Como se menciono anteriormente, debido a la selección
de la transmisión por cadena se tuvo que reajustar las
longitudes de los eslabones, quedando como se muestra
en el anexo C.
4.3 ETAPA DE CONTROL DE MOTORES DE CD d i a (t)
(3) = A i a ( t ) + B [ u(t)− K p w(t) ]
A. MÉTODO A EMPLEAR PARA CARACTERIZAR dt
MOTORES.
dw (t)
(4 ) =C K p i a ( t ) + Dw (t)
Se desarrolla un método de ajuste por mínimos dt
cuadrados de los parámetros físicos de un motor de CD
Aplicando el método de Hamming a (3).
de imán permanente, aplicando el método de predicción
Sea
corrección de Hamming para ecuaciones diferenciales
ordinarias. d i a (t )
=f (i a , u , w , t)
La implementación se realizó usando lenguaje formal dt
para Matlab. El método propone, que para el ajuste de los 9 i ak −i ak−2 3 h
parámetros es necesario el muestreo de las siguientes ( 5 ) i ak+1= + (−f k−1 +2 f k + f k+1 ) .
8 8
señales: Corriente de armadura ( I a (t)), la velocidad
angular (ω (t)) y la tensión de alimentación (u(t )). Si expresamos las variables en diferencias como:
Dichas señales deben ser necesariamente muestreadas ( 6 ) I ak =−i ak−1+ 2i ak +i ak +1
durante el arranque del motor, ya que en este lapso de
tiempo es donde se observa con mayor claridad el ( 7 ) W k =−w k−1+2 w k +w k+1
comportamiento dinámico del motor.
( 8 ) U k =−uk−1 +2u k +uk+ 1
1. Metodología
Sustituyendo en (5), obtenemos la ecuación (9)
Para un motor de CD de imán permanente Tenemos las
siguientes ecuaciones: 9 i ak −i ak−2 3 h
i ak+1 = + { A I ak +B [ U k −K p W k ] } .
d i a (t) −Ra K 1 8 8
(1) = i a (t)− p w( t)+ u(t)
dt La La La Para la ecuación (4)

dw (t) K p b dw(t )
(2) = i (t)− w(t ) =g (i a , w ,t )
dt J a J dt
Auxiliándonos del método de Hamming, que se 9 w k −wk−2 3 h
estructura de la construcción de las aproximaciones a la
( 10 ) w k+1= + (−f k−1+2 f k +f k+1 ) .
8 8
solución de valor inicial:
Sustituyendo (6), (7) y (8) obtenemos (11).

dy 9 wk −w k−2 3 h
=f ( t , y ) con y ( a )= y 0 en [ a , b ] w k+1= + ( C K p I ak + D W k )
dt 8 8
Por otra parte lo que se pretende al aplicar este método
es tener el comportamiento dinámico de las ecuaciones
Usando el valor predictor: (3) y (4), pero lo que necesitaremos para poder obtener
4h los parámetros, es minimizar el error que nos pueda
pk +1= y k−3 + ( 2 f k−2−f k−1 +2 f k ) , generar el método de Hamming, dicho de otro modo
3
debemos de obtener los valores óptimos de los
Una modificación y el valor corrector: parámetros para poder realizar un ajuste de las curvas
obtenidas por el circuito electrónico, por lo tanto
9 y k − y k −2 3 h aplicaremos el método de mínimos cuadrados.
y k +1= + (−f k−1+ 2 f k + f k+1 ) .
8 8 Si empezamos con la curva descrita por (9), entonces la
Ahora si nosotros ya conocemos y k +1, pues ya no es distancia vertical d k desde el punto ( t k+1 , i ak+1 ) hasta el
necesario aplicar el predictor, basta con aplicar el punto
corrector. 9i ak −i ak−2 3 h
Para simplificar los cálculos realizaremos algunos
(t k+1 ,
8
+
8 )
{ A I ak + B [U k −K p W k ] } , de
cambios de variable, sea: la curva:

−R a 1 1 −b 9i ak −i ak−2 3 h
A=
La
, B= , C= y D=
La J J dk = | 8
+
8 |
{ A I ak + B [U k −K p W k ]}−iak+1
Sustituyendo a, b, c y d en (1) y (2).
Se debe minimizar la suma de los cuadrados de las por la estructura debido a las variables articuladas y que
distancias verticales d k (ver Apéndice A ) afectan directamente, en este caso, a los motores
generadores del par del sistema.

B. CONTROL DE LOS MOTORES DE CD PARA LOS


PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE
TEÓRICA)
C es una matriz de las componentes de las reacciones
La implementación de una etapa de control de posición que existen en las uniones de los eslabones, de tal forma
de motores es de suma importancia para el correcto que estas reacciones al relacionarse con la geometría de la
funcionamiento del robot, ya que ésta asegura que se estructura también generan un par perturbador.
alcanzan de manera confiable las posiciones de las
variables articuladas deseadas por el robot SCARA, en la 4. Motor 1 y Motor 2
fig.4.3a se propone el diagrama de control en lazo cerrado Son nuestros generadores de par para poder producir
del sistema robótico, ya que hay que ver a la planta como movimiento entre los eslabones de la estructura.
todo lo que comprende el robot y no solo los actuadores.
Para ver a un motor como un generador de par se debe

fig. 4.3a Diagrama de control del sistema robótico de los primeros dos grados de libertad
1. Cinemática Inversa de analizar como un nuevo sistema de control, de tal
forma que, el motor proporcione el par deseado en cada
Es el algoritmo que nos proporciona el valor de las instante de tiempo en el que se le requiera.
variables articulares a los que deseamos rotar en este caso
por simplicidad del control se indica qd como un vector el Se puede observar que en el diagrama de la fig.4.3b la
cual contiene todas las variables articuladas tanto de mayoría de las constantes La, Ra, ke, J y b son los
posición y velocidad angular de los eslabones . parámetros internos del motor, obtenidos mediante el
método explicado en A. Método a emplear para
2. PID
caracterizar motores.
Controlador del sistema a su entrada recibe el error Además que al igual que el seguimiento de trayectoria
generado por la diferencia entre las salidas deseadas de de las variables articuladas, también se hace el uso de un
las variables articuladas y la medición directa de éstas controlador PID para asegurar la respuesta inmediata del
mediante un sensor resistivo. par requerido.

Su función de transferencia obedece a la ecuación:

2
α ( s) k D s + kp s +ki
=
e(s) s

3. Los bloques D y C

Son compensadores del sistema, donde D es una matriz


donde sus elementos están conformados por las masas e
inercias que al ser multiplicadas por la salida del
controlador PID generan una estimación del par generado
fig. 4.3b Diagrama del controlador de par
de 1 a 10 bits.
5. Estructura mecánica • Comunicación tipo bulk.
Es el conjunto de elementos que conforman al sistema • Driver: Mpusbapi.
articulado, donde ésta requiere de una entrada tipo par
para poder generar movimiento y que genera una gran • Librerias: Mpusbapi.dll,mpusbapic.h.
cantidad de interferencia en el proceso de control durante • Cristal: 20 Mhz.
la dinámica del sistema.
• Frecuencia de trabajo interna: 48Mhz

Donde la programación se llevará a alto nivel con el


compilador PICC.
C. CONTROL DE LOS MOTORES DE CD PARA LOS
PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE
PRÁCTICA) Para la implementación de la función de transferencia
del PID se programará mediante una serie de ecuaciones
en diferencias.
Este sistema de control se implementará de forma
digital, ya que en la actualidad es necesaria la Para garantizar el correcto funcionamiento el sistema
implementación de controladores digitales, pues los se muestreará a una frecuencia de muestreo de 10Khz.
analógicos ya están quedando obsoletos por la gran Con la que se procura que dicha frecuencia sea mayor a la
cantidad de limitantes y tamaño de componentes. frecuencia del sistema de control.
Para nuestro sistema de control digital utilizaremos el
La señal PWM trabajará a una frecuencia de 3Khz.
siguiente hardware.
1. Computadora (Algoritmo de los valores de las Se implementa un seguimiento de referencia (dato
variables articuladas) enviado por la computadora al microcontrolador) y una
Para la posible implementación de este control en lazo retroalimentación compuestas por 8 bits mediante la
cerrado será necesario de una computadora que nos lectura de los canales ADC, con dicha resolución se
proporcione los valores de las variables articuladas logran 255 posiciones (suponiendo que todas sean
deseadas, a las que debe responder el sistema. alcanzables por el conjunto actuador / acondicionador /
estructura mecánica).
Únicamente se procesará algún algoritmo para la
decodificación de posición o velocidades deseadas en el
Para más información sobre la programación del
efector final, en el caso de la cinemática inversa, de las
controlador PID ver Anexo B.
variables articuladas. Y se realizará la misma, para el caso
contrario, cinemática directa. De tal forma que a un
microcontrolador, externo, se le proporcionen dichos
valores que deben de entrar a nuestro proceso de control.

2. Microcontrolador (Implementación de un PID de


forma digital)

Se implementará un controlador microchip matrícula


PIC18F4550, del cual utilizaremos:

• 1 puerto para comunicación USB. de 1.5 Mb/s


-12 Mb/s.
• 64 bytes acceso dual para USB.
• 2 canales ADC, con 10 bits.
• 1 generador con 2 canales, PWM con resolución
El efector debe de tener un alcance de por lo menos 5 cm
por encima de la superficie plana donde se trazara la
3. Etapa de potencia
trayectoria.
El efector debe de lograr levantar por lo menos 300gr y a
Para esta etapa del sistema de control se su vez lograr trazar sobre superficies irregulares.
implementaron puentes H con transistores tipo mosfet, Este movimiento debe de ser lo suficientemente rápido,
controlados por cambio del giro y señal pwm, como se para evitar que el robot tenga que parar durante la
puede ver en la fig 4.3c. trayectoria.
Este bolígrafo debe trazar sobre papel la trayectoria
deseada por el usuario.
Se implementaron los transistores canal p y n con las El censado debe ser lo suficientemente preciso para evitar
matriculas IRF640 e IRF9640, se optó por este tipo de que la línea no sea continua, es decir que la transmisión
material porque sus zona de trabajo es demasiado suba o baje afectando el trazo de la trayectoria.
tolerante a cambios bruscos de demanda de corriente Lograr calibrar y aislar el censor de perturbaciones del
además de que se pueden energizar a tensiones altas y su área de trabajo (iluminación, ruido electromagnético, etc).
rango de frecuencias de activación de compuerta soporta
mayores frecuencias que un BJT. A. Desarrollo
Propuesta inicial
Para aislar al circuito digital de la etapa de potencia se Sensor
utilizaron opto-acopladores 4n33. En un inicio se propone un censor óptico del tipo QRD,
ya que este tiene la cualidad de ser lineal, y de fácil
manejo e implementación. Se obtuvo en un solo
encapsulado tanto al emisor como al receptor, por lo que
al siguiente paso a cubrir es el diseño del control y la
electrónica necesaria para poder procesar la señal
obtenida del sensor.

Material para el diseño de la estructura


Para este problema se pensó en algún polímero, ya que es
4.4 Diseño y control del actuador final (gripper) fácil de manejarse y maquinarse, además de que al diseño
siempre hay que realizarle ajustes, se opta por este tipo de
Al robot se le implementara un efector final el cual debe materiales, ya que es muy fácil agregar o quitar piezas de
ser capaz de sostener un bolígrafo o un plumón para la estructura. Estos cambios comenzaran a partir de las
pizarrón, con la característica principal de avanzar sobre pruebas realizadas conforme se desarrolla el mismo.
una superficie irregular.
Sistemas de transmisión
Para el efector se proponen dos diferentes sistemas de
transmisión, uno de ellos para el gripper; para poder abrir
y cerrar hasta el diámetro deseado al colocar el bolígrafo la posición del mismo, por lo que es muy factible
o plumón para la trayectoria. utilizarlos en el efector.
El segundo es propuesto por un sistema de cremallera
para poder transformar un movimiento rotacional a un Control
longitudinal. Este sistema nos permitirá tener la posición Se utilizo un micro controlador AVR de la serie
del motor del sistema de transmisión se desea controlar la ATMEGA8535 el cual ya incluye un convertidor
posición del mismo. analógico digital. Por lo que la señal del sensor es
procesada por el micro controlador y mediante su
Motores convertidor analógico digital compararlo con la
Para el gripper se necesita un motor de baja potencia ya referencia. Que en este caso se trata de la posición que se
que solo debe mantener el bolígrafo en posición. Si se quiere mantener del gripper.
consigue un motor que al estar sin corriente eléctrica Este control es de buena precisión, rapidez y buen
mantenga el bolígrafo en la posición inicial se optara por funcionamiento. Pero el principal problema se presento
este, en caso contrario se mantendrá energizado para en el sensor, debido a las perturbaciones del ambiente y
poder asegurar el agarre del bolígrafo. los cambios de la iluminación. Por lo que se
Para el movimiento a lo largo del eje Z se necesitara un implementara una forma de aislarlo y reducir las
motor con un par adecuado para poder mover sin perturbaciones.
problema mas de 300gr además del peso de la estructura Debido a lao mencionado al ser desplazado el efector a lo
del gripper. Este motor será seleccionado de acuerdo a largo de una superficie irregular este tiende a subir y bajar
sus dimensiones y costo. de forma errónea, por lo que se intentara solucionar el
problema expuesto.
Control
Se diseño un simple ADC seguido de un micro Características finales del efector
controlador y un puente H para el motor de la transmisión
vertical. Ya que simplemente comparando el sensor
óptico con una referencia, se desea a la salida con dos bits
la combinación adecuada para que el motor gire en
diferente sentido a través del puente h.
Para el gripper se implementara un microcontrolador de
tal forma que con dos simples botones se pueda abrir y
cerrar. Al cerrar y llegar al borde del bolígrafo el motor se
mantendrá energizado ocasionando una fuerza necesaria
para que el bolígrafo se mantenga en posición.

Resultados preliminares
Sensor
Al realizar pruebas al censor se hizo notoria la gran
cantidad de perturbaciones que tenemos del ambiente, ya
que al variar la iluminación del entorno se tienen
variaciones en la tensión de salida del sensor. Por lo que
se necesita aislarlo del entorno y disminuir lo mayor Fig.4.4a Tenazas del robot.
posible las perturbaciones.
Para el movimiento de las tenazas fue empleado el
Material para el diseño de la estructura
mecanismo de un lector laser de un DVD el cual se
Se comienza por utilizar la estructura de un lector de CD
ya que al ser este un polímero cumple con las modificó a conveniencia para simular las tenazas del
características deseadas, además de que este lector ya robot, para lograr este abrir y cerrar se utilizó el motor
tiene diferentes sistemas de transmisión, los cuales que viene con el mecanismo, el cual trabaja a 5v y tiene
podrían ser utilizados. un consumo de 150 mA. La etapa electrónica
correspondiente se muestra en la siguiente figura:

Sistemas de transmisión
Se utilizaran los sistemas de transmisión del lector de CD
ya que los engranes están fabricados de nylamid, este
material tiene la capacidad de soportar grandes cargas en
los dientes, por lo que es factible utilizarlos. Además de
que en la charola cuenta con un sistema rotacional-
traslacional, el cual podría ser aplicado en el
posicionamiento vertical del gripper.

Motores
En el mismo lector de CD se tienen diferentes motores ya
que al ser de baja potencia tienen la capacidad de por lo
menos soportar el peso del plumón, además de mantener
num1 equ 0xFF
var1 equ 0x22
num2 equ 0x01
var2 equ 0x23

org 0x00
goto inicio
org 0x05

inicio: CLRF PORTA


Movlw 0x07
movwf CMCON
Fig.4.4b Mecanismo empleado y modificado a bsf STATUS,RP0 ;Cambia al banco 1
conveniencia. movlw b'00000011' ;Configura Puerto A como
entrada/salida
movwf TRISA
movlw b'00000000' ;Configura puerto B como
salida
movwf TRISB
bcf STATUS,RP0 ;Cambia al banco
0
clrf PORTB
sensa: btfsc PORTA,0 ;Sensa push Botton de entrada
goto abrir
btfsc PORTA,1
goto cerrar
goto sensa

Fig4.4c. Diseño electrónico para el movimiento de las abrir: call t50ms


btfss PORTA,0
tenazas.
goto sensa
spres: btfsc PORTA,0
Donde se utilizó un PIC16F628A para mandar la goto spres
secuencia correspondiente al puente H y así poder abrir o movlw 0x08
cerrar las tenazas, cuando se presiona el botón de abrir movwf PORTB
goto sensa
como se muestra en el diagrama simbólico, en los pines 9
y 10 se tiene a la salida 1-0 y cuando se presiona el botón
cerrar: call t50ms
de cerrar, en la salida del pin 9 y 10 se tiene 0-1, de esta btfss PORTA,1
manera se genera un cambio en el sentido del motor por goto sensa
medio del puente H, cabe mencionar que cuando se spres1: btfsc PORTA,1
reinicia el PIC la salida en el Pin 9 y 10 es cero, por lo goto spres1
movlw 0x10
que los transistores NPN Q5 y Q6, no conmutan y de esta movwf PORTB
manera el motor queda si energía, y como se observa en goto sensa
el diagrama simbólico, los pines 9 y 10 nunca puede tener
la combinación de 1-1 ya que eso generaría un corto t50ms: movlw num2
movwf var2
circuito. carga: movlw num1
movwf var1
Los transistores Q5 y Q6 son BC548C, los cuales son de decre: nop
baja potencia y sólo sirven para activar el puente H, para nop
Q1 y Q2 se utilizaron TIP 31C y para Q3 y Q4 los nop
nop
complementarios TIP 32C, cabe mencionar que el puente nop
se calculó de tal forma que los transistores entren siempre decfsz var1,F
en saturación respectivamente, de esta manera se evita goto decre
que se calienten por mala disipación de potencia, debida a decfsz var2,F
goto carga
un voltaje presente entre el colector y emisor. return
end
Programa para abrir y cerrar las tenazas programada en el
PIC16F628A:
Diseño electrónico para la etapa de sensado y
processor 16F628A
movimiento del efector.
include <p16f628A.inc>
__CONFIG 0x2170
Como se mencionó anteriormente, el efector debe ser
capaz de cargar mínimo 300 g y controlar la altura de
manera automática cuando la superficie cambie, para esto
se utilizó inicialmente el sensor QRD114 y se diseñó su
etapa electrónica como se muestra en la figura, pero este
diseño no sirvió del todo, ya que los cambios de luz de
una zona a otra o el simple hecho de movernos alrededor
del efector produce variaciones indeseadas las cuales
consideramos como ruido y nos afectan, ya que no se
puede estabilizar el efector y alcanzar la altura deseada.

Fig.4.4e Diagrama simbólico de la segunda etapa de


sensado propuesta.

Como se observa en este diagrama, la alimentación para


Fig4.4d. Diagrama simbólico de la primera etapa de el emisor ahora es pulsada a una frecuencia de 1 KHz,
sensado propuesta. con la finalidad de evitar las frecuencias bajas que
mencionamos anteriormente, por lo que el sensor ahora
detectará estas pulsaciones de luz en vez de una fuente de
luz constante como se tenía en la etapa anterior, pero
En este diseño, el emisor se conecta a una fuente de como ahora la respuesta del fototransistor se espera que
corriente directa y permanece siempre encendido, también sea pulsada a 1 kHz, se diseña un amplificador
mientras que el fototransistor percibe los cambio de luz y para aumentar más la señal que entrega este, como se
a su salida tenemos una variación de corriente muestra a continuación:
proporcional al cambio de luz, la cual entra a la base de
un transistor NPN, la corriente de colector de este que
depende de la que entra en su base, permite que exista un
voltaje variable en las resistencias conectadas al colector
y Vcc, de tal manera que esa variación de voltaje se
puede enviar a un convertidor analógico-digital, para
realizar el control de posición del motor.

Como es un circuito muy básico y el emisor de luz está


conectado a una fuente constante, el fototransistor es
vulnerable a fluctuaciones de baja frecuencia, como
movimientos generados alrededor del efector que
producen variaciones de luz las cuales también generan
variaciones en el sensor y producen que al querer alcanzar
la referencia de altura deseada se tenga bastante error o
Fig.4.4f Diagrama simbólico para amplificar la señal del
que no se alcance nunca porque el fototransistor se haya
fototransistor.
saturado por un excedente de luz, como lo hace la luz del
sol. Ahora la salida de este amplificador posee componentes
de baja frecuencia que se generan por las variaciones
Para evitar este problema y aislar el sensor de esas
aleatorias de luz exteriores por lo que se envía a un filtro
variaciones de luz externas al efector, se diseñó una
pasa altas pasivo con frecuencia de corte de en 1 kHz,
segunda etapa de sensado en donde se acondicionó la
para que sólo se tomen las variaciones de luz
señal del fototransistor, además de que se utilizó como
provenientes del emisor las cuales están a 1kHz.
sensor el PT113 como emisor-fototransistor, en vez del
QRD114, ya que es más estable a los cambios de luz. Para el cálculo se propone un capacitor de 100 nF y se
calcula la resistencia correspondiente mediante la fórmula
Primero se cambió la alimentación del emisor infrarrojo
para la frecuencia de corte:
como se muestra a continuación:
1 Fig. 4.4i Diagrama simbólico de la segunda etapa de
Fc = = 1000 Hz sensado.
2 πRC
Por lo tanto al despejar se tiene una resistencia de
1591.54 Ω por lo que utilizó una comercial de 1kΩ en
Como se ve en este diagrama, después del filtro pasa
serie con una de 580 Ω y la nueva frecuencia de corte da
bajas pasivo, se conecta otro seguidor de voltaje para
de 1.007 kHz lo cual es aceptable.
aislar la baja impedancia del circuito y pueda ser enviada
al ADC para realizar el control de posición del motor.

Finalmente esta es la segunda etapa de sensado, la cual


funciona adecuadamente y ya no es vulnerable a los
cambios externos de luz o a la saturación por un exceso
de luz como la luz solar:

Fig.4.4g Filtro pasa altas a 1 kHz.

Posteriormente la salida del filtro se pasa por un seguidor Etapa de control con micro controlador AVR
de voltaje para evitar la impedancia del circuito RC y del ATMEGA8535
seguidor de voltaje se rectifica la señal, ya que esta será
enviada a un convertidor analógico-digital y tiene que ser
una señal de DC pues si se convierte la señal alternante
directamente del filtro, el efector comienza a oscilar y
nunca alcanza la altura deseada, es por eso que se diseñó
un rectificador de onda completa con amplificadores
operacionales como se muestra a continuación:

Fig.4.4j Mecanismo a controlar para subir y bajar las


Fig.4.4h Rectificador de onda completa con
tenazas.
operacionales.
Después de tener acondicionada la señal del sensor, se
La salida del rectificador de onda completa presenta
procede a convertirla utilizando el convertidor analógico
todavía componentes de alta frecuencia, para esto se
digital que tiene el micro controlador ATMEGA8535 el
diseña ahora un filtro pasa bajas con frecuencia de corte
cual es de 10 bits y tiene una resolución de 1024, por lo
en 8.8 Hz de igual manera que el filtro anterior:
que se toma como voltaje de referencia 5v y cada 4.88
mV el ADC incrementa o decrementa un bit, es entonces
que fijamos una referencia en binario por medio de dos
dip switch conectados en los puertos C y D del AVR, por
ejemplo fijamos B’0011111111 que equivale a un voltaje
de 1.21v y que es el voltaje que se tiene a una altura dada
del efector medida desde la superficie hasta el sensor que
es móvil y que está fijo en la parte de abajo de las
tenazas, ahora sólo se programa el AVR para que mande
a la salida del puerto B la combinación binaria
B’00000010 si el voltaje de entrada al ADC es mayor a la
Ref = 0
referencia propuesta o la combinación binaria
B’00000001 si el voltaje de entrada al ADC ahora es Inicio:
menor a la referencia dada, y finalmente cuando la
referencia sea igual al valor de entrada en el ADC, la Ref = Pinc
Dmas = Pind.1 * 512
salida de puerto B será B’00000000.
Dmin = Pind.0 * 256

De esta forma estas combinaciones se mandan a un Ref = Ref Or Dmas


puente H de igual manera que se hizo para abrir y cerrar Ref = Ref Or Dmin
las tenazas del efector, y así se logra que las tenazas
W = Getadc(0)
puedan subir y bajar para alcanzar la altura deseada.
If W > Ref Then
El puente H y el micro controlador se muestran a Portb = 2
continuación, donde el puente H se calculó para un motor Elseif W < Ref Then
que se alimenta a 9v y tiene un consumo de corriente Portb = 1
Elseif W = Ref Then
entre los 300 mA y 800 mA dependiendo de la carga a
Portb = 0
levantar. End If

Goto Inicio
End

Finalmente aquí se tiene el diagrama completo para la


etapa del control de posición del efector final:

Fig.4.4l Diagrama simbólico para la etapa de control de


Fig.4.4k Diagrama simbólico de la conexión del micro
posición del efector final.
controlador ATME8535 y puente H del motor.

La programación del AVR se llevó a cabo en el programa


Bascom para microcontroladores AVR, ya que no es una
programación en lenguaje ensamblador y por la facilidad
de programación.

Aquí se muestra el código del programa para el control de


posición:

$regfile "m8535.dat"
$crystal = 11059200

Dim W As Word , Ref As Word , Dmas As Word , Dmin As Word


Ddra = 0
Porta = 0
Ddrb = 255
Portb = 0
Ddrc = 0
Ddrd = 0

Config Adc = Single , Prescaler = Auto , Reference = Avcc


Start Adc
4.5 VISIÓN ARTIFICIAL
Para la parte de visión artificial se tiene por objetivo
seguir una trayectoria, dicha trayectoria será capturada
mediante una cámara digital, al tomar la foto se tiene que
identificar la forma de la trayectoria a seguir y
subdividirla en puntos, dichos puntos serán coordenadas,
las cuales serán enviadas a la sección de software
correspondiente a cinemática inversa para así calcular los
movimientos que se tienen que realizar en las
articulaciones,

4.5.1 ÁREA DE TRABAJO Y CALIBRACIÓN DE


CÁMARA
En el caso de la visión artificial el área de trabajo total
del robot SCARA (ver figura x.x) quedo reducida a un
rectángulo en la parte frontal de la misma, como se
observa en la figura. Como podemos ver la selección Fig 4.5.1b.- Área de visión
de esta se debió a la propia forma del área de trabajo del
robot, es decir, a los valores máximos y mínimos que el Debido a las características antes descritas el origen del
gripper puede alcanzar, además del área que la cámara área de visión es relativo con respecto al origen del área
puede ver a una distancia determinada. de trabajo del robot, por lo que para llegar al origen del
Para encontrar el área de visión, tuvimos que comenzar área de visión es necesario hacer un offset del área de
trazando el área de trabajo del robot, después acercamos visión, como se muestra en la siguiente figura.
la cámara al lugar donde trazamos la misma centrándola a
la misma y posteriormente comenzamos a alejar la
cámara, esto hasta un altura antes de que la cámara viera
fuera del área de trabajo. Tomamos la medición de la
altura a la que la cámara quedo, que en este caso es de 40
cm, finalmente medimos el área de visión, la cual tiene
las siguientes medidas (figura x.x) 23.5 cm de largo por
29 cm de ancho.

Fig 4.5.1c.- Offset.

Para poder tener una buena precisión en el seguimiento


de trayectoria, se llevo a cabo la calibración de la cámara
Acteck ATW820 a la altura determinada por el área de
trabajo, en este caso requerimos saber cual es valor que
un pixel nos representa en centímetros.
Para determinar el valor de un pixel en centímetros
Fig 4.5.1a.- Área de trabajo del robot procedimos a tomar fotografías a la distancia requerida,
40 cm, de objetos cuadrados de diferentes dimensiones y
en diferentes posiciones del área de visión.

A continuación se presenta una tabla con las diferentes


mediciones:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
estructura=[1 0 0 0 0 0 1;
Tabla 4.5.1a.- Mediciones para calibración 0 1 0 0 0 1 0;
Numero Distancia Numero Valor de un 0 0 1 0 1 0 0;
0 0 0 1 0 0 0;
de en cm de pixel en 0 0 1 0 1 0 0;
medición pixeles centímetros 0 1 0 0 0 1 0;
1 0 0 0 0 0 1];
1 0.5 3 0.1667
2 1.0 5 0.2000 k=sum(sum(estructura));
3 1.5 8 0.1875 erosion=zeros(fil,col);
4 2.0 11 0.1818
for i=4:fil-3
5 2.5 14 0.1786 for j=4:col-3
if foto(i,j)==1
6 3.0 16 0.1875 if (sum(sum(foto(i-3:i+3,j-
7 3.5 19 0.1842 3:j+3).*estructura)))==k;
erosion(i,j)=1;
8 4.0 21 0.1905 end
end
end
Finalmente para tener un parámetro regular en toda la end
foto decidimos hacer un promedio de los valores figure,imshow(erosion)
obtenidos, así el valor regular de cada pixel en
centímetros es: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1 pixel=0.1845 cm %%%%
%Calculo de bordes de la imagen Erosionada
Con este parámetro somos capaces de proporcionarle, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tanto a la cinemática directa como a la cinemática inversa %%%%
los valores necesarios para el posicionamiento del bordes=edge(erosion)
gripper. figure,imshow(bordes)
salida=bordes;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
4.5.2 PROGRAMACIÓN %Codigo de la cadena
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
El cálculo de coordenadas se implemento mediante %%%%
software en matlab, a continuación se presenta la sección
de código escrito y posteriormente una explicación for i=2:fil-1
detallada de su funcionamiento. for j=2:col-1
if salida(i,j)==1
paro=1;
%Vision para Robot SCARA pixel=0;
while (paro==1)
close all, clear all, clc; if salida(i,j+1)==1
salida(i,j)=0;
pixel=pixel+1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% coordx(pixel)=i;
%%%% coordy(pixel)=j;
%Captura de imagen i=i;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% j=j+1;
%%%% elseif salida(i+1,j+1)==1
v=videoinput('winvideo',2); salida(i,j)=0;
set(v,'ReturnedColorSpace','rgb') pixel=pixel+1;
preview(v) coordx(pixel)=i;
pause coordy(pixel)=j;
foto=getsnapshot(v); i=i+1;
figure,imshow(foto) j=j+1;
elseif salida(i+1,j)==1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida(i,j)=0;
%%%% pixel=pixel+1;
%Binarizar imagen coordx(pixel)=i;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% coordy(pixel)=j;
%%%% i=i+1;
% foto=imread('cinta.bmp'); j=j;
foto=rgb2gray(foto); elseif salida(i+1,j-1)==1
[fil,col]=size(foto); salida(i,j)=0;
foto=foto>105; pixel=pixel+1;
foto=1-foto; coordx(pixel)=i;
figure,imshow(foto) coordy(pixel)=j;
i=i+1;
j=j-1;
elseif salida(i,j-1)==1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% salida(i,j)=0;
%%%% pixel=pixel+1;
%Erosion de Imagen coordx(pixel)=i;
coordy(pixel)=j;
i=i;
j=j-1;
elseif salida(i-1,j-1)==1
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
i=i-1;
j=j-1;
elseif salida(i-1,j)==1
salida(i,j)=0; Fig. 4.5.2a. Imagen Capturada de la Trayectoria.
pixel=pixel+1;
coordx(pixel)=i; B. Binarización de Imagen
coordy(pixel)=j;
i=i-1; foto=rgb2gray(foto);
j=j; [fil,col]=size(foto);
elseif salida(i-1,j+1)==1 foto=foto>105;
salida(i,j)=0; foto=1-foto;
pixel=pixel+1; figure,imshow(foto)
coordx(pixel)=i;
coordy(pixel)=j;
i=i-1; Para tratar una imagen es mucho más fácil tratarla si
j=j+1; solo se compone de dos colores, es decir negro y blanco,
else
salida(i,j)=0; la imagen original tomada esta en formato RGB es decir
pixel=pixel+1; posee tres capas una con sus componentes en rojo, otra
coordx(pixel)=i; con sus componentes en azul y otra con sus componentes
coordy(pixel)=j;
paro=0; en verde, con el comando rgb2gray se transforma la
end imagen a una matriz de una sola capa en escala de grises
imshow(salida) para así poder manejarla con mayor facilidad, con el
drawnow
end comando siguiente se obtiene el tamaño de la foto en filas
end y columnas de pixeles, después se binariza la imagen
end dejando pasar solo los componentes cuyo tono de gris sea
end
mayor a 105, este valor puede cambiar dependiendo del
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tipo de iluminación del lugar de trabajo, después para un
%%%% tratamiento más simple se invierten colores dejando el
%Escala de vectores de Coordenadas en X e Y fondo negro y la trayectoria en color blanco, por último se
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
muestra la imagen binarizada.
tamX=length(coordx)
coordxn=coordx(1:tamX/2);
coordyn=coordy(1:tamX/2);

contador=1;
for i=1:5:tamX/2
posRealX(contador)=coordxn(i);
posRealY(contador)=coordyn(i);
contador=contador+1;
end
Fig. 4.5.2b. Imagen Binarizada de la trayectoria
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Transformacion de escala de pixeles a cm C. Erosión de la Imagen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
posRealX=posRealX*0.1845; estructura=[1 0 0 0 0 0 1;
posRealY=posRealY*0.1845; 0 1 0 0 0 1 0;
0 0 1 0 1 0 0;
Ahora que conocemos el código explicaremos 0 0 0 1 0 0 0;
detalladamente cada sección del mismo: 0 0 1 0 1 0 0;
0 1 0 0 0 1 0;
A. Captura de Imagen 1 0 0 0 0 0 1];

v=videoinput('winvideo',2); k=sum(sum(estructura));
set(v,'ReturnedColorSpace','rgb') erosion=zeros(fil,col);
preview(v)
pause
foto=getsnapshot(v); for i=4:fil-3
figure,imshow(foto) for j=4:col-3
if foto(i,j)==1
if (sum(sum(foto(i-3:i+3,j-
En esta sección de código se llama a la herramienta de 3:j+3).*estructura)))==k;
video de matlab, se abre una ventana con una vista previa erosion(i,j)=1;
end
del video capturado para después obtener una captura de end
imagen, por último se muestra en una ventana nueva la end
imagen capturada, un ejemplo de captura es el siguiente: end
figure,imshow(erosion)
salida(i,j)=0;
pixel=pixel+1;
Esta sección de código es la encargada de erosionar la coordx(pixel)=i;
imagen, es decir hacer la figura de trayectoria mas coordy(pixel)=j;
pequeña quitando las capas externas de la figura mediante i=i;
j=j+1;
la aplicación de una máscara o estructura, cabe mencionar elseif salida(i+1,j+1)==1
que la estructura se puede seleccionar de acuerdo al salida(i,j)=0;
tamaño que más convenga para la aplicación, en nuestro pixel=pixel+1;
coordx(pixel)=i;
caso se intento con distintas estructuras pero la que mejor coordy(pixel)=j;
funciono para adelgazar las trayectorias de prueba fue una i=i+1;
estructura en forma de X con dimensión de 7 filas por 7 j=j+1;
elseif salida(i+1,j)==1
columnas, por último se muestra una imagen con la salida(i,j)=0;
trayectoria adelgazada o erosionada. pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
i=i+1;
j=j;
elseif salida(i+1,j-1)==1
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
i=i+1;
j=j-1;
Fig. 4.5.2c. Imagen Erosionada de la trayectoria elseif salida(i,j-1)==1
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
D. Bordes de la imagen i=i;
j=j-1;
bordes=edge(erosion) elseif salida(i-1,j-1)==1
figure,imshow(bordes) salida(i,j)=0;
salida=bordes; pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
El código anterior muestra el cálculo de bordes de la i=i-1;
imagen, es decir se selecciona solo el contorno de la j=j-1;
figura en blanco y se elimina todo lo demás, dejando solo elseif salida(i-1,j)==1
salida(i,j)=0;
dibujada su forma básica, esto se realiza con el propósito pixel=pixel+1;
de obtener la imagen definida solo por contornos de un coordx(pixel)=i;
pixel de grosor, esto nos ayudara a un correcto coordy(pixel)=j;
i=i-1;
funcionamiento del código de la cadena explicado a j=j;
continuación, se muestra una figura con los bordes de la elseif salida(i-1,j+1)==1
imagen calculados salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
i=i-1;
j=j+1;
else
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
paro=0;
end
imshow(salida)
Fig. 4.5.2d. Bordes delgados de la trayectoria drawnow
end
end
end
end

Es la parte fundamental del cálculo de la trayectoria ya


que como resultado de la aplicación de esta sección de
E. Código de la cadena código se nos entrega un vector con las correspondientes
coordenadas en X e Y de cada pixel que dibuja el
for i=2:fil-1 contorno de la trayectoria, dichos vectores se construyen
for j=2:col-1
if salida(i,j)==1 de la siguiente manera: Primero se recorre la imagen fila
paro=1; por fila hasta encontrar el primer pixel blanco, al
pixel=0; encontrarlo guarda su posición en una entrada de los
while (paro==1)
if salida(i,j+1)==1 vectores XY para después borrarlo y buscar en los pixeles
circundantes por la continuación de color, es decir el
pixel contiguo que sea de color blanco.

Fig. 4.5.2e. Imagen siendo escaneada mediante código de la cadena

F. Recorte de Vector de Coordenadas

tamX=length(coordx)
coordxn=coordx(1:tamX/2);
coordyn=coordy(1:tamX/2);

contador=1;
for i=1:5:tamX/2
posRealX(contador)=coordxn(i);
posRealY(contador)=coordyn(i);
contador=contador+1;
end

Como se puede suponer al ver trabajar al código de la


cadena este nos entrega todas las coordenadas
correspondientes al circuito cerrado que compone el
contorno de la trayectoria, al analizar vemos que la
trayectoria se recorre satisfactoriamente tomando solo los
pixeles que componen la trayectoria de inicio o solo los
pixeles que constituyen el regreso del código de cadena,
para esto seleccionamos solo la mitad del vector
correspondiente a las coordenadas tanto en X como en Y,
también se observa que es innecesario tomar todas las
coordenadas que nos entrega el código, ya que al tratar de
mover el robot de un punto a otro serian avances de
resolución muy pequeña, teniendo para este caso en
particular 125 movimientos para completar la trayectoria,
para eso se implemento la sección de código que toma
solo unos puntos, se proponen saltos de 5 posiciones para
así completar la trayectoria con 25 movimientos punto a
punto.

G. Escalamiento de Vector de Coordenadas

posRealX=posRealX*0.1845;
posRealY=posRealY*0.1845;

Por último se realiza una transformación de unidades o


cambio de escala es decir pixeles a centímetros, como la
cinemática inversa de nuestro robot está definida en
unidades de distancia es de suma importancia realizar este
cambio de unidades, como se explico previamente el
valor de un pixel en la imagen es equivalente a 0.1845 cm
reales, así al dar la posición de un pixel blanco estaremos
dando la posición de una coordenada en el área de trabajo
con unidades de distancia.
4.6. INTERFAZ DE USUARIO

El objetivo de la interfaz es hacer amigable el control del


robot. Se utilizó la Interfaz Gráfica de Usuario de Matlab.
La interfaz conjunta todos los programas de control
implementados en el robot. Hace uso de estos programas
como funciones, lo que hace más fácil el manejo. Se
diseñó de tal manera que su uso sea intuitivo, permitiendo
al usuario un manejo fácil.
Fig. 4.6a. Vista de la Interfaz Grafica de Usuario
La interfaz se divide en tres secciones, la parte de control
del robot por visión, el control de posición dando una
función a trazar y el posicionamiento punto a punto.

En la sección de visión se despliega la imagen que la


cámara capta, mostrando así el área de trabajo del robot
en el modo de visión artificial. La trayectoria a seguir en
este modo debe verse completamente en la imagen, para
que el cálculo de la trayectoria sea preciso. El primer
botón sirve para tomar la imagen de la trayectoria, esta
será mostrada. El segundo botón da la instrucción de
procesar la imagen para calcular los puntos a los que se
debe mover el robot, al terminar de calcular los puntos, se
habilita el tercer botón, el cual permite el movimiento del
robot a través de la trayectoria.

La sección de Punto a punto, se utiliza para que el robot


se mueva por puntos definidos directamente por el
usuario. Los puntos que se van introduciendo se dibujan
en el área de trabajo para que el usuario verifique que el
punto corresponde a una coordenada alcanzable. Los
puntos se van agregando y se cuando haya terminado de
introducir todos, entonces se da la instrucción de que el
robot se mueva hacia ellos.

En la sección de Función, el robot se configura para trazar


una función introducida por el usuario, al terminar de
escribir la función el usuario debe dar clic en el botón
comprobar, para que la función sea evaluada en el área de
trabajo. Se graficarán los puntos que coincidan en el área
de trabajo. La función se puede borrar y escribir una
nueva hasta que el usuario este conforme con los puntos.
Para trazar la trayectoria se da clic en el botón Trazar
Función.

El botón posición inicial configura al robot para entrar en


cualquiera de los tres modos de funcionamiento. Al dar
clic, el robot se va a la posición que tiene como
referencia, esto al iniciar la interfaz, si al utilizar el robot
en cualquiera de los modos se da clic en el botón, el robot
sale del modo y se va a su posición inicial.
4.7 MODELO DINÁMICO DEL ROBOT SCARA

En este avance se muestra paso a paso la metodología


para obtener el modelo dinámico de un Sistema robótico
usando como herramienta los parámetros y matrices de
transformación calculados mediante matrices de rotación
y traslación.

A. Parametrización del Sistema

Suponga el sistema robótico mostrado en la Figura 4.7a.


El primer paso que se debe realizar para poder calcular el
modelo dinámico de dicho robot es definir los ejes de
movimiento del sistema y los parámetros de los Fig. 4.7c Marcos Coordenados
eslabones, como se muestra en las figuras 13 y 14,
respectivamente. En la figura se observa finalmente la disposición de los
marcos coordenados que definen los eslabones del
sistema robótico, así como el movimiento que realizan.
La base del sistema está definida como O0.

La definición de cada marco de referencia es la siguiente:


T 10=Tras ( z 0 , l 1) Rot (z 0 , θ 1)
1 0 0 0 cos θ1 −sin θ1 0 0 cos θ 1 −sin

Fig. 4.7a Robot SCARA


T 10=
(
0
0
0
1
0
0
1 l1
0 1
0
0
)(
0 0 sinθ 1 cos θ1
0
0
0
1
0
0
1
)(
0 = sin θ 1 cos θ
0
0
0
0

En la imagen anterior se puede observar la disposición de


los eslabones que conforman la arquitectura SCARA. El T 21=Tras ( x 1 ,l 2 ) Rot ( z 1 θ 2)
sistema cuenta con 3 grados de libertad, de tipo R-R-P.
1 0 0 l 2 cos θ 2 −sin θ2 0 0 cos θ 2 −sin
En la figura 4.7b se muestran los ejes de movimiento de
los eslabones, los cuales son muy importantes de definir,
ya que, con ellos, se establecerán los ejes Zi del sistema,
ya sea para el análisis rotacional y traslacional así como
el análisis mediante el algoritmo de Denavit-Hartenberg.
(
T 21= 0
0
0
1
0
0
0
1
0
0
1
)(
0 sin θ 2 cos θ2
0
0
0
0
0
1
0
0
1
)(
0 = sin θ 2 cos θ
0
0
0
0

T 32=Tras ( x 2 ,l 3 ) Tras ( z 2 , l 4 ) Rot ( y 2 , 180 °)


1 0 0 l 3 cos 180 ° 0 sin 180° 0 1 0

(
T 32= 0
0
0
1
0
0
0 0 0
)(
1 l 4 −sin 180 °
0 1 0
1 0
0 cos 180 °
0 0
)(
0=0 1
0
1
0 0
0 0

T 43=Tras ( z 3 , l 5 )
1 0 0 0
Fig. 4.7b Ejes de Rotación y Traslación

Una vez definidos los ejes de movimiento definiremos la


pose (posición y orientación) de los marcos coordenados
O i con i = 0, 1, 2, 3.
T 43=
(
0
0
0
1
0
0
0
1
0
0
l5
1
)
Transformaciones Homogéneas
Tomando en cuenta las anteriores restricciones, los A partir de esto se puede calcular cualquier
marcos coordenados tienen la siguiente disposición transformación a cualquier punto, en resumen tenemos las
siguientes matrices de Transformación.
En este fragmento de código es localizada la declaración
de estos desplazamientos:

B. Cinemática Directa
Tanto la cinemática Directa como la cinemática Inversa
fueron programadas en Mathematica, haciendo uso de
vectores auxiliares para poder definir cada vector y punto
del eslabón con el fin de graficarlo.
Para la Cinemática Directa se piden como valores de
entrada la longitud de los eslabones l 1 ,l 2 ,l 3 la distancia
de separación l 4 y la distancia l 5que bajara el efector final
y el ángulo que rotaran las variables articulares θ1 y θ 2. Y
Posteriormente, se multiplica la matriz de transformación
se obtendrá la posición del Efector Final. desde el marco origen al punto que se va a referir, por su
traslación para obtener el punto siguiente, en el código se
muestra, que además de realizar la multiplicación, se
reasignan los valores en vectores de 3 dimensiones que
pueden ser graficables:
Fig. 4.7d Bloques de la Cinemática Directa

En el siguiente fragmento de código es donde se toman en


cuenta los datos de entrada, de tal manera que son
propuestos los siguientes valores:

Una vez obtenidas las posiciones que serán a graficadas,


se dibujan las líneas y articulaciones respectivas, para dar
una similitud al robot SCARA.
De tal manera que al ejecutar el programa, se obtiene el
siguiente resultado:

Para la ubicación de cada eslabón, se definen puntos que


viven sobre los marcos de referencia de forma que
definan por su posición el inicio de cada eslabón, cada
punto vive en el eje x del marco de referencia.
De igual manera que la cinemática directa para la
ubicación de cada eslabón, se definen puntos que viven
sobre los marcos de referencia de forma que definan por
su posición el inicio de cada eslabón, cada punto vive en
el eje x del marco de referencia.

En este fragmento de código se logra localizar la


declaración de estos desplazamientos:

Fig. 4.7e Resultados de Cinemática Directa

C. Cinemática Inversa
Para la Cinemática Inversa se piden como valores de
entrada la longitud de los eslabones l 1 ,l 2 ,l 3 la distancia
de separación l 4 y la distancia l 5que bajara el efector
final.

Si se multiplica la Matriz Homogénea por el Vector de


diferencia de Alturas y a la matriz resultante le restamos
Fig. 4.7f Bloques de la Cinemática Inversa
el punto original. Se obtendrá el sistema de ecuaciones
que definirá el eslabón 2 el marco 1 y la del eslabón 3 en
En el siguiente fragmento de código es donde se toman
el marco 2, y transformarlo respecto al marco 0. En el
los datos de entrada, de tal manera que son propuestos los
siguiente fragmento de código queda especificado:
siguientes valores:

Donde el sistema de ecuaciones vendrá en la fila 1 y la


fila 2 del vector resultante de las operaciones anteriores.
De tal manera que los resultados obtenidos son:

Quedando el siguiente sistema de ecuaciones:

Donde sí se resuelve el sistema se obtendrán 2 soluciones,


la cuales dan a entender las 2 maneras en las cuales es
posible llegar al mismo punto, lo que se conoce como
Codo abajo y Codo Arriba; para este caso se obtuvieron 2
soluciones:

Se puede observar en los gráficos que ambos puntos,


llegan al efector deseado:

Y aplicando de la misma manera la obtención de vectores Solución 1


de posición para graficar, para ambas soluciones, se
aplica un ciclo For; primero se multiplica la matriz de
transformación desde el marco origen al punto que se va a
referir por su traslación para obtener el punto siguiente,
en el código se muestra que además de realizar la
multiplicación se reasignan los valores en vectores de 3
dimensiones que pueden ser graficables, y calcular las 2
soluciones, quedando el código de la siguiente manera:

Fig. 4.7g Cinemática Inversa Solución 1

Solución 2

Y dentro del mismo ciclo, realizar los gráficos pertinentes


y almacenarlos en una matriz de gráficos, para después
mediante un manipulador, mostrar ambas soluciones:

Fig. 4.7h Cinemática Inversa Solución 2

D. Modelo Cinemático
Una vez conocida la cinemática tanto directa como
inversa, puede hacerse una generalización de, las
soluciones e incluso simular los eslabones en sus
movimientos, restricciones de giro, sin considerarse
ningún efecto físico que pueda contemplarse para su real
manipulación.

Para realizar esto se utilizo nuevamente el software de


mathematica, debido a su rapidez y fácil procesamiento,
así como la herramienta directa de simulación en base a
las soluciones almacenadas en vectores y un corrimiento
a través de ellas.
Del mismo modo tendremos que para teta 2 el rango de
Para simulación tomamos en base a la cinemática directa, giro que tendrá, esto debido a que pueden colisionar los
es decir mover las variables articulares, para obtener la eslabones será de -20° a 196°. En las figuras, mostramos
posición final. Quedando la interfaz grafica como se su simulación
muestra en la figura.

Fig. 4.7k Restricción de giro inferior para teta 2

Fig. 4.7l Restricción de giro superior para teta 2


Fig. 4.7i Modelo Cinemático
Estos resultados idealmente sin haber considerado, la
De la siguiente figura observaremos, una vista superior y longitud del griper, pues realizamos básicamente un
una vez dados los datos del fabricante o delimitada el área control sobre los 2 grados de libertad principales.
como ya se explico, para el eslabón 1, tendremos un giro
de -18° a 198°, respecto a la base. Así mismo comprobamos que el área de trabajo
mencionada, al incluir el largo de 3 cm del gripper,
coincide con la simulación de acuerdo a los parámetros de
cinemática dados. Diámetro Exterior de 40 cm, Diámetro
Interior de 23 cm.

Fig. 4.7j Restricción de giro inferior para teta 1


Donde, Jv (q) ∈ ℜ3×n representa el Jacobiano de
velocidades lineales y Jw(q) ∈ ℜ3×n es el Jacobiano de
velocidades angulares.

Fig. 4.7m Diámetro exterior de área de trabajo En otras palabras, el Jacobiano J (q) ∈ ℜ6×n es una
transformación que relaciona el espacio de velocidades
articulares q̇ ∈ ℜn con el espacio de velocidades
operacionales (o cartesianas)
ẋ ∈ ℜ3.
Para poder calcular el Jacobiano de cada centro de masa
del robot manipulador SCARA diseñado, debemos definir
las siguientes variables:

 Ejes de movimiento de cada centro de masa


0

Fig. 4.7n Diámetro interior de área de trabajo


[]
Ź 0=Ź 1= Ź 2= 0 ;

0
1

Uniendo ambas trayectorias, obtenemos el área de trabajo


ya mencionada []
Ź3 =Ź 4 = 0 ;
−1

 Posición de cada centro de masa respecto a la


base O 0

0 0

0[] []
Ó0= 0 ; Ó1= 0 ;
l1

l 2 cos ⁡(θ1 )

Fig. 4.7o Área de trabajo obtenida de la cinemática


[ ]
Ó2= l 2 sin(θ1 ) ;
0

E. Modelo Dinámico
Ahora bien, para comenzar a modelar la dinámica del l 2 cos ( θ 1) + l3 cos ⁡(θ1 +θ2)
robot SCARA, necesitamos calcular los Jacobianos de
cada centro de masa.

El Jacobiano nos permite expresar la relación entre las


velocidades de las variables articulares y las velocidades
[ l4 ]
Ó3= l 2 sin ( θ 1) + l3 sin ⁡(θ1 +θ 2) ;

en el espacio cartesiano. El Jacobiano depende del l 2 cos ( θ1 ) +l 3 cos ⁡( θ 1 +θ 2)


sistema de referencia en el que se exprese.
La definición de Jacobiano se puede expresar mediante la
siguiente ecuación: [ ]
Ó4 = l 2 sin ( θ1 ) +l 3 sin ⁡(θ1 +θ2 ) ;
l 4 −l 5
Calculando El jacobiano de velocidades angulares y
velocidades lineales:

J v (q)
[ ]
J=
J w (q)
=¿

J v (q) 0 Ź 1 x ( Ó4 −Ó1) Ź 2 x ( Ó4 −Ó 2) Ź 3 Ź 4


[ ]
J w (q)
=⌈
0 Ź 1 Ź 2 0 0

Revoluta Revoluta Prismátic


No afecta Prismátic

0 −l 2 sin ( θ 1 )−l 3 sin ⁡(θ1 +θ2 ) −l 2 sin ( θ 1 )−l 3 sin ⁡(θ1 +θ2 ) 0 0

[0 l 2 cos ( θ1 ) +l 3 cos ⁡(θ 1 +θ2 ) l 2 cos ( θ1 ) +l 3 cos ⁡(θ 1 +θ2 )


¿ 0
0
0
0
0
0
0
1

Suponiendo el mismo caso que se manejo en la


0
0
0
1
0

0
0
0
0
−1 −1
0
0
0
]
Cinemática Directa para:

Obtendríamos el siguiente jacobiano:


5. Conclusiones salida de estos hacer el diseño mecánico de la estructura,
otra opción fue realizar el diseño mecánico proponiendo
dimensiones y de acuerdo a la dimensión de eslabones y
Rodríguez Hernández Héctor Alfonso. al par necesario para el movimiento de estos adquirir los
actuadores ideales. Esta segunda opción fue la adoptada.
En el presente proyecto, pudimos encontrar diversas Otra característica difícil de resolver fue el diseño del
dificultadas a la hora de diseñar los sistemas y partes que gripper con variación de altura, ya que se implementaron
constituyen el robot, pero sobre todo, pudimos ver que la varias soluciones con distintos tipos de sensores, el
dificultad más grande la encontramos en el momento en resultado final fue la implementación del variador
que comenzamos a intentar controlar los motores ya mediante sensores ópticos.
montados en la estructura. Porque como se puede Uno de los puntos fundamentales del diseño del robot fue
observar en las anotaciones del control, cada eslabón el control de posición así como la visión artificial y la
junto con el motor debe ser tratado como un sistema conjunción de estos, ya que de acuerdo al control de
diferente a controlar, y no tomar el control solo del motor, motores y su restricción de movimientos nos dieron las
sino como un conjunto. De tal forma que al percatarnos dimensiones del área de trabajo, también, con la cámara
de que aun cuando el diseño de la estructura fue el empleada solo se pudo cubrir cierta sección del área de
correcto, existía un juego en los motores y aun mas las trabajo teniendo que limitar el seguimiento de trayectorias
flechas, piñones, etc., tendían a desajustarse debido al a un área pequeña, en la programación de visión artificial
propio movimiento de los motores, lo cual a su vez hacia se optó por varias soluciones siendo la más fácil mediante
que tuviéramos señales de interferencia (ruido) que dilatación, bordes y regla de la cadena.
provocaban oscilaciones en el control. En general el diseño y construcción de un prototipo
interdisciplinario (es decir que conjunta varias disciplinas
En cuanto a la cinemática directa e inversa (ver sección como la mecánica, electrónica, control, robótica y visión
de cinemática directa e inversa), fue necesaria la adición artificial) siempre será más complicado que enfocarse en
de algunos marcos para la simulación cinemática directa, un área particular pero el desempeño de un prototipo de
ya que con los marcos mínimos no se podía hacer la esta naturaleza será mas completo y hará al diseñador
simulación de la misma en 3D. Y con respeto a la adquirir más experiencia y versatilidad para futuras
cinemática inversa, la selección de las ecuaciones que nos ocasiones.
permiten definir las variables articulares correctamente.

Otro punto importante en el cual tuvimos dificultades fue Morales Cabrera Gustavo
la parte de visión artificial, y esto básicamente por el
proceso de la obtención de la trayectoria, ya que como se Sin duda alguna cualquier proyecto que involucre la
puede leer en la sección de visión artificial, al obtener el aplicación real de los conceptos vistos en clase, no es
vector que contiene la trayectoria debido al algoritmo que trabajo fácil, y peor en un materia en la cual se juntan
utilizamos, este rotaba 90°. La implementación de un asignaturas que van desde el análisis matemático hasta el
nuevo algoritmo que permitiera poner en el orden análisis estructural y económico.
correcto el vector.
A pesar de las limitantes por la que ha pasado el curso se
Por último en el diseño del efector final, existieron dos ha logrado desarrollar un prototipo de cumple con las
dificultades básicas, la primera fue la adaptación que se características propuestas desde un principio, es decir,
tuvo que hacer a un sistema prediseñado para que pudiera diseñar una estructura óptima para soportar una carga
soportar los requerimientos en peso que fueron establecida y por otro lado la creación de control de
estipulados en el proyecto. Y el segundo, el diseño de un posición para motores de CD.
sensor que nos proporcionara el funcionamiento del tercer Durante la fabricación de este prototipo se han tenido
frado de libertad, que como podemos ver en la sección de diversas complicaciones, por ejemplo el crear un ajuste
gripper, tuvo como ultima y mejor implementación el de adecuado para los rodamientos entre los eslabones y hasta
un sensor ultrasónico, pero que sin embargo paso por el mismo ensamble, hablando de la parte de control las
varias otras implementaciones y configuraciones. mayores complicaciones fueron al momento de integrar
este sistema a la estructura pues no se contemplo la
inercia de los eslabones y esto provoca que el control
sufra perturbaciones al ajustar la posición del motor; todo
Sánchez Chaparro Miguel Angel lo anterior en buena parte es provocado a la inexperiencia
práctica que tenemos en cada una de las materias, pues
Al enfrentarse a un diseño desde cero y ser novatos en solemos quedarnos con los conceptos que se ven en clases
esta área se presentan muchas dificultades en la y muy rara vez buscamos una aplicación práctica.
realización de cualquier proyecto, por fácil o difícil que
este sea, en el caso de nuestro diseño y construcción de Este prototipo está muy lejos de ser una aproximación a
un robot scara se presentaron una serie de inconvenientes, los robots empelados industrialmente, pues éstos últimos
los cuales nos hicieron adquirir experiencia tanto en utilizan técnicas más avanzadas de control y mecanismos
diseño mecánico como en implementación de control. Lo más complejos, ejemplo de ello son los servomotores de
primero que se presento en el diseño fue en que basarse, AC que emplean comparados con los motores de CD
debido a que ya se disponía de algunos motores los cuales utilizados en el prototipo, pero la idea principal de
podían haber sido controlados y mediante el torque de fabricar el prototipo no es competir contra los robots
industriales, si no dar una noción del proceso que se debe cual mantenga un voltaje y corriente constante, ya que
de cumplir si es que requiere diseñar y construir un robot hay que recordar que se están utilizando actuadores de
manipulador y sobre todo comprobar que los conceptos potencia, los cuales producen muchas perturbaciones a
vistos en clase en verdad se aplican de una u otra forma. los circuitos electrónicos.
En conclusión puedo decir que llevar a cabo este diseño
Rodrìguez Palomeque Yair Enrique permitió que pudiera aprender nuevos conocimientos y
Es muy complejo poder desarrollar un prototipo de un reforzar más los que ya tenía, así como poder juntarlos
robot, ya que se necesitan considerar muchos parámetros todos y realizar cosas más complejas, como fue el diseño
para su desarrollo. En un principio se visualiza como un del efector final, el cual parece ser fácil y lo primero que
proyecto relativamente sencillo pero conforme se va se nos ocurre es utilizar algún amplificador operacional y
desarrollando el mismo comienzan a aparecer problemas ya, pero la realidad es que a la hora de hacerlo se deben
que no habían sido considerados. de tomar en cuenta factores como el tipo de motor y el
Por ejemplificar en el desarrollo del efector no se había ruido que este produce, así como el tipo de sensor y lo
considerado las perturbaciones por el entorno, es decir la más importante la forma de acondicionar la señal de tal
iluminación, ruido electromagnético, etc. Por lo que el manera que no se afecte por variaciones exteriores de luz
desarrollo de esta parte del prototipo se complico en gran como nos pasaba, en fin realizar un robot es una tarea
medida. complicada, pero me agrado hacerlo, pues siento que
Con este tipo de aplicaciones prácticas de conocimientos hicimos un buen trabajo como equipo.
en clase se crea una gran atmosfera de aprendizaje y
experiencia en el ambiente ingenieril, ya que como se Cortez Vázquez Oscar Ricardo
menciono anteriormente comienzan a aparecer problemas
que en la parte teórica no se consideran en la mayoría de La elaboración y el diseño de un robot scara permitió que
los casos. el equipo obtuviera experiencia significativa en el
La entrega de este reporte se considera algo temprana, ya desarrollo del mismo. Inicialmente se tenía la disyuntiva
que aun no ha sido suficiente el tiempo como para poder del tipo de material a usar, de la forma que tendrían los
realizar pruebas al robot y visualizar si cumple los eslabones, además del tipo de transmisión que llevaría el
objetivos planteados en este prototipo, por lo que me robot y por último que tipo de motores se utilizarían. Por
parece adecuado que el día de la presentación del lo tanto la forma de resolver dichos problemas se basó
prototipo sea entregado el reporte del mismo. específicamente en la búsqueda de información en la red
Finalmente se obtuvo desde el punto de vista personal una y en libros.
gran experiencia en el desarrollo del prototipo, ya que
necesitamos de software y diseño para cumplir con los El equipo tomó en cuenta diferentes factores de diseño
lineamientos del prototipo. que permitieran tener un robot robusto y por lo tanto más
efectivo en cuanto a su implementación en algún proceso
Rabadán Ortiz Adrian en específico, sin embargo se tuvo conciencia que se
Cuando se propuso el proyecto de llevar a cabo un robot, verían afectados otros aspectos, entre los cuales resaltan
nunca me imagine que el diseño de este fuera a depender la inversión económica en su desarrollo así como el
de tantos campos de conocimiento ya que uno piensa que ensamblaje del robot.
sólo es cortar eslabones de algún material como aluminio
o nailamit, y colocar los motores y realizar un Una vez realizado el diseño de todos los sistemas que
controlador, pero a la hora de llevar a cabo un buen abarca el robot scara se comenzó con una de las partes
diseño, resulta que se tienen que aprender muchas más más importantes, la cual corresponde al control digital de
cosas que serán tomadas en cuenta a la hora de realizar el los motores de CD que conforman al robot. En esta parte
diseño, como lo es la parte de la mecánica del robot, la se tuvieron demasiados problemas ya que se generaba
cual es indispensable ya que si no se diseñan bien las mucho ruido por diversos factores, tales como fallas en el
transmisiones, el movimiento del robot no será el ensamblaje de la parte física del robot así como en el
deseado, o simplemente afectará con el control de los trabajo en conjunto con los sistemas electrónicos
motores del robot, por otra parte están los análisis de involucrados en el mismo.
resistencia y desgaste para la misma parte mecánica, ya
que si los eslabones no se diseñan de las dimensiones Por último puede concluirse que en cada parte se
correctas pueden sufrir deformaciones o simplemente no presentaron problemas que no se habían tomado en
levantar la carga propuesta para el robot, por otra parte cuenta, lo cual fue la principal fuente generadora de
cabe mencionar que es muy importante el diseño fallas, sin embargo si se hubiera analizado más a fondo
electrónico, ya que durante la realización del control de cada parte se hubieran podido evitar muchos problemas
los motores de DC, se observó que si se colocan los que retrasaron el término del desarrollo del robot scara.
cables de manera aleatoria, se induce demasiado ruido
que afecta al convertidor analógico-digital, por lo que García Facio David
para solucionar esto se enrollaron los cables y se metieron
dentro de una manguera, así como también realizar filtros En el desarrollo del sistema robótico se puedo observar
para eliminar frecuencias indeseadas que están presentes algunas deficiencias que como estudiantes de ingeniería
en el medio de trabajo del robot y que si se desprecian se tienen al momento de diseñar algún proyecto. Además
puede ocasionar grandes problemas, con esto finalmente de que se debe de tener una visión muy fija y no tan
se redujo demasiado el ruido, además de que se general del sistema a diseñar, es decir conocer la mayoría
recomienda tener una buena fuente de alimentación, la
de los aspectos que uno puede manipular y controlar para
poder obtener los resultados deseados tanto en el diseño Al diseñar un prototipo nos enfrentamos a la cuestión de
mecánico y como en el eléctrico. cómo empezar a definirlo. Los distintos parámetros que
influyen en el diseño hacen difícil el inicio de este; al ser
Para el desarrollo del controlador se optó por la principiantes en diseñar, nos vemos caer varias veces en
implementación de actuadores, motores de CD, ya que al problemas. Un problema medular del control del robot, es
implementar servomotores lo que uno realmente controla el sensado de la posición, el cual debe ser preciso ya que
es la posición de la flecha del servomotor y no la posición de esto depende la funcionalidad del robot. Las
de las articulaciones, además de que en el diseño del vibraciones en el prototipo influyen en el desplazamiento
controlador del motor de DC se puede saber en algún lineal de los sensores (potenciómetros). Otro problema es
el inicio de configuración del robot, para calibrarlo en los
instante de tiempo requerido la posición actual de la
desplazamientos, ya que la estructura se ve sometida a
articulación.
movimientos bruscos, porque el control todavía no se
implementa. Al hacer pruebas de desplazamiento,
Durante el ensamble de las distintas tareas a realizar comienzan a salir problemas sobre las condiciones de la
por el sistema se debe de considerar las distintas estructura y sobre el manejo de información en el sensado
utilidades que puedan aportar una de la otra, ya que se de posición. Las variaciones de la señal censada afectan
pueden realizar algunas tareas imprentando una u otra de manera importante el control de posición, se montaron
tarea por separado o al mismo tiempo varias. filtros y el cableado de los sensores se hizo lo mejor
posible. La conjunción de los distintos programas de
Se puede decir que este proyecto deja algunas control del robot fue complicada ya que al ser
experiencias para el posterior mejoramiento de algunas programados por distintas personas la compatibilidad se
aplicaciones a fin. vuelve compleja. Una manera de solucionarlo fue
implementando cada programa como una función que se
Josué Daniel San Miguel Rodríguez llama cada vez que se necesita, sólo fue necesario
ponernos de acuerdo sobre las variables de salida y
El desarrollo de este tipo de proyectos en este entrada y el formato de estas. Al montar la estructura nos
momentos, no sirve de mucho a vísperas de lo que nos enfrentamos a problemas de ensamble de piezas ya que a
espera en el trabajo terminal; con esto nos damos cuenta pesar de que se tiene un diseño, este se idealiza un poco y
de la importancia del diseño de tus propias piezas, pues al momento de armar los detalles se hacen presentes, la
en base a cálculos podemos determinar el manera de solucionar los problemas cuando ya tenemos
comportamiento de los materiales ante la aplicaciones de eslabones y parámetros definidos no es más que el
cargas, sus deformaciones, así como poder encontrar las ingenio.
dimensiones optimas y normalizadas para la construcción
y diseño.

Aunque se nos vino el tiempo encima considero


que este proyecto tendrá gran importancia para generar
nuevas ideas y experiencias que nos conllevaran a un
buen desarrollo del TT, más que nada en el área de
diseño, robótica y visión artificial, pues al incluir estos
módulos en conjunto para el control de robots, nos dan un
campo más amplio en el conocimiento.

La parte que considero fue de mayor dificultad,


fue el diseño mecánico, pues aunque se hicieron muchas
consideraciones teóricas, al finalizar el ensamble y
comenzar a realizar pruebas, surgieron mas imprevistos
de los que se habían considerado, dejándonos hacer uso
de la mente ingenieril que tenemos cada uno para poder
solucionar estas deficiencias.

La parte de control de posición de los motores, también es


un factor importante, pues de este depende la precisión
del robot, por lo cual creo que es la base de tal.

Los módulos de visión artificial son un plus que nos


ayudara a entender este amplio campo en la industrias
tanto para la detección de trayectorias, piezas formas e
incluso objetos con algunas dimensiones determinadas
dentro de un área de trabajo.

Álvarez Toledo Jorge


6. Referencia Bibliográfica

[1] P. M. Gonzalo, “Visión por Computador, Imágenes


Digitales y Aplicaciones”, 2da ed. , Ed. México:
Alfaomega Grupo Editor, Junio 2006.

[2] G.Woods, “Digital Image Processing”, 3ra ed., Ed.


USA:Prentice Hall, 2008.

[3] Hibbeler R. C., “Mecánica de materiales”, 6ta ed.,


Ed. México:Prentice Hall, 2006

[4] Kelly Rafael, “Control de movimiento de robots


manipuladores”, 1ra ed, Ed. España:
Prentice Hall, 2003

[5] Spong W. Mark, “Robot modeling and control”, 1ra.


ed, Ed EU: Prentice Hall, 1989

[6] Siciliano Bruno, “Robotics modelling, planning and


control”, 1ra ed, Ed. Inglaterra:
Springer-Verlag, 2009

[7] G. B. Eduardo, “Compilador C CCS y simulador


PROTEUS para microcontroladores PIC”, 1ra ed. ,
Ed. México: Alfaomega Grupo Editor, Junio 2008.

[8] (Página web Microchip).


http://www.microchip.com/wwwproducts/Devices.as
px?dDocName=en010300

[9] Gabriel Jesús Pool Balam,” Transferencia y


procesamiento de datos a alta velocidad, mediante el
uso de MATLAB, el puerto USB 2.0 y PIC18F2455
de Microchip™”. pp 2. Julio 2009.
Anexo A: Tablas sobre viabilidad económica

No. Departamento Ocupaciones Integrantes

 Diseñar la estructura mecánica


que cumpla con los Morales Cabrera Gustavo
Diseño mecánico y requerimientos dinámicos. Sánchez Chaparro Miguel Ángel
1
manufactura  Validar el diseño mecánico. San Miguel Rodríguez Josué Daniel
 Fabricar y ensamblar las piezas Rabadán Ortiz Adrián
necesarias para el robot.

Cinemática directa e
inversa  Con base al diseño mecánico Álvarez Toledo Jorge
2 generar las ecuaciones San Miguel Rodríguez Josué Daniel
necesarias de la cinemática
directa e inversa.

 Diseñar y construir
Álvarez Toledo Jorge
controladores aplicados a
Cortez Vázquez Oscar Ricardo
motores de CD usados en el
Control eléctrico y García Facio David
3 robot.
visión artificial Rodríguez Hernández Héctor
 Crear un control de
Sánchez Chaparro Miguel Ángel
movimientos basado e visión
artificial.

 Fabricar fuentes de
alimentación que cumplan con
el consumo energético del Álvarez Toledo Jorge
Alimentación y
4 robot. Rabadán Ortiz Adrián
electrónica
 Crear los diferentes circuitos Rodríguez Palomeque Yair
requeridos en para el control
del robot.

 Distribuir de forma óptima los


Administración de
recursos económicos y
recursos económicos
materiales indispensables en la Sánchez Chaparro Miguel Ángel
5 y materiales
fabricación del robot. Morales Cabrea Gustavo
 Realizar la repartición de
labores para cada
departamento.
Tabla 1. Distribución del trabajo.
Recurso Humano Recursos Materiales Costo Recurso Otros
Económico
9 Técnicos 1 minidrill $760.00 $2,700.00
1 vernier digital $320.00
1 juego de brocas $530.00
1 machuelo 3/16" $84.00
1 machuelo 5/32" $46.00
1 cortador fresadora $230.00
1 pinzas de presión $52.00
2 prensa en C $30.00
1 rotomartillo $660.00
1 juego de desarmadores $480.00

1 cautin $130.00
1 pinzas pelacables $200.00
1 multímetros digital $400.00

3 Laptop Dell $42,000.0


0
Total $45,922.0 $2,700.00
0

Tabla 2. Recursos disponibles.

Taza de Depreciación
Recursos Materiales Costo
depreciación anual
1 minidrill $760.00 35% $266.00
1 vernier digital $320.00 35% $112.00
1 juego de brocas $530.00 35% $185.50
1 machuelo 3/16" $84.00 35% $29.40
1 machuelo 5/32" $46.00 35% $16.10
1 cortador fresadora $230.00 35% $80.50
1 pinzas de presión $52.00 35% $18.20
2 prensa en C $60.00 35% $21.00
1 rotomartillo $660.00 35% $231.00
1 juego de desarmadores $480.00 35% $168.00

1 cautin $130.00 35 $45.50


%
1 pinzas pelacables $200.00 35% $70.00
1 multímetro digital $400.00 35% $140.00

3 Laptop Dell $42,000.00 30% $12,600.00


Total $45,922.00 $13,983.20
Tabla 3. Depreciación de los materiales.
Departamento
Actividad Horas/Hombre Costo/Hora Total
responsable
Diseño mecánico 1 37 $7.323 $270.951
Ensamblado 1 9 $7.323 $65.907
Diseño, manufactura
y ensamble de 1 8 $7.323 $58.584
gripper
Control eléctrico de
4 21 $7.323 $153.783
gripper
Caracterización de
3 3 $7.323 $21.969
motores
Control motor de CD 3 27 $7.323 $197.721
Caracterización de
3 10 $7.323 $73.230
sensores
Diseño e
implementación de
algoritmos de 3 21 $7.323 $153.783
control por visión
artificial
Diseño y fabricación
4 21 $7.323 $153.783
de fuentes
Programación y
comunicación con 3 7 $7.323 $51.261
PC
Planeación 5 120 $7.323 $878.760
Organización 5 120 $7.323 $878.760
Control 5 240 $7.323 $1757.520
Dirección 5 120 $7.323 $878.760
Total $5594.772

Tabla 4. Costos esperados.

Departamento
Actividad Horas/Hombre Costo/Hora Total
responsable
Manufactura de
1 6 $845.000 $5070.000
eslabones en CNC
Manufactura de ejes 1 2 $125.000 $250.00

Costo total $5320.000


Tabla 5. Costos esperados de manufactura.
Cantidad Parte Precio Total
Unitario
1 Material de aluminio $250.000 $250.000
4 Ejes de flecha $220.000 $220.000
6 Baleros 1 1/8” $25.000 $150.000
2 Motor reductor $100.000 $200.000
2 Sprocket $30.000 $60.000
1 Cadena paso de ½” $30.000 $30.000
1 Pegamento a base de $63.000 $63.000
catalizador
1 Tornillería y machuelos $231.000 $231.000
1 Nylamid $60.000 $60.000
1 Material Gripper $400.000 $400.000
1 Material electrónica $521.000 $521.000

Total $2185.000
Tabla 6. Costos de materiales.

Concepto Gasto
Transporte $610.00
Total $610.00
Tabla 7. Otros gastos.

Inversión inicial Costo


Recursos materiales $45,922.000
Recursos económicos $2,700.000
Recursos mano de obra $10,914.772
Materiales de construcción $2,185.000

Total de inversión $61,721.772


Tabla 8. Total de inversión por robot.
Anexo B: Validación del diseño mecánico

Figura B1. Análisis de esfuerzos en eslabón 2.

Figura B2. Análisis de deformación en eslabón 2.


Figura B3. Análisis de esfuerzos en eslabón 1.

Figura B4. Análisis de deformación en eslabón 1.


Anexo C: Planos del diseño mecánico

Figura C1. Reajuste de dimensiones para el eslabón 1.

Figura C2. Reajuste de dimensiones para el eslabón 2.

Figura C3. Reajuste de dimensiones para el eslabón sujetador.


Figura C4. Ejes de acoplamiento entre base y eslabón 1.

Figura C5. Ejes de acoplamiento entre eslabón 1 y eslabón 2.


Figura C6. Diseño CAD en 3D del actuador Final
Anexo D: Desarrollo matemático para Control de Motores

N−1 2 N−1
9i ak −i ak−2 3 h
( 12 ) E ( A , B )= ∑
k=2
( 8
+
8
{ A I ak + B [ U k −K p W k ] }−i ak+1 = ∑ d k
k=2
)
2

∂ E ( A , B) ∂ E ( A , B)
El valor mínimo de la función E ( A , B ) se determina igualando a cero las derivadas parciales y ,
∂A ∂B
y resolviendo las ecuaciones que resultan en A y B.

Para A:

∂ E ( A , B ) N −1 9 i ak −i ak−2 3 h 3h
∂A
=∑ 2
k =2 8 ( +
8
A I + B U −K W −i ∙ I
{ ak [ k p k ] } ak +1 8 ak =0 )( )

∂ E ( A , B ) N −1 9 i ak −i ak−2 3h
( 13 )
∂A
=∑
k=2
(
8 8
2
I ak + { A I ak + B [ U k −K p W k ] I ak }−i a k+1 I ak =0 )
Para B:

∂ E ( A , B ) N −1 9 i ak −i ak−2 3 h 3h
∂B
=∑ 2
k =2 8 ( +
8 )(
{ A I ak + B [ U k −K p W k ] }−iak +1 ∙ 8 [ U k −K p W k ] =0 )

∂ E ( A , B ) N−1 9 i ak −i ak−2 3h
( 14 )
∂B
=∑
k=2
(8
−K W + A I U −K W +B U −K W
2
[ k p k ] 8 { ak [ k p k ] [ k p k ] } ak+1 [ k p k ] =0
U −i U −K W )
Utilizando la propiedad distributiva de la suma, obtenemos de (13) y (14):
N−1 N −1 N−1
9i ak −i ak−2
∑ [(
k=2 8 )
−i ak+1 I ak + ]
3h
8 k=2
3h
A ∑ I ak 2 + B ∑ [ U k −K p W k ] I ak =0
8 k=2

N−1 N −1 N −1
9 i ak −i ak−2
∑ {( ) }
3h 3h 2
−i ak+ 1 [U k −K p W k ] + A ∑ I ak [ U k −K p W k ] + B ∑ [ U k −K p W k ] =0
k=2 8 8 k=2 8 k=2

Llevando esto a un sistema de ecuaciones matricial tenemos:


N−1 N−1 N −1
9 i ak −i ak−2
3h 3h
[( i ) ]
( ∑I 2 ∑ [ U −K p W k ] I ak A
)( ) ( {( )
∑ − I ak
8 k=2 ak 8 k=2 k k=2
ak +1
8
( 15 ) N−1 N−1 =
3h 3h B N −1
9 i ak −i ak−2
}
2
∑ I [ U −K p W k ]
8 k=2 ak k
∑ [ U −K p W k ]
8 k=2 k ∑ i ak+1− )
[ U k −K p W k ]
k=2 8

Aplicando mínimos cuadrados para (11)


N −1 N −1 N−1
9i ak −i ak−2
3h 3h
[( ) ]
)( ) ( )
K p ∑ I ak 2

( ∑W I ∑ i ak +1− I ak
8 k=2 8 k=2 k ak C k=2 8
( 16 ) N−1 N −1 =
3h 3h D N −1
9 i ak −ia k−2
∑ {( )W }
2
K ∑I W ∑W i ak+1−
8 p k=2 ak k 8 k =2 k 8 k
k=2
Anexo E: Código del controlador digital PIC18F4550

También podría gustarte