Elegir motores eléctricos rentables para el brazo robótico

Views icon 5547
Choosing Electric Motors for the Robot Arm

En este artículo quiero explicar cómo se realizó la selección del componente más importante del manipulador robótico: los motores eléctricos. Comenzaré con una visión general de las soluciones elegidas por Trossen Robotics en el manipulador Viper X 300 S, que es una de las soluciones más populares para proyectos de investigación como Aloha 2 y Pi0.

Servoaccionamientos en el manipulador Viper X 300 S

Servoaccionamientos en el manipulador ViperX 300 S

Servoaccionamientos en el manipulador ViperX 300 S

En primer lugar, examinamos las soluciones existentes para manipuladores de 6DOF (seis grados de libertad). El manipulador en el que me centré es el Viper X 300 S, ya que originalmente estaba incluido en la lista de materiales de Aloha 2. El fabricante ha puesto a disposición parte de la documentación y los planos, y me pareció una gran idea reutilizar estas soluciones.

Brazo robótico de escritorio ViperX-300 6DOF

Brazo robótico de escritorio ViperX-300 6DOF

El principal reto al crear un manipulador asequible es encontrar accionamientos accesibles con alto par. En el Viper X 300 S, Trossen Robotics utilizó DYNAMIXEL XM430-W350 servomotores con un par de bloqueo de 4 Nm, con un precio de $290, and DYNAMIXEL XM540-W270-T/R servomotores con un par de bloqueo de 10 Nm, con un precio de $430. A total of 9 servo motors se necesitan para crear semejante manipulador, lo que eleva el coste total a 3590 $, lo que ya no se considera asequible.

ID Nombre de la articulación Servo Velocidad en baudios Precio
1 cintura XM540-W270 1Mbps $430 
2 hombro XM540-W270 1Mbps $430 
3 hombro (secundario) XM540-W270 1Mbps $430 
4 codo XM540-W270 1Mbps $430 
5 codo (secundario) XM540-W270 1Mbps $430 
6 giro del antebrazo XM540-W270 1Mbps $430 
7 ángulo de la muñeca XM540-W270 1Mbps $430 
8 giro de la muñeca XM430-W350 1Mbps $290
9 pinza XM430-W350 1Mbps $290
Total $3590

Un ingeniero (en adelante, Alan) que trabaja actualmente en el proyecto realizó un cálculo cinemático para un brazo manipulador con una longitud total de 700 mm y una capacidad de carga de 750 gramos.

Articulaciones del ViperX 300

Articulaciones del ViperX 300

Versión 1.1 — 0,75 kg
Factor de seguridad de inercia — 1,5
Articulación Eje Hombro, cm Carga kg*sm kg*sm Peso en el extremo kg
Base 0 0 3 7
Hombro 1 20 1,8 54,0 81 carga 0,75
Codo 2 20 1,5 30,0 45,0 pinza 0,25
Antebrazo 3 0 1,2 0 0 servo 0,1
Mano -1 4 15 1,1 16,5 24,8
Mano — 2 5 0 1 0 0
Pinza 6 0 0,75 0 0

Según los cálculos, en la base del brazo necesitamos accionamientos con un par requerido de 81 kg·cm, es decir, 8 Nm en total. Esto significa que, si instalamos dos servomotores en la base, cada uno con un par de bloqueo de 4 Nm, debería ser suficiente. Sin embargo, es fundamental entender que, si un servomotor tiene un par de bloqueo de 4 Nm, su par efectivo máximo —con el que puede funcionar de forma estable— suele ser aproximadamente la mitad de ese valor, como se ilustra en el Performance Graph.

XM430-W350 Performance Graph

XM430-W350 Performance Graph

Esta limitación debe tenerse en cuenta para garantizar que el manipulador pueda manejar las cargas deseadas sin sobreesforzar los motores.

Tipos de servoaccionamientos

Empecé a estudiar qué tipos de motores se utilizan en los manipuladores económicos.

  • Motores paso a paso, como el Nema 17 y el Nema 23.
    Motor paso a paso Nema 17

    Motor paso a paso Nema 17

  • Motores PWM (modulación por ancho de pulsos), como el Dsservo de 160 kg·cm.
    Dsservo DS51160MG

    Dsservo DS51160MG

  • Motores UART (transmisor-receptor asíncrono universal), como el Feetech STS 3215-C01.
    Feetech-STS3215

    Feetech-STS3215

¿En qué indicadores clave nos centraremos?

  • Par
  • Precisión
  • Corriente, voltaje
  • Retroalimentación (sensores de temperatura, corriente y posición)
  • Peso
  • Coste

¿Qué es el par del motor?

Par = fuerza (F) × distancia (d)

Par = fuerza (F) × distancia (d)

El par del motor es la fuerza que lo hace girar. Puedes imaginarlo como la «fuerza de torsión» que ayuda al motor a realizar su trabajo. Cuanto mayor es el par, más fácil le resulta al motor acelerar y levantar cargas pesadas. Es importante en los coches: un buen par ayuda a acelerar mejor y a subir pendientes.

El par de un motor se define como el producto de la fuerza aplicada por la distancia desde el punto de pivote hasta donde se aplica esa fuerza. La fórmula es la siguiente:

Par = fuerza × distancia (o par = F × d). Cuanto mayor es el par, mayor es el brazo de palanca con el que puede trabajar este motor.

Precisión de posicionamiento

En robótica, este es uno de los indicadores más importantes, ya que la tarea del servoaccionamiento es posicionar con precisión el brazo en el espacio, y cuanto más preciso sea, mejor. Las principales características de un brazo robótico son la repetibilidad y la precisión absoluta.

Repetibilidad

Se refiere a la capacidad del manipulador de volver al mismo punto del espacio tras múltiples ciclos. Se mide en milímetros (por ejemplo, ±0,01 mm). Cuanto menor es el valor, mayor es la precisión en la repetición de los movimientos.

Precisión absoluta

Es la capacidad del manipulador de alcanzar un punto determinado del espacio respecto a un sistema de coordenadas global. Se mide en milímetros (por ejemplo, ±0,1 mm). La precisión absoluta suele ser peor que la repetibilidad debido a la acumulación de errores en la cinemática.

Sensores de retroalimentación

Sensores de posición

  • Sensores de efecto Hall: estos sensores determinan la posición del rotor. Utilizan imanes para saber dónde se encuentra la parte móvil del motor (el rotor) o a qué velocidad gira.
    Principio de funcionamiento del sensor de efecto Hall

    Principio de funcionamiento del sensor de efecto Hall

  • Resolvers: proporcionan una determinación precisa del ángulo de rotación. Funcionan como «detectores angulares» precisos, indicando la posición exacta del rotor del motor.
    Principio de funcionamiento del resolver

    Principio de funcionamiento del resolver

  • Potenciómetros: este dispositivo, similar a un control de volumen, cambia su resistencia a medida que el motor se mueve, indicando la posición de su eje.
    Principio de funcionamiento del potenciómetro

    Principio de funcionamiento del potenciómetro

  • Codificadores ópticos: proporcionan información sobre la posición y la velocidad del rotor. Imagina una pequeña rueda con ranuras. La luz pasa a través de esas ranuras y, contando esos destellos, determinamos cuántas vueltas ha dado el motor y dónde se encuentra.
    Principio de funcionamiento del codificador óptico

    Principio de funcionamiento del codificador óptico

  • Codificadores magnéticos: también miden la posición y la velocidad mediante campos magnéticos. Utilizan imanes para seguir la posición del motor y funcionan bien incluso en condiciones difíciles.
    Principio de funcionamiento del codificador magnético

    Principio de funcionamiento del codificador magnético

Sensores de corriente

  • Sensores de medición de corriente: miden la corriente que consume el motor para evaluar la carga.
    Principio de funcionamiento del sensor de medición de corriente

    Principio de funcionamiento del sensor de medición de corriente

Sensores de temperatura

  • Termopares o termistores: controlan la temperatura del motor para evitar el sobrecalentamiento.
    Principio de funcionamiento del termopar

    Principio de funcionamiento del termopar

Motores paso a paso

Esquema del motor paso a paso

Esquema del motor paso a paso

No entré en detalle sobre los motores paso a paso debido a su tamaño, mayor peso, menor par y baja precisión de posicionamiento.

For example, the Nema 17 Bipolar 1.8° 36Ncm puede compararse con el servomotor UART económico ST3215-C018 en un rango de precio similar. El Nema 17 pesa 280 gramos y tiene un par de 36 N·cm (o 3,6 kg·cm) con un ángulo de paso de 1,8 grados.

Motor paso a paso Nema 17

Motor paso a paso Nema 17

El servomotor en un rango de precio similar, Feetech ST3215-C018, pesa 55 gramos, tiene un par de 30 kg·cm y una precisión de posicionamiento de 0,09 grados.

Modelo de motor Masa/gramos  Par nominal/kg Precisión/grados Precio/$
Nema 17 Bipolar 1.8deg 36Ncm 280 3,6 1,8 10,75
Feetech ST3215-C018 55 15 0,09 16.45

Así que, si comparamos en función de las características clave que tuvimos en cuenta para nuestro brazo —peso × par × precisión de posicionamiento—, la diferencia sería (280 / 55) × (15 / 3,6) × (1,8 / 0,09) ≈ 424 veces. Por supuesto, no podemos comparar estos tipos de motores únicamente con estos 3 parámetros; hemos omitido otros factores como las RPM, la relación de reducción, el ruido y el juego. Si los añadimos a la tabla de comparación, la diferencia ya no será tan significativa. Para algunos escenarios, el motor Nema podría ser la mejor opción.

PWM frente a UART

Esquema básico del servoaccionamiento

Esquema básico del servoaccionamiento

Empecé a buscar servos asequibles con alto par. Lo primero que encontré fue el Dsservo RDS51150, que tiene un par de 150 kg·cm, un valor muy alto para este tipo de servo. Una característica de estos servos es que incluyen un sistema de control con un sensor de posición basado en un potenciómetro, lo que complica la obtención de retroalimentación y el control de la posición debido a la precisión y sensibilidad limitadas del potenciómetro.

Principio de la modulación por ancho de pulsos

Principio de la modulación por ancho de pulsos

Una característica del funcionamiento de los motores Dsservo es que son motores PWM (modulación por ancho de pulsos). Es un método para controlar la potencia de la corriente eléctrica encendiéndola y apagándola mediante pulsos. Carecen de codificador magnético para transmitir la posición actual del eje y no tienen controlador integrado. Estos motores no son adecuados para sistemas robóticos en los que la precisión de posicionamiento y la retroalimentación son importantes.

Pensé en cómo compensar estas carencias. Encontramos un codificador magnético adecuado, el AS5600, con 4600 posiciones. Además, necesitábamos un controlador capaz de funcionar con PWM.

Codificador magnético AS5600

Codificador magnético AS5600

Alan recomendó a un buen programador que trabaja en robótica. Sugirió abandonar el PWM en favor de los motores UART (transmisor-receptor asíncrono universal), ya que las complejidades adicionales en el control por software y la implementación técnica probablemente no se justificarían. La fiabilidad de los motores PWM económicos frente a los UART también es cuestionable, ya que los potenciómetros integrados para detectar la velocidad fallan a menudo.

PWM UART
Principio de funcionamiento Analógico: control de la potencia mediante modulación por ancho de pulsos Digital: transmisión de comandos a través de una interfaz serie
Tarea principal Regulación suave de la velocidad (motores de CC) Posicionamiento preciso (servoaccionamientos)
Precisión Alta para la velocidad, baja para la posición Alta para el posicionamiento (precisión de paso)
Comunicación Unidireccional (control → motor) Bidireccional (admite retroalimentación)
Complejidad del hardware Mínima (driver + generador PWM) Alta (controlador con UART + protocolo)
Eficiencia energética Mayor (control directo de la potencia) Menor (depende del protocolo y del procesamiento)
Aplicaciones típicas Taladros, ventiladores, servoaccionamientos Impresoras 3D, CNC, robótica

En el caso de los motores UART, podemos conectarlos en serie en un único bus, obteniendo retroalimentación sobre la posición, la intensidad de corriente y la temperatura del motor. Sin embargo, el coste de tales motores con un par similar será considerablemente mayor.

Empecé a considerar motores UART adecuados y, tras un análisis cuidadoso, me decanté por los siguientes tipos: Feetech de 30 kg y 50 kg. Al comprar en lotes de 100 unidades, el coste será de $12 each.

Servomotor Feetech STS3215-C018. Par y juego

Servomotor Feetech STS3215

Servomotor Feetech STS3215

El ingeniero preparó un cálculo cinemático del sistema basado en los valores de par indicados en el sitio web del vendedor. En este punto, Alan señaló que el par especificado para el motor es el par de bloqueo, es decir, el par máximo con el que el motor puede funcionar antes de detenerse por completo bajo carga. Por lo tanto, no podemos usar ese par para considerar la capacidad de elevación del manipulador, ya que sencillamente no se moverá con tal carga.

Gráfico de par, potencia, eficiencia y corriente

Gráfico de par, potencia, eficiencia y corriente

Los gráficos del enlace following graphs vienen al rescate y muestran que el par operativo máximo en el que hay que fijarse es en realidad la mitad de lo indicado; esto se aprecia en el centro del gráfico. En concreto, muestra 15 y 25 kg·cm. Esto significa que, si usamos un brazo de palanca de 700 mm con dos motores de 50 kg, podríamos alcanzar una capacidad de elevación máxima de 240 gramos, lo cual es insuficiente.

El mes pasado, Alan pidió varias muestras para probarlas en casa. Esto es lo que observamos.

Medición del juego del Feetech STS3215

Medición del juego del Feetech STS3215

El juego del servomotor es el doble de lo indicado (≤0,5°) en the technical documentation, con 3 mm para una longitud de brazo de 160 mm, lo que corresponde a aproximadamente 1,072 grados.

 

En segundo lugar, medimos la temperatura bajo carga constante.

 

Prueba 1: Comprobación de sobrecalentamiento durante la retención de carga estática.

Prueba de sobrecalentamiento con carga estática. Feetech STS3215

Prueba de sobrecalentamiento con carga estática. Feetech STS3215

El brazo con una mancuerna se colocó de lado, sosteniendo un peso de 1 kg con un brazo de palanca de 15 cm, lo que da un par de 15 kg·cm. En 10 minutos, la temperatura subió a 48 °C y se mantuvo estable durante una hora sin aumentar más.

Prueba 2: Oscilación en un rango de ±90 grados. Medición de temperatura

Oscilación en un rango de ±90 grados. Prueba de temperatura. Feetech STS3215

Oscilación en un rango de ±90 grados. Prueba de temperatura. Feetech STS3215

Partiendo de 48 °C, la temperatura alcanzó los 60 °C tras 50 minutos. Durante los siguientes 20 minutos, la temperatura no aumentó. Después se redujo la velocidad de oscilación para acelerar el calentamiento (véase la nota más abajo). Se necesitaron otros 40 minutos para alcanzar los 71 °C, momento en el que el motor se sobrecalentó.

Conclusiones

  • Umbral de temperatura crítico: a 71 °C, el motor presenta problemas, como se observó en los experimentos realizados ayer y hoy (dos casos). No parece haber protección térmica integrada, por lo que será necesario apagarlo manualmente cuando se alcance esta temperatura.
  • Efecto de la aceleración en el calentamiento: reducir la aceleración aumentó la velocidad de subida de la temperatura. Inicialmente, con una aceleración de 5, la temperatura alcanzó los 60 °C. Bajar la aceleración a 2 provocó el sobrecalentamiento tras un tiempo adicional. Mañana, en pruebas posteriores, mediremos el tiempo necesario para sobrecalentarse con una aceleración de 5, ya que una aceleración de 2 es demasiado lenta para nuestra aplicación.

Eso es todo por ahora en cuanto a los motores eléctricos. ¡Las novedades sobre nuestro progreso en robótica se publicarán sin duda en el sitio web!