viernes, febrero 29, 2008

Paso 17: Algunas fotos olvidadas

Encontramos entre toda la selva dispersa de archivos y carpetas del proyecto, que poco a poco vamos desmalezando, una serie de fotos de la estructura y de las cuales exponemos algunas para demostrar la existencia de nuestro trabajo.

La mayoria de estas fotos corresponden al ensamblado del puente grúa, la reducción y la polea; que se realizó por el mes de septiembre de 2007. Algunos detalles fueron acabados, mientras que aún resta solucionar la integración del motor para el desplazamiento del montacargas, la colocación de la bandeja porta cables, etc. Asuntos relacionados, específicamente, con el segundo eje de la planta.


Montacargas y sistema de guiado por medio de rodamientos lineales, formando el puente grúa en sí.

Sistema de reducción, donde se puede apreciar el montaje del motor sobre un portarodamientos deslizante. Este conjunto permite tensar la correa dentada de la reducción.


Detalles del extremo posterior de la estructura, donde se encuentra la polea donde calzará la correa dentada para la tracción del puente.

Vista inferior del puente, en el que se aprecian el puente grúa con la reducción detrás. En el techo, una desamparada boca de luz que espera paciente la instalación de un plafón.

Primer plano de la cara opuesta de la reducción.

Como se puede ver, el trabajo ha sido intenso y muy demandante, sobre todo en tiempo, ya que el 90% de las piezas fueron fabricadas por nosotros mismos. A pesar de ello, el resultado final fue lo suficientemente bueno para ser empleado en el proyecto.

miércoles, febrero 13, 2008

Pinout db37 de la placa ADQ12B

Como es costumbre, siempre olvido en alguna parte el pinout de la placa. A propósito, acabo de encontrar en la página de Comedi el driver para la placa adquisidora ADQ12B de Microaxial. Será cuestión de probarla...

jueves, diciembre 20, 2007

Paso 16: Modelo matemático de la planta*

1 Introducción
El objetivo de éste apartado es el desarrollo, análisis y posterior simulación del modelo matemático del sistema. Para ello, debemos contar con un planteo lo más riguroso posible de la planta real, pero sin caer en un esquema que resulte complejo de implementar más adelante.

Por éste motivo, se toma el conjunto de ecuaciones que describen la dinámica del sistema para linealizarlas y aplicar herramientas de estudio para sistemas lineales, como la ubicación de los ceros y polos, calcular ancho de banda, ganancia de contínua, tiempo de subida y tiempo de establecimiento.

Finalmente, se contraponen la simulación del modelo lineal al modelo no lineal, con el objeto de verificar la linealización de las ecuaciones para pequeñas oscilaciones del péndulo.


1.1 Modelo Matemático
Por razones de espacio y tiempo, no detallaremos todos los pasos dados para hallar el modelo lineal invariante en el tiempo del sistema, sino que nos limitaremos a expresar el modelo matemático en espacio de estados. Cuando tengamos una versión definitiva del documento, publicaremos el texto completo.

Las variables de estados quedan expresadas como,


Modelo lineal e invariante en el tiempo definido como,


1.2 Características del sistema lineal a lazo abierto
A partir del modelo desarrollado, es preciso simular el comportamiento de la planta, con el fin de verificar que las ecuaciones que la describen son coherentes con la realidad.

Inicialmente, el estudio se basa en la dinámica de la planta a lazo abierto ya que la ubicación de sus polos y ceros en el plano complejo implican un ancho de banda, ganancia de continua, error de régimen permanente y demás características, que definirán el tipo de estrategia de control a emplear.

A continuación puede verse la simulación implementada en Simulink


1.3 Parámetros de simulación
Las constantes que se emplean en el modelo de la sección 1.1, especifican las matrices A, B y C de la ecuación de estados. Se deberá tener en cuenta que muchos de los valores expuestos aquí son arbitrarios y su único fin es el delograr una primera aproximación al sistema físico construido.

Va=24 Vcc Tensión nominal
mc=1.5 kg Masa carga
mt=20 kg Masa carro principal
R=0.065 m Radio polea
Jmp=5e-5 kg·m2 Inercia motor-reductor-polea
n=35.55 Reducción
L=1.2 m Longitud de la barra
Tm=0.16 seg Constante de tiempo motor-reductor-polea
Ra=3 ohm Resistencia armadura
K=0.03 Nm/A Constante par motor

Numéricamente,


1.3.1 Ancho de banda
Otra propiedad importante de la respuesta transitoria del sistema está dada por el ancho de banda. Con éste índice podemos saber qué frecuencias se filtrarán, como así también tener una noción de la sensibilidad de la planta a la variación de sus parámetros ([Kuo96], p.544).



-------------------------------------------------------------------------------------------------------------------------------------------
* Versión reducida e incompleta

lunes, agosto 20, 2007

Paso 15: El nombre de la Bestia

Todo proyecto, por inútil o preciado que sea, merece una etiqueta, un nombre que lo distinga, que permita identificarlo y decir: ¡Ahí está la cosa!. Hasta el momento, nos hemos referido al proyecto como Proyecto, con P mayúscula, y eso lo hacía algo del montón a pesar de considerarlo un bien invaluable desde hace más de un año (sí, más de un año).

Es así como, sin demasiadas discusiones ni intervenciones, hemos dado en llamar al Proyecto como BORA. Entonces sí, ahora podemos señalarlo e identificarlo por sobre el resto de los proyectitos que pululan por ahí, con algo de recelo y un poco más de orgullo.

Poniéndonos serios, BORA es un acrónimo que define los pilares fundamentales de nuestro trabajo final de carrera, y con ello nos referimos a "Control de Oscilaciones Bidimensional en Tiempo Real por Visión Artificial".

En el transcurso de los próximos días y semanas, iremos publicando información que abarcará los temas que definen al proyecto con el objetivo de servir como guía a futuros proyectos relacionados con el nuestro.

En caso de que les interese un novedoso fondo de pantalla, aquí dejamos uno para su deleite.


martes, junio 26, 2007

Paso 14: Avances estructurales. Diseños, cálculos y pruebas.

