Upload
sidviciou
View
7.657
Download
7
Embed Size (px)
DESCRIPTION
Robot SCARA 3 GDL 1 mes de trabajo
Citation preview
2010
Instituto Politécnico Nacional
Unidad Profesional Interdisciplinaria de Ingenierías y Tecnologías Avanzadas
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
Reporte final de la construcción de un robot tipo SCARA
Í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
1. Campos de aplicación de un robot tipo Scara
1.1 Objetivos Generales
Crear un robot Scara que sea capaz de realizar
movimientos con alto grado de precisión y
repetitividad.
1.2 Objetivos Particulares
Aplicar los conceptos básicos de
cinemática directa e inversa, así como la
matriz jacobiana.
Diseñar y validar la estructura mecánica
del robot.
Desarrollar un sistema de control PID
para regular la posición motores de CD.
Implementar un sistema de control
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 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 2.3b. Aplicaciones de los robots SCARA.
1.4 Requerimientos
Los requerimientos básicos con los que debe de
cumplir un Robot SCARA que tenga aplicaciones
dentro de la industria farmacéutica o alimenticia,
son los siguientes:
Dimensiones. Las dimensiones de la
estructura del robot se muestran en la
figura 2. Éstas están directamente
relacionadas con el espacio de trabajo
requerido para la aplicación.
Área de trabajo. El área de trabajo bajo
la que está delimitado el robot se muestra
en la figura 2.
Diseño y Construcción de robot SCARA
Figura 1.4a. Dimensiones de los robots SCARA.
Figura 1.4b. Área de trabajo de los robots SCARA.
Tabla 1.4a. Dimensiones de los robots SCARA.
Velocidad. La velocidad a la que
trabajara el robot será una velocidad
constante de 240°/s, la cual es una
velocidad suficiente para recorrer el área
de trabajo en un tiempo óptimo.
Carga. La capacidad de carga que se
exige para el funcionamiento del robot es
pequeña sin rebasar 1kg, pues los objetos
que manejará son del tamaño y peso de
pastillas en blíster o de alimentos
empacados con un peso máximo de 500
gr.
Control por visión artificial. Para
aplicaciones en las que se requiere que el
robot distinga entre objetos con diversas
características es necesario implementar
un sistema de visión artificial que ayuda
a la identificación de éstas y de esta
forma usar esta información para trabajar
con los distintos objetos.
2. Viabilidad económica
2.1 Beneficios esperados
2.1.1 A nivel macroeconómico
Contribuir a la reducción de la fuga de
capital.
Tener disponible tecnología nacional de
buena calidad, comparable con la
tecnología extranjera.
Lograr la apertura de fuentes de empleo.
Que las autoridades escolares y
gubernamentales reconozcan que la
inversión en tecnología es un negocio
redituable.
Lograr un proyecto que sea
energéticamente eficiente, contribuyendo
de esta forma a disminuir la
contaminación ambiental.
2.1.2 A nivel microeconómico
Poner a disposición de las industrias
tecnología de calidad a un buen costo.
Lograr que las industrias tengan un
mayor interés por la tecnología nacional.
Ahorrar tiempos muertos en las
industrias cuando éstas requieren la
reparación o mantenimiento de
maquinaria, pues las refacciones se
encuentran dentro del país.
Disminuir la perdida de ganancias de las
empresas cuando éstas reparan o dan
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.
Parámetro Longitud (mm)
H1 265
L1 222
L2 220
H2 180
Radio exterior 400
Radio interior 230
Ángulo de apertura 216°
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
Llevar a la práctica los conocimientos
adquiridos en clase.
Resolver problemas prácticos que en el
salón de clase no se presentan.
Tener la oportunidad de conocer la
aplicación industrial del proyecto.
Tener la oportunidad de lograr introducir
el proyecto dentro de una empresa.
Lograr que las empresas se interesen por
los proyectos realizados dentro de la
Escuela y del Instituto.
Comprender todos los procesos
administrativos que dentro de una
empresa se llevan a cabo para que ésta
trabaje correctamente.
Obtener una visión más amplia de la
situación económica y tecnológica del
país.
Tener una alternativa para poder formar
una empresa y lograr ser independientes.
2.2 Distribución de las labores dentro del
equipo de trabajo
Para la fabricación del robot se crearon cinco
diferentes departamentos con tareas específicas
con la finalidad de obtener un mejor desempeño
en la elaboración del proyecto, estos
departamentos se pueden observar en la tabla 1
mostrada en el anexo A.
La asignación de los integrantes de cada
departamento así como la distribución de las
tareas se llevo a cabo con base a las habilidades de
cada integrante del equipo.
2.3 Análisis Costo Beneficio
2.3.1 Recursos Disponibles
En la tabla 2 del anexo A se muestran los
recursos materiales con los que se contaba cuando
se realizó la construcción del proyecto, en su
mayoría son herramientas mecánicas y equipo de
cómputo.
Para el cargo de depreciación de los recursos con
los que ya se contaban se tomo como referencia la
Ley del Impuesto Sobre la Renta a partir de su
artículo 40. La tabla 3 del anexo A muestra el
porcentaje de depreciación de cada recurso con el
que se cuenta.
2.3.2 Costos esperados
En la tabla 4 del anexo A se muestra la duración
de cada actividad, con su correspondiente
responsable. Para determinar el costo de cada hora
de trabajo se tomó como referencia un salario
mínimo de $52.59 (que incluye 8 horas laborales),
por lo que cada hora de trabajo tiene un costo de
$7.323.
Para la manufactura de las piezas se tiene un costo
especial, pues se utilizó un centro de maquinado
CNC y un torno convencional, el costo de
manufactura se muestra en la tabla 5 del anexo A.
Por lo que se tiene un costo total de mano de obra
por $10,914.772
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:
Sustituyendo valores se tiene lo siguiente:
El costo unitario de producción para 100 unidades
mensuales es de:
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:
De lo anterior se puede deducir la ganancia
mensual para la fabricación de 100 unidades
mensuales, ésta se calcula como:
2.3.5 Proyección económica a 5 años
Considerando la inversión inicial para la
producción de robots SCARA se tiene en la tabla
8 del anexo A.
Considerando un requerimiento mensual constante
de 100 robots durante 5 años se tendrá una
ganancia de:
Por lo que la inversión se recuperará en:
3. Especificaciones técnicas del robot
Las especificaciones técnicas del funcionamiento
del robot se muestran en la siguiente tabla:
Tensión de alimentación
de motores 25 Volts
Corriente mínima de
alimentación 0.50 Ampers
Corriente máxima de
alimentación 1.20 Ampers
Velocidad de trabajo 240°/s (40 rpm)
Carga de trabajo 0.50 Kg
Apertura máxima de
tenazas 0.05 m
Peso del robot 5.00 kg Tabla 3a. Especificaciones técnicas de robot SCARA.
4. Desarrollo técnico del robot
4.1 Validación mecánica del diseño
Mediante al análisis de elemento finito se
comprueba el diseño de cada una de las placas que
integran los eslabones del robot. Dicho análisis se
llevo a cabo en Autodesk Inventor 2010, el cual
cuenta con un módulo de análisis de elemento
finito.
Recordando la distribución de cargas mostradas
en la figura 3 se divide el análisis en cada eslabón
del robot.
Figura 4.1a. Cargas a las que esta sometidas el robot.
La distribución de cargas enlista a continuación:
Carga máxima a levantar
(WL) = (0.500 Kg) (9.81 m/s2) = 4.905 N
Mecanismo del gripper
(WMG) = (1.0 Kg) (9.81 m/s2) = 9.81 N
Peso del eslabón 2
(WE2) = (0.750 Kg) (9.81 m/s2) = 7.36 N
Mecanismo de eslabón 2
(WM3) = (1.0 Kg) (9.81 m/s2) = 9.81 N
Motor para gripper
(WMOT3) = (0.750 Kg) (9.81 m/s2) = 7.36
N
Rodamientos entre eslabón 2 y 1
(WROD) = (0.200 Kg) (9.81 m/s2) = 1.962
N
Peso del eslabón 1
(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
Motor para eslabón 2 (WMOT2) = (0.750
Kg) (9.81 m/s2) = 7.36 N
4.1.2 Análisis para el eslabón 2
Las cargas a las que está sometido este eslabón
son: WL, WMG, WE2, WM3, WMOT3. 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:
Haciendo un análisis de esfuerzos en Autodesk
Inventor 2010, se obtiene los resultados mostrados
en la figura 1 del anexo B, donde se puede
observar que el esfuerzo máximo al que está
sometida la pieza es de 15.43 MPa, esfuerzo
mucho menor al esfuerzo de trabajo, por lo que se
asegura la durabilidad de éste.
En la figura 2 del anexo B se puede observar la
deformación que sufre la pieza debido a las
fuerzas 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:
Haciendo un análisis de esfuerzos en Autodesk
Inventor 2010, se obtiene los resultados mostrados
en la figura 3 del anexo B, donde se puede
observar que el esfuerzo máximo al que está
sometida la pieza es de 53.75 MPa, esfuerzo
mucho menor al esfuerzo de trabajo, por lo que se
asegura la durabilidad de éste.
En la figura 4 del anexo B se puede observar la
deformación que sufre la pieza debido a las
fuerzas presentes en ésta, siendo la deformación
máxima sufrida de 2.282 mm.
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:
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.
B 7.93 mm
D 28.575 mm
d 12.7 mm
4.3 ETAPA DE CONTROL DE MOTORES DE CD
A. MÉTODO A EMPLEAR PARA CARACTERIZAR
MOTORES.
Se desarrolla un método de ajuste por mínimos
cuadrados de los parámetros físicos de un motor
de CD de imán permanente, aplicando el método
de predicción corrección de Hamming para
ecuaciones diferenciales ordinarias.
La implementación se realizó usando lenguaje
formal para Matlab. El método propone, que para
el ajuste de los parámetros es necesario el
muestreo de las siguientes señales: Corriente de
armadura ( ), la velocidad angular ( ) y la
tensión de alimentación ( ). Dichas señales
deben ser necesariamente muestreadas durante el
arranque del motor, ya que en este lapso de
tiempo es donde se observa con mayor claridad el
comportamiento dinámico del motor.
1. Metodología
Para un motor de CD de imán permanente
Tenemos las siguientes ecuaciones:
Auxiliándonos del método de Hamming, que se
estructura de la construcción de las
aproximaciones a la solución de valor inicial:
Usando el valor predictor:
Una modificación y el valor corrector:
Ahora si nosotros ya conocemos , pues ya
no es necesario aplicar el predictor, basta con
aplicar el corrector.
Para simplificar los cálculos realizaremos
algunos cambios de variable, sea:
Sustituyendo a, b, c y d en (1) y (2).
Aplicando el método de Hamming a (3).
Sea
Si expresamos las variables en diferencias
como:
Sustituyendo en (5), obtenemos la ecuación (9)
Para la ecuación (4)
Sustituyendo (6), (7) y (8) obtenemos (11).
Por otra parte lo que se pretende al aplicar este
método es tener el comportamiento dinámico de
las ecuaciones (3) y (4), pero lo que necesitaremos
para poder obtener los parámetros, es minimizar
el error que nos pueda generar el método de
Hamming, dicho de otro modo debemos de
obtener los valores óptimos de los parámetros para
poder realizar un ajuste de las curvas obtenidas
por el circuito electrónico, por lo tanto
aplicaremos el método de mínimos cuadrados.
Si empezamos con la curva descrita por (9),
entonces la distancia vertical desde el punto
hasta el punto
, de la curva:
Se debe minimizar la suma de los cuadrados de
las distancias verticales
B. CONTROL DE LOS MOTORES DE CD PARA LOS
PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE
TEÓRICA)
La implementación de una etapa de control de
posición de motores es de suma importancia para
el correcto funcionamiento del robot, ya que ésta
asegura que se alcanzan de manera confiable las
posiciones de las variables articuladas deseadas
por el robot SCARA, en la fig.4.3a se propone el
diagrama de control en lazo cerrado del sistema
robótico, ya que hay que ver a la planta como todo
lo que comprende el robot y no solo los
actuadores.
1. Cinemática Inversa
Es el algoritmo que nos proporciona el valor de
las variables articulares a los que deseamos rotar
en este caso por simplicidad del control se indica
qd como un vector el cual contiene todas las
variables articuladas tanto de posición y velocidad
angular de los eslabones .
2. PID
Controlador del sistema a su entrada recibe el
error generado por la diferencia entre las salidas
deseadas de las variables articuladas y la medición
directa de éstas mediante un sensor resistivo.
Su función de transferencia obedece a la
ecuación:
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 por la
estructura debido a las variables articuladas y que
afectan directamente, en este caso, a los motores
generadores del par del sistema.
C es una matriz de las componentes de las
reacciones que existen en las uniones de los
eslabones, de tal forma que estas reacciones al
relacionarse con la geometría de la estructura
también generan un par perturbador.
4. Motor 1 y Motor 2
Son nuestros generadores de par para poder
fig. 4.3a Diagrama de control del sistema robótico de los primeros dos grados de libertad
producir movimiento entre los eslabones de la
estructura.
Para ver a un motor como un generador de par
se debe de analizar como un nuevo sistema de
control, de tal forma que, el motor proporcione el
par deseado en cada instante de tiempo en el que
se le requiera.
Se puede observar que en el diagrama de la
fig.4.3b la mayoría de las constantes La, Ra, ke, J
y b son los parámetros internos del motor,
obtenidos mediante el método explicado en A.
Método a emplear para caracterizar motores.
Además que al igual que el seguimiento de
trayectoria de las variables articuladas, también se
hace el uso de un controlador PID para asegurar la
respuesta inmediata del par requerido.
5. Estructura mecánica
Es el conjunto de elementos que conforman al
sistema articulado, donde ésta requiere de una
entrada tipo par para poder generar movimiento y
que genera una gran cantidad de interferencia en
el proceso de control durante la dinámica del
sistema.
C. CONTROL DE LOS MOTORES DE CD PARA LOS
PRIMEROS DOS GRADOS DE LIBERTAD. (PARTE
PRÁCTICA)
Este sistema de control se implementará de
forma digital, ya que en la actualidad es necesaria
la implementación de controladores digitales, pues
los analógicos ya están quedando obsoletos por la
gran cantidad de limitantes y tamaño de
componentes.
Para nuestro sistema de control digital
utilizaremos el siguiente hardware.
1. Computadora (Algoritmo de los valores de
las variables articuladas)
Para la posible implementación de este control
en lazo cerrado será necesario de una
computadora que nos proporcione los valores de
las variables articuladas deseadas, a las que debe
responder el sistema.
Únicamente se procesará algún algoritmo para
la decodificación de posición o velocidades
deseadas en el efector final, en el caso de la
cinemática inversa, de las 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 de 1 a 10 bits.
• Comunicación tipo bulk.
• Driver: Mpusbapi.
• Librerias: Mpusbapi.dll,mpusbapic.h.
• Cristal: 20 Mhz.
• Frecuencia de trabajo interna: 48Mhz
Donde la programación se llevará a alto nivel
con el compilador PICC.
fig. 4.3b Diagrama del controlador de par
Para la implementación de la función de
transferencia del PID se programará mediante una
serie de ecuaciones en diferencias.
Para garantizar el correcto funcionamiento el
sistema se muestreará a una frecuencia de
muestreo de 10Khz. Con la que se procura que
dicha frecuencia sea mayor a la frecuencia del
sistema de control.
La señal PWM trabajará a una frecuencia de
3Khz.
Se implementa un seguimiento de referencia
(dato enviado por la computadora al
microcontrolador) y una retroalimentación
compuestas por 8 bits mediante la lectura de los
canales ADC, con dicha resolución se logran 255
posiciones (suponiendo que todas sean
alcanzables por el conjunto actuador /
acondicionador / estructura mecánica).
Para más información sobre la programación
del controlador PID ver Anexo B.
3. Etapa de potencia
Para esta etapa del sistema de control se
implementaron puentes H con transistores tipo
mosfet, controlados por cambio del giro y señal
pwm, como se puede ver en la fig 4.3c.
Se implementaron los transistores canal p y n
con las matriculas IRF640 e IRF9640, se optó por
este tipo de material porque sus zona de trabajo es
demasiado tolerante a cambios bruscos de
demanda de corriente además de que se pueden
energizar a tensiones altas y su rango de
frecuencias de activación de compuerta soporta
mayores frecuencias que un BJT.
Para aislar al circuito digital de la etapa de
potencia se utilizaron opto-acopladores 4n33.
fig. 4.3c Esquema del circuito de la etapa de potencia
4.4 Diseño y control del actuador final
(gripper)
Al robot se le implementara un efector final el
cual debe ser capaz de sostener un bolígrafo o un
plumón para pizarrón, con la característica
principal de avanzar sobre una superficie
irregular.
El efector debe de tener un alcance de por lo
menos 5 cm por encima de la superficie plana
donde se trazara la trayectoria.
El efector debe de lograr levantar por lo menos
300gr y a su vez lograr trazar sobre superficies
irregulares.
Este movimiento debe de ser lo suficientemente
rápido, para evitar que el robot tenga que parar
durante la trayectoria.
Este bolígrafo debe trazar sobre papel la
trayectoria deseada por el usuario.
El censado debe ser lo suficientemente preciso
para evitar que la línea no sea continua, es decir
que la transmisión suba o baje afectando el trazo
de la trayectoria.
Lograr calibrar y aislar el censor de
perturbaciones del área de trabajo (iluminación,
ruido electromagnético, etc).
A. Desarrollo
Propuesta inicial
Sensor
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 fácil de manejarse y maquinarse, además
de que al diseño siempre hay que realizarle
ajustes, se opta por este tipo de materiales, ya que
es muy fácil agregar o quitar piezas de la
estructura. Estos cambios comenzaran a partir de
las pruebas realizadas conforme se desarrolla el
mismo.
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 o plumón para la
trayectoria.
El segundo es propuesto por un sistema de
cremallera para poder transformar un movimiento
rotacional a un longitudinal. Este sistema nos
permitirá tener la posición del motor del sistema
de transmisión se desea controlar la posición del
mismo.
Motores
Para el gripper se necesita un motor de baja
potencia ya que solo debe mantener el bolígrafo
en posición. Si se consigue un motor que al estar
sin corriente eléctrica mantenga el bolígrafo en la
posición inicial se optara por este, en caso
contrario se mantendrá energizado para poder
asegurar el agarre del bolígrafo.
Para el movimiento a lo largo del eje Z se
necesitara un motor con un par adecuado para
poder mover sin problema mas de 300gr además
del peso de la estructura del gripper. Este motor
será seleccionado de acuerdo a sus dimensiones y
costo.
Control
Se diseño un simple ADC seguido de un micro
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 posible las
perturbaciones.
Material para el diseño de la estructura
Se comienza por utilizar la estructura de un lector
de CD ya que al ser este un polímero cumple con
las características deseadas, además de que este
lector ya tiene diferentes sistemas de transmisión,
los cuales podrían ser utilizados.
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 la posición del
mismo, por lo que es muy factible utilizarlos en el
efector.
Control
Se utilizo un micro controlador AVR de la serie
ATMEGA8535 el cual ya incluye un convertidor
analógico digital. Por lo que la señal del sensor es
procesada por el micro controlador y mediante su
convertidor analógico digital compararlo con la
referencia. Que en este caso se trata de la posición
que se quiere mantener del gripper.
Este control es de buena precisión, rapidez y buen
funcionamiento. Pero el principal problema se
presento en el sensor, debido a las perturbaciones
del ambiente y los cambios de la iluminación. Por
lo que se implementara una forma de aislarlo y
reducir las perturbaciones.
Debido a lao mencionado al ser desplazado el
efector a lo largo de una superficie irregular este
tiende a subir y bajar de forma errónea, por lo que
se intentara solucionar el problema expuesto.
Características finales del efector
Fig.4.4a Tenazas del robot.
Para el movimiento de las tenazas fue empleado el
mecanismo de un lector laser de un DVD el cual
se modificó a conveniencia para simular las
tenazas del robot, para lograr este abrir y cerrar se
utilizó el motor que viene con el mecanismo, el
cual trabaja a 5v y tiene un consumo de 150 mA.
La etapa electrónica correspondiente se muestra
en la siguiente figura:
Fig.4.4b Mecanismo empleado y modificado a
conveniencia.
Fig4.4c. Diseño electrónico para el movimiento de
las tenazas.
Donde se utilizó un PIC16F628A para mandar la
secuencia correspondiente al puente H y así poder
abrir o cerrar las tenazas, cuando se presiona el
botón de abrir 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 de cerrar, en la
salida del pin 9 y 10 se tiene 0-1, de esta manera
se genera un cambio en el sentido del motor por
medio del puente H, cabe mencionar que cuando
se reinicia el PIC la salida en el Pin 9 y 10 es cero,
por lo que los transistores NPN Q5 y Q6, no
conmutan y de esta manera el motor queda si
energía, y como se observa en 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
circuito.
Los transistores Q5 y Q6 son BC548C, los cuales
son de baja potencia y sólo sirven para activar el
puente H, para Q1 y Q2 se utilizaron TIP 31C y
para Q3 y Q4 los complementarios TIP 32C, cabe
mencionar que el puente se calculó de tal forma
que los transistores entren siempre en saturación
respectivamente, de esta manera se evita que se
calienten por mala disipación de potencia, debida
a un voltaje presente entre el colector y emisor.
Programa para abrir y cerrar las tenazas
programada en el PIC16F628A:
processor 16F628A
include <p16f628A.inc>
__CONFIG 0x2170
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
bsf STATUS,RP0 ;Cambia al banco
1
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
abrir: call t50ms
btfss PORTA,0
goto sensa
spres: btfsc PORTA,0
goto spres
movlw 0x08
movwf PORTB
goto sensa
cerrar: call t50ms
btfss PORTA,1
goto sensa
spres1: btfsc PORTA,1
goto spres1
movlw 0x10
movwf PORTB
goto sensa
t50ms: movlw num2
movwf var2
carga: movlw num1
movwf var1
decre: nop
nop
nop
nop
nop
decfsz var1,F
goto decre
decfsz var2,F
goto carga
return
end
Diseño electrónico para la etapa de sensado y
movimiento del efector.
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.
Fig4.4d. Diagrama simbólico de la primera etapa
de sensado propuesta.
En este diseño, el emisor se conecta a una fuente
de corriente directa y permanece siempre
encendido, mientras que el fototransistor percibe
los cambio de luz y a su salida tenemos una
variación de corriente 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 que no se alcance nunca porque el
fototransistor se haya saturado por un excedente
de luz, como lo hace la luz del sol.
Para evitar este problema y aislar el sensor de esas
variaciones de luz externas al efector, se diseñó
una segunda etapa de sensado en donde se
acondicionó la señal del fototransistor, además de
que se utilizó como sensor el PT113 como
emisor-fototransistor, en vez del QRD114, ya que
es más estable a los cambios de luz.
Primero se cambió la alimentación del emisor
infrarrojo como se muestra a continuación:
Fig.4.4e Diagrama simbólico de la segunda etapa
de sensado propuesta.
Como se observa en este diagrama, la
alimentación para el emisor ahora es pulsada a una
frecuencia de 1 KHz, 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 como ahora la respuesta del fototransistor se
espera que también sea pulsada a 1 kHz, se diseña
un amplificador para aumentar más la señal que
entrega este, como se muestra a continuación:
Fig.4.4f Diagrama simbólico para amplificar la
señal del fototransistor.
Ahora la salida de este amplificador posee
componentes de baja frecuencia que se generan
por las variaciones aleatorias de luz exteriores
por lo que se envía a un filtro pasa altas pasivo
con frecuencia de corte de en 1 kHz, para que sólo
se tomen las variaciones de luz provenientes del
emisor las cuales están a 1kHz.
Para el cálculo se propone un capacitor de 100 nF
y se calcula la resistencia correspondiente
mediante la fórmula para la frecuencia de corte:
Fc =
= 1000 Hz
Por lo tanto al despejar se tiene una resistencia de
1591.54 Ω por lo que utilizó una comercial de
1kΩ en serie con una de 580 Ω y la nueva
frecuencia de corte da de 1.007 kHz lo cual es
aceptable.
Fig.4.4g Filtro pasa altas a 1 kHz.
Posteriormente la salida del filtro se pasa por un
seguidor de voltaje para evitar la impedancia del
circuito RC y del 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.4h Rectificador de onda completa
con operacionales.
La salida del rectificador de onda completa
presenta todavía componentes de alta frecuencia,
para esto se diseña ahora un filtro pasa bajas con
frecuencia de corte en 8.8 Hz de igual manera que
el filtro anterior:
Fig. 4.4i Diagrama simbólico de la segunda etapa
de sensado.
Como se ve en este diagrama, después del filtro
pasa bajas pasivo, se conecta otro seguidor de
voltaje para 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:
Etapa de control con micro controlador AVR
ATMEGA8535
Fig.4.4j Mecanismo a controlar para subir y bajar
las tenazas.
Después de tener acondicionada la señal del
sensor, se procede a convertirla utilizando el
convertidor analógico digital que tiene el micro
controlador ATMEGA8535 el cual es de 10 bits y
tiene una resolución de 1024, por lo 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 referencia propuesta
o la combinación binaria B’00000001 si el voltaje
de entrada al ADC ahora es menor a la referencia
dada, y finalmente cuando la referencia sea igual
al valor de entrada en el ADC, la salida de puerto
B será B’00000000.
De esta forma estas combinaciones se mandan a
un puente H de igual manera que se hizo para
abrir y cerrar las tenazas del efector, y así se logra
que las tenazas puedan subir y bajar para alcanzar
la altura deseada.
El puente H y el micro controlador se muestran a
continuación, donde el puente H se calculó para
un motor que se alimenta a 9v y tiene un consumo
de corriente entre los 300 mA y 800 mA
dependiendo de la carga a levantar.
Fig.4.4k Diagrama simbólico de la conexión del
micro 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
Ref = 0
Inicio:
Ref = Pinc
Dmas = Pind.1 * 512
Dmin = Pind.0 * 256
Ref = Ref Or Dmas
Ref = Ref Or Dmin
W = Getadc(0)
If W > Ref Then
Portb = 2
Elseif W < Ref Then
Portb = 1
Elseif W = Ref Then
Portb = 0
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 posición del efector final.
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 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
gripper puede alcanzar, además del área que la
cámara puede ver a una distancia determinada.
Para encontrar el área de visión, tuvimos que
comenzar trazando el área de trabajo del robot,
después acercamos 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.1a.- Área de trabajo del robot
Fig 4.5.1b.- Área de visión
Debido a las características antes descritas el
origen del área de visión es relativo con respecto
al origen del área de trabajo del robot, por lo que
para llegar al origen del área de visión es
necesario hacer un offset del área de visión, como
se muestra en la siguiente figura.
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 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:
Tabla 4.5.1a.- Mediciones para calibración
Numero de medición
Distancia en cm
Numero de pixeles
Valor de un pixel en centímetros
1 0.5 3 0.1667 2 1.0 5 0.2000 3 1.5 8 0.1875 4 2.0 11 0.1818 5 2.5 14 0.1786 6 3.0 16 0.1875 7 3.5 19 0.1842 8 4.0 21 0.1905
Finalmente para tener un parámetro regular en
toda la foto decidimos hacer un promedio de los
valores obtenidos, así el valor regular de cada
pixel en centímetros es:
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 gripper.
4.5.2 PROGRAMACIÓN
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 detallada de su
funcionamiento.
%Vision para Robot SCARA
close all, clear all, clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Captura de imagen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
v=videoinput('winvideo',2);
set(v,'ReturnedColorSpace','rgb')
preview(v)
pause
foto=getsnapshot(v);
figure,imshow(foto)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Binarizar imagen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
% foto=imread('cinta.bmp');
foto=rgb2gray(foto);
[fil,col]=size(foto);
foto=foto>105;
foto=1-foto;
figure,imshow(foto)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Erosion de Imagen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
estructura=[1 0 0 0 0 0 1;
0 1 0 0 0 1 0;
0 0 1 0 1 0 0;
0 0 0 1 0 0 0;
0 0 1 0 1 0 0;
0 1 0 0 0 1 0;
1 0 0 0 0 0 1];
k=sum(sum(estructura));
erosion=zeros(fil,col);
for i=4:fil-3
for j=4:col-3
if foto(i,j)==1
if (sum(sum(foto(i-3:i+3,j-
3:j+3).*estructura)))==k;
erosion(i,j)=1;
end
end
end
end
figure,imshow(erosion)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Calculo de bordes de la imagen Erosionada
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
bordes=edge(erosion)
figure,imshow(bordes)
salida=bordes;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Codigo de la cadena
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
for i=2:fil-1
for j=2:col-1
if salida(i,j)==1
paro=1;
pixel=0;
while (paro==1)
if salida(i,j+1)==1
salida(i,j)=0;
pixel=pixel+1;
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;
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;
elseif salida(i,j-1)==1
salida(i,j)=0;
pixel=pixel+1;
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;
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;
else
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
paro=0;
end
imshow(salida)
drawnow
end
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%Escala de vectores de Coordenadas en X e
Y
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%Transformacion de escala de pixeles
a cm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
posRealX=posRealX*0.1845;
posRealY=posRealY*0.1845;
Ahora que conocemos el código explicaremos
detalladamente cada sección del mismo:
A. Captura de Imagen
v=videoinput('winvideo',2);
set(v,'ReturnedColorSpace','rgb')
preview(v)
pause
foto=getsnapshot(v);
figure,imshow(foto)
En esta sección de código se llama a la
herramienta de video de matlab, se abre una
ventana con una vista previa del video capturado
para después obtener una captura de imagen, por
último se muestra en una ventana nueva la imagen
capturada, un ejemplo de captura es el siguiente:
Fig. 4.5.2a. Imagen Capturada de la Trayectoria.
B. Binarización de Imagen
foto=rgb2gray(foto);
[fil,col]=size(foto);
foto=foto>105;
foto=1-foto;
figure,imshow(foto)
Para tratar una imagen es mucho más fácil
tratarla si solo se compone de dos colores, es decir
negro y blanco, la imagen original tomada esta en
formato RGB es decir posee tres capas una con
sus componentes en rojo, otra con sus
componentes en azul y otra con sus componentes
en verde, con el comando rgb2gray se transforma
la imagen a una matriz de una sola capa en escala
de grises para así poder manejarla con mayor
facilidad, con el comando siguiente se obtiene el
tamaño de la foto en filas y columnas de pixeles,
después se binariza la imagen dejando pasar solo
los componentes cuyo tono de gris sea 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 fondo negro y la trayectoria en
color blanco, por último se muestra la imagen
binarizada.
Fig. 4.5.2b. Imagen Binarizada de la trayectoria
C. Erosión de la Imagen
estructura=[1 0 0 0 0 0 1;
0 1 0 0 0 1 0;
0 0 1 0 1 0 0;
0 0 0 1 0 0 0;
0 0 1 0 1 0 0;
0 1 0 0 0 1 0;
1 0 0 0 0 0 1];
k=sum(sum(estructura));
erosion=zeros(fil,col);
for i=4:fil-3
for j=4:col-3
if foto(i,j)==1
if (sum(sum(foto(i-3:i+3,j-
3:j+3).*estructura)))==k;
erosion(i,j)=1;
end
end
end
end
figure,imshow(erosion)
Esta sección de código es la encargada de
erosionar la imagen, es decir hacer la figura de
trayectoria mas pequeña quitando las capas
externas de la figura mediante la aplicación de una
máscara o estructura, cabe mencionar que la
estructura se puede seleccionar de acuerdo al
tamaño que más convenga para la aplicación, en
nuestro caso se intento con distintas estructuras
pero la que mejor funciono para adelgazar las
trayectorias de prueba fue una estructura en forma
de X con dimensión de 7 filas por 7 columnas, por
último se muestra una imagen con la trayectoria
adelgazada o erosionada.
Fig. 4.5.2c. Imagen Erosionada de la trayectoria
D. Bordes de la imagen
bordes=edge(erosion)
figure,imshow(bordes)
salida=bordes;
El código anterior muestra el cálculo de bordes
de la imagen, es decir se selecciona solo el
contorno de la figura en blanco y se elimina todo
lo demás, dejando solo dibujada su forma básica,
esto se realiza con el propósito de obtener la
imagen definida solo por contornos de un pixel de
grosor, esto nos ayudara a un correcto
funcionamiento del código de la cadena explicado
a continuación, se muestra una figura con los
bordes de la imagen calculados
Fig. 4.5.2d. Bordes delgados de la trayectoria
E. Código de la cadena
for i=2:fil-1
for j=2:col-1
if salida(i,j)==1
paro=1;
pixel=0;
while (paro==1)
if salida(i,j+1)==1
salida(i,j)=0;
pixel=pixel+1;
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;
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;
elseif salida(i,j-1)==1
salida(i,j)=0;
pixel=pixel+1;
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;
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;
else
salida(i,j)=0;
pixel=pixel+1;
coordx(pixel)=i;
coordy(pixel)=j;
paro=0;
end
imshow(salida)
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 código se nos entrega un vector
con las correspondientes coordenadas en X e Y de
cada pixel que dibuja el contorno de la trayectoria,
dichos vectores se construyen de la siguiente
manera: Primero se recorre la imagen fila por fila
hasta encontrar el primer pixel blanco, al
encontrarlo guarda su posición en una entrada de
los 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.
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.
Fig. 4.6a. Vista de la Interfaz Grafica de Usuario
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 eslabones, como se muestra en
las figuras 13 y 14, respectivamente.
Fig. 4.7a Robot SCARA
En la imagen anterior se puede observar la
disposición de los eslabones que conforman la
arquitectura SCARA. El sistema cuenta con 3
grados de libertad, de tipo R-R-P.
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 del sistema, ya sea para el
análisis rotacional y traslacional así como el
análisis mediante el algoritmo de Denavit-
Hartenberg.
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 con = 0, 1, 2, 3.
Tomando en cuenta las anteriores restricciones,
los marcos coordenados tienen la siguiente
disposición
Fig. 4.7c Marcos Coordenados
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:
Transformaciones Homogéneas
A partir de esto se puede calcular cualquier
transformación a cualquier punto, en resumen
tenemos las siguientes matrices de
Transformación.
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 la
distancia de separación y la distancia que
bajara el efector final y el ángulo que rotaran las
variables articulares . Y se obtendrá la
posición del Efector Final.
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:
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 es localizada la
declaración de estos desplazamientos:
Posteriormente, 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:
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:
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 la
distancia de separación y la distancia que
bajara el efector final.
Fig. 4.7f Bloques de la Cinemática Inversa
En el siguiente fragmento de código es donde se
toman los datos de entrada, de tal manera que son
propuestos los siguientes valores:
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:
Si se multiplica la Matriz Homogénea por el
Vector de diferencia de Alturas y a la matriz
resultante le restamos 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 el
marco 2, y transformarlo respecto al marco 0. En
el siguiente fragmento de código queda
especificado:
Donde el sistema de ecuaciones vendrá en la fila 1
y la fila 2 del vector resultante de las operaciones
anteriores.
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:
Y aplicando de la misma manera la obtención de
vectores 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:
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:
De tal manera que los resultados obtenidos son:
Se puede observar en los gráficos que ambos
puntos, llegan al efector deseado:
Solución 1
Fig. 4.7g Cinemática Inversa Solución 1
Solución 2
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.
Para simulación tomamos en base a la cinemática
directa, es decir mover las variables articulares,
para obtener la posición final. Quedando la
interfaz grafica como se muestra en la figura.
Fig. 4.7i Modelo Cinemático
De la siguiente figura observaremos, una vista
superior y una vez dados los datos del fabricante
o delimitada el área como ya se explico, para el
eslabón 1, tendremos un giro de -18° a 198°,
respecto a la base.
Fig. 4.7j Restricción de giro inferior para teta 1
Del mismo modo tendremos que para teta 2 el
rango de giro que tendrá, esto debido a que
pueden colisionar los eslabones será de -20° a
196°. En las figuras, mostramos su simulación
Fig. 4.7k Restricción de giro inferior para teta 2
Fig. 4.7l Restricción de giro superior para teta 2
Estos resultados idealmente sin haber
considerado, la longitud del griper, pues
realizamos básicamente un control sobre los 2
grados de libertad principales.
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.7m Diámetro exterior de área de trabajo
Fig. 4.7n Diámetro interior de área de trabajo
Uniendo ambas trayectorias, obtenemos el área de
trabajo ya mencionada
Fig. 4.7o Área de trabajo obtenida de la
cinemática
E. Modelo Dinámico
Ahora bien, para comenzar a modelar la dinámica
del 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 en el espacio cartesiano. El
Jacobiano depende del sistema de referencia en el
que se exprese.
La definición de Jacobiano se puede expresar
mediante la siguiente ecuación:
Donde, Jv (q) ∈ ℜ3×n representa el Jacobiano de
velocidades lineales y Jw(q) ∈ ℜ3×n es el
Jacobiano de velocidades angulares.
En otras palabras, el Jacobiano J (q) ∈ ℜ6×n es
una transformación que relaciona el espacio de
velocidades articulares ∈ ℜ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
Posición de cada centro de masa respecto
a la base
Calculando El jacobiano de velocidades angulares
y velocidades lineales:
Suponiendo el mismo caso que se manejo en la
Cinemática Directa para:
Obtendríamos el siguiente jacobiano:
No afecta
Revoluta Revoluta Prismátic
o Prismátic
o
5. Conclusiones
Rodríguez Hernández Héctor Alfonso.
En el presente proyecto, pudimos encontrar
diversas dificultadas a la hora de diseñar los
sistemas y partes que constituyen el robot, pero
sobre todo, pudimos ver que la dificultad más
grande la encontramos en el momento en que
comenzamos a intentar controlar los motores ya
montados en la estructura. Porque como se puede
observar en las anotaciones del control, cada
eslabón junto con el motor debe ser tratado como
un sistema diferente a controlar, y no tomar el
control solo del motor, sino como un conjunto. De
tal forma que al percatarnos de que aun cuando el
diseño de la estructura fue el correcto, existía un
juego en los motores y aun mas las flechas,
piñones, etc., tendían a desajustarse debido al
propio movimiento de los motores, lo cual a su
vez hacia que tuviéramos señales de interferencia
(ruido) que provocaban oscilaciones en el control.
En cuanto a la cinemática directa e inversa (ver
sección de cinemática directa e inversa), fue
necesaria la adición de algunos marcos para la
simulación cinemática directa, ya que con los
marcos mínimos no se podía hacer la simulación
de la misma en 3D. Y con respeto a la cinemática
inversa, la selección de las ecuaciones que nos
permiten definir las variables articulares
correctamente.
Otro punto importante en el cual tuvimos
dificultades fue la parte de visión artificial, y esto
básicamente por el proceso de la obtención de la
trayectoria, ya que como se puede leer en la
sección de visión artificial, al obtener el vector
que contiene la trayectoria debido al algoritmo
que utilizamos, este rotaba 90°. La
implementación de un nuevo algoritmo que
permitiera poner en el orden correcto el vector.
Por último en el diseño del efector final, existieron
dos dificultades básicas, la primera fue la
adaptación que se tuvo que hacer a un sistema
prediseñado para que pudiera soportar los
requerimientos en peso que fueron estipulados en
el proyecto. Y el segundo, el diseño de un sensor
que nos proporcionara el funcionamiento del
tercer frado de libertad, que como podemos ver en
la sección de gripper, tuvo como ultima y mejor
implementación el de un sensor ultrasónico, pero
que sin embargo paso por varias otras
implementaciones y configuraciones.
Sánchez Chaparro Miguel Angel
Al enfrentarse a un diseño desde cero y ser
novatos en esta área se presentan muchas
dificultades en la 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 un robot scara
se presentaron una serie de inconvenientes, los
cuales nos hicieron adquirir experiencia tanto en
diseño mecánico como en implementación de
control. Lo primero que se presento en el diseño
fue en que basarse, debido a que ya se disponía de
algunos motores los cuales podían haber sido
controlados y mediante el torque de 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 al par necesario para el
movimiento de estos adquirir los actuadores
ideales. Esta segunda opción fue la adoptada.
Otra característica difícil de resolver fue el diseño
del gripper con variación de altura, ya que se
implementaron varias soluciones con distintos
tipos de sensores, el resultado final fue la
implementación del variador mediante sensores
ópticos.
Uno de los puntos fundamentales del diseño del
robot fue el control de posición así como la visión
artificial y la conjunción de estos, ya que de
acuerdo al control de motores y su restricción de
movimientos nos dieron las dimensiones del área
de trabajo, también, con la cámara empleada solo
se pudo cubrir cierta sección del área de trabajo
teniendo que limitar el seguimiento de trayectorias
a un área pequeña, en la programación de visión
artificial se optó por varias soluciones siendo la
más fácil mediante dilatación, bordes y regla de la
cadena.
En general el diseño y construcción de un
prototipo interdisciplinario (es decir que conjunta
varias disciplinas como la mecánica, electrónica,
control, robótica y visión artificial) siempre será
más complicado que enfocarse en un área
particular pero el desempeño de un prototipo de
esta naturaleza será mas completo y hará al
diseñador adquirir más experiencia y versatilidad
para futuras ocasiones.
Morales Cabrera Gustavo
Sin duda alguna cualquier proyecto que involucre
la aplicación real de los conceptos vistos en clase,
no es trabajo fácil, y peor en un materia en la cual
se juntan asignaturas que van desde el análisis
matemático hasta el análisis estructural y
económico.
A pesar de las limitantes por la que ha pasado el
curso se ha logrado desarrollar un prototipo de
cumple con las características propuestas desde un
principio, es decir, diseñar una estructura óptima
para soportar una carga establecida y por otro lado
la creación de control de posición para motores de
CD.
Durante la fabricación de este prototipo se han
tenido diversas complicaciones, por ejemplo el
crear un ajuste adecuado para los rodamientos
entre los eslabones y hasta el mismo ensamble,
hablando de la parte de control las 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 lo anterior en buena parte es
provocado a la inexperiencia práctica que tenemos
en cada una de las materias, pues solemos
quedarnos con los conceptos que se ven en clases
y muy rara vez buscamos una aplicación práctica.
Este prototipo está muy lejos de ser una
aproximación a los robots empelados
industrialmente, pues éstos últimos utilizan
técnicas más avanzadas de control y mecanismos
más complejos, ejemplo de ello son los
servomotores de AC que emplean comparados
con los motores de CD utilizados en el prototipo,
pero la idea principal de fabricar el prototipo no es
competir contra los robots industriales, si no dar
una noción del proceso que se debe de cumplir si
es que requiere diseñar y construir un robot
manipulador y sobre todo comprobar que los
conceptos vistos en clase en verdad se aplican de
una u otra forma.
Rodrìguez Palomeque Yair Enrique
Es muy complejo poder desarrollar un prototipo
de un robot, ya que se necesitan considerar
muchos parámetros para su desarrollo. En un
principio se visualiza como un proyecto
relativamente sencillo pero conforme se va
desarrollando el mismo comienzan a aparecer
problemas que no habían sido considerados.
Por ejemplificar en el desarrollo del efector no se
había considerado las perturbaciones por el
entorno, es decir la iluminación, ruido
electromagnético, etc. Por lo que el desarrollo de
esta parte del prototipo se complico en gran
medida.
Con este tipo de aplicaciones prácticas de
conocimientos en clase se crea una gran atmosfera
de aprendizaje y experiencia en el ambiente
ingenieril, ya que como se menciono
anteriormente comienzan a aparecer problemas
que en la parte teórica no se consideran en la
mayoría de los casos.
La entrega de este reporte se considera algo
temprana, ya que aun no ha sido suficiente el
tiempo como para poder realizar pruebas al robot
y visualizar si cumple los objetivos planteados en
este prototipo, por lo que me parece adecuado que
el día de la presentación del prototipo sea
entregado el reporte del mismo.
Finalmente se obtuvo desde el punto de vista
personal una gran experiencia en el desarrollo del
prototipo, ya que necesitamos de software y
diseño para cumplir con los lineamientos del
prototipo.
Rabadán Ortiz Adrian
Cuando se propuso el proyecto de llevar a cabo un
robot, nunca me imagine que el diseño de este
fuera a depender de tantos campos de
conocimiento ya que uno piensa que sólo es cortar
eslabones de algún material como aluminio o
nailamit, y colocar los motores y realizar un
controlador, pero a la hora de llevar a cabo un
buen diseño, resulta que se tienen que aprender
muchas más cosas que serán tomadas en cuenta a
la hora de realizar el diseño, como lo es la parte de
la mecánica del robot, la cual es indispensable ya
que si no se diseñan bien las transmisiones, el
movimiento del robot no será el deseado, o
simplemente afectará con el control de los
motores del robot, por otra parte están los análisis
de resistencia y desgaste para la misma parte
mecánica, ya que si los eslabones no se diseñan
de las dimensiones correctas pueden sufrir
deformaciones o simplemente no levantar la carga
propuesta para el robot, por otra parte cabe
mencionar que es muy importante el diseño
electrónico, ya que durante la realización del
control de los motores de DC, se observó que si se
colocan los cables de manera aleatoria, se induce
demasiado ruido que afecta al convertidor
analógico-digital, por lo que para solucionar esto
se enrollaron los cables y se metieron dentro de
una manguera, así como también realizar filtros
para eliminar frecuencias indeseadas que están
presentes en el medio de trabajo del robot y que si
se desprecian puede ocasionar grandes problemas,
con esto finalmente se redujo demasiado el ruido,
además de que se recomienda tener una buena
fuente de alimentación, la cual mantenga un
voltaje y corriente constante, ya que hay que
recordar que se están utilizando actuadores de
potencia, los cuales producen muchas
perturbaciones a los circuitos electrónicos.
En conclusión puedo decir que llevar a cabo este
diseño permitió que pudiera aprender nuevos
conocimientos y reforzar más los que ya tenía, así
como poder juntarlos todos y realizar cosas más
complejas, como fue el diseño del efector final, el
cual parece ser fácil y lo primero que se nos
ocurre es utilizar algún amplificador operacional y
ya, pero la realidad es que a la hora de hacerlo se
deben de tomar en cuenta factores como el tipo de
motor y el ruido que este produce, así como el tipo
de sensor y lo más importante la forma de
acondicionar la señal de tal manera que no se
afecte por variaciones exteriores de luz como nos
pasaba, en fin realizar un robot es una tarea
complicada, pero me agrado hacerlo, pues siento
que hicimos un buen trabajo como equipo.
Cortez Vázquez Oscar Ricardo
La elaboración y el diseño de un robot scara
permitió que el equipo obtuviera experiencia
significativa en el desarrollo del mismo.
Inicialmente se tenía la disyuntiva del tipo de
material a usar, de la forma que tendrían los
eslabones, además del tipo de transmisión que
llevaría el robot y por último que tipo de motores
se utilizarían. Por lo tanto la forma de resolver
dichos problemas se basó específicamente en la
búsqueda de información en la red y en libros.
El equipo tomó en cuenta diferentes factores de
diseño que permitieran tener un robot robusto y
por lo tanto más efectivo en cuanto a su
implementación en algún proceso en específico,
sin embargo se tuvo conciencia que se verían
afectados otros aspectos, entre los cuales resaltan
la inversión económica en su desarrollo así como
el ensamblaje del robot.
Una vez realizado el diseño de todos los sistemas
que abarca el robot scara se comenzó con una de
las partes más importantes, la cual corresponde al
control digital de los motores de CD que
conforman al robot. En esta parte se tuvieron
demasiados problemas ya que se generaba mucho
ruido por diversos factores, tales como fallas en el
ensamblaje de la parte física del robot así como en
el trabajo en conjunto con los sistemas
electrónicos involucrados en el mismo.
Por último puede concluirse que en cada parte se
presentaron problemas que no se habían tomado
en cuenta, lo cual fue la principal fuente
generadora de fallas, sin embargo si se hubiera
analizado más a fondo cada parte se hubieran
podido evitar muchos problemas que retrasaron el
término del desarrollo del robot scara.
García Facio David
En el desarrollo del sistema robótico se puedo
observar algunas deficiencias que como
estudiantes de ingeniería se tienen al momento de
diseñar algún proyecto. Además de que se debe de
tener una visión muy fija y no tan general del
sistema a diseñar, es decir conocer la mayoría de
los aspectos que uno puede manipular y controlar
para poder obtener los resultados deseados tanto
en el diseño mecánico y como en el eléctrico.
Para el desarrollo del controlador se optó por la
implementación de actuadores, motores de CD, ya
que al implementar servomotores lo que uno
realmente controla es la posición de la flecha del
servomotor y no la posición de las articulaciones,
además de que en el diseño del controlador del
motor de DC se puede saber en algún instante de
tiempo requerido la posición actual de la
articulación.
Durante el ensamble de las distintas tareas a
realizar por el sistema se debe de considerar las
distintas utilidades que puedan aportar una de la
otra, ya que se pueden realizar algunas tareas
imprentando una u otra tarea por separado o al
mismo tiempo varias.
Se puede decir que este proyecto deja algunas
experiencias para el posterior mejoramiento de
algunas aplicaciones a fin.
Josué Daniel San Miguel Rodríguez
El desarrollo de este tipo de proyectos en
este momentos, no sirve de mucho a vísperas de lo
que nos espera en el trabajo terminal; con esto nos
damos cuenta de la importancia del diseño de tus
propias piezas, pues en base a cálculos podemos
determinar el comportamiento de los materiales
ante la aplicaciones de cargas, sus deformaciones,
así como poder encontrar las 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
Al diseñar un prototipo nos enfrentamos a la
cuestión de cómo empezar a definirlo. Los
distintos parámetros que influyen en el diseño
hacen difícil el inicio de este; al ser principiantes
en diseñar, nos vemos caer varias veces en
problemas. Un problema medular del control del
robot, es el sensado de la posición, el cual debe
ser preciso ya que de esto depende la
funcionalidad del robot. Las vibraciones en el
prototipo influyen en el desplazamiento lineal de
los sensores (potenciómetros). Otro problema es el
inicio de configuración del robot, para calibrarlo
en los desplazamientos, ya que la estructura se ve
sometida a movimientos bruscos, porque el
control todavía no se implementa. Al hacer
pruebas de desplazamiento, comienzan a salir
problemas sobre las condiciones de la estructura y
sobre el manejo de información en el sensado de
posición. Las variaciones de la señal censada
afectan de manera importante el control de
posición, se montaron filtros y el cableado de los
sensores se hizo lo mejor posible. La conjunción
de los distintos programas de control del robot fue
complicada ya que al ser programados por
distintas personas la compatibilidad se vuelve
compleja. Una manera de solucionarlo fue
implementando cada programa como una función
que se llama cada vez que se necesita, sólo fue
necesario ponernos de acuerdo sobre las variables
de salida y entrada y el formato de estas. Al
montar la estructura nos enfrentamos a problemas
de ensamble de piezas ya que a pesar de que se
tiene un diseño, este se idealiza un poco y al
momento de armar los detalles se hacen presentes,
la manera de solucionar los problemas cuando ya
tenemos eslabones y parámetros definidos no es
más que el ingenio.
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/De
vices.aspx?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
1 Diseño mecánico y
manufactura
Diseñar la estructura mecánica que cumpla con los requerimientos dinámicos.
Validar el diseño mecánico.
Fabricar y ensamblar las piezas necesarias para el robot.
Morales Cabrera Gustavo Sánchez Chaparro Miguel Ángel
San Miguel Rodríguez Josué Daniel Rabadán Ortiz Adrián
2
Cinemática directa e inversa
Con base al diseño mecánico generar las ecuaciones necesarias de la cinemática directa e inversa.
Álvarez Toledo Jorge San Miguel Rodríguez Josué Daniel
3 Control eléctrico y
visión artificial
Diseñar y construir controladores aplicados a motores de CD usados en el robot.
Crear un control de movimientos basado e visión artificial.
Álvarez Toledo Jorge Cortez Vázquez Oscar Ricardo
García Facio David Rodríguez Hernández Héctor
Sánchez Chaparro Miguel Ángel
4 Alimentación y
electrónica
Fabricar fuentes de alimentación que cumplan con el consumo energético del robot.
Crear los diferentes circuitos requeridos en para el control del robot.
Álvarez Toledo Jorge Rabadán Ortiz Adrián
Rodríguez Palomeque Yair
5
Administración de recursos económicos
y materiales
Distribuir de forma óptima los recursos económicos y materiales indispensables en la fabricación del robot.
Realizar la repartición de labores para cada departamento.
Sánchez Chaparro Miguel Ángel Morales Cabrea Gustavo
Tabla 1. Distribución del trabajo.
Recurso Humano Recursos Materiales Costo Recurso Económico
Otros
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.00
Total $45,922.00 $2,700.00
Tabla 2. Recursos disponibles.
Recursos Materiales Costo Taza de
depreciación 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.
Actividad Departamento responsable
Horas/Hombre Costo/Hora Total
Diseño mecánico 1 37 $7.323 $270.951
Ensamblado 1 9 $7.323 $65.907
Diseño, manufactura y ensamble de
gripper 1 8 $7.323 $58.584
Control eléctrico de gripper
4 21 $7.323 $153.783
Caracterización de motores
3 3 $7.323 $21.969
Control motor de CD 3 27 $7.323 $197.721
Caracterización de sensores
3 10 $7.323 $73.230
Diseño e implementación de
algoritmos de control por visión
artificial
3 21 $7.323 $153.783
Diseño y fabricación de fuentes
4 21 $7.323 $153.783
Programación y comunicación con
PC 3 7 $7.323 $51.261
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.
Actividad Departamento responsable
Horas/Hombre Costo/Hora Total
Manufactura de eslabones en CNC
1 6 $845.000 $5070.000
Manufactura de ejes 1 2 $125.000 $250.00
Costo total $5320.000
Tabla 5. Costos esperados de manufactura.
Cantidad Parte Precio Unitario
Total
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 catalizador
$63.000 $63.000
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
El valor mínimo de la función se determina igualando a cero las derivadas parciales
y
, y
resolviendo las ecuaciones que resultan en A y B.
Para A:
Para B:
Utilizando la propiedad distributiva de la suma, obtenemos de (13) y (14):
Llevando esto a un sistema de ecuaciones matricial tenemos:
Aplicando mínimos cuadrados para (11)
Anexo E: Código del controlador digital PIC18F4550