Rastreamento de rotação com precisão extremamente alta

14

Gostaria de acompanhar a posição angular de um braço rotativo motorizado bastante lento (acionamento direto; veja a ilustração abaixo) - mas requer precisão angular abaixo de 0,05 ° e resolução semelhante.

Como @gbulmer observou nos comentários, isso é equivalente a rastrear a ponta do braço posicionalmente ao longo da circunferência, com uma precisão de (2 × π × 10cm) / (360˚ / 0,05) = 0,08 mm.

desenhando

Existe algum sensor atualmente realizável ou método eletrônico que possa atingir esse nível de precisão no sensor rotacional sem gastar uma fortuna?


Isto é o que eu tentei até agora, do mais simples ao mais complicado:

  • Bússola / magnetômetro digital: comecei com isso; mas, obviamente, nem de longe o desempenho que estou procurando.

  • Codificação rotativa: codificação baseada em potenciômetro / sensor de efeito Hall: não foi possível obter resolução suficiente e existe um erro de linearidade significativo.

  • Visão da máquina: tentei colocar um marcador óptico na ponta do braço (já que a ponta traça o arco mais longo) e usar a câmera (OpenCV) para rastrear a posição do marcador: não conseguia resolver rotações muito minúsculas tão bem, considerando a rotação do braço uma área de 10x10 cm.

  • Codificador magnético: atualmente estou investigando o uso do AS5048, um codificador rotativo magnético da AMS, posicionado com o centro do sensor na posição do eixo do motor. Algo assim:

insira a descrição da imagem aqui

sasha
fonte
1
Por que não considerar um codificador de eixo (também pode ser magnético)? Os codificadores de quadratura podem ter uma precisão bastante alta. Pegue um com 2000 linhas. Após a quadratura, serão 8000 pulsos por rotação. 360/8000 = 0,045 graus de resolução
Eugene Sh.
BTW, o sistema está preparado?
Eugene Sh.
@EugeneSh: O sistema não está preparado. Condução direta. Além disso, a preocupação com os codificadores de posição rotativa, até onde eu vi, é que, embora sua resolução seja alta, sua precisão está faltando. O erro de um codificador rotativo magnético, por exemplo, pode ser tão alto quanto 1 grau, com base nas folhas de dados. Os codificadores ópticos que você viu significativamente melhor nesse sentido?
Sasha
Só para verificar se entendi, calculo que você deseja saber a posição da ponta do braço em uma resolução e precisão de que é 0,008 cm, ou 80 µm. Isso está correto? O motor é capaz de tal precisão? (2×π×10cm)/(360˚/0,05)
Gbulmer 30/10/2015
3
Gostaria de compartilhar seu verdadeiro problema aqui? Talvez a solução seja muito mais simples e esteja em um plano diferente.
Eugene Sh.

Respostas:

12

O que você está fazendo é possível, mas não vejo como você o fará barato.

.05 graus (3 minutos de arco) implica uma resolução de 7200 contagens / rotação, ou o equivalente a 13 bits (8192). Pior, como você está tentando fazer um loop de posição, precisará de pelo menos um bit extra de resolução ou um sistema de 14 bits. O problema está no fato de que seu loop de posição não pode detectar um erro de menos de um bit; portanto, se o braço começar a desviar, o sensor de ângulo não o detectará até que a saída esteja um pouco desligada. O loop de posição fará o braço recuar na direção contrária e o interromperá quando o erro cair para zero. Mas isso permitirá que o braço gire para o outro lado até obter uma contagem na direção oposta, etc. Então, por exemplo, se você quiser que o braço mantenha uma contagem de sensores de 100, o sistema poderá produzir 100, 101, 100 , 99, 100 etc.

Sugiro que um codificador óptico seja sua melhor aposta, mas um codificador de 14 bits (16.384 ppr) não será barato. Outra possibilidade é um resolvedor ou sincronizador, com um RDC ou SDC (resolvedor / conversor digital ou conversor sincronizado / digital) como uma segunda possibilidade, mas isso custará ainda mais. Sincronizadores / resolvedores têm 2 desvantagens. Primeiro, eles geralmente foram substituídos pelos codificadores ópticos, então o que você encontrará no mercado são principalmente unidades excedentes. Segundo, a precisão geralmente não é adequada. Os resolvedores de tamanho 23 são geralmente classificados em cerca de 5 a 10 minutos de arco; portanto, você precisará de uma unidade de alta precisão e boa sorte em encontrar um.