En este último mes hemos estado sumergidos en desarrollos teóricos en las áreas de Control y Mecánica del sistema. Partiendo de diseños físicos de la estructura y obteniendo numérica y experimentalmente diversos valores de interés, comenzó la primera etapa de identificación de la planta. Abordaremos este tema más en detalle en las sucesivas publicaciones, pero a modo introductorio puede mencionarse que, del resultado de la aplicación de diferentes leyes de la física clásica para la translación y rotación de un cuerpo (conocidas como Ecuaciones Mecánicas) y mediante el estudio del comportamiento eléctrico de los motores (Ecuaciones Eléctricas), se obtuvo el primer modelo del sistema. Este mismo fue sometido a simulación a lazo abierto y se han sacado las primeras conclusiones.
En cuanto a los avances mecánicos, se efectuaron refuerzos mediante la fabricación de cuatro escuadras que fueron montadas en cada extremo de la estructura de perfiles reduciendo así notablemente las oscilaciones. Para su sujeción, fue empleada la misma metodología que se venía utilizando, piezas deslizantes de juego reducido por las ranuras de los perfiles, que poseen la cualidad de aumentar el cuerpo del material para la sujeción y facilitar el armado.

Tras largas deliberaciones sobre cual sería el sistema de tracción más eficiente a emplear y que cumpla con los requisitos ya mencionados aquí, nos hemos decidido por utilizar, para ambos movimientos, transmisión por correa dentada. En particular, paso 8M (un diente cada 8mm).

En cuanto al sistema de deslizamiento, para el movimiento longitudinal (aquel que transporta el puente), se fabricaron seis ruedas de Grilon acanaladas cuyo diseño hizo hincapié en que, al rolar, se evitasen acuñamientos entre la rueda y la guía, y se reduzcan movimientos axiales indeseados. Finalmente, estas piezas harán que el conjunto se desplace sobre cuatro barras de acero inoxidable como se muestra en la foto. El motivo de la elección de este material para emplearlo como guía es sencillo de deducir. Debíamos utilizar uno tal que no presente impurezas en su superficie que generen un coeficiente de roce elevado. Su costo es considerablemente reducido si se lo ha de comparar con una barra de acero templada y rectificada. Para su sujeción, fabricamos dos piezas por barra que fueron colocadas en los extremos y, mediante piezas deslizantes, fijadas a la perfilería.

Para los diseños del puente, hemos adquirido recientemente dos placas de aluminio de 15mm de espesor, en las cuales serán fijadas el sistema de ruedas acanaladas. Con una disposición de dos ruedas superiores y una inferior por lado, donde cada una ha sido montada sobre un eje y rodamiento. A modo de visualizar su terminación y rodadura, hemos montado el conjunto sobre un modelo en madera. Esta experiencia nos permitió considerar diversos factores desconocidos hasta el momento. Evaluamos medidas finales, escuadras y flexiones, entre otras cosas.

Pero quizás, el ensayo más importante para el equipo, fue una prueba de pesos. Nuestra inquietud era saber en la práctica, si nuestros motores serían capaces de mover el puente proyectado. Conocíamos mediante cálculos teóricos, el peso aproximado de éste dependiendo de los materiales que se emplearían y las dimensiones de cada uno, logrando un peso total del puente de 20Kg aproximadamente. Debido al hecho de que el motor a emplear para el movimiento longitudinal posee un número de vueltas superior al máximo permisible que consideraremos, será necesario fabricar una caja de transmisión con dos finalidades pre-establecidas: Disminuir la velocidad de desplazamiento del puente y aumentar el torque motor en el eje de la polea responsable del movimiento. Los detalles de ésta caja, que actualmente se encuentra bajo construcción, serán dados oportunamente. Lo que queremos denotar aquí es que se logrará una velocidad máxima de desplazamiento del puente de 300 mm por segundo (con el motor girando a su velocidad nominal de 90 RPM), y obteniéndose una fuerza de empuje tangencial de 5,5 Kg.
Volviendo a la experiencia de los pesos, mediante esta se comprobó que aplicándole una fuerza en el sentido del movimiento de 3,5 Kg, era capaz de desplazar un puente de 32,4 Kg (un 62% más que el hallado con una fuerza menor a la calculada).
Como se mencionó, nos encontramos desarrollando las dos cajas de transmisión del proyecto, como así también la estructura final del puente, es decir todo lo que concierne a las guías, soportes y el carro de desplazamiento transversal. Además, continuamos efectuando simulaciones en pc del comportamiento del conjunto buscando, de alguna manera, darnos seguridad en nuestros diseños e implementar un sistema de control adecuado.

jueves, mayo 10, 2007

Paso 13: Sobre el control, los controladores y lo controlado

Cuando empezamos éste proyecto habíamos dado por descartado el uso de PCs para realizar el control de la planta o sistema. Sin embargo, luego de haber analizado repetidas veces la arquitectura de control empleando microcontroladores, nos encontramos con severas limitaciones de cálculo, por lo que pensamos en otras variantes al esquema propuesto inicialmente.

En el comentario anterior (Paso 12), hicimos una reseña de los tres sistemas operativos de tiempo real que teníamos a disposición y cuál terminamos adoptando. A continuación, damos un breve repaso por los distintos temas que abarcamos hasta la fecha.

Tiempo Real
La búsqueda fue orientándonos a una herramienta de código abierto u open source, de tiempo real, con buena y accesible documentación, etc. Hasta que dimos con RTAI (Interface de Aplicación de Tiempo Real) y comenzamos a investigarlo y experimentar exhaustivamente, con algunos muy buenos resultados.

Dado que contamos con escasa (nula) experiencia con Linux, buscamos versiones booteables o LiveCDs que incluyan RTAI para evitar la recompilación del kernel y aprender comandos básicos de Linux evitando su instalación definitiva en la máquina.

Una de las mejores versiones que encontramos fue una distribución Knoppix 5.0 con RTAI 3.4 y kernel 2.6.17, que incluye la biblioteca Comedi y varios ejemplos de aplicación. Ésta se puede encontrar en PmWiki y en http://www-lar.deis.unibo.it/people/gpalli/files/rtai_knoppix.iso

