Empezamos con un nuevo proyecto de Arduino, construir un brazo robótico controlado por un procesador como Arduino.
Un brazo robótico es uno de los proyectos meta de muchos maker. Sin embargo, aunque de primeras puede no padecerlo, es más sencillo de lo que parece. Y podemos montarlo por unos 60€.
En esta entrada vamos a ver distintas alternativas y Kits comerciales para hacer un brazo robótico con Arduino y el presupuesto del proyecto. En las próximas entradas de esta serie veremos el montaje, la conexión eléctrica, y la programación.
Eligiendo un brazo robótico
Tenemos bastantes opciones para hacer un brazo robótico controlado por Arduino. Por un lado, tenemos varios Kits comerciales destinados a Makers. También hay gente que lo construye con cartón, madera, o plástico, o con piezas recicladas. Por supuesto, también podemos usar una impresora 3D para hacer el diseño.
Nosotros vamos a revisar algunos de los kits comerciales para hacer un brazo robótico. Si queréis hacer las partes mecánicas por vosotros mismos, siempre está bien que tengáis como referencia estos modelos.
A la hora de seleccionar un brazo robótico debemos tener diversos factores, como peso y resistencia, consumo eléctrico, tipo y tamaño de motores, geometría y, muy especialmente, los grados de libertad (DOF) que tiene el brazo. Vamos a fijarnos en dos de ellos.
Tipo y tamaño de los motores (servos)
Los brazos robóticos que vamos a ver usan servos para su movimiento. Muchos brazos robóticos emplean motores también motores paso a paso, pero en los Kit comerciales Maker es más frecuente encontrar basados en servos.
El tamaño de los servos (u otros motores) tiene una gran influencia en el peso que puede levantar el robot, el consumo eléctrico y el tamaño y peso del propio robot. Esto, a su vez, condiciona la selección del motor, de los controladores, de la geometría del brazo, de su alcance, de la precisión..
En definitiva, que es una de las decisiones más importantes que tomar al principio del diseño. Como casi siempre no hay una opción mejor, si no que es cuestión de hacer un balance correcto de los elementos, entre tamaño, peso, precio, potencia, etc.
Geometría y grados de libertad (DOF)
Los DOF son un uno de los criterios más importantes para seleccionar un brazo robótico. En este contexto, para que sea más intuitivo, podéis decir que el número de DOF equivale al número de servos que monta el brazo.
En general, siempre vamos a tener un DOF que corresponde al eje Z, y que permite orientar todo el brazo “en horizontal” hacia el objetivo donde queremos poner el efector (la pinza, o lo que tengamos en el extremo).
Por otro lado, tenemos el DOF correspondiente con abrir y cerrar la garra. En realidad, prácticamente no es un DOF porque no participa en la resolución de la posición del brazo. Pero que tengáis en cuenta que en los Kit contabilizan la apertura de la garra como un DOF.
Nos quedan los DOF que quedan con el plano X-Y del brazo. Con 1 DOF en X-Y sólo podemos girar la garra por lo que las posiciones están limitadas a un circulo en el plano X-Y (contando el eje Z anterior en una semiesfera).
Con 2 DOF en X-Y tenemos un triángulo articulado, que puede posicionarse en cualquier punto dentro de una cierta zona (determinada por las longitudes de los tramos del brazo, y que denominaremos rango o alcance). No podemos elegir el ángulo con el que llegamos al punto. La resolución de la cinemática es sencilla y única, para cada posición factible del efector.
Con 3 DOF en X-Y tenemos un cuadrilátero articulado, un mecanismo muy habitual al resolver la cinemática inversa de un robot articulado. Permite posicionar el extremo en cualquier punto de la zona de alcance y el ángulo de ataque del efector. La resolución de la cinemática es sencilla y única si definimos como parámetro el ángulo de ataque (si no, existen infinitas soluciones).
Muchos brazos añaden más DOF a lo largo del brazo. Por ejemplo, es normal añadir uno o dos DOF en el extremo (equivaldrían a una “muñeca”), que permite
Resumen de los DOF
Por tanto, en resumen, un brazo de:
- 1 DOF es únicamente la pinza en posición fija.
- 3 DOF (Z + X + pinza) es la pinza instalada en un mecanismo tipo torreta servo. Puede girar en Z y en X, pero no se puede considerar un auténtico “brazo”.
- 4 DOF (Z + 2 en X-Y + pinza). Un mecanismo limitado, que apenas podemos considerarlo un “brazo”. Podemos posicionar la pinza en cualquier punto (dentro del alcance), pero no elegir el ángulo con el que agarramos el objeto.
- 5 DOF (Z + 3 en X-Y + pinza) es el primer mecanismo que podemos clasificar como brazo. Podemos elegir la posición y el ángulo de agarre. La resolución de la cinemática inversa no es única, si no definimos el ángulo.
- 6 DOF o más. Son configuraciones similares a la anterior, añadiendo DOF adicionales. Por ejemplo, la rotación de la pinza. Por tanto, vuelve a existir más de una solución para coger una pieza, debiendo fijar (N-4) parámetros para resolver la cinemática inversa.
Kit brazo robótico con Arduino comerciales
Vamos a ver algunos de los Kit comerciales que podemos encontrar en AliExpress o Ebay para construir un brazo robot controlado por Arduino. Normalmente estos Kit no incluyen motores ni electrónica y, si los incluyen, suele salir más económico comprarlos por separado.
Por supuesto son solo alguna de las configuraciones posibles. Y tampoco es que tengáis que comprar un Kit, siempre podéis usarlos como inspiración o base para construir el vuestro (con piezas de madera, plástico, imprimirlo en 3D, etc).
Brazo robot 4 DOF (SG90)
Si comenzamos por el tamaño de los servos, tenemos brazos robóticos basados en servos de 9g tipo SG90 o MG90S. En general estos brazos serán más baratos, pero tendrán limitaciones en cuanto al peso que pueden levantar dada la pequeña potencia de los servos.
En cuanto a kit comerciales con motores de 9g, tenemos este de 4 DOF (Z + 2 en X-Y + Pinza). Dado que 4 DOF es insuficiente para un brazo completo (posición + ángulo del efector) este Kit emplea un mecanismo que hace que la pinza siempre se desplace en posición horizontal.
Por tanto, podemos coger una pieza en cualquier posición de la zona de alcance, pero siempre la cogeremos con la pinza en horizontal. Como decimos, es un brazo un poco limitado y que no puede llevar muchas cargas.
Pero tiene la ventaja de que, por su poco peso, puede ser apropiado para montar sobre algún robot o vehículo, por su poco peso. Otra ventaja notable es su precio. Podemos comprarlo, incluidos servos SG90, por unos 25-28€.
Brazo 6 DOF (MG996R)
Este es probablemente el Kit más habitual y es el que vamos a montar en este proyecto. Está formado por 6 servos de tipo MG996R (o similar) que hacen de articulaciones del brazo.
Por tanto, tienen 6 DOF (Z + 3 X-Y + Rotación de la pinza + Pinza). Es una configuración suficientemente versátil para alcanzar cualquier posición dentro del rango, eligiendo el ángulo y la rotación de la pinza.
Las partes mecánicas del cuerpo están formadas por brackets, esas piezas negras estándar que se emplean para hacer proyectos de robótica. También tenemos los servo horns, piezas cilíndricas que se atornillan al servo, y permiten atornillarlo a los brackets.
La distribución del brazo no es mala, pero al tener los motores distribuidos a lo largo del brazo el peso propio de los motores y los brackets ejercen un gran par, sobre todo los más alejados de la base. Esto supone que está sometido a grandes esfuerzos, especialmente en las posiciones con el brazo más extendido.
Por este motivo, el comportamiento del brazo en esta configuración depende mucho de la calidad de los servos. Con los servos baratos que vamos a montar el robot se mueve de forma aceptable, pero tampoco esperemos la suavidad de un brazo de soldadura industrial.
Para poder aguantar en las posiciones más desfavorables, conviene alimentar a tensiones tirando para altas (6-7V). Con estas tensiones, el brazo tiende a sobreoscilar un poco al llegar a la posición deseada. Pero bueno, tampoco es nada grave.
Brazo mixto 6DOF (4x MG996R + 2x SG90)
El último Kit que vamos a ver está formado por un mix de cinco servos tipo MG996R en el brazo y dos servos tipo SG90 en el extremo, sin contar la pinza.
Por tanto, tenemos un brazo de, al menos, 6 DOF (1 Z + 3 X-Y + 2 extremo). Si le sumamos el grado de la pinza de apertura de la pinza (como hacen los demás) tenemos 7 DOF.
La configuración es muy interesante. Permite llegar a cualquier punto dentro del alcance, y elegir dos ángulos para el efector. Esto da una gran versatilidad al brazo, aunque también dificulta la resolución de la cinemática..
Otra ventaja de esta disposición es que emplea un mecanismo para transmitir una de las articulaciones, por lo que 3 de los 4 servos grandes están ubicados en la base. En el extremo sólo tenemos dos pequeños servos, lo que el esfuerzo en posiciones estiradas es mucho menor.
Por supuesto, también tiene sus desventajas. Es bastante más caro que los anteriores. El Kit con las partes mecánicas cuesta unos 70€, sin incluir motores ni la pinza del extremo (con su motor). Por tanto, este brazo acaba costando 110-120€, el doble que el modelo anterior. Además, hay que encontrar una pinza compatible y comprobar que tal se comportarán esos pequeños servo del extremo para girar la pinza con suavidad.
La verdad, es una configuración interesante que no me importaría probar, pero cuando me compré el brazo no se vendía este modelo (y con la diferencia de precio no sé si lo hubiera comprado). Si alguien quiere contarnos sus experiencias, encantados.
Presupuesto
El brazo robótico que vamos a montar es el de 6DOF con servos de tipo MG996R, que hemos visto entre los anteriores, que como hemos dicho seguramente sea el más habitual entre los Kit comerciales.
El mío lo he atornillado a una base de madera, pero también hay gente que lo sujeta a una mesa con mordazas o sargentos. A vuestra elección. Lo veremos con detalle en las próximas entradas de la serie.
Podemos encontrar kits con todas las partes mecánicas que incluyen los servo brackets y los servo horn (sin servos) en vendedores internacionales de AliExpress o Ebay. Es importante que os aseguréis de que vuestro Kit no incluya (o sí) los servos y los servo horns, porque afecta enormemente al precio.
Así que el presupuesto, a grandes rasgos, está compuesto de:
- Servo brackets + servo horns (kit), 25€
- 6 servos MG996R, otros 25€
- Arduino Uno, 1.80€.
Otro material eléctrico (interruptor, cables, placa, etc) pongamos como mucho 4€.
Es decir que el coste de construir un brazo robótico es de unos 55-60€, sin contar alimentación (baterías, transformador, fuente ATX, etc). No es precisamente barato, pero tampoco el proyecto más caro que podemos encontrar.
En las próximas entradas de esta serie veremos el montaje, esquema eléctrico, y haremos la programación tanto de la cinemática directa como inversa.
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github.