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.

5 Replies to “Probando el DSK de Dynamixel”

  1. Excelente blog, la verdad es que ya me lo leí completo y voy por segunda vez, ya que quiero construir mi propio clon de Darwin-OP y tu experiencia me esta ayudando mucho a tener todo más claro.

    Perobueno ya empezaron a surguir las dudas, por ejemplo por que escojiste el MX-28T (TTL) y no el R (RS485). Lo que se me ocurre es por la velocidad y porque la placa que escogiste soporta este puerto, pero hay alguna otra razón por la cual lo escogiste? o sólo porque si?

    1. jocker38: Escojí el MX-28T (TTL) porque es el que usa originalmente el DARwIn-OP y porque pienso usar el adaptador USB2AX que es sólo TTL.
      Yo no voy a usar la electrónica original del robot, pero igual el controller original CM-730 también es sólo TTL.
      Para construir tu propio DARwIn-OP tienes que ver si usas la electrónica original que la venden completa en un kit por aprox 1000 USD, yo pienso cambiarla por un ODROID-XU3 con un USB2AX más un acelerómetro y giroscopio I2C (son del tamaño adecuado para caber en el robot, más barato y con más capacidad de cómputo).
      Piensas fresar las piezas en aluminio?

      1. @llongeri: Ok! Yo me fui con la idea de que por default el CM-730 soportaba ambos TTL/RS485, pero ya leí las letras chiquitas y dice que para el RS485 necesitas hacer una adaptación.

        La única razón por la cual no considero (de momento) otra tarjeta madre es el consumo de energia. Más procesamiento mas consumo de energia, pero ahorrarme unos ~$600 dls, no estaría mal.

        Pues la primera idea era hacerlo con mi impresora 3D, pero no me convencía la estructura de plastico y ademas creo que tengo todo para fresar las piezas en aluminio, tengo una proxxon MF70 que la estoy terminando de convertir a CNC (solo me falta probarla) y tengo una Shapeoko 2, con la cual podria fresar las piesas mas grandes o varias de una vez y dejar la proxxon para cosas pequeñas . La impresora 3D para ayudarme con la cosas del diseño si utilizo otra electronica o simplemente para las cubiertas,

        PS. Leyendo tro post tuyo donde utilizas la lathe, me preguntaba si tienes alguna recomendación para aprender a utilizarla o calibrarla? siempre he tenido ganas de una y ahora tengo la justificación perfecta, solo que no tengo ni idea como usarla correctamente o como convertirla a CNC por ejemplo que software se utiliza, etc. Gracias!

        1. Bueno, por lo de la energía, pienso usar en primera instancia un ODROID-XU3 que es bastante poderoso y no creo que gaste mucho comparado con la placa original que es un FITPC con un ATOM de 1 core que ya es tecnología vieja. De hecho, el FITPC original gasta entre 6 y 9.6W. El ODROID-XU3 gasta desde 2W y si se usaran todos los 8 cores son 10W (si usara la GPU para cómputo con opencl serían como 10W más), pero cada core Cortex-A15 del XU3 es más rápido que el ATOM del FITPC, por lo que no creo que gaste ni 5W que es menos del consumo mínimo del FITPC original.

          Si eso igual fuera mucho consumo, entonces como segunda alternativa tengo considerado usar un ODROID-U3 que tiene un consumo muy bajo y vale sólo 65 USD (igual es más rápido que el FITPC).

          De todas maneras, como no voy a usar el CM-730, tengo que modificar los fuentes que interfacean con este controlador para que usen el USB2AX y lean los sensores por I2C, pero no creo que sea mayor problema, después los voy a publicar.

          En caso de usar una impresora 3D, hay que modificar los diseños que están pensados para usar aluminio. En plástico la zona de los dobleces quedan muy débiles por lo que hay que reforzarlos.

          Bueno, si tienes un router, perfecto, puedes hacer muchas piezas de las de 1mm y 1.5mm de grosor fácilmente. Con una fresadora puedes hacer las piezas más gruesas de 5mm, en el manual de fabricación indican comprar aluminio de 1/4″ para hacerlas pero es mejor comprar de 5mm para evitarse el rebaje.

          Para el lathe yo uso LinuxCNC (para la fresadora también) que viene en una ISO (linuxcnc.org) que se instala en un PC, de hecho tengo 2 configuraciones separadas para los equipos, en especial para configurar qué motor va en qué eje y si el avance positivo es para un lado o para el otro.
          La diferencia principal en el uso está en la selección de los planos en el gcode (los planos para las curvas), en la fresadora se usa normalmente un código G17 para configurar los ejes XY y en el lathe se usa un G18 para XZ.
          Te recomiendo que uses el estándar de ejes definido para un lathe que lo muestran en una imagen acá:
          http://bbs.homeshopmachinist.net/threads/59089-Machine-Axis-amp-DRO-Letter-Designation

          Para aprender a usar un lathe, sobre todo uno pequeño te recomiendo este libro:
          http://www.sherline.com/bookplug.htm

          Igual buscando en Internet hay mucha información, sobretodo sobre los temas de velocidad de giro y de avance de cuchillas según los materiales.

          De todas maneras para un lathe CNC, es mejor usar pocas herramientas con un setup con un “quick change toolpost” como el que puse en este post:
          http://openrobot.cl/es/configuracion-de-cambio-rapido-para-torno-sherline/
          así en linuxcnc uno puede configurar los offsets de cada herramienta (con muchas pruebas hasta calibrar bien). Luego con intrucciones como “t2 m6 g43” en los programas de corte, estos se detienen hasta que uno cambia la herramienta por la #2.

          1. Muchas gracias por la info, me ha servido muchisimo. Te quiero preguntar otras cosas pero mejor lo haré en otros post que tienes para ir más acorde al tema. Saludos!

Leave a Reply to llongeri Cancel reply

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