L’odometria, Dead reckoning – parte 1

Riprendiamo gli sviluppi teorici abbondonati precedentemente, per approfondire una delle caratteristiche principali del robot.

Dead Reckoning

L’odometria permette di stimare la propria posizione rispetto ad un riferimento assoluto determinato all’avvio del robot. L’utilizzo di questa tecnica è di fondamentale importanza per l’implementazione di controllori in retroazione di alto livello che utilizzano come misura la posizione e l’orientamento istantaneo del robot.

Nell’analisi cinematica, trattata precedentemente, il modello cinematico risultante era:

[tex]begin{pmatrix}dot xdot ydot thetaend{pmatrix} = begin{pmatrix}cos thetasin thetaend{pmatrix}v + begin{pmatrix}1end{pmatrix}omega[/tex]

[tex]{dot x = cos theta * vdot y = sin theta * vdot theta = omega[/tex]

Se si considera che il robot si muova sotto l’azione di comandi costanti, in ogni intervallo di tempo, di velocità linea ed angolare rispettivamente [tex]v[/tex] ed [tex]omega[/tex].

Discretizzazione del modello

Si può quindi discretizzare il modello e quindi approssimare le cordinate istantanee con la differenza tra l’istante iniziale e finale, usando quindi il metodo di Eulero:

[tex]{frac{x_{k+1} – x_{k}}{t_{k+1} – t_{k}}= v_kcdotcos theta_kfrac{y_{k+1} – y_{k}}{t_{k+1} – t_{k}}= v_kcdotsin theta_kfrac{theta_{k+1} – theta_{k}}{t_{k+1} – t_{k}}= omega_k[/tex]

riscritto il sistema di formule risultante:

[tex]{x_{k+1} = x_{k} + T cdot v_kcdotcos theta_ky_{k+1} = y_{k} + T cdot v_kcdotsin theta_ktheta_{k+1} = theta_{k} + T cdot omega_k[/tex]

Dove T è la durata dell’intervallo di campionamento definito come: [tex]T = t_{k+1} – t_{k} [/tex]

Questo metodo di approssimazione, commette un errore nel calcolo di [tex]x_{k+1}[/tex] e [tex]y_{k+1}[/tex] in quanto si suppone che l’orientamento [tex]theta_k[/tex] si suppone costante durante l’intervallo di campionamento.

Seguendo lo stesso principio di approssimazione, si può utilizzare il metodo di Runge-Kutta:

[tex]{x_{k+1} = x_{k} + T cdot v_kcdotcos (theta_k + frac{Tcdotomega_k}{2})y_{k+1} = y_{k} + T cdot v_kcdotsin(theta_k + frac{Tcdotomega_k}{2})theta_{k+1} = theta_{k} + T cdot omega_k[/tex]

Che sfruttando la trasformazione delle coordinate nella forma a catena, porta alla riscrizione delle formule in:

[tex]{x_{k+1} = x_{k} + frac{v_k}{omega_k}(sintheta_{k+1}-sintheta_{k})y_{k+1} = y_{k} – frac{v_k}{omega_k}(costheta_{k+1}-costheta_{k})theta_{k+1} = theta_{k} + T cdot omega_k[/tex]

Le formule risultano definite anche quando [tex]omega_k = 0[/tex] caso in cui degenerano nel metodo di Eulero, precedentemente esposto, perché sia implementabile quindi va tenuto conto di questa situazione.

Nel prossimo articolo analizzeremo le problematiche implementative per quanto riguarda il robot Ottobot ed effettueremo le ultime modifiche alle formulazioni per essere del tutto implementabili sul robot.

Copyright © 2009. All Rights Reserved.

Leave a Reply