A inductosyns fornecerá resolução e precisão excepcionais, mas custará ainda mais do que um codificador óptico. Essencialmente, você precisa de um RDC de alta velocidade para ler a saída.

Sua preocupação com a precisão do codificador óptico é baseada no papel de um fabricante específico, mas isso é essencialmente uma peça assustadora. As possibilidades de erro são as mesmas para todos os fabricantes, e o fabricante vinculado não é de alguma forma melhor do que outros fabricantes. Geralmente, para codificadores de precisão, a precisão é igual à resolução.

Embora seja possível obter codificadores ópticos com saídas paralelas, você provavelmente está melhor com um codificador incremental e rolando seu próprio contador para cima / para baixo. Se você seguir esta rota, usará o sinal "inicial" para redefinir o contador de posições sempre que ligar o sistema.

WhatRoughBeast
fonte
Obrigado por uma resposta equilibrada e realista. Parece que eu deveria dar uma chance à codificação óptica / incremental e, se funcionar, estamos bem. Também ficaria curioso para saber o que você pensa sobre a abordagem descrita no meu último parágrafo usando um codificador magnético linear junto com um anel magnético multipolar do tipo recomendado na folha de dados do codificador.
Sasha
@ Sasha - Eu acho que você precisa olhar muito para o processo necessário para produzir um anel magnético. Duvido muito que você consiga fazer isso sozinho. Enquanto a folha de dados sugere que tolerâncias bastante relaxadas podem ser usadas, eu ficaria muito desconfiado de qualquer "algo por nada". Além disso, a menos que você tenha a capacidade de verificar a precisão de 3 min / 80 mícrons, acho melhor deixar os profissionais lidar com possíveis imprecisões. Mantenha o papel vinculado em mente.
WhatRoughBeast
Notado! Dito isso, eu deveria ter deixado claro: pretendia usar o anel magnético (multipolar) compatível com o design prescrito pela própria AMS na folha de dados AS5311; este é o anel: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
sasha
@ Sasha - Isso é bom, mas o problema que tenho é como você monta o anel precisamente concêntrico com o eixo do eixo. Qualquer excentricidade será exibida no ângulo recuperado.
WhatRoughBeast
4

Acho que o que o OP sugere não é uma má idéia. O que ele deseja usar é o anel pronto: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , possui 128 polos = 64 pares de polos. A resolução é de 16 bits = 65536, no máximo 305 rpm.
Se você desmontar um codificador óptico de alta resolução, descobrirá que é quase impossível alinhar o detector sem ferramentas especiais; o uso desse novo método torna isso muito simples.
Você precisaria de uma máquina de torneamento para fazer um ajuste adequado ao anel e, em seguida, coloque o sensor a uma curta distância, sem necessidade de alinhamento especial. O sensor em si vem em versões de kit já soldadas na placa de interrupção, o que você precisaria é de um sensor de referência adicional - uma lacuna com o fotodetector, então você pode fazer referência ao codificador dentro de um par de pólos com a combinação da saída de índice + sensor ext ref.

Marko Buršič
fonte
O "sensor de referência adicional" é apenas para posição absoluta, correto? (semelhante ao fim de curso no caso de movimento deslizante do CNC). Você também pode explicar sua sugestão para o uso de uma "máquina de tornear para fazer um ajuste adequado"? Você quer dizer, como um sulco para o anel sentar? Se sim, como garantir que a ranhura esteja na posição perfeita, quando o próprio corte do CNC pode não ser tão preciso?
Sasha
@sasha Uma máquina de tornear para encaixar o anel magnético, o ext. sensor para detectar a referência. O sensor ext + o pulso zero do codificador garantirá que você sempre tenha a mesma referência absoluta, que no seu caso pode não ser necessária. Fiz uma montagem LIDAR com o uso de steppers de micro passo e redutores planetários, sem feedback - a única posição absoluta eram os interruptores de fim de curso para evitar virar e rasgar os cabos. Suponha que você tenha que fazer referência a um determinado objeto e faça movimentos relativos, assim o LIDAR funciona, caso contrário você não precisará de uma posição zero de referência.
Marko Buršič
4

Como é uma pergunta de brainstorming, e o WhatRoughBeast já mencionou tudo o que eu consideraria, por que não adicionar os drives harmônicos à lista? Em teoria (eu não verifiquei com estimativas empíricas ou primeiros cálculos), ele permite que você obtenha a taxa de engrenagem de 20: 1 facilmente sem qualquer folga (100: 1 é comum), reduzindo o número de etapas necessárias para 720 / rot . Pode ser algo que vale a pena dar uma olhada. Os acionamentos harmônicos não são baratos, mas geralmente são muito mais baratos que os sensores de alta resolução, especialmente para essa relação de engrenagem.

