Escolhendo motores elétricos com bom custo-benefício para o braço robótico
Neste artigo, quero discutir como ocorreu a seleção do componente mais importante do manipulador robótico: os motores elétricos. Vou começar com uma visão geral das soluções escolhidas pela Trossen Robotics no manipulador Viper X 300 S, que é uma das soluções mais populares para projetos de pesquisa como Aloha 2 e Pi0.
Servoacionamentos no manipulador Viper X 300 S
Servoacionamentos no manipulador ViperX 300 S
Antes de tudo, examinamos as soluções existentes para manipuladores com 6DOF (seis graus de liberdade). O manipulador no qual me concentrei é o Viper X 300 S, já que originalmente fazia parte da lista de materiais do Aloha 2. O fabricante disponibilizou parte da documentação e dos desenhos, e me pareceu uma ótima ideia reaproveitar essas soluções.
Braço robótico de mesa ViperX-300 6DOF
O principal desafio na criação de um manipulador acessível é encontrar acionamentos acessíveis com alto torque. No Viper X 300 S, a Trossen Robotics utilizou DYNAMIXEL XM430-W350 servomotores com torque de bloqueio de 4 Nm, com preço de $290, and DYNAMIXEL XM540-W270-T/R servomotores com torque de bloqueio de 10 Nm, com preço de $430. A total of 9 servo motors são necessários para criar um manipulador assim, elevando o custo total a US$ 3.590, o que já não pode ser considerado acessível.
| ID | Nome da junta | Servo | Taxa de transmissão | Preço |
| 1 | cintura | XM540-W270 | 1Mbps | $430 |
| 2 | ombro | XM540-W270 | 1Mbps | $430 |
| 3 | ombro (secundário) | XM540-W270 | 1Mbps | $430 |
| 4 | cotovelo | XM540-W270 | 1Mbps | $430 |
| 5 | cotovelo (secundário) | XM540-W270 | 1Mbps | $430 |
| 6 | rotação do antebraço | XM540-W270 | 1Mbps | $430 |
| 7 | ângulo do punho | XM540-W270 | 1Mbps | $430 |
| 8 | rotação do punho | XM430-W350 | 1Mbps | $290 |
| 9 | garra | XM430-W350 | 1Mbps | $290 |
| Total | $3590 | |||
Um engenheiro (doravante chamado de Alan) que atualmente trabalha no projeto fez um cálculo cinemático para um braço manipulador com comprimento total de 700 mm e capacidade de carga de 750 gramas.
Juntas do ViperX 300
| Versão 1.1 — 0,75 kg | |||||||
| Fator de segurança de inércia — 1,5 | |||||||
| Junta | Eixo | Ombro, cm | Carga | kg*sm | kg*sm | Peso na extremidade | kg |
| Base | 0 | 0 | 3 | 7 | |||
| Ombro | 1 | 20 | 1,8 | 54,0 | 81 | carga | 0,75 |
| Cotovelo | 2 | 20 | 1,5 | 30,0 | 45,0 | garra | 0,25 |
| Antebraço | 3 | 0 | 1,2 | 0 | 0 | servo | 0,1 |
| Mão -1 | 4 | 15 | 1,1 | 16,5 | 24,8 | ||
| Mão — 2 | 5 | 0 | 1 | 0 | 0 | ||
| Garra | 6 | 0 | 0,75 | 0 | 0 | ||
De acordo com os cálculos, na base do braço precisamos de acionamentos com torque necessário de 81 kg·cm, ou 8 Nm no total. Isso significa que, se instalarmos dois servomotores na base, cada um com torque de bloqueio de 4 Nm, deve ser suficiente. No entanto, é fundamental entender que, se um servomotor tem torque de bloqueio de 4 Nm, seu torque efetivo de pico — no qual pode operar de forma estável — costuma ser cerca da metade desse valor, como ilustrado no Performance Graph.
XM430-W350 Performance Graph
Essa limitação precisa ser levada em conta para garantir que o manipulador consiga lidar com as cargas desejadas sem sobrecarregar os motores.
Tipos de servoacionamentos
Comecei a estudar quais tipos de motores são usados em manipuladores econômicos.
- Motores de passo, como o Nema 17 e o Nema 23.
Motor de passo Nema 17
- Motores PWM (modulação por largura de pulso), como o Dsservo de 160 kg·cm.
Dsservo DS51160MG
- Motores UART (transmissor-receptor assíncrono universal), como o Feetech STS 3215-C01.
Feetech-STS3215
Em quais indicadores-chave vamos nos concentrar?
- Torque
- Precisão
- Corrente, tensão
- Realimentação (sensores de temperatura, corrente e posição)
- Peso
- Custo
O que é torque do motor?
Torque = força (F) × distância (d)
O torque do motor é a força que o faz girar. Você pode pensar nele como a “força de torção” que ajuda o motor a realizar seu trabalho. Quanto maior o torque, mais fácil é para o motor acelerar e levantar cargas pesadas. Isso é importante para os carros: um bom torque ajuda a acelerar melhor e a subir ladeiras.
O torque de um motor é definido como o produto da força aplicada pela distância do ponto de pivô até onde essa força é aplicada. A fórmula é a seguinte:
Torque = força × distância (ou torque = F × d). Quanto maior o torque, maior o braço de alavanca com que esse motor pode trabalhar.
Precisão de posicionamento
Na robótica, este é um dos indicadores mais importantes, pois a tarefa do servoacionamento é posicionar com precisão o braço no espaço, e quanto mais preciso conseguirmos, melhor. As principais características de um braço robótico são a repetibilidade e a precisão absoluta.
Repetibilidade
Refere-se à capacidade do manipulador de retornar ao mesmo ponto no espaço após vários ciclos. É medida em milímetros (por exemplo, ±0,01 mm). Quanto menor o valor, maior a precisão das repetições de movimento.
Precisão absoluta
É a capacidade do manipulador de alcançar um ponto determinado no espaço em relação a um sistema de coordenadas global. É medida em milímetros (por exemplo, ±0,1 mm). A precisão absoluta costuma ser pior que a repetibilidade devido ao acúmulo de erros na cinemática.
Sensores de realimentação
Sensores de posição
- Sensores de efeito Hall: esses sensores determinam a posição do rotor. Eles usam ímãs para saber onde está a parte móvel do motor (o rotor) ou a que velocidade ela gira.
Princípio de funcionamento do sensor de efeito Hall
- Resolvers: fornecem a determinação precisa do ângulo de rotação. Funcionam como “detectores angulares” precisos, indicando a posição exata do rotor do motor.
Princípio de funcionamento do resolver
- Potenciômetros: este dispositivo, semelhante a um controle de volume, altera a resistência conforme o motor se move, indicando a posição de seu eixo.
Princípio de funcionamento do potenciômetro
- Codificadores ópticos: fornecem informações sobre a posição e a velocidade do rotor. Imagine uma pequena roda com fendas. A luz passa por essas fendas e, contando esses lampejos, determinamos quantas voltas o motor deu e onde ele está.
Princípio de funcionamento do codificador óptico
- Codificadores magnéticos: também medem a posição e a velocidade usando campos magnéticos. Utilizam ímãs para rastrear a posição do motor e funcionam bem mesmo em condições difíceis.
Princípio de funcionamento do codificador magnético
Sensores de corrente
- Sensores de medição de corrente: medem a corrente consumida pelo motor para avaliar a carga.
Princípio de funcionamento do sensor de medição de corrente
Sensores de temperatura
- Termopares ou termistores: monitoram a temperatura do motor para evitar o superaquecimento.
Princípio de funcionamento do termopar
Motores de passo
Esquema do motor de passo
Não entrei em detalhes sobre os motores de passo devido ao seu tamanho, maior peso, menor torque e baixa precisão de posicionamento.
For example, the Nema 17 Bipolar 1.8° 36Ncm pode ser comparado ao servomotor UART econômico ST3215-C018 em uma faixa de preço semelhante. O Nema 17 pesa 280 gramas e tem torque de 36 N·cm (ou 3,6 kg·cm) com ângulo de passo de 1,8 grau.
Motor de passo Nema 17
O servomotor em uma faixa de preço semelhante, Feetech ST3215-C018, pesa 55 gramas, tem torque de 30 kg·cm e precisão de posicionamento de 0,09 grau.
| Modelo do motor | Massa/gramas | Torque nominal/kg | Precisão/graus | Preço/$ |
| Nema 17 Bipolar 1.8deg 36Ncm | 280 | 3,6 | 1,8 | 10,75 |
| Feetech ST3215-C018 | 55 | 15 | 0,09 | 16.45 |
Então, se compararmos com base nas características-chave que consideramos para o nosso braço — peso × torque × precisão de posicionamento —, a diferença seria (280 / 55) × (15 / 3,6) × (1,8 / 0,09) ≈ 424 vezes. É claro que não podemos comparar esses tipos de motores apenas com base nesses 3 parâmetros; deixamos de fora uma série de outros fatores, como RPM, relação de redução, ruído e folga. Se os adicionarmos à tabela de comparação, a diferença já não será tão significativa. Para alguns cenários, o motor Nema pode ser a melhor escolha.
PWM versus UART
Esquema básico do servoacionamento
Comecei a procurar servos acessíveis com alto torque. A primeira coisa que encontrei foi o Dsservo RDS51150, que tem torque de 150 kg·cm, um valor muito alto para esse tipo de servo. Uma característica desses servos é que incluem um sistema de controle com um sensor de posição baseado em potenciômetro, o que dificulta a obtenção de realimentação e o controle da posição devido à precisão e à sensibilidade limitadas do potenciômetro.
Princípio da modulação por largura de pulso
Uma característica do funcionamento dos motores Dsservo é que são motores PWM (modulação por largura de pulso). Esse é um método de controlar a potência da corrente elétrica ligando-a e desligando-a em pulsos. Eles não possuem um codificador magnético para transmitir a posição atual do eixo e não têm controlador integrado. Esses motores não são adequados para uso em sistemas robóticos nos quais a precisão de posicionamento e a realimentação são importantes.
Pensei em como compensar essas deficiências. Encontramos um codificador magnético adequado, o AS5600, com 4600 posições. Além disso, precisávamos de um controlador capaz de operar com PWM.
Codificador magnético AS5600
Alan recomendou um bom programador que trabalha com robótica. Ele sugeriu abandonar o PWM em favor dos motores UART (transmissor-receptor assíncrono universal), pois as complexidades adicionais no controle por software e na implementação técnica provavelmente não se justificariam. A confiabilidade dos motores PWM baratos em comparação com os UART também é questionável, já que os potenciômetros integrados para detecção de velocidade falham com frequência.
| PWM | UART | |
|---|---|---|
| Princípio de funcionamento | Analógico: controle da potência por meio de modulação por largura de pulso | Digital: transmissão de comandos por interface serial |
| Tarefa principal | Regulação suave da velocidade (motores CC) | Posicionamento preciso (servoacionamentos) |
| Precisão | Alta para velocidade, baixa para posição | Alta para posicionamento (precisão de passo) |
| Comunicação | Unidirecional (controle → motor) | Bidirecional (suporta realimentação) |
| Complexidade do hardware | Mínima (driver + gerador PWM) | Alta (controlador com UART + protocolo) |
| Eficiência energética | Maior (controle direto da potência) | Menor (depende do protocolo e do processamento) |
| Aplicações típicas | Furadeiras, ventiladores, servoacionamentos | Impressoras 3D, CNC, robótica |
No caso dos motores UART, podemos conectá-los em série em um único barramento, obtendo realimentação sobre posição, intensidade de corrente e temperatura do motor. No entanto, o custo de tais motores com torque semelhante será significativamente maior.
Comecei a considerar motores UART adequados e, após uma análise cuidadosa, optei pelos seguintes tipos: Feetech de 30 kg e 50 kg. Ao comprar em lotes de 100 unidades, o custo será de $12 each.
Servomotor Feetech STS3215-C018. Torque e folga
Servomotor Feetech STS3215
O engenheiro preparou um cálculo cinemático do sistema com base nos valores de torque indicados no site do vendedor. Nesse ponto, Alan destacou que o torque especificado para o motor é o torque de bloqueio, ou seja, o torque máximo com o qual o motor ainda consegue operar antes de parar completamente sob carga. Portanto, não podemos usar esse torque para considerar a capacidade de elevação do manipulador, pois ele simplesmente não se moverá sob tal carga.
Gráfico de torque, potência, eficiência e corrente
Os gráficos do link following graphs vêm em socorro e mostram que o torque operacional máximo no qual devemos nos concentrar é, na verdade, a metade do indicado — isso pode ser visto no meio do gráfico. Especificamente, ele mostra 15 e 25 kg·cm. Isso significa que, se usarmos um braço de alavanca de 700 mm com dois motores de 50 kg, conseguiríamos uma capacidade de elevação máxima de 240 gramas, o que é insuficiente.
No mês passado, Alan encomendou várias amostras para testar em casa. Foi isto que notamos.
Medição da folga do Feetech STS3215
A folga do servomotor é o dobro do indicado (≤0,5°) em the technical documentation, medindo 3 mm para um comprimento de braço de 160 mm, o que corresponde a aproximadamente 1,072 grau.
Em segundo lugar, medimos a temperatura sob carga constante.
Teste 1: Verificação de superaquecimento durante a retenção de carga estática.
Teste de superaquecimento com carga estática. Feetech STS3215
O braço com um haltere foi posicionado de lado, segurando um peso de 1 kg em um braço de alavanca de 15 cm, resultando em um torque de 15 kg·cm. Ao longo de 10 minutos, a temperatura subiu para 48 °C e permaneceu estável por uma hora, sem aumentar mais.
Teste 2: Oscilação em uma faixa de ±90 graus. Medição de temperatura
Oscilação em uma faixa de ±90 graus. Teste de temperatura. Feetech STS3215
Partindo de 48 °C, a temperatura atingiu 60 °C após 50 minutos. Nos 20 minutos seguintes, a temperatura não aumentou. Em seguida, a velocidade de oscilação foi reduzida para acelerar o aquecimento (veja a nota abaixo). Foram necessários mais 40 minutos para atingir 71 °C, momento em que o motor superaqueceu.
Conclusões
- Limite crítico de temperatura: a 71 °C, o motor apresenta problemas, como observado nos experimentos realizados ontem e hoje (dois casos). Aparentemente não há proteção térmica integrada, portanto será necessário desligá-lo manualmente quando essa temperatura for atingida.
- Efeito da aceleração no aquecimento: reduzir a aceleração aumentou a velocidade de subida da temperatura. Inicialmente, com uma aceleração de 5, a temperatura atingiu 60 °C. Baixar a aceleração para 2 resultou em superaquecimento após um tempo adicional. Amanhã, testes posteriores medirão o tempo necessário para superaquecer com uma aceleração de 5, já que uma aceleração de 2 é lenta demais para a nossa aplicação.
Por enquanto, é isso sobre os motores elétricos. As novidades sobre o nosso progresso na robótica certamente serão publicadas no site!
Entre para deixar um comentário.