Upload
polito
View
2
Download
0
Embed Size (px)
Citation preview
4 β Robot mobili
DIFFERENTIAL DRIVE ROVER
Jacopo Sini
ROBOTICS@MIDDLESCHOOL
v.2 - Torino, 25/05/2015Revisione da 1.1 a 2.0 del 15/02/2016
ROBOTICS@MIDDLESCHOOL 4DDR.2
In queste slide verranno trattati:
β’ Attuatori
β’ Controllori
Controllore ProcessoObiettivo Attuatori
Sensori
+-
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.3
In queste diapositive vedremo:
β’ Pianificazione della traiettoria
β’ Differential drive rover
β’ Guida differential drive
β’ Programmazione
β’ Calcolo delle distanze
β’ (Appendice) Descrizione analitica
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.4
In alcune applicazioni dei robot mobiliterrestri (chiamati rover), potrebbe esseretroppo costoso o complesso realizzare unsistema di sterzatura delle ruote, come quelloche si trova comunemente nelle auto.
In questi casi Γ¨ possibile fornire direzionalitΓ al robot tramite la tecnica differential drive.
Jacopo Sini
La tecnica differential drive consiste nel farmuovere le ruote del robot a velocitΓ indipendenti lβuna dallβaltra.
Analizzeremo, fra tutte le possibiliconfigurazioni, quella a due ruote motricisullo stesso asse e terza ruota condotta.
ROBOTICS@MIDDLESCHOOL 4DDR.5Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.7
Le RUOTE MOTRICI sono poste in
rotazione dai MOTORI.
Come si puoβ vedere le due
ruote stanno sullo stesso asse
e sono parallele, ma essendo
collegate a due differenti
motori possono avere diverse
velocitaβ
RUOTE MOTRICI
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.8
La ruota condotta fornisce il
terzo appoggio al robot.
Ruota condotta
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.9
Oltre a fornire lβappoggio al
rover, la ruota condotta non
deve opporre resistenza alla
rotazione.
Ruotando attorno alla
cerniera Γ¨eβ in grado di seguire
fluidamente la traiettoria
imposta dalle ruote motrici, in
modo simile a quanto fanno le
ruote dei carrelli dei
supermercati.
Cerniera ruota
condotta
ROBOTICS@MIDDLESCHOOL 4DDR.10
Abbiamo appena visto che solo la ruotacondotta Γ¨ in grado di sterzare, ma non hanessun motore.
Per affrontare le curve Γ¨ necessario usare unatecnica differente da quella usata per la guidadelle automobili, che solitamente vieneimpiegata sui mezzi cingolati (quali carriarmati, pale meccaniche o spazzaneve).
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.23
La ruota
condotta si
allinea alla
tangente alla
circonferenza
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.24
Il caso limite si ha quando il raggio dicurvatura Γ¨ pari allβinterasse (cioΓ¨ alladistanza tra le ruote).
Questo avviene quando una e una sola delledue ruote Γ¨ ferma.
Per semplicitΓ e a causa della struttura conruota condotta montata su un carrellino non siconsidereranno le ruote in rotazione con versiopposti.
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.31
Ora che abbiamo trovato tutti i punti diraccordo e tutti i raggi di curvatura dobbiamoancora fornire al rover i due angoli che le dueruote devono percorrere.
Attenzione: ricorda che le ruote devonopercorrere lβangolo assegnato, impiegando lostesso tempo (dunque avranno velocitΓ periferiche diverse).
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.32
Forniamo ora un angolo di rotazione al nostroattuatore:
π
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.33
Che effetto ha questa rotazione sul punto dicontatto del rover con il suolo?
Per rispondere a questa domanda Γ¨ necessariocapire qual Γ¨ la relazione che lega lβangolo e ladistanza percorsa da una ruota.
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.37
Per percorrere un segmento di lunghezza π Γ¨quindi sufficiente far ruotare entrambe leruote dello stesso angolo π.
π =π β 360
π
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.38
Per percorrere un arco di circonferenza Γ¨necessario far percorrere distanze diversealle due ruote.
Come calcolare le due distanze noto il raggiodi curvatura?
Jacopo Sini
4DDR.48ROBOTICS@MIDDLESCHOOL
Raggiunta la fine del tratto
da spazzare, secondo una
traiettoria circolare, il robot
continueraβ la sua traiettoria
orientato nel modo indicato a
fianco (ossia la freccia bianca
indicante il frontale del
rover segue sempre la
direzione tangente alla
circonferenza seguita).
Jacopo Sini
4DDR.49ROBOTICS@MIDDLESCHOOL
Cosa accade se facciamo
continuare il moto del rover
con entrambe le ruote alla
stessa velocitaβ?
Il rover si muove secondo la
direzione tangente alla
circonferenza appena seguita.
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.54
Vediamo ora come calcolare lβangolo dapercorrere per spazzare un arco di π gradisu una circonferenza di raggio π .
Per prima cosa, ricordiamo che la distanza
percorsa π Γ¨ pari a π = 2ππ β π
360
Jacopo Sini
ROBOTICS@MIDDLESCHOOL 4DDR.55
Misuriamo quindi lβinterasse, cioΓ¨ la distanzaπ tra il centro delle due ruote del nostro rover:
π
Jacopo Sini
4DDR.58ROBOTICS@MIDDLESCHOOL
ππ = 2π π βπ2
β π
360
π
π βπ2
Jacopo Sini
4DDR.59ROBOTICS@MIDDLESCHOOL
ππ
ππ
ππ =ππ β 360
π βπ
2
ππ
ππ
ππ =ππ β 360
π +π
2
Jacopo Sini
π Raggio ruota motrice.
π Raggio di curvatura.
ππ Angolo (coordinate di giunto percorso dalla i-esima ruota
motrice.
π Angolo (coordinate nello spazio di lavoro) spazzato durante la
percorrenza di una traiettoria circolare.
π Distanza (lungo la curva) percorsa dal rover.
ππ Distanza (lungo la rispettiva curva) percorsa dalla i-esima ruota.
π Distanza euclidea tra i punti di appoggio delle due ruote motrici.
ROBOTICS@MIDDLESCHOOL 4DDR.60Jacopo Sini
BONA B. Modellistica dei robot industriali, Celid, Torino, 2002
CORKE P. Robotics, Vision and Control, star, Springer , 2011
FERRARESI C., RAPARELLI T., Meccanica Applicata, CLUT, 1992
ROBOTICS@MIDDLESCHOOL 4DDR.61Jacopo Sini
Quest'opera Γ¨ distribuita con Licenza
Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale.
http://creativecommons.org/licenses/by-nc-sa/4.0/
ROBOTICS@MIDDLESCHOOL 4DDR.62Jacopo Sini
Per ottenere in versione digitale questo file egli altri della serie
polito.academia.edu/JacopoSini
http://www.roboticsMS.altervista.org/
ROBOTICS@MIDDLESCHOOL 4DDR.63
Per completezza, anche se ben conscio delladifficoltΓ intrinseca della descrizione, vengonodi seguito riportate le descrizioni analitichenecessarie per implementare concretamenteuna pianificazione di traiettoria tramite latecnica differential drive.
Jacopo Sini
4DDR.64ROBOTICS@MIDDLESCHOOL
Con π interasse tra le ruote, π raggio dicurvatura, π£π e π£π rispettivamente velocitΓ periferica delle ruote sinistra e destra, πvelocitΓ angolare, le seguenti equazioniforniscono la cinematica del rover:
π£π = π π βπ
2
π£π = π π +π
2
π£π β π£π =2ππ
2β π =
π£π β π£ππ
π£π + π£π = 2ππ β π =π(π£π + π£π)
2(π£π β π£π)
Jacopo Sini
4DDR.65ROBOTICS@MIDDLESCHOOL
Considerando le equazioni a tempo discreto i eassumendo valori costanti durante lβintervallodi tempo:
πΆπΌπ π =πΆπ₯ππΆπ¦π
=π₯π β π π sin(ππ)π¦π + π π cos(ππ)
ππ =π£ππ β π£ππ
π; πΏππ =
πππ β ππππ
π£π =π£ππ + π£ππ
2
ππ π π +π
2= π£ππ
ππ π π βπ
2= π£ππ
π π =π£πππ
=π(π£ππ + π£ππ)
2(π£ππ β π£ππ)Jacopo Sini
4DDR.66ROBOTICS@MIDDLESCHOOL
Considerando le equazioni a tempo discreto i eassumendo valori costanti durante lβintervallodi tempo:
πΆπΌπ π =πΆπ₯ππΆπ¦π
=π₯π β π π sin(ππ)π¦π + π π cos(ππ)
ππ =π£ππ β π£ππ
π; πΏππ =
πππ β ππππ
π£π =π£ππ + π£ππ
2
ππ π π +π
2= π£ππ
ππ π π βπ
2= π£ππ
π π =π£πππ
=π(π£ππ + π£ππ)
2(π£ππ β π£ππ)
Centro di
istantanea
rotazione
Jacopo Sini
4DDR.67ROBOTICS@MIDDLESCHOOL
Considerando le equazioni a tempo discreto i eassumendo valori costanti durante lβintervallodi tempo:
πΆπΌπ π =πΆπ₯ππΆπ¦π
=π₯π β π π sin(ππ)π¦π + π π cos(ππ)
ππ =π£ππ β π£ππ
π; πΏππ =
πππ β ππππ
π£π =π£ππ + π£ππ
2
ππ π π +π
2= π£ππ
ππ π π βπ
2= π£ππ
π π =π£πππ
=π(π£ππ + π£ππ)
2(π£ππ β π£ππ)
Velocitaβ punto
medio asse
ruote
Jacopo Sini
4DDR.68ROBOTICS@MIDDLESCHOOL
Considerando le equazioni a tempo discreto i eassumendo valori costanti durante lβintervallodi tempo:
πΆπΌπ π =πΆπ₯ππΆπ¦π
=π₯π β π π sin(ππ)π¦π + π π cos(ππ)
ππ =π£ππ β π£ππ
π; πΏππ =
πππ β ππππ
π£π =π£ππ + π£ππ
2
ππ π π +π
2= π£ππ
ππ π π βπ
2= π£ππ
π π =π£πππ
=π(π£ππ + π£ππ)
2(π£ππ β π£ππ)
Distanza percorsa
ruota destra e
sinistra
Jacopo Sini
4DDR.69ROBOTICS@MIDDLESCHOOL
π₯ π‘ = ΰΆ±0
π‘
cos π π π£ π ππ; π¦ π‘ = ΰΆ±0
π‘
sinπ π π£ π ππ
π π‘ = ΰΆ±0
π‘
π π ππ
Se il tempo di campionamento Γ¨ piccolo:
ππ =π
ππ‘π β ππ β ππ+1 β πΏππ
π₯π+1π¦π+1ππ+1
=cos(πΏππ) β sin(πΏππ) 0sin(πΏππ) cos(πΏππ) 0
0 0 1
π₯π β πΆπΌπ π₯ππ¦π β πΆπΌπ π¦π
ππ
+
πΆπΌπ π₯ππΆπΌπ π¦ππΏππ
Jacopo Sini
4DDR.70ROBOTICS@MIDDLESCHOOL
Approssimazione di Eulero
α
π₯π+1 = π₯π + π£ππ cos(ππ)π¦π+1 = π¦π + π£ππ sin(ππ)
ππ+1 = ππ + ππππΏπ
ππ
ππ+1
πΏπ π
Jacopo Sini
4DDR.71ROBOTICS@MIDDLESCHOOL
Approssimazione di Runge-Kutta
π₯π+1 = π₯π + π£ππ cos ππ +1
2πππ
π¦π+1 = π¦π + π£ππ sin ππ +1
2πππ
ππ+1 = ππ + πππ
ππ+1
πΏπ
πππΏπ π
Jacopo Sini