Qual è un modello adatto per i robot a due ruote?


30

Qual è un modello adatto per i robot a due ruote? Cioè, quali equazioni del movimento descrivono la dinamica di un robot a due ruote.

Sono ben accetti modelli di fedeltà variabile. Ciò include modelli non lineari e modelli linearizzati.


1
Questa domanda sembra molto ampia. Sarebbe utile se colleghi "equazioni di movimento" a un articolo di Wikipedia (ad esempio) che descrive di cosa si tratta. Inoltre, è necessario specificare il robot in modo più specifico. Ad esempio, ci sono ruote passive? Quali sono i tipi di due ruote? ecc.
Shahbaz,

1
Stile bicicletta o stile segway? Dovresti essere più specifico.
Paul,

Risposte:


23

Non ci sono molte informazioni qui. Fissiamo le ruote come separate dalla distanza , e ogni ruota ha orientamento rispetto alla linea che le unisce. Quindi supponiamo che ogni ruota possa essere guidata indipendentemente con una velocità angolare .θ i v ibθivi

Se le ruote sono guidate indipendentemente, ma fissate nella direzione, , hai qualcosa come una trasmissione differenziale (battistrada). Vale la pena notare che, supponendo che le ruote non scivolino perpendicolarmente al loro orientamento, è possibile risolvere il movimento della base del robot in forma chiusa dati i comandi di velocità che vengono fissati su una breve durata (come di solito accade con i robot con software controllo). ICreate è una piattaforma del genere, così come i pionieri più piccoli, e Husky di Clearpath. Quindi il cambio di orientamento della base, etichettato seguito, può essere trovato in forma chiusa. θθ1=θ2=90θ

...

Il solito modello per queste cose, dove è la velocità di base e è la velocità angolare della base, è:ω bvbωb

ωb=1

vb=12(v1+v2)
ωb=1b(v2v1)

Per un incremento di tempo fisso, , puoi trovare il cambio di orientamento e la distanza lineare percorsa usando questi. Si noti che il robot percorre un cerchio in questa finestra temporale. La distanza lungo il cerchio è esattamente e il raggio del cerchio è . Basta collegarsi a queste equazioni: segmenti circolari - in particolare l'equazione della lunghezza degli accordi, che descrive la distanza che il robot sposta dalla sua posizione originale. Conosciamo e , risolviamo per .δ t v b R = bδtδtvb RθaR=b2v1+v2v2v1Rθa

Quindi supponendo che il robot inizi con l'orientamento , la posizione e si sposta lungo la finestra temporale con le velocità (ruota sinistra) e (ruota destra), il suo orientamento sarà: con posizione: 0(0,0)δtv1v2

θ1=δtb(v2v1)
px=cos(θ12)(2Rsin(θ12))
py=sin(θ12)(2Rsin(θ12))

Si noti che come il limite è v1v2=v

px=δtv
py=0

come previsto.

Aggiorna perché ?.

Riorganizzare modo che:px

px=cos(v2v12b)2(bv1+v22(v2v1))sin(v2v12b)

px=cos(v2v12b)(v2+v1)2sin(v2v12b)v2v12b

Ora nota che abbiamo tre limiti come .v2v1

cos(v2v12b)1

(v2+v1)2v1==v2

sin(v2v12b)v2v12b1 (see sinc function)

Questo è coperto su Internet, ma potresti iniziare qui: http://rossum.sourceforge.net/papers/DiffSteer/ o qui: https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/ cinematica-mobot.pdf

Se le ruote non sono fisse in direzione, come in te puoi variare la velocità e l'orientamento, diventa più complicato. In tal senso, un robot può diventare essenzialmente olonomico (può muoversi in direzioni e orientamenti arbitrari sul piano). Tuttavia, scommetto per l'orientamento fisso, si finisce con lo stesso modello.

Esistono altri modelli per due ruote, come un modello di bicicletta, che è facile immaginare come impostare le velocità e variando solo un orientamento.

Questo è il meglio che posso fare per ora.


1
Forse sono un po 'in ritardo, ma non riesco a capire perché Px=dt*vse v1 = v2. Abbiamo sin(theta/2)come parte della moltiplicazione quindi, quando v1=v2 -> theta = 0, otteniamo sin(0/2)=0e come conseguenza Px = 0. Cosa mi manca
Long Smith,

In pratica, usa le equazioni if . Per rispondere alla tua domanda, ho aggiornato la risposta. θ0
Josh Vander Hook,

4

Se vuoi davvero immergerti nella matematica, ecco il documento fondamentale che ha unificato e classificato la maggior parte dei modelli per robot a ruote.


2
Mi dispiace, le risposte solo link sono scoraggiate su StackExchange. Potresti forse condensare il contenuto di quel link in pochi paragrafi e tenerlo qui (insieme al link vero e proprio, ovviamente). Questo aiuta a prevenire la putrefazione del collegamento.
Manishearth,

Certo, lo farò non appena avrò abbastanza tempo per farlo questa settimana. Mi dispiace, non ero a conoscenza di questa politica e ho pensato che il link sarebbe stato utile così com'è.
georgebrindeiro,

Carta eccellente - grazie per il link! Anche un lungo weekend :-)
uhoh,

0

La risposta a questa è semplice, ma le altre risposte offuscano la dinamica.

I robot di unità differenziali possono essere modellati con la dinamica unicycle del modulo: dove ed sono coordinate cartesiane del robot, e è l'angolo tra la direzione e la -axis il vettore di ingresso. costituito da input di velocità lineari e angolari.xyθ(-π,π]x[v,ω]T

[x˙y˙θ˙]=[cos(θ)0sin(θ)001][vω],
xyθ(π,π]x[v,ω]T

-1 Questa è semplicemente una trasformazione tra coordinate diverse. Non modella affatto la dinamica del robot come richiesto nella domanda. L '" offuscamento " delle altre risposte è perché tengono conto del fatto che ci sono due ruote da controllare e non un vettore di input astratto. Un tale vettore potrebbe essere il risultato di un modello come richiesto nella domanda.
Unità di piegatura 22

Il modello che ho presentato si rivolge al prompt, si aggiunge alla discussione ed è, in effetti, un modello della dinamica di un robot di azionamento differenziale non olonomo (anche se non necessariamente a due ruote, che è un punto di forza). Mentre il vettore di velocità di input (noto anche come twist) può essere un'astrazione, l'utilizzo dell'ingresso twist è standard per molte piattaforme a due ruote. Ciò, tuttavia, evidenzia il fatto che le rappresentazioni dello spazio degli stati sono arbitrarie. Il controllo delle velocità delle ruote è un'astrazione dal controllo delle coppie delle ruote, che è essa stessa un'astrazione dal controllo delle correnti del motore.
JSycamore,
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.