Existem duas etapas especiais principais para a técnica usada pela maioria dos controladores de impressora 3D de código aberto:
- Divida cada segmento gcode linear em muitos subsegmentos muito pequenos ("Segmentação")
- Use alguma trigonometria básica ou o teorema de Pitágoras para amarrar a posição da extrusora à altura do carro para cada uma das três torres ("Cinemática Inversa") para encontrar a posição alvo para cada pequeno segmento
A cinemática inversa é surpreendentemente simples. Um triângulo virtual de 90 graus é construído a partir de dois comprimentos conhecidos para resolver o terceiro comprimento desconhecido:
- O comprimento fixo do braço delta é a hipotenusa do triângulo
- A distância horizontal entre as juntas da coluna e as juntas do efetor final é calculado a partir das coordenadas XY do bocal e da posição fixa da coluna, para determinar o comprimento do lado inferior do triângulo
- O comprimento do lado superior do triângulo é calculado a partir dos dois anteriores por meio do teorema de Pitágoras
- O comprimento do lado superior é adicionado à altura Z do bocal para obter a altura necessária do carro
Acho que a melhor referência de código aberto aqui é o documento Rostock Kinematics de Steve Grave, rev3 disponível para download aqui: https://groups.google.com/d/msg/deltabot/V6ATBdT43eU/jEORG_l3dTEJ Alguns relevantes imagens:
Esses cálculos de cinemática inversa são realizados para cada carro para obter uma posição alvo de "espaço do carro" , e isso é realizado para cada subsegmento de caminho.
Os resultados dessas etapas podem ser reinseridos nas técnicas de interpolação de caminho linear padrão para a impressora, em que ela dispara etapas nas proporções necessárias e nas taxas necessárias para produzir o movimento em linha reta desejado e o perfil de aceleração / velocidade. (Como ISSO é feito é uma questão diferente.)
O efeito líquido é que a impressora se moverá por uma série de pequenos movimentos "lineares" do carro (linear significa velocidade constante * em relação ao tempo) que coletivamente aproximam os movimentos curvos (posição quadrática em relação ao tempo) necessários do carro para produzir um movimento de efetor final em linha reta.
* ( Velocidade constante antes que as desacelerações de aceleração sejam aplicadas para obedecer às restrições de dinâmica, de qualquer maneira. Novamente, esse é o assunto de uma questão diferente.)
A segmentação é muito semelhante ao processo de usar um polígono para aproximar um círculo. Se as facetas forem pequenas o suficiente, o polígono é uma boa aproximação. Taxas de segmentação mais altas produzem menos erros de seguimento de caminho. A principal diferença conceitual entre desenhar arcos de círculo e caminhos de movimento Delta é que o chamado "arco facetado" com Segmentação Delta é construído em coordenadas de altura vs tempo em vez das coordenadas X-vs-Y que você usaria para desenhar um círculo em uma tela de computador.
Este sistema é usado em grande parte porque o suporte para impressoras estilo Delta foi originalmente aparafusado em planejadores de movimento baseados em GRBL, que foram escritos exclusivamente para caminhos de movimento em linha reta em impressoras cartesianas. Foi uma modificação relativamente mínima na base de código existente em comparação com a implementação da interpolação de caminho quadrático completo.
As técnicas evoluíram ao longo dos anos. E abordagens alternativas são freqüentemente usadas: por exemplo, o fork dc42 de RepRapFirmware executa o caminho exato seguindo sem segmentação, recalculando o tempo adequado para a próxima etapa após cada etapa . Isso é funcionalmente equivalente a aproximar um círculo com uma contagem de facetas do polígono tão alta que cada pixel na tela tem sua própria faceta . Portanto, é exatamente tão preciso quanto permite a resolução de posicionamento dos motores. A desvantagem é que essa técnica livre de segmentação exige bastante do processador, portanto, ela só funciona em controladores relativamente rápidos, não no antigo Atmega AVR de 8 bits que alimenta a maioria das impressoras atuais para consumidores / amadores.
Outras técnicas são possíveis. A literatura acadêmica de controle de robótica paralela é um outro mundo de técnicas matemáticas e complexidade para produzir algoritmos de controle generalizados que funcionam para uma ampla gama de mecanismos de robôs. A versão que usamos nas impressoras 3D de código aberto é bastante simples e, em comparação, específica do aplicativo.