Diferencia entre revisiones de «Brazo»
(→Paleta de Turtlebots) |
(→Paleta de Turtlebots) |
||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 180: | Línea 180: | ||
[[Archivo:Paletabrazo.PNG]] | [[Archivo:Paletabrazo.PNG]] | ||
+ | |||
+ | Ejemplo de programa básico (usado en el video demostrativo): | ||
+ | |||
+ | [[Archivo:Programabrazo.PNG]] | ||
+ | |||
+ | Video demostrativo: | ||
+ | |||
+ | * https://www.youtube.com/watch?v=ESTjCkeqaFY | ||
+ | |||
+ | == '''Conclusiones''' == | ||
+ | |||
+ | Si bien el brazo robótico construido cumple con los requerimientos suficientes, mucho se puede mejorar todavía, especialmente en lo relacionado al control del mismo. | ||
+ | |||
+ | En nuestro proyecto, se buscó minimizar el costo todo lo posible para que el brazo fuera funcional, tal vez por un costo un poco mayor se podría construir un brazo con más grados de libertad. Pero esto presentaría nuevos retos, pues uno de los problemas en que incurrimos, en la etapa de codificación, fué que la señal PWM enviada a un motor se ve afectada cuando se intenta controlar un segundo motor al mismo tiempo. Por ejemplo: En nuestro modelo, la potencia de la pinza se ve disminuida cuando, al mismo tiempo, se sube la pinza. | ||
+ | Esto puede deberse a que el PWM es generado registrando eventos periódicos, y tal vez la presencia de más de uno de estos eventos afecte la performance del controlador, lo cual puede afectar la frecuencia de dichos eventos, afectando a su vez el ancho de la señal. | ||
+ | |||
+ | Por lo tanto, para agregar más grados de libertad, se deberá solucionar ese problema, modificando los módulos de usuario existentes, o bien creando un circuito PWM para controlar los motores, que sea manejable desde la placa USB4Butia. | ||
+ | |||
+ | Queda como trabajo pendiente la creación de una interfaz para conectar ambos motores a los hackpines sin depender de un protoboard. | ||
+ | |||
+ | |||
+ | == '''Fuentes citadas''' == | ||
+ | |||
+ | https://es.wikipedia.org/wiki/Servomotor | ||
+ | https://en.wikipedia.org/wiki/DYNAMIXEL | ||
+ | https://es.wikipedia.org/wiki/Brazo_rob%C3%B3tico | ||
+ | |||
+ | |||
+ | == '''Agradecimientos''' == | ||
+ | Quedamos agradecidos con los integrantes del proyecto butiá, especialmente a los docentes: | ||
+ | |||
+ | * Mercedes Marzoa | ||
+ | * Federico Andrade | ||
+ | * Rodrigo Dearmas | ||
+ | * Gonzalo Tejera | ||
+ | |||
+ | Sin sus consejos y sabiduría este proyecto no habría sido posible. |
Revisión actual del 17:47 3 jul 2015
Contenido
- 1 Integrantes
- 2 Tutor
- 3 Introducción
- 4 Objetivo
- 5 Motivación
- 6 Investigación
- 7 Robótica, Robots y Arquitectura de los robots
- 8 Anatomía del brazo.
- 9 Motores (Info y Presupuesto)
- 10 Diseño de la mecánica
- 11 Conexión con la placa USB4Butia
- 12 Paleta de Turtlebots
- 13 Conclusiones
- 14 Fuentes citadas
- 15 Agradecimientos
Integrantes
- Gustavo Di Cesare tavogus88@gmail.com
- Santiago Callejas sancagon87@gmail.com
- Noelia Gonzalez noeggamarra@gmail.com
Tutor
- Rodrigo Dearmas - dearmas@fing.edu.uy.
Introducción
El presente trabajo tiene como objetivo principal el diseño y creación de un brazo robótico de un grado de libertad. Se realizarán adaptaciones al programa TurtleBot para controlar el brazo robótico. Con la idea de hacer un aporte a la comunidad Butiá, se creará la interfaz electrónica para controlar el brazo robot.
Objetivo
Realizar un brazo robótico o pinza de bajo costo que se integre como actuador al kit butiá y se pueda comandar desde una paleta de turtlebots. Construcción, diseño programación.
Motivación
Dada la falta de actuadores disponibles para el robot butiá es deseable contar con un actuador que habilite al mismo a manipular objetos del entorno. Es esta necesidad la que se intentará satisfacer con el diseño de un brazo robótico adaptado al robot butiá. Dado que el proyecto butiá está enfocado a la enseñanza en liceos y escuelas, el brazo debe ser de costo razonablemente bajo, y con materiales de fácil acceso.
Investigación
Robótica, Robots y Arquitectura de los robots
Existen diferentes tipos y clases de robots, entre ellos con forma humana, de animales, de plantas o incluso de elementos arquitectónicos pero todos se diferencian por sus capacidades y se clasifican en 4 formas:
- Androides: robots con forma humana. Imitan el comportamiento del hombre, su utilidad en la actualidad es de solo experimentación. La principal limitante de este modelo es la implementación del equilibrio a la hora del desplazamiento, pues es bípedo.
- Móviles: se desplazan mediante una plataforma rodante (ruedas); estos robots aseguran el transporte de piezas de un punto a otro.
- Zoomórficos: es un sistema de locomoción imitando a los animales. La aplicación de estos robots sirve, sobre todo, para el estudio de volcanes y exploración espacial.
- Poliarticulados: mueven sus extremidades con pocos grados de libertad. Su utilidad es principalmente industrial, para desplazar elementos que requieren cuidados.
Anatomía del brazo.
La anatomía de un brazo robótico se refiere a la construcción física. La mayoría de los Brazos robóticos utilizados en las fábricas actuales están montados sobre una base que está sujeta al suelo. Los brazos robóticos están disponibles en una amplia gama de tamaños, formas y configuraciones físicas. La gran mayoría de los brazos comerciales disponibles en la actualidad tienen una de estas cuatro configuraciones básicas:
- Configuración polar: Usados en la manipulación en máquinas herramientas, soldadura por punto, fundición a presión, máquinas de desbarbado, soldadura por gas y por arco. Es un robot cuyos ejes forman un sistema polar de coordenadas.
- Configuración cilíndrica: Usado para trabajos de “pick and place” (tomar y colocar), aplicación de impermeabilizantes, operaciones de ensamblado, manipulación de máquinas herramientas y soldadura por arco.
- Configuración de coordenadas cartesianas: Usado para trabajos de “pick and place” (tomar y colocar), aplicación de impermeabilizantes, operaciones de ensamblado, manipulación de máquinas herramientas y soldadura por arco.
- Configuración de brazo articulado: Usado para operaciones de ensamblaje, fundición a presión, máquinas de desbarbado, soldadura a gas, soldadura por arco, y pintado en spray. Es un robot cuyo brazo tiene como mínimo tres articulaciones rotatorias.
Motores (Info y Presupuesto)
Los dos tipos de motores más utilizados para la construcción de brazos robóticos son:
SERVOMOTORES
Son motores con capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.
Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua.
La mayoría trabaja en la frecuencia de los cincuenta hertz, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4 milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los servomotores estándares. A continuación se exponen ejemplos de cada caso:
- Señal de ancho de pulso modulado:
- Motor en sentido horario (ejemplo 0,7 ms):
- Motor neutral (1,5ms):
- Motor en sentido antihorario (ejemplo 1,8ms):
El precio de mercado de un servomotor es aproximadamente 18 U$S.
DINAMIXEL AX12:
El Dinamyxel AX-12+ es un un servo digital “inteligente”, fabricado por la empresa coreana Robotis e incluido en sus kits robóticos Bioloid es lo que podría llamarse un “superservo”.
Algunas de sus características:
- Usa un microcontrolador integrado
- Soporta rotación continua y modo servo standard
- Velocidad y torque ajustables
- Velocidad máxima: 300 grados/seg. Torque máximo: 16Kg/cm
- Comunicación serial a 1Mb/s, half duplex. Se pueden conectar varios motores en cadena a un mismo bus.
- Feedback de todo tipo de información: posición angular, temperatura, voltaje, fuerza, velocidad, sobrecarga, errores, etc. a través del bus serial, y posee además un led de notificación.
El precio de mercado de un motor AX12 es aproximadamente 50 U$S.
* Dada la diferencia de precios entre los tipos de motor, se decidió utilizar Servomotores para la realización del proyecto.
Diseño de la mecánica
Grados de libertad
Se manejó la posibilidad de construir un brazo robótico con 3 grados de libertad, uno por cada eje axial, lo cual implica 3 motores servos, más uno extra para el efector (Mano, o pinza), o sea, 4 servomotores.
Dado que el robot butiá puede desplazarse en dos dimensiones, y la idea es que el brazo se use conjuntamente con este, se decidió que sería suficiente si el brazo trabajara en una sola dimensión, lo cual puede realizarse con 2 servomotores, minimizando de esta forma el costo en este sentido.
Se decide, por lo tanto, que el brazo tendrá forma de grúa, es decir será un brazo robótico cartesiano con un grado de libertad.
Efector
Como efector se utilizará un a pinza de diseño gratuito, descargada de el sitio thingiverse.com. Ésta será cortada en acrilico, adaptada a un tamaño compatible con los tornillos y tuercas utilizados en la plataforma Butiá.
Para el manejo de la pinza se utilizará un “miniservo”. Modelo utilizado: http://www.thingiverse.com/thing:2415
Estructura
La grúa consistirá en 2 partes; Una torre (o mástil) donde se encontrará un motor para enrollar/desenrollar la cuerda de la que colgará la pinza. Y un brazo (a modo de pluma) unido a éste, en cuyo extremo irá añadida una roldana, que girará libremente, sobre la cual pasará la cuerda que sostendrá a la pinza.
Materiales
Como en el laboratorio de robótica hay muchas “sobras” y recortes de acrilico de viejos robots Butiá, éstos se utilizarán para la construcción de la torre y el brazo. La pinza se cortará en acrílico de 6mm. Además se utilizaran tornillos, tuercas y fichas de ensamblaje pertenecientes al kit butiá.
Esta decisión tiene como ventaja que la grúa quedará mejor integrada a la plataforma butiá, además de que las piezas utilizadas son casi enteramente del kit butiá (el brazo utiliza dos barandas ligeramente modificadas para la tarea), por lo que no será necesario fabricar piezas personalizadas, a excepción de la pinza.
Conexión con la placa USB4Butia
USB4All y módulos de usuario
Para mover los motores es preciso comunicarse con los mismos a través de PWM, es decir enviando pulsos de una determinada duración. Sería necesario, entonces, crear un módulo de usuario para llevar a cabo esta tarea. Afortunadamente, el firmware usb4all cuenta con un módulo de usuario para controlar el shield de los motores de corriente continua del Butiá (la señal PWM es generada a través de software), de modo que se re-utilizará esta funcionalidad para controlar los servomotores.
Configuración
Para utilizar los motores de ésta forma es necesario “hacer creer” a la placa que se ha conectado el shield de los motores de CC. Para esto se utilizan los “hackpines”, con la siguiente configuración.
Pin 09 - Gnd Pin 10 - Gnd Pin 11 - 5v
Los cables de datos se conectaron en los pines 6 y 7.
De esta forma los motores pueden ser movidos con las funciones para mover los motores existentes en pybot (setMotorSpeed() y set2MotorSeed()).
Paleta de Turtlebots
Se agregan los siguientes bloques de funciones para el programa Turtlebots:
- Bajar Grúa: Enciende el motor de la torre para que se mueva en dirección horaria, de modo que la grúa baje, durante la cantidad de segundos indicada. Si es 0, el motor queda encendido hasta que se lo detenga.
- Subir Grúa: Enciende el motor de la torre para que se mueva en dirección anti-horaria, de modo que la grúa suba, durante la cantidad de segundos indicada. Si es 0, el motor queda encendido hasta que se lo detenga.
- Detener Grúa: Detiene el motor de la torre.
- Abrir Pinza: Enciende el motor de la pinza durante 0.5 segundos y lo detiene, de modo que la pinza se abre.
- Cerrar Pinza: Enciende el motor de la pinza durante 2 segundos y lo detiene, de modo que la pinza se cierra (esta diferencia de tiempos es debido a inconsistencias en el PWM, ver ‘Conclusiones’).
- Apretar Pinza:Enciende el motor de la pinza de modo que esta se cierra, el motor continúa encendido, ejerciendo presión, hasta que se ejecute la función Abrir Pinza, o Cerrar Pinza.
Siguiendo con el concepto de integrar la Grúa al robot butiá, se decide agregar los bloques a la paleta Extra de Butiá.
Ejemplo de programa básico (usado en el video demostrativo):
Video demostrativo:
Conclusiones
Si bien el brazo robótico construido cumple con los requerimientos suficientes, mucho se puede mejorar todavía, especialmente en lo relacionado al control del mismo.
En nuestro proyecto, se buscó minimizar el costo todo lo posible para que el brazo fuera funcional, tal vez por un costo un poco mayor se podría construir un brazo con más grados de libertad. Pero esto presentaría nuevos retos, pues uno de los problemas en que incurrimos, en la etapa de codificación, fué que la señal PWM enviada a un motor se ve afectada cuando se intenta controlar un segundo motor al mismo tiempo. Por ejemplo: En nuestro modelo, la potencia de la pinza se ve disminuida cuando, al mismo tiempo, se sube la pinza. Esto puede deberse a que el PWM es generado registrando eventos periódicos, y tal vez la presencia de más de uno de estos eventos afecte la performance del controlador, lo cual puede afectar la frecuencia de dichos eventos, afectando a su vez el ancho de la señal.
Por lo tanto, para agregar más grados de libertad, se deberá solucionar ese problema, modificando los módulos de usuario existentes, o bien creando un circuito PWM para controlar los motores, que sea manejable desde la placa USB4Butia.
Queda como trabajo pendiente la creación de una interfaz para conectar ambos motores a los hackpines sin depender de un protoboard.
Fuentes citadas
https://es.wikipedia.org/wiki/Servomotor https://en.wikipedia.org/wiki/DYNAMIXEL https://es.wikipedia.org/wiki/Brazo_rob%C3%B3tico
Agradecimientos
Quedamos agradecidos con los integrantes del proyecto butiá, especialmente a los docentes:
- Mercedes Marzoa
- Federico Andrade
- Rodrigo Dearmas
- Gonzalo Tejera
Sin sus consejos y sabiduría este proyecto no habría sido posible.