Mister Mystère
fonte
3

Se você precisar de uma resolução no eixo de saída correspondente a 13 bits, precisará de mais bits extras, pelo menos 1 bit para o controle de malha fechada. O próximo problema é que os fabricantes anunciam resolução, mas não anunciam precisão . Você precisa pedir persistentemente a precisão. Se o erro for repetitivo, você poderá melhorar o uso da correção de software.

Outra questão, se você precisar de uma solução externa de serviço pesado. Se sim, o codificador magnético é uma opção. Mas o codificador magnético pode ter um erro periódico repetitivo significativo, que você precisa eliminar no processo de calibração usando outro codificador óptico extenso. Mas você precisa de um gabarito feito com largura ainda maior e com maior precisão.

A interpolação Sin / cos (óptica ou magnética) aumenta a resolução, mas também adiciona algum erro aleatório.

Você deve ser capaz de fabricar com a precisão desejada, principalmente a concentricidade. Também é necessário considerar a largura de banda, pois quando você aumenta a resolução, um movimento mais rápido pode exceder a largura de banda permitida (por exemplo, frequência de saída em quadratura). Pelo contrário, o controle em câmera ultra-lenta é outra disciplina em que se pode encontrar questões interessantes não publicadas.

Se você precisar da rotação do braço de controle (não apenas da posição da esteira), é necessário resolver o acionamento direto e o torque. O loop duplo ajuda no controle, mas requer motor (encoder no caso de caixa de velocidades ou etapas de contagem no caso de stepper) e sensor de posição do eixo.

Codificador incremental vs. absoluto também é uma decisão fundamental.

O conselho geral é: se você deseja concluir o projeto, use componentes profissionais caros (por exemplo, codificadores ópticos Renishaw ATOM). Se você está jogando por prazer e o tempo não é importante, pode desfrutar de reinventar problemas (cul-de-sac), descobrir problemas inimagináveis ​​etc. Verifique novamente se é possível fabricar aparelhos com a precisão necessária.

TMa
fonte
3

Parece perfeitamente adequado para um paquímetro digital, normalmente usado para medir distâncias precisas, consulte:

Como funciona um paquímetro eletrônico?

Eles são semelhantes aos codificadores capacitivos (que você já viu em http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).

A parte eletrônica de um paquímetro digital linear provavelmente pode ser reutilizada, portanto, você só precisa fazer um quarto de disco com o padrão correto.

PS: A precisão permitiria que você trabalhasse com uma linear pronta para uso.

user103185
fonte
2

Aqui está minha nova idéia, mais uma história motorizada de passo :-)

insira a descrição da imagem aqui

Clique na imagem animada para ver as res. Aqui você usa o motor de passo como uma régua itinerante. Há um ímã na ponta da mão principal. As linhas vermelhas mostram a direção esperada do fluxo magnético. Supondo que o motor de passo seja como o da wikipedia. Possui 3,6 graus de uma etapa completa. Para uma parte do campo presumivelmente linear, você precisa de 3,6 / 0,05 = 72 combinações de 7 bits. Isso significa que um ADC de 10 bits de um MCU comum fará o trabalho para uma faixa não-linear maior muito bem. Depois de fazer o mecanismo, analise o padrão de aproximação e escolha a parte mais linear, com alguns mapeamentos de software alinhados e escolha as bordas da régua para essa configuração específica.

Os motores de passo não são perfeitos. De acordo com a Wikipedia, eles podem ter uma variação de até 5% entre os dentes. Para medir o erro, você pode estender as bordas primárias da régua com bordas secundárias, que precisam apenas seguir o padrão de gradiente da análise anterior da borda vizinha.

Além disso, é melhor acionar o motor de passo com microstepping para evitar as acelerações +/- que podem afetar as escalas de configuração. Acho que pelo menos você deve fazer meio passo.

Ayhan
fonte
É improvável que os motores de passo sejam melhores que os codificadores - e as micro-etapas são notoriamente não lineares.
Chris Stratton
Microstepping não serve para referenciar nada, não é necessário um passo intermediário estático. É apenas para evitar a aceleração. @ChrisStratton
Ayhan
1

Lidando com a mecânica, comece primeiro pela mecânica.

