Inseguimento di traiettoria con 9G Servo Bracket, interpolazione lineare e non.

Eccomi con il problema più grande che devo affrontare, l'inseguimento di traiettoria con il kit 9G servo bracket.

Vi descrivo brevemente il problema. Ho un manipolatore 2 DOF con un laser montato sopra, il primo problema che ho dovuto affrontare è stato selezionare delle lettere su una tabella in base a quello che io passavo da PC. Con un algoritmo di cinematica inversa dando le coordinate di ogni lettera ottenevo i valori degli angoli da passare ai due servi.

In questo modo il puntatore andava a colpire le lettere riportando qualsiasi parola io gli passassi da computer.

Ora invece devo far inseguire al puntatore una traiettoria. Come prima prova sto cercando di riprodurre un quadrilatero in maniera continua, quindi non si deve fermare su ogni punto della traiettoria che gli passo. I problemi sono molteplici. Ho sfruttato lo stesso codice usato per la selezione dei caratteri ma il passaggio da un punto all'altro della traiettoria non avviene in maniera lineare e se gli do troppo poco delay non mi porta a termine la traiettoria, se ne do troppo si ferma sui punti, se ne do una giusta misura (che ancora non ho trovato) avrò comunque un certo stop (per quanto minimo) sui punti da interpolare.

Le domande sono:

  1. C'è un modo per dire al puntatore di muoversi in modo lineare da una coordinata all'altra senza dover usare uno scatafascio di punti?
  2. Invece di usare la funzione delay c'è un modo per dire ai servi di muoversi solo una volta concluso il movimento precedente?

Dovrò dopo passare a costruire un cerchio e la cosa diventerà ancora più complessa ma se risolvo con il quadrilatero è già un passo avanti.

Se avete bisogno che vi passi il codice ditemelo che lo posto. Dato che è lungo e che ho fatto una tab extra per le funzioni non volevo fare un mega post.

Un grazie a chiunque mi sappia aiutare.