Cuando cumplimos unas cuantas horas de vuelo, probando y errando, instalamos el sistema operativo y comenzamos el desarrollo del control, o los primeros esbozos.

Un esquema de la arquitectura de control se puede ver a continuación, donde una computadora realizará el control propiamente dicho, mientras la otra captura las imágenes de video y envía, por el puerto serial, la posición estimada de los objetos bajo la plataforma.


Fig. 1: Esquema de control en Tiempo Real con RTAI.

Placa Adquisidora
El control por sí mismo no tiene sentido si carece de comunicación con el exterior. Para ello es necesario la placa adquisidora, que se encarga de obtener la señal de los sensores y enviar órdenes a los actuadores, para que la acción tenga efecto.

En nuestro caso, nos conformamos con una placa adquisidora de origen nacional, marca microAXIAL, modelo ADQ12-B.

Entre sus características, podemos contar con:

- Conversor de 12 bits.
- 16 canales desbalanceados y 8 diferenciales, 10 useg de conversión.
- 8 salidas y 5 entradas digitales.
- Contador de 16 bits y Pacer de 32 bits.
- 2 entradas de interrupciones enmascarables.

Lamentablemente, los recursos disponibles impiden tener un driver para ésta placa que sea compatible con RTAI, por lo que habrá que diseñar uno a partir de la biblioteca ofrecida por Comedi (Linux Control and Measurement Device Interface).

Aun así y a fin de evitar semejante embrollo, desarrollamos todos los ejemplos iniciales con la dirección de memoria del puerto a la que apunta la placa, a través de las funciones outb() e inb().


Programación
La mejor forma que encontramos para aproximarnos a la estrategia de control final, fue desmenuzando las diferentes tareas a ejecutar por el controlador en:

Salidas Discretas: PWM y pulsos.
Entradas Analógicas: Posición angular.
Entradas Discretas: Encoders.
Control.
Comunicación.

Hasta el momento, los resultados obtenidos con RTAI nos permiten tener, cómodamente, un período de interrupciones de 100 useg (10 KHz), aunque puede ser reducido aún más.

Otras pruebas en las que funcionaron tres tareas de tiempo real en un mismo módulo, arrojaron un tiempo mínimo de interrupciones de 40 useg (25 Khz).

Ahora podemos enfocarnos en el diseño definitivo del control mientras terminamos de construir los carros que van montados sobre la estructura y que conforman la planta, o el sistema, a controlar.

martes, mayo 08, 2007

Paso 12: Algunos cambios y comentarios previos

Comprendemos que la página ha tenido escasa actualización desde marzo pero el proyecto en los últimos dos meses ha ido consumiendo cada vez más tiempo hasta abarcar el 90% de nuestro día aprovechable.

Sin embargo no son pocas las cosas que han sucedido, y ello tiene que ver con cambios sustanciales en el desarrollo del trabajo y las ideas que tenemos al respecto.

En primer lugar, desde principios de marzo sumamos la fuerza de un tercer integrante: Fabián Andrés Dipane.

Una sesión con el equipo completo.

Con él vamos a tener un importante aporte en el diseño y construcción de la mecánica del sistema, como así también en la electronica y programación que falta terminar. Próximamente, Fabián irá agregando comentarios a la página explicando detalles sobre el proyecto.

En segundo lugar, nuestra idea de emplear microcontroladores de 8 bits fue reemplazada por el uso de un Sistema Operativo en Tiempo Real (RTOS, en inglés) junto a una placa adquisidora de marca nacional. Las principales implicaciones de éste cambio tuvieron que ver con el estudio y familiarización con el nuevo sistema operativo, además de un comprensión intensiva y extensiva de los paquetes de tiempo real existentes.

De ésta forma, buena parte de febrero se invirtió en la búsqueda y selección del sistema operativo en cuestión. De allí surgieron 3 variantes posibles:

- QNX
- RTLinux
- RTAI

Finalmente, encontramos en RTAI la opción más sólida al poder acceder a una herramienta en constante desarrollo y, sobre todo, GRATUITA. Además, cuenta con RTAI-Lab, un paquete para desarrollar controles con diagramas de bloque sin tener que salir del ambiente Linux.

Con todo ésto en mente, los dos meses que siguieron a febrero fueron destinados casi por completo a la finalización de la estructura de la planta y al estudio de RTAI como plataforma de programación.

sábado, marzo 17, 2007

Paso 11: Estructura de Perfiles de Aluminio Terminada

En una entrada anterior, les comentamos sobre el viaje realizado a la ciudad de Rosario con el objeto de adquirir los perfiles de aluminio que se emplearían para confeccionar la estructura. Sobre ella se montarán los rieles para el desplazamiento lineal del conjunto, transmisiones, motores, actuadores y cámaras. Mencionamos además, ideas de costos en comparación con materiales importados y manifestamos también ventajas y desventajas. Ahora bien, lo que quizás no teníamos en cuenta a la hora de emplear este tipo de materiales, sería el costo de los accesorios para su ensamble. Para dar una idea estimativa, entre uniones, escuadras, tornillería, zócalos, patas y tapas, el precio igualaría el monto de los 18 mts de perfiles. El problema era claro, y la solución también, fabricar nuestras propias uniones y accesorios.
Surgieron varios diseños, sin embargo no lográbamos aquel que cumpla con ciertos requisitos propuestos, fue entonces cuando hallamos el sistema definitivo. La idea tomaba como base la confección de piezas capaces de deslizar sin juego en las ranuras de los perfiles y que unas a otras (empleando tornillería allen por su grado de apriete), habrían de combinarse de manera de obtener uniones firmes, que mantengan escuadrado al conjunto, cuidando en todo momento un buen nivel de terminación.
Fue así que, en la segunda semana de Febrero, comenzó la confección de las mismas. Sobre un total de 48 piezas fabricadas, 6 procesos de mecanizado en torno, limadora, agujereadora radial, lijadora banda y convencional, sierras y Blasting y 54hs de construcción, finalizó ésta etapa con resultados por demás exitosos.
Sin considerar los perfiles, la estructura cuenta con un total de 80 piezas, cada una de ellas enumeradas por conjuntos para obtener un correcto y fácil ensamble. Para dar por acabada ésta etapa, deberán de construirse por estos días, 4 escuadras y 8 piezas para su sujeción.
A continuación les mostraremos distintas imágenes de algunos procesos empleados:
Torneado: Partiendo de una varilla roscada, se efectuó el frenteado del plano a emplear, para luego, con una mecha de centro y la contrapunta, realizar el agujero guía de mecha.

