Come far muovere due binari continui (battistrada) alla stessa velocità?


12

Ho un paio di motori Vex 269 collegati a un Arduino Duemilanove . Questi motori utilizzano alcuni battistrada per serbatoio Vex . I due motori sono gestiti come servi sull'Arduino usando la Servo Library. Il problema che sto riscontrando è che le due tracce non girano alla stessa velocità quando vengono inviate lo stesso angolo servo. Ciò è chiaramente dovuto al fatto che le piste continue hanno così tante parti in movimento che è difficile ottenere forze di attrito identiche su ciascuna pista.

Come faccio a farli muovere alla stessa velocità? Dovrebbero muoversi alla stessa velocità dato lo stesso angolo di servo indipendentemente dall'attrito e i motori Vex 269 non sono abbastanza forti (il che significa che dovrei usare il Vex 369 o qualche altro motore più potente)? È meglio fare solo prove ed errori abbastanza a lungo per capire quale angolo del servo si traduce in uguali velocità su ciascuno? Dovrei armeggiare con le piste fino a quando non avranno attriti quasi identici? Grazie mille!

Risposte:


12

La risposta breve è che è necessario un migliore controllo (feedback) per farlo. In pratica, non sarai mai in grado di calibrare il sistema in modo sufficientemente accurato da andare dritto per più di qualche decina di lunghezze del corpo del robot. Una volta che lo componi perfettamente per un set di condizioni, l'ambiente o le condizioni di usura cambieranno e dovrai sintonizzarlo di nuovo.

Le condizioni superficiali, la trazione, l'atteggiamento, l'isolamento del motore (la distribuzione di energia elettrica a ciascun motore da una fonte di alimentazione comune) e molti altri fattori operativi in ​​tempo reale influiscono sulla velocità di avanzamento per ciascun lato del robot.

A seconda delle esigenze di precisione, qualcosa di semplice come una bussola magnetica (posizione il più avanti possibile sul robot per massimizzare la sua reattività) potrebbe aiutarti a mantenere una rotta durante l'avanzamento.

Spesso non è di fondamentale importanza precisamente in quale direzione si sta muovendo il tuo bot; piuttosto, deve semplicemente fare progressi su alcune attività (seguire il leader, cercare un obiettivo, ecc.).

Se pubblichi maggiori dettagli sul tuo robot e sui suoi obiettivi di progettazione, potrei aiutarti ulteriormente.

Una nota sul posizionamento del sensore magnetico

Ma perché dovrei "posizionare [il trasduttore magnetico] il più lontano possibile"? Non è vero che l'angolazione è la stessa? Sì. È vero, ma la grandezza del campo magnetico terrestre non lo è. Ti trovi in ​​un punto diverso della Terra .

Immagina che il tuo robot sia grande come un'auto. Se ti siedi nel centro geometrico della macchina e l'auto ruota su di te, le tue coordinate sulla Terra non sono cambiate; solo il tuo atteggiamento ha. Ora se sei seduto sul cofano dell'auto e l'auto ripete il suo movimento precedente, sia il tuo atteggiamento che le tue coordinate sono cambiate. La modifica delle coordinate produce una differenza maggiore nella grandezza del campo terrestre rispetto alla sola rotazione.

Negli ultimi anni ho lavorato in team con il Dr. Dwight Veihland della Virginia Tech, probabilmente il principale esperto mondiale di sensori magnetici ad altissima sensibilità. Se dovessi cristallizzare il corpo del suo lavoro ( come in questo esempio ), direi che è sempre alla ricerca di rapporti segnale-rumore maggiori nella rilevazione di magnitudini sempre più piccole.

Qualsiasi aumento della differenza di magnitudo che puoi generare semplifica la vita del tuo sensore ... e in questo caso, la ottieni gratuitamente. Un certo numero di robot DARPA per grandi sfide ha portato il sensore GPS in avanti per lo stesso motivo.


1
Per espandere la risposta eccellente di DrFriedParts, cerca "Controllo PID" per saperne di più su un tipo di controllo di feedback comunemente usato. Domanda per DrFriedParts: in che modo posizionare la bussola il più lontano possibile massimizza la reattività? L'angolazione sarà la stessa a prescindere, anche se posso vedere come allontanarla dalle parti metalliche e dai motori per essere utile.
ViennaMike

@ViennaMike - Grazie! =) Ho ampliato la mia risposta per coprire la tua domanda in modo più dettagliato di quanto potessi inserire in un commento.
DrFriedParts l'

Qualcuno sa di un documento pubblicato con esperimenti che dimostrano che la posizione del sensore magnetico sul robot migliora l'accuratezza dell'orientamento a causa della posizione nel campo magnetico terrestre? Sembra plausibile, ma non sono convinto che l'effetto sarebbe evidente. Sospetterei che spostare il sensore lontano da altri dispositivi elettronici sul robot avrebbe un effetto maggiore. Sarei interessato a vedere i risultati di eventuali esperimenti su questo!
Golmschenk,

@ViennaMike - Il controllo PID dei motori non può essere utilizzato qui per risolvere il problema. Non hai feedback di posizione / velocità / corrente, quindi non c'è nulla da inserire nel circuito di controllo PID. Il PID fornisce un mezzo per avvicinarsi senza problemi a un valore target, ma non si dispone di un valore target senza feedback aggiuntivo sulla posizione del robot / velocità di rotazione differenziale delle due tracce (ad esempio, sono necessarie più informazioni di quelle che il robot / scenario dell'OP può fare fornire).
DrFriedParts

@golmschenk - Guarda la prima grande sfida DARPA e i documenti pubblicati dai vari team universitari sul posizionamento dell'antenna GPS sui veicoli (stesso concetto) ... o guarda i documenti rilevanti di Veihland. L'effetto è sostanzialmente evidente alle velocità delle auto o con sensori magnetici su scala dei minuti. È evidente in quasi tutte le scale robotiche pratiche con GPS.
DrFriedParts
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.