insira a descrição da imagem aqui

Girando a engrenagem grande (R2) para um ângulo, a engrenagem pequena (R1) gira para um ângulo R2 / R1 vezes maior.

Portanto, se você lida com uma precisão de ângulo muito extrema em um raio determinado (R), pode lidar com uma precisão de ângulo n-vezes mais grossa em um raio n-vezes menor (ou seja, R / n).

No seu caso, você pode instalar uma engrenagem grande no eixo do braço e anexar uma engrenagem menor a ele e, em seguida, conectar um sensor mais grosso ao menor.

Muitos outros métodos de engrenagem são conhecidos e úteis, a partir do wiki .

asndre
fonte
Introduz folga e fabricação precisa é problema. Em outras palavras, aumenta definitivamente a precisão, mas importante é a precisão.
TMA
1

Você deve criar um segundo mecanismo na borda da mão, para dividir os passos do centro por um mecanismo linear, como o encontrado no sistema óptico do driver de CD-ROM. Dessa forma, pode ser mais fácil e suficiente implementar todo o sistema como circuito aberto usando também um motor de passo no centro e acionando-o em micro-passos para evitar magnitudes de aceleração muito altas.

Ayhan
fonte
1

Limitações físicas no espaço ao redor do braço móvel podem excluir esta solução, mas aqui está você - outra abordagem barata de visão de máquina. A precisão pode ser ajustada alterando a ampliação da lente. outra abordagem de visão computacional

szulat
fonte
0

Não sei o que você considera uma fortuna, mas você pode considerar http://www.inductosyn.com/

Campos EM
fonte
+ Eu estava prestes a postar para considerar resolvedores ou RVDT's
JonRB 30/15/15
3
Esta é uma resposta bastante fraca, essencialmente sendo apenas um link. Melhor se você pudesse explicar um pouco o que está vinculando.
Tcrosley
@tcrosley: Nesse caso, em vez de fornecer um projeto completo e uma descrição exaustiva do circuito, (como geralmente não é meu costume), escolhi fornecer o link porque ele se refere a um dispositivo / sistema capaz de resolver 360 graus em 7200 partes por grau de ângulo e deixou a maior parte do trabalho de pernas e esforço de projeto para o OP. Por que isso me faz um cara mau?
EM Fields
2
@EMFields Meu problema não era o fato de você não ter fornecido seu próprio design. Em vez disso, não é uma boa idéia simplesmente postar um link aqui como resposta, pois pode ficar ruim em algum momento - alguém deve postar um link e algum tipo de texto que o acompanha para que o leitor possa procurar por um item ou tecnologia semelhante, mesmo que o link não seja mais válido. No seu caso, você postou um link na página inicial de uma empresa, com menor probabilidade de ficar ruim. Consulte "Fornecer contexto para links" nesta página .
tcrosley
1
@tcrosley: Agradeço o seu ponto de vista, mas apenas o nome de marca "Inductosyn" (que pode estar perto de um termo genérico agora) deve colocar um consultor sincero no caminho da iluminação, seja o alvo do link vivo ou morto. Google "Inductosyn" e você verá que há muito mais informações por aí do que gostaria de passar uma noite fazendo papagaios.
EM Fields
0

Outra opção muito interessante, se o seu braço entra regularmente em uma posição inicial (de repouso), é usar um mouse óptico (para jogos) ou, mais especificamente, seu sistema de detecção.

Monte o sensor na ponta do seu braço e forneça um bom pano de fundo (sem reflexos) para deslizar. Leia os dados através de uma interface de mouse USB padrão.

Você precisará de um sensor simples para calibrar a posição inicial. Você teria que experimentar para ver se isso funciona bem o suficiente. Deve funcionar principalmente independentemente de poeira e é simples de manter.

user103185
fonte
0

Talvez você possa considerar o uso de um codificador óptico linear no final do seu braço pivô e usar uma fita de codificação flexível como esta , que possui até 2000 linhas por polegada. Se você quiser ficar super barato, pode usar um codificador linear como este , mas ele só chega a 150 linhas por polegada, com uma resolução de 40 mícrons (já que é um codificador em quadratura). Se você não é sensível a alguma instabilidade no sistema de acionamento, pode usar isso diretamente. Caso contrário, você pode estender o braço sob o aplicativo e colocar o código srip mais adiante. Você pode até imprimir sua própria codestrip se tiver uma impressora com um DPI de 1000 ou mais.

Boa sorte!

Madcowswe
fonte