Posteriormente se hizo un orificio de 50mm de profundidad con una mecha de 6,75mm para, finalmente, roscar en 5/16". Esta pieza una vez terminada se alojará dentro del perfil previamente roscado y será utilizada para la unión de dos piezas.

Limado: Tras la adquisición de una barra de hierro de 1" por 1/2", se empleó la limadora para su desbaste y la confección del destalonado necesario para obtener un tipo de pieza que deslice, sin juego, por las ranuras de los perfiles de aluminio. El proceso consistía en rebajar la cara mayor 7mm, luego realizar trazados a lo largo de la barra y finalmente efectuar los rebajes donde alojarán, una vez terminadas y montadas las piezas, las cabezas de los tornillos de sujeción. El inconveniente a la hora de emplear este tipo de máquina es la necesidad de obtener un adecuado paralelismo entre la herramienta y la pieza.

Una vez que se obtuvo la pieza, la misma fue marcada y agujereada en dos etapas en una máquina radial. La primera parte consiste en la realización del orificio pasante de los tornillos, y en la segunda parte, confeccionar el alojamiento de las cabezas de los mismos. Finalmente la pieza fue cortada para obtener de ella las uniones. Además, para un número más pequeño de partes, fue necesario una tercera etapa de agujereado y posterior roscado.

La imágen siguiente muestra el sistema de unión y su cuidada terminación:

Y he aquí la estructura montada:

La estructura de perfiles cuenta con un largo propuesto de 2,10 mts, ancho 1,57 mts y alto 1,28 mts (dependiendo de la regulación de altura de las patas). Estas dimensiones no son arbitrarias, ya que lo que realmente nos interesa, son las medidas efectivas de desplazamiento (2 x 1,5 x 1,2). Como se ha mencionado, por estos días estaremos construyendo las escuadras restantes, como así también el sistema de desplazamiento lineal. Mientras tanto, el equipo se encuentra investigando diferentes entornos de tiempo real para el manejo del movimiento planar.

Un gran reconocimiento

Ha pasado tiempo desde la última vez que publicamos, no obstante hemos avanzado de manera significativa en estos meses. Muchas novedades, logros y giros inesperados ocurrieron, o estamos atravesando, por estos días. Pero antes de hacerlos partícipes de los mismos, queremos o al menos es nuestra intención, dedicar esta publicación a un amigo que, de manera constante y desinteresada, colabora con nosotros brindándonos su experiencia y vastos conocimientos sobre diversos temas que este proyecto involucra. El agradecimiento de hoy es para Gastón García Franchi.

Esta persona actualmente está desarrollando, en conjunto con otro muy amigo nuestro, Víctor Daniel Medina, su proyecto final de carrera. Una propuesta innovadora y por demás interesante, que encierra y combina temas poco frecuentes abordados en trabajos anteriores. Su proyecto, no será uno más, como pionero, servirá de guía para muchos otros que quieran emplear dicha tecnología en la universidad, y entre ellos nos encontramos nosotros.


Actualmente, además, es ayudante de la materia Computadores II, cuyo profesor es nuestro Director de Proyecto, el Licenciado Germán Osella Massa.

Por la ayuda en la cursada, por lo de diciembre, por las horas de asesoramiento en chat, por estar.... siempre, mil gracias Gastón por todo.

Desde aquí les deseamos el mayor de los éxitos con ese, Gran Proyecto.

viernes, enero 26, 2007

Paso 10: Programador armado

Ya quedó listo el programador, aunque aún no fue probado. En éste momento no tengo tiempo de dar detalles sobre su funcionamiento. Sin embargo, pronto habrá un explicativo sobre la electrónica y la programación del micro para su mejor entendimiento.

Mientras tanto, dejo para su deleite unas imágenes del dispositivo. Que lo disfruten.



jueves, enero 18, 2007

Paso 9: Programador, encoder y fuentes

Esta semana se dió comienzo al diseño de la electrónica presente en el proyecto. En principio tenemos tres frentes diferentes a desarrollar:
  • Programador del microcontrolador.
  • Interface para encoder incremental.
  • Fuentes de alimentación para los diversos circuitos.

Comenzando por el programador, utilizaremos un programador serial basado en el ATTiny2313 o similar. Para ello se diseñó el circuito impreso y sólo falta ensamblar los componentes necesarios.

En segundo lugar, poseemos un encoder incremental marca Autonics modelo ENB-100, de 100 pulsos por vuelta, alimentación entre 5 y 28 Vdc, y acople directo a ejes de 8 mm de diámetro. Posee salidas A, B y Z, por lo que A y B se encuentran en cuadratura y Z es la marca de referencia.

Durante los próximos días se armará una placa para aislar eléctricamente las salidas del encoder
mediante optoaisladores (seguramente el CNY74-4), aunque luego deberemos tener en cuenta el ancho de banda de trabajo, ya que podría ser un limitante.

Entonces, utilizando un pequeño driver para el puerto paralelo por medio de Matlab, haremos algunas pruebas en el entorno de Simulink con nuestro motor de contínua para obtener, entre otras cosas, una identificación precisa del modelo del motor y algunos parámetros adicionales.

Respecto de las fuentes de alimentación, debemos pensar en algo apropiado para la alimentación de los motores ya que no podemos correr el lujo de quemarlos por exceso de corriente. Además, están los sensores, encoders y microcontroladores, por lo que un estudio detallado sería conveniente para evitar la mayor cantidad de errores posibles.

Con todo ésto por delante, el verano no sólo será entretenido sino que también, algo más bien
ajeno...

Paso 8: Adquisición de Perfiles de Aluminio

Con un retraso de dos meses, el 28 de diciembre adquirimos finalmente la perfilería de aluminio que será empleada en la construcción de la estructura de soporte de la plataforma.

Las principales dificultades que encontramos para adquirir el material radicaron tanto en la oferta como en el costo. Por un lado teníamos la opción de perfiles importados y muy costos, pero disponibles. Por el otro, pudimos dar sólo con una empresa nacional dedicada a la producción de perfiles similares hasta cuatro veces más económicos, pero cuya venta es restringida y escasa.

Tras dialogar con ésta empresa, tuvimos acceso a la compra de los perfiles. Nos recibieron muy cortesmente en su oficina de ventas (situada en la misma fábrica).
Ahora es cuestión de armar la estructura y empezar con la etapa que más nos interesa y que es confeccionar la planta, luego realizar una identificación, para finalmente implentar los controles.


A continuación, detallamos los fundamentos y características que nos llevaron a realizar una apropiada decisión.

Objetivos

Mencionamos algunos motivos que fueron planteados para la elección de los perfiles:

  • Soporte.
  • Sencillez en el montaje.
  • Vista, estética.

Aun así, encontramos ciertas desventajas, considerando que éste proyecto es meramente demostrativo y no un prototipo para su futura comercialización. Entre ellas están:

  • Precio
  • Piezas adicionales específicas de cada perfil
  • Presencia en el mercado

Se concluyó que las ventajas presentes en los perfiles de aluminio fueron significativas para su empleo, mientras entre que las desventajas pueden resolverse por caminos alternativos.

Características

Los perfiles de aluminio adquiridos son extrusionados y poseen, en su versión pesada, 1.68 Kg por metro y vienen en barras de 6.05 m. Son de sección cuadrada con 44.7 mm de lado.
Se compraron 3 barras enteras con las que construiremos el perímetro donde se contruirá las guías de movimiento, las patas de soporte y refuerzos adicionales para evitar flexiones y mantener el conjunto escuadrado.

martes, diciembre 12, 2006

Paso 7: Visión, se pudo

Hace rato que no actualizamos la página y no por eso significa que el proyecto se haya abandonado, sino todo lo contrario. Queja más, queja menos, logramos hacer una interfaz medianamente decente para el sistema de visión del proyecto y lo mejor de todo... funcionó!

Ahora que está hecho, es muy probable que caigamos en el comentario típico: es una tonteria. Sin embargo, las idas y vueltas quer tuvimos desde finales de octubre nos levaron a tener severos atrasos en el desarrollo del programa, por lo que tuvimos miedo de fracasar en ésta etapa. Además, la cosa podía complicarse más de lo esperado si éste trabajo no se presentaba para la materia de Computadores II donde uno staba anotado en la materia y el otro la cursó de oyente para reforzar y aprender algunos temas perdidos.

Finalmente, en casi 5 días y sus respectivas noches, instalamos el bunker y le dimos duro y parejo, dejando como lo resultado lo que viene a continuación.





1. Retomando la idea del proyecto

Con el título de “Estimación de Posición y Velocidad de un Patrón Visual” se entregó un informe en el que se detallaron los sieguientes objetivos:

"Por medio del paquete Artoolkit, realizar la captura de imágenes, medición de la posición de un patrón visual en el plano y posterior estimación de la velocidad. Con estos datos, se presentan en pantalla las gráficas de los valores obtenidos. Finalmente, ésta información se enviará, vía puerto serial, a una terminal de dialogo para su posterior empleo. "

2. Sistema de visión

Dado que la etapa de captura de video significaba invertir una gran cantidad de tiempo en desarrollarla, decidimos adoptar como base el paquete Artoolkit v1.7.3 . De ésta forma pudimos no sólo capturar imágenes de video entregadas por una camara, sino que, además, nos permitió identificar los marcadores que servirán de objetivo para el seguimiento en posición y velocidad de la plataforma, al poder obtener con relativa sencillez la posición del marcador en el eje x-y-z.

3. Interfaz de Usuario

Al ejecutar el proyecto, se presenta una pantalla en la que se setean los parámetros de la captura de video tales como, la velocidad de cuadros por segundo, tamaño en píxeles de la ventana y el formato de color ha emplear, siendo estos últimos, los únicos que pueden modificarse.

Una vez finalizada la configuración del video, emerge la pantalla principal de la figura 1, donde se realizan todas las operaciones propuestas. En la misma, se puede observar los módulos anteriormente mencionados y demás información necesaria para la obtención y el análisis de los datos.

En un recuadro se presentan los parámetros dimensionales de la imagen como así también el tiempo de captura. Este tiempo es empleado por el programa para la realización de las siguientes tareas:

  • Ejecución del bucle principal. En él se almacena la imagen, detecta el marcador y se obtiene la matriz de transformación.
  • Exhibición de las coordenadas en pantalla.
  • Envío de la información por el puerto serial.
  • Conformación del vector de la imagen capturada.

Figura 1. Pantalla principal del entorno visual, identificación y comunicación.

Se ha colocado además una barra de desplazamiento (con un indicador de valor), con el objeto de establecer en forma manual el umbral de binarización empleado para la detección del marcador. Este valor, previamente seteado por default en 100, será enviado a la clase responsable del tratamiento de la imagen.

En el cuadro “Identificación del Marcador”, la clase responsable de la generación de gráficos, muestra una imagen en donde se efectúa el seguimiento, mediante cursores, del patrón empleado. La intercepción de la línea vertical y horizontal denota la ubicación actual del patrón, entendiéndose como la coordenada X=0 e Y=0 (independientemente de Z) la posición central de la imagen.

En otro cuadro, denominado “Estimación de la Posición”, se presentan los valores x-y-z que posee el marcador con respecto a la cámara. El patrón empleado para su identificación es el propuesto en el paquete Artoolkit.

Finalmente, se estableció un cuadro de Comunicación. En él se presenta información referente al manejo del puerto: apertura, configuración y tiempo de espera. Además, se colocó un botón que, al oprimirlo, establece los parámetros de la comunicación (velocidad de transmisión, cantidad de bits de datos, paridad y número de bits de parada). Ello habilita el puerto serial de la PC para el envío de datos.

La transmisión cesa al oprimir dicho botón nuevamente. Los datos enviados serán las coordenadas del marcador x-y-z.


4. Detalles del programa

La programación del proyecto fue realizada en wxDev-C++ V6.10, utilizando el compilador GCC por defecto, para ser usado en Windows (Win32 modo gráfico).

Se desarrollaron tres clases:

Artool: Núcleo del programa. Posee todos los métodos y atributos necesarios para el análisis de imágenes y detección de de los patrones o marcadores.

En un método de inicialización, abre la ruta de acceso a video, determina el tamaño de la imagen y configura los parámetros de la cámara.

El método principal, captura la imagen, detecta los marcadores, determina la visibilidad de los mismos y obtiene la matriz de transformación entre el marcador y la cámara.

Finalmente, detiene la captura de imágenes y cierra el acceso al recurso de video.

Complementariamente, la clase está provista de una serie de “geters” y “seters” para obtener las coordenadas del patrón y ajustar el umbral de binarización.

PlotXY: Esta clase realiza la confección de la imagen mostrada y, por medio de la importación de ciertos atributos de la artool, establece los cursores de identificación y seguimiento del marcador.

SerialCom: Una de las funcionalidades que se aportó a la librería Artoolkit es la comunicación con diferentes dispositivos desde la PC, a través del puerto serial.

La clase CSerialCom provee todas las características típicas del manejo del puerto. Entre ellas se puede contar con los parámetros de comunicación (tasa de baudios, cantidad de bits de datos, paridad, número de bits de parada), los tiempos de espera para la escritura y lectura de datos, la apertura y cierre del puerto y, finalmente, las funciones de envío y recepción de datos. Incluso, fue agregado un método dedicado al envío de cadena de caracteres ya que un solo byte no es suficiente para los fines del proyecto.


5. Conclusiones

Al desarrollar el Proyecto, nos propusimos cumplir con esmero los objetivos planteados en el pre-informe.

Los inconvenientes encontrados fueron, en su mayoría, la configuración del paquete Artoolkit y las librerías que éste requiere. Otra dificultad, que por falta de tiempo no hemos podido solucionar, fue el de presentar la imagen capturada por la cámara en el formulario. Y finalmente, el hecho de querer modificar on-line el tiempo de muestreo.

Como desarrollo a futuro, se trabajará para solucionar los inconvenientes presentados, como así también el de optimizar la identificación del marcador empleando, entre tantas cosas, un ajuste eficiente del umbral de binarización. Otorgarle robustez a la comunicación con dispositivos externos. Exhibir la imagen capturada conjuntamente con la identificación de los marcadores y la estimación de la velocidad de los mismos. Se desea incursionar también en el empleo de threads (hilos de ejecución) los cuales, por cuestiones de tiempo, no hemos llegado a preparar.

domingo, octubre 29, 2006

En que andamos?

A modo de actualizar la página, y lejos de confirmar otro paso alcanzado, ambos nos encontramos abocados en saldar compromisos, ya sean de índole laboral, proyectos que se encontraban en curso ó, en el caso de uno de nosotros, terminar de cursar las últimas tres materias de la carrera. Deseosos por dedicarle el tiempo que un proyecto final requiere, continuamos mientras tanto diseñando la mecánica del sistema. No mostramos un progreso aparente en este tema, somos conscientes de ello, pero sucede que en este último mes hallamos un método por demás interesante de transmisión. Si bien sostenemos nuestros objetivos mencionados en publicaciones anteriores, con esta nueva técnica reduciremos costos de diseño y tiempo de armado. La idea es hallar el sistema de transmisión que más se ajuste a nuestros requerimientos. Hasta que punto lograremos equilibrar la relación costo-beneficio?

En este último mes, nos hemos pasado tardes llenando pizarrones con diseños de estructuras, despieces, medidas, resultados de pruebas de torque y velocidad de nuestros motores, por citar algunos temas. Basándonos únicamente en nuestra experiencia práctica y capacidad creativa, nos preguntamos si somos capaces de crear nuevos diseños, formas constructivas que disten de lo convencional, resignar lo existente en el mercado local y de uso común, si no son estos los adecuados para implementar. Sobre todo si provenimos de un tipo de Ingeniería que no nos forma en estos temas, sino que aborda la etapa mecánica como una "caja negra" que deberá de comportarse según pautas de funcionamiento establecidas.

Pues bien, cuales son las fuentes de diseño de nuestra planta (llámese "planta" a la estructura física del proyecto)? Un gran porcentaje proviene de nosotros mismos, como mencionamos, de experiencias laborales, de teoría recurrida e investigaciones realizadas sobre cada tema. Pero hemos de destacar la intervención de ellos, los amigos de siempre, compañeros de carrera que han caminado junto a nosotros a lo largo de estos años. Conmueve realmente verlos tomarse como propia esta idea, involucrarse sin pedírselo. Los ves debatiendo, manifestándose, y llenando pizarrones junto a nosotros. Estuve tratando de encontrar una palabra que encierre esa sensación de ver a estos futuros monstruos de la Ingeniería reunidos, preguntándonos constantemente como vamos, en qué andamos. Y la misma fue... emocionante, nada mas sincero y gráfico que eso. Nombrarlos a todos sería pasarnos días escribiendo y seguramente nos olvidaremos de muchos que, en mayor ó menor medida han intervenido proponiendo ideas ó bien, brindándonos su apoyo. Y a modo de retribuirles de una manera muy humilde pero sincera aquello, queremos darlos a conocer en nuestras sucesivas publicaciones. Hoy, un compañero y amigo, Juan Pablo Demolis, Paco, como todos lo conocen. Está desarrollando, en conjunto con un equipo de personas entre los cuales se encuentra uno de nosotros, un proyecto para una importante empresa nacional, líder en su mercado. Conjuntamente, lleva a cabo una ayudantía en la materia Control Automático II. Además se halla cursando sus últimas materias y conformando su Trabajo Final.

En días pasados, el equipo estuvo intercambiando ideas sobre varios aspectos del sistema de visión artificial. Fue quizás, la charla más delirante que hemos tenido. El corazón de este delirio se originó en la manera de fijar las coordenadas de un objeto en movimiento establecidos desde la cámara, donde a su vez la misma se halla moviéndose. En lo personal recordé los orígenes de la teoría relativista de Albert E. Conclusión y primera aproximación, empleo de lógica difusa, ó al menos la idea en que ésta se basa, para guiar la plataforma por el campo de acción. Pero recuerden que es solo una primera hipótesis para solucionar este problema de movimiento relativo.

Por ahora es todo lo que tenemos, faltan establecer entre todas las alternativas presentes, aquella a emplear. Pero nos tranquiliza saber que nos encontramos transitando la etapa más crítica, los prediseños.

sábado, septiembre 30, 2006

Paso 6: La estructura. Primeras definiciones

Qué es lo que se busca al momento de diseñar algo? Fundamentalmente que el resultado final sea el esperado, pero qué se espera? Qué es lo que uno está dispuesto a resignar para llegar a concretar un proyecto? Todas estas preguntas nos hicimos nosotros en la facultad tras horas de deliberar cómo es que íbamos a encarar la construcción. Como una suerte de torbellino de ideas, empezamos a listar aquellas cosas que priorizábamos sobre otras.

Fundamental, que la estructura sea rígida: pequeños movimientos causados por el propio desplazamiento de la plataforma ocasionarían entradas de perturbación que influirían no solo en la parte de compensación de oscilaciones sino también en un cambio en las coordenadas visuales de la cámara. Explicado de otra manera, quizás más simple, al moverse la estructura de repente, el sistema, por el lado de la cámara, interpreta ésta como que el objetivo ha "pegado un salto". En ese momento los datos cambian y se ordena a los motores que busquen esa nueva posición. Un segundo más tarde todo vuelve a su estado de reposo inicial y la cámara reordena a los motores la nueva coordenada. Pero, el objeto había cambiando bruscamente su posición? Para la cámara sí. Por otra parte está el sistema de compensación, el objetivo del mismo es el de mantener la carga sin oscilar durante todo el recorrido; se imaginan que pasaría si, paralelamente que se efectúa el movimiento planar del sistema, la estructura cede? No solo se compensarían las oscilaciones propias del traslado, sino también las de la propia estructura que a su vez afecta la del traslado. Es tan confuso supongo entender lo que pasaría si no se hacen las cosas como deben, como para nosotros tratar de explicarlo.


Retomando, rigidez. Otro factor importante es el tiempo de armado. El equipo se planteó hacerse primeramente de la planta para, sobre ella, empezar los estudios de identificación. Con planta me refiero al sistema físico, la estructura. De nada nos serviría emplear el tiempo armando maquetas que poco tendrían que ver con la estructura final. Por lo tanto, y apurados por comenzar las tareas de programación en C++ para el reconocimiento de patrones, decidimos dedicarnos ambos en buscar diseños y los materiales a utilizar, en lugar de que uno solo de nosotros lo haga. Este mismo concepto de minimizar los tiempos sirve también para el lapso de armado y la versatilidad de los materiales a emplear. Debemos buscar cierta forma de construir la estructura que nos permita efectuar modificaciones sin que tengamos que desechar, ni el material ni el tiempo que nos llevó construir esa parte. Por consiguiente, nuestro criterio es el de emplear la menor parte de piezas especiales, y hacernos si,

de piezas estándar de fabricación sencilla. Puede pensarse esto como una suerte de Lego (o será que los dos tuvimos ese juego...).















Y por último, pero no menos importante entre nuestros criterios de fabricación, esta la estética y por supuesto, el monto a costear. El equipo, de común acuerdo desde el inicio de este reto, se planteo casi como fundamental cuidar la estética del trabajo presentado (eso no quita que no podamos cumplir con eso, pero apuntamos a que no ocurra). Y por último, como bueno y barato no son conceptos que vayan de la mano, se intentará alcanzar un aceptable en lo que refiere al factor costo-material empleado.

(*)









(*) Datos obtenidos de Industrias JQ

Nuestras metas eran claras, solo había que encontrar un diseño y materiales que se adapten a las mismas. Una de las mejores opciones que hallamos fue la de utilizar perfilería de aluminio para confeccionar el "esqueleto" de la plataforma. Este tipo de material cumple con casi todas las expectativas propuestas, con excepción de, como era de imaginarse, el precio. Son muy pocos los fabricantes en el país de perfilería especial, mayoritariamente todo lo que se encuentra en plaza es importado, y sus costos, elevados. Es por eso que en veinte días aproximadamente el equipo viajará a Rosario para visitar una de las únicas empresas nacionales que trabajan la extrusión para conformar este tipo de material, y poder hacernos de la cantidad de metros lineales que utilizaremos.











El sistema de tracción comentado en días anteriores ya está practicamente definido, solo debemos ultimar detalles y llevar a cabo pruebas de velocidad y torque en nuestros motores. El tipo de material no ferroso para las poleas según criterios de diseño tenidos en cuenta fue el nylon. Este cumple con los niveles de dureza esperados observando ventajas significativas por sobre el delrin, teflón, poliuretano y polipropileno. Con respecto a las guias utilizaremos unas barras rigidas de aluminio en las cuales se le mecanizarán las ranuras de acople por fricción de las poleas y el alesado de las espinas de centrado.













































Falta definir la estructura móvil, sobre todo las transmisiones internas, pero para ello faltan hacer ensayos. Esperamos tenerlos para esta semana.

Gracias por el apoyo que recibimos y por las manos tendidas, esperemos alcanzar las metas propuestas.

Un gran abrazo a todos!

jueves, septiembre 07, 2006

Paso 5: Primer ensayo de visión andando!

Paso 4: Primeras aproximaciones al sistema mecánico: La Tracción

Uno de los detalles más importantes a tener en cuenta es la mecánica del sistema. Los estudiantes de ingeniería, con orientación electrónica y/o de programación, tenemos por costumbre desdeñar los aspectos mecánicos, y mucho más los químicos, de cualquier problema. Sin embargo, si las cosas tienen que salir bien, es un aspecto que no debemos descuidar. Más adelante, cuando seamos dueños de nuestras propias empresas, nos daremos el gusto de contratar a alguien que lo haga por nosotros, pero mientras tanto no queda otra salida.

Sabíamos por otros proyectos finales que hemos visto, que la traslación del carro podía ser un inconveniente grave a sortear durante el desarrollo del trabajo. Entre las dificultades que encontramos con el uso de engranajes y correas, podemos citar:

  • Juego o zonas muertas.
  • Resbalamientos.
  • Alto roce.
  • Paso discreto.
  • Vibraciones.


Como se había comentado anteriormente, Raúl hizo algunas sugerencias respecto de la tracción de los carros en la plataforma. Una de ellas es el empleo de una cremallera con perfil de W (o multi V), posiblemente de fundición. Sobre la misma irán apoyadas las ruedas del carro, que serán maquinadas para que el contacto sea puntual y trabajadas con un material como la Poliamida o similar.

El sistema completo se conoce como rueda de fricción y entre las ventajas que encontramos tenemos:

  • Eliminación del juego.
  • Deslizamiento suave.
  • Mejor aprovechamiento de la potencia disponible.
  • Cero resbalamiento.

Ahora esperamos que con todas estas ventajas la cosa salga bien. Los detalles y especificaciones vendrán más adelante, por el momento no es más que una introducción.


Poliamida:

http://es.wikipedia.org/wiki/Poliamida

http://www.jq.com.ar/Imagenes/Productos/Poliamida6/poliamida6.htm

Rueda de fricción:

http://fai.unne.edu.ar/contenido/6TRANSMISION%20DEL%20MOVIMIENTO.htm

Paso 3: Esquema general del sistema

Como podrá verse más adelante, el sistema que hemos pensado puede tomarse como un conjunto de bloques relacionados entre sí, en el que cada uno cumple con una función específica.

Núcleo: Corresponde al microcontrolador y aún no se ha determinado si uno solo concentrará todas las funciones a realizar, o serán más para distribuirse las tareas. En una primera etapa creemos que los uC de ATMEL, en especial Atmega8 o Atmega16, podrían ser de mucha utilidad. Las razones se deben a la familiaridad que poseemos con la marca y a la existencia de un programador casero para cargar los programas al micro.

Sensores: Serán los encargados de medir la posición de la plataforma en el plano y el ángulo del péndulo para que el control de las oscilaciones tenga efecto. En el primer caso, se emplearán encoders y, en el segundo, se necesitarán dos potenciómetros o sensores de efecto Hall, uno por cada grado de libertad o eje.

Actuación: Se trata del elemento final de control, en nuestro caso son dos motores de imán permanente de corriente continua, para cubrir los movimientos en el plano x-y. Además, se deberán construir drivers que serán los encargados de suministrar la potencia necesaria para que éstos funcionen correctamente.

Comunicación: El uC estará comunicado permanentemente con una PC para informarle de la posición de la plataforma y los ángulos del péndulo. A esto se le agrega el sistema de visión residente en la PC, que determinará la referencia en posición y velocidad para el seguimiento de objetos, por lo que deberá transmitir al micro tanto posición como velocidad respecto del carro principal de la plataforma.

Visión: Uno de los atractivos del proyecto será el uso de una cámara web que se empleará para observar los eventos que sucedan bajo el manipulador. En éste caso, nuestra intención será usar paquetes o herramientas ya desarrolladas que faciliten los cálculos del procesamiento de las imágenes digitales.

Entradas Discretas: Existirán en un principio dos tipos diferentes de sensores discretos. Por un lado, habrá microinterruptores para realizar la calibración del manipulador y, por el otro, barreras ópticas para determinar el sentido de paso de los vehículos bajo la plataforma.


Atmel: www.atmel.com

Atmega8: www.atmel.com/dyn/products/product_card.asp?part_id=2004

Atmega16: www.atmel.com/dyn/products/product_card.asp?part_id=2010

Grado de libertad:

www.dliengineering.com/vibman-spanish/gradodelibertad1.htm

http://es.wikipedia.org/wiki/Grado_de_libertad

http://club.telepolis.com/ohcop/gradlibe.html

http://pespmc1.vub.ac.be/ASC/DEGREE_FREED.html

http://en.wikipedia.org/wiki/Degrees_of_freedom_(engineering)

www.zyvex.com/nanotech/6dof.html

Efecto Hall: http://robots-argentina.com.ar/Sensores_magnetismo.htm

Drivers:

http://robots-argentina.com.ar/MotorCC_PuenteH.htm

http://www.x-robotics.com/motorizacion.htm

http://www.eis.uva.es/amuva/cybertaller/electronica/electronica.htm

http://robotroom.com/HBridge.html

lunes, septiembre 04, 2006

Paso 2: Entrega del Pre-Proyecto y primeros bocetos

El Lic. Germán Osella acordó participar como director de nuestro proyecto, causando una gran satisfacción. Esto es mucho más que un paso fundamental ya que su buena predisposición y conocimientos fueron determinantes a la hora de su elección.

A continuación detallamos el Pre-Proyecto entregado. Si bien es la primera aproximación concreta al problema que nos hemos planteado, nos servirá para desarrollar nuestro trabajo futuro

Descripción:

La motivación impulsora del presente trabajo, es el desarrollo de un sistema de control que elimine las oscilaciones de una carga con movimiento pendular. Para ello, se construirá un manipulador del tipo plataforma de 2 grados de libertad.

A modo de generar el movimiento planar del manipulador, se empleará un sistema de Visión Artificial con el fin de localizar y seguir patrones visuales dentro del campo de acción de la plataforma.

Sistemas de este tipo podrían aportar soluciones donde la carga o descarga de materiales deben efectuarse sobre vehículos en movimiento, en los cuales el tiempo y costo son factores determinantes.

Objetivos Propuestos:

  1. Lograr compensar el movimiento pendular de una carga en un grado de libertad.
  2. Incorporarle al proyecto un sistema de reconocimiento de objetivos móviles empleando visión artificial, con el fin de generar un seguimiento de los mismos en dicho grado de libertad
  3. Adicionar un grado de libertad para los dos ítems anteriores de manera tal que el control y el seguimiento se lleven a cabo en el plano x-y.
  4. Lograr la manipulación de una carga sobre objetivos móviles y/o estáticos.
  5. En función de las pautas anteriormente mencionadas, implementar distintas estrategias de control a modo de comparación del desempeño del sistema.