Segunda Pierna de Clon de Robot DARwIn-OP

Hacer la primera pierna para mi clon del robot DARwIn-OP fue bastante trabajo, especialmente en medir los modelos 2D, luego descartarlos y retomar los modelos 3D para trasladarlos a G-code, además de probar formas más eficientes de trabajar con la fresadora.

Ahora, cortar la segunda pierna fue mucho más fácil.

Second Leg Frames
Piezas de la segunda pierna

Cambié la pieza de de la ‘rodilla’, mi primera versión tenía un doblez en la parte baja, pero lo eliminé del diseño para permitir que mi clon de DARwIn-OP tenga el mismo rango de movimiento en las articulaciones que el robot original. También, mi primera tanda de piezas FR07-S101 tenían 4 agujeros faltantes (se ve en la foto, por suerte no son usados en el robot DARwIn-OP).

Todavía tengo que limar y doblar las piezas, pero primero voy a tratar de hacer algunos bloques de aluminio que me ayuden con el doblado, el  Manual de Fabricación muestra ejemplos de esto en el apéndice.

Mientras tanto, voy a comprar unas barras de aluminio 6061 de 1″ y 3/8″ para tornear las piezas FR07-F101, HN07-i101 y RX28-CAP. También tengo que calibrar las cuchillas de cambio rápido de mi torno, lo que toma tiempo, pero una vez hecho, permite cortar diseños complejos bastante fácilmente, haré un post de esto más adelante.

Prueba de Pierna – Clon de DARwIn-OP

Corté el resto de las piezas para la primera pierna de mi clon de DARwIn-OP. No hubo mayores temas, sólo el modelo 2D de la pieza FR07-H132 tenía el patrón de agujeros al revés (ver este post de corte).

Todavía me faltan algunas piezas que se deben cortar en torno (y no he recibido los rodamientos aún). De todas maneras quería ver cómo se mueve la pierna así que hice un pequeño programa de prueba.

Usé un computador ODROID-X2 de HardKernel. Es una placa ARM con estas especificaciones:
– Quad core Cortex-A9 a 1,7GHz.
– 2GB RAM.
– USB 2.0 y Ethernet de 100Mbps.
– Corre Android o Ubuntu.
– Puede usar un SD o un módulo eMMC (8 to 64GB) como disco duro.
– Tamaño de 94x90mm.

Continue reading “Prueba de Pierna – Clon de DARwIn-OP”

Pierna de Clon de DARwIn-OP

Ahora que revisé que los servos Dynamixel MX-28T funcionan y que es fácil desarrollar con el SDK, voy a continuar con el resto de la primera pierna de mi clón de DARwIn-OP.

Las piezas FR07_X101 y FR07_X102 son conectores de actuadores, ensamblan 2 servos para formar una articulación con 2 grados de libertad. El DARwIn-OP requiere 4 FR07_X101 y 8 FR07_X102. Según los archivos de modelo and el PDF de especificación de Robotis, son de 4,8mm de alto. Yo usé una plancha de 1/4″ como recomienda el Manual de Fabricación, pero una plancha de 5mm sería mejor (requiere fresar menos material).

4 FR07_X101 and 8 FR07_X102 Cut
Corte de 4 FR07_X101 y 8 FR07_X102

En este corte comencé a utilizar una plancha de aluminio como base. También usé filas de pernos de 2,5mm para sujetar mejor el trabajo. Esto no es necesario para sujetar una plancha de 1/4″, pero las planchas de 1,5mm y 2mm se doblan fácil y espacios muy ajustados entre piezas o en los bordes puede distorsionar los cortes.

Aluminum Plate and extra screws used
Placa Base de Aluminio y Pernos extra

Continue reading “Pierna de Clon de DARwIn-OP”

Probando el DSK de Dynamixel

Mientras sigo fresando las piezas para mi clon de DARwIn-OP (después vuelvo con esto), decidí probar el SDK para Dynamixel en un PC con Linux Ubuntu 12.04. Como me interesa usar el adaptador USB2AX para controlar los servos (por su tamaño), hice una instalación simple:

  • Decomprimí el Zip del SDK en una carpeta nueva.
  • Como indica el FAQ USB2AX, reemplacé el archivo DXL_SDK_LINUX_v1_01/src/dxl_hal.c del SDK con esta versión que se comunica correctamente con el adaptador USB2AX.
  • Corrí make en la carpeta DXL_SDK_LINUX_v1_01/src para compilar las librerías.
  • Corrí make en la carpeta DXL_SDK_LINUX_v1_01/example/ReadWrite para compilar un test de ejemplo simple.
  • Conecté un servo Dynamixel MX-28T con ID 1 y Baud Rate en 1 mbps al PC vía el adaptador USB2AX (el adaptador USB2AX sólo se comunica a 1 mbps y el ejemplo ReadWrite espera al servo con ID 1 a 1 mbps).
  • Agregué a mi usuario linux al grupo dailout para tener acceso RW al dispositivo del USB2AX (/dev/ttyACM*).
  • Corrí el ejemplo ReadWrite y funcionó!

El código fuente C del ejemplo ReadWrite es bien corto y muestra un uso simple de las APIs.

Encendiendo el Servo Dynamixel MX-28T

Aún no he encendido los servos. Estos pueden ser conectados en cadena en un bus TTL de 3 cables (tierra, poder y comunicación TTL). Cada servo Dynamixel MX-28T tiene in controlador PID interno y tiene varios parámetros configurables y data disponible para lectura.

Haré la configuración de algunos servos Dynamixel MX-28T, a cada uno se le debe configurar un ID y la velocidad de transmisión a 1 Mbps para ser usado en el clon de DARwIn-OP. El ID de cada servo debe ser de 1 a 20 dependiendo de su posición en el robot según de indica en los manuales DARwIn-OP_Actuator ID y DARwIn OP Assembly Manual. El MX-28T viene preconfigurado de fábrica con ID = 1 y 57142 bps y no van a funcionar 2 servos conectados en cadena con el mismo ID.

Tengo un Hub de Poder para el bus Dynamixel TTL y algunos cables. El cableado es simple: fuente de poder (12V) al hub, un cable a un servo y un cable al adaptador USB USB2Dynamixel (con el switch del costado en modo TTL).

Servo Wired Up
Servo Cableado

Continue reading “Encendiendo el Servo Dynamixel MX-28T”

Clonado de Primeras Piezas de DARwIn-OP

Con la primera prueba de concepto hecha, voy a continuar con las piezas del DARwIn-OP de abajo para arriba empezando con una pierna.

Como mi fresadora Sherline puede manejar una superficie de 200x100mm, corté las planchas de aluminio en pedazos más pequeños, después de los primeros cortes, reduje el tamaño a 150x100mm y 200×100 según las piezas a cortar.

El pie es la pieza FR07_E160, el Manual de Fabricación la lista como de 1,5mm de grosor en la página 8. Pero los archivos de los modelos 2D y 3D son consistentes con una pieza de 2mm. Creo que el manual es el equivocado.

Foot and Knees

Pie y Rodillas

El primer pie fue cortado sobre una placa de madera de 9mm, después pasé a usar una placa de aluminio de 1/4″ como base, por la rigidez. Después entraré más en detalle en esto. Las herramientas usadas son:

  • Broca-centro #1
  • broca de 2mm (en ese momento no tenía las brocas de 2,05mm, son agujeros para hilos de 2,5mm).
  • fresa de 2,5mm para los sacados (el sacado más delgado es de 2,6mm según el modelo
  • fresa de 3mm para cortar la pieza. Más tarde dejé de usar esta fresa ya que requiere un cambio extra de herramienta (Mi fresadora no tiene cambio automático de herramientas).

Con el pie corté un par de ‘rodillas’. El DARwIn-OP puede parecer un robot pequeño en fotografías dado que es de aprox 45cm de alto. Pero algunas de las piezas no son pequeñas, la parte bajade la pierna (FR07_H133) es aproximadamente de 118x106mm antes de doblar. Considerando además el ancho de la fresa, la fresadora se queda corta en 10mm en su eje más pequeño (Y).

Lower Leg FR07_H133
Pieza de la parte baja de la Pierna FR07_H133

Continue reading “Clonado de Primeras Piezas de DARwIn-OP”

Corte de Prueba para clonar DARwIn-OP

Varias piezas del DARwIn-OP tienen un patrón recurrente donde se monta la rueda del servo. Probar bien este patrón va ayudar con el G-code de muchas piezas.

FR07-S101
Pieza FR07-S101

La pieza mostrada requiere un agujero de 8mm y 8 agujeros de 2mm alrededor en un círculo de 16mm de diámetro, cada 45°. También se ven 4 agujeros de 2,05mm un poco rotados (para hilos de 2,5mm) y 4 agujeros de 2,5mm un poco rotados en el otro sentido, éstos son para apernar 2 piezas una contra la otra. Revisando el modelo 2D de la pieza FR07-H132, éste tiene este patrón al revés, creo que es un error en el archivo 2D.

Recibí las planchas de aluminio, las fresas de 3 filos y un par de servos Dynamixel MX-28T y machos para hacer hilos de 2mm y 2,5mm. También compré un par de FR-I101 (ruedas volantes) para probar.

Dynamixel MX-28T with Horn
Dynamixel MX-28T, Rueda Motriz y Pernos

La rueda motriz del servo tiene 8 hilos de 2mm (para 8 pernos incluidos en el kit) en círculo que calzan con el patrón recurrente en los diseños. La rueda no viene instalada, lo que se hace con un perno de 2,5mm (incluido en el kit), esto debe hacerse con cuidado ya que la rueda debe alinearse con el servo, ambos tienen marcas para ello. Una vez que la rueda está puesta a medio camino se pone difícil poder sacarla.

Horn Alignment
Alineación de la rueda

Así que lo primero será hacer unos cortes de piezas de prueba para ver el tamaño adecuado para el agujero de ‘8mm’ de forma que la rueda motriz calce bien (y así no termino con piezas en las que no entre la rueda o que quede muy suelta). Para esto diseñé algunas piezas de prueba cuadradas de 24x24mm con los 8 agujeros de 2mm y el agujero central partiendo en 8mm con incrementos de 0,1mm según la pieza. El agujero central es hecho con la fresa de 3mm en movimiento circular, por lo que es importante minimizar el juego de la fresadora.

LinuxCNC view of Test Cuts
Vista de los Cortes de Prueba en LinuxCNC

Continue reading “Corte de Prueba para clonar DARwIn-OP”

Herramientas para Clonar el DARwIn-OP

Así que hay que fresar un montón de piezas de aluminio y tornear otras más.

Por suerte tengo una fresadora y un torno Sherline que compré hace algunos años para hacer algunas cosas entretenidas. El año pasado les terminé de instalar control CNC y ahora los manejo con LinuxCNC, que es una distribución con Ubuntu pre-instalado y configurado para uso en CNC. LinuxCNC permite ejecutar programas en G-code que básicamente describen la trayectoria que sigue la herramienta de corte.

Sherline 5410 Mill
Fresadora Sherline 5410 (métrica)
Sherline
Torno Sherline 4410 (métrico)

La fresadora y el torno Sherline están diseñados para trabajar con materiales tanto blandos como duros, hasta acero inoxidable y titanio. El aluminio no es problema, aunque estoy pensando en cambiar el motor a uno de 10.000 RPM ya que el que traen por defecto (2.800 RPM) no alcanza las velocidades de corte superficial que se recomiendan para cortar aluminio con fresas pequeñas (2.5mm y 3mm).

Es bien conveniente que el diseño del DARwIn-OP es métrico, igual que mis herramientas, así es más difícil cometer errores.

Estas herramientas son de escritorio (de hecho las tengo en un escritorio). La fresadora tiene un área de trabajo de 200×100 mm aprox, lo que es muy pequeño para clonar algunas piezas del DARwIn-OP como las manos o la parte baja de la pierna, así que voy a tener que rediseñarlas en partes que se unan con pernos. Una fresadora más grande o un router CNC habrían sido ideales para cortar varias piezas de una sola vez, pero con la que tengo se puede hacer el trabajo.

Para la fresadora, las herramientas de corte que usaré son:

  • Fresas de 2,5mm y 3mm. Voy a comprar unas fresas para aluminio de carburo de 2 y 3 filos para probarlas.
Endmill for aluminum
Fresa para aluminio

Continue reading “Herramientas para Clonar el DARwIn-OP”

Diseños Mecánicos y Manuales de DARwIn-OP

El robot DARwIn-OP tiene varios documentos mecánicos publicados en esta carpeta de sourceforge. Los documentos están bien hechos y bastante completos, fueron escritos por RoMeLa de Virginia Tech.

DARwIn OP Fabrication Manual.pdf

  • Describe cómo fabricar las piezas necesarias para clonar el DARwIn-OP. Literalmente el robot es un montón de servos unidos por piezas de aluminio.
Armazón de DARwIn-OP
Armazón de DARwIn-OP
  • Recomienda usar aluminio 5025 para fabricar las piezas. Acá en Chile no es fácil de encontrar, así que compré un poco en Ebay. Ahora sé que éste es aluminio naval y que es usado para embarcaciones, así que hay más dónde preguntar. No recomiendo usar aluminio 1100 (el típico en plancha) porque se pega a las brocas y fresas mucho.
  • Lista los archivos de diseño para cada pieza.
  • Lista las herramientas a usar y explica el proceso de fabricación, el cual requiere una fresadora automatizada (CNC). Las piezas se hacen principalmente de planchas de aluminio de 2mm y 1,5mm y se explican varias técnicas de doblado par darles la forma 3D (dependiendo de las herramientas que se tengan a mano). Algunas piezas requieren planchas de 5mm (o 1/4″). También se necesitan hacer hilos de 2mm y 2,5mm.
Doblado de Pieza
Doblado de Pieza
  • También lista un estimado de costos (USD) de materiales y herramientas.
  • Este ZIP contiene los diseños 2D y 3D de las piezas, todas disponibles en 3 formatos diferentes(STEP, PRT, IGS). Los diseños 2D son en realidad diseños 3D de las piezas sin doblar y los diseños 3D son de la forma final de las piezas después del doblado. Yo uso FreeCAD para Ubuntu (disponible por apt-get) para visualizar y medir archivos STEP.
Diseño 2D y 3D de Pieza FR07_S101
Diseño 2D y 3D de Pieza FR07_S101

Continue reading “Diseños Mecánicos y Manuales de DARwIn-OP”

Robot DARwIn-OP

Estuve un tiempo revisando cuál plataforma robótica podía comprar o armar para meter las manos en la masa un poco. Enpecé mirando los modelos y kits en el rango de los cientos de USD, algo que pudiera servir como base de desarrollo, seguí mirando los de rango de miles de USD. Pero la falta de capacidad de procesamiento me hizo continuar mirando en rangos ya bastante inalcanzables. Total en mirar no hay engaño.

Así me tropecé con la plataformaDARwIn-OP que fue desarrollada por el fabricante Robotis en colaboración con las universidades norteamericanas de Virginia Tech, la Universidad de Purdue y la Universidad de Pennsylvania.

DARwIn-OPDARwIN-OP-kneelback

Es una plataforma humanoide open source con un PC a bordo corriendo Linux (Ubuntu) con suficiente capacidad, red e incluso una cámara web para procesamiento de ímagenes en línea. El robot no es nada barato con un valor de 12.000 USD. Pero por open source se refiere a que:

  • Las especificaciones y diseños son open source y publicados en sourceforge.
  • Los Manuales de Fabricación y Ensamblaje también están publicados online.
  • El Software de Control es open source y también está publicado, incluso las ISOs con Ubuntu y el software preinstalado.

Así que el DARwIn-OP puede ser clonado. De todas formas hay que comprar servos (20 mínimo) y la electrónica, pero fue diseñado para ser clonado.

El robot ya tiene un tiempo, la Universidad de Pennsylvania ganó los últimos 3 años de la liga kid-size de la RoboCup con un equipo de DARwIn-OPs. Se utiliza en bastantes universidades y también se está clonando con impresión 3D a mitad de costo, se puede ver en el blog de Michael Overstreet. Hay simuladores disponibles, está programado en C++ y hay algunos upgrades como pies con sensores de presión y pinzas para las manos.

Así que junté suficientes argumentos para convencerme de hacer uno, minimizando algunos temas como el costo de sus sofisticados y caros servos Dynamixel MX-28T que hay que comprar (y son 20… pero eso se puede estirar un poco a medida que se hace la construcción).

Pretendo hacer la estructura de aluminio como se diseñó originalmente, usando máquinas de CNC para hobbistas. Usaré impresión 3D para las cubiertas de plástico. Sobre la electrónica decidiré más adelante si uso la placa madre Atom original o si hago una ‘mejora’ con algo más poderoso, quizás con cpu ARM, el Cortex-A15 puede salir pronto en un tamaño de placa madre adecuada. Decidí no reemplazar los servos por una alternativa más barata para no agregar un grado de dificultad más, hay suficiente con todo el resto.