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.

ODROID-X2
ODROID-X2

HardKernel está liberando el ODROID-XU este mes, el cual tiene 8 cores (quad core Cortex-A15 a 1,6GHz and quad code Cortex-A7), además agrega un puerto USB 3.0, tiene RAM y eMMC más rápidos y un menor tamaño de 94x70mm.  De algunos comparativos que he visto, esta placa con un solo core Cortex-A15 debería ser más rápida que la placa Atom original del DARwIn-OP.

Como estas placas ARM de HardKernel son buenos candidatos para poner en mi clon de DARwIn-OP, voy a modificar las piezas del pecho para que también se puedan montar (De todas maneras son más pequeñas que la placa Atom).

Para la prueba, tengo el ODROID-X2 corriendo Ubuntu 13.04 y con el adaptador USB2AX para conectar los servos. Instalé el DSK de Dynamixel con los mismos pasos que probé en un PC (ver este post).

Ensamblé la pierna como la pierna derecha para el clon de DARwIn-OP, siguiendo el Manual de Ensamblado y con los servos configurados con los IDs correspondientes y con Baud Rate a 1Mbps.

Hice un programa de prueba que mueva la pierna de la posición estirada a una flectada. Para esto, los 6 servos se llevan primero a la posición estirada, lo cual es un Goal Position de 2048 en todos los servos para luego cambiar el Goal Position de la cadera, rodilla y tobillo. Una flexión de 45° en la rodilla requiere una flexión de 22.5° en la cadera y tobillo para mantener un balance suficientemente bueno, esto significa setear:

  • Goal Position = 1536 (=2048-512) para servo 11 (cadera).
  • Goal Position = 3072 (=2048+1024) para servo 13 (rodilla).
  • Goal Position = 2560 (=2048+512) para servo 15 (tobillo).

Cuando probé los servos con el SDK , éstos se mueven muy rápido a un Goal Position. Esto es demasiado para mover la rodilla. Mirando las especificaciones del MX-28T, el controlador PID es inicializado como un controlador proporcional simple (registros 26, 27 y 28), no voy a cambiar esto por ahora. El registro 32 (Moving Speed) especifica el límite de velocidad de rotación del servo, es 0 al encenderse (sin límite). Y el registro 73 (Goal Acceleration) especifica el límite de aceleración de rotación, también 0 al encenderse (sin límite).

Después de algunas pruebas, configuré el Moving Speed en 35 para todos los servos excepto el de la rodilla con 70 y configuré el Goal Acceleration en 2 para todos servos excepto el de la rodilla con 4 . También terminé rotando las articulaciones un cuarto más para que la pierna baje un poco más.

Este simple y ‘descontrolado’ programa funciona bastante bien. Itera entre las 2 posiciones de la pierna mientras presiono algunas teclas. La pierna se mueve perfectamente manteniendo la parte superior bastante horizontal. El código fuente está  disponible aquí.

3 Replies to “Prueba de Pierna – Clon de DARwIn-OP”

  1. Hola.
    Estoy muy interesado en el tema.
    Yo tambien he pensado en la opcion de usar ODROID para hacer un clon de DARWIN-OP
    pero creo que en ODROID el Ubuntu solo funciona bajo una virtualbox.
    Esto no es un problema para hacer correr el software de Darwin-OP??
    Tengo entendido que Ubuntu bajo Android va muy lento y tambien me gustaria saber como haces para que luego arranque con la sd del Darwin??
    Saludos.

    1. Juan,
      Los Odroid corren Ubuntu en forma nativa. Pueden correr Android o Ubuntu (van en el 14.04) que son provistos oficialmente por Hardkernel (el fabricante).
      También hay otras distribuciones de Linux provistas por terceros.
      Así Hardkernel tiene publicadas las imágenes de Ubuntu o Android, las que se graban en un SD o en un módulo eMMC para luego bootearlos en el Odroid.
      En mi caso yo he usado Ubuntu, tanto en versiones Desktop o Server.
      La idea para usar el Odroid en un DARwIn-OP es compilar los fuentes publicados directamente en el Odroid (compilan con un pequeño arreglo en un include). En mi caso, tampoco voy a usar la controladora original CM-730, por lo que tengo que reemplazar los fuentes que la acceden para manejar los servos y leer el acelerómetro y giroscopio (fuentes como CM730.cpp y LinuxCM730.cpp).

Leave a Reply

Your email address will not be published. Required fields are marked *