Robotica Mobile Locomozione Materiale l tratto tratto da: d Introduction d to Mobile b l Robotics, b Univ. off Freiburg b ( (Prof. f Dr. Wolfram lf Burgard, d Dr. Cyrill Stachniss, Dr. Giorgio Grisetti, Dr. Maren Bennewitz) e Mobile Robotics, Univ. of Oxford (Prof. Paul Newman) Robotica Mobile • Robot capaci di muoversi/spostarsi in un ambiente: • Superficie (terra); • Fluidostatico (acqua); • Fluidodinamico (aria); • Fluttuazione (spazio) • Altro Alt … • Funzionalità basilare di un robot mobile: • Capacità di Locomozione: • Navigazione; • Mapping; M i • Localizzazione; p • Esplorazione • … Robotica Mobile: Tassonomia Luogo di funzionamento: Indoor, Outdoor, Altro Tipo di tterreno: Ti Civile piano, Civile multipiano, Sconnesso, Aperto Tipo di ambiente: Sgombro, Ingombro, Dinamico, Statico Tipo di operazioni: Movimento, Trasporto, Interazione ambiente, Interazione uomo M Mezzo di spostamento: t t Ruote, Cingoli, Zampe, Altro Numero di punti di appoggio: Tre, Quattro, Sei, Altro Robot Mobili Terrestri -Consideriamo Robot per mobilità di superficie superficie;; - Tre gradi di libertà: - x, y, Θ (azimuth) Robot Mobili Terrestri z z z Consideriamo Robot per mobilità di superficie superficie;; Sistemi di Locomozione Locomozione:: z Wheeled (ruote (ruote): ): 2, 2 3 3, 4 etc. etc z Legged (gambe): 2, 3, 4, etc. R t M Ruote Motrici t i i z z Ruote Folli z z Asse con angolo costante con l’asse del veicolo Ruote Sterzanti z z Ruotano per il movimento sul terreno Ruote Fisse z z Dotate di motore Motore modifica posizione dell’asse rispetto all’asse del robot Ruote Pivottanti z Asse ruota con il movimento sul terreno Robot Mobili z z Robot anolonomo z Può raggiungere qualunque posizione del suo spazio di lavoro, ma non in qualunque modo (automobile) Robot olonomo z Può ò raggiungere qualunque posizione (X, Y, θ) seguendo qualunque percorso (sul suo spazio di lavoro) (treno su rotaie) Locomozione su Ruote z z z z Guida Differenziale (AmigoBot, Pioneer 2-DX): z 2 ruote motrici indipendenti e una pivotante; Guida Macchina (Ackerman steering): z 4 ruote con sterzo Sincrono: z 3 ruote motrici collegate e strezanti; Ruote omniridrezionali (mecanum): z 3 Ruote fisse roll x y y z motion Locomozione su ruote Centro Istantaneo di Curvatura Ogni ruota ha il suo asse. Gli assi devono convergere su un centro istantaneo di curvatura (ICC). ICC Drive Differenziale y ω ICC = [ x − R sin θ , y + R cos θ ] ω ( R + l / 2 ) = vr ω ( R − l / 2 ) = vl l ( vl + vr ) R= 2 ( vr − v l ) vr − vl ω= l ICC vl R (x,y) θ x vr l/2 Drive Differenziale Cinematica diretta: ⎡ x'⎤ ⎡cos(ωδt ) − sin(ωδt ) 0⎤ ⎡ x − ICCx ⎤ ⎡ICCx ⎤ ⎢ y '⎥ = ⎢ sin(ωδt ) cos(ωδt ) 0⎥ ⎢ y − ICCy ⎥ + ⎢ICCy ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢⎣θ '⎦⎥ ⎣⎢ 0 ⎥⎦ ⎢⎣ ωδt ⎥⎦ 0 1⎥⎦ ⎢⎣ θ t x (t ) = ∫ v (t ' ) ICC R P(t+δt) cos[[ θ ( t ' )] dt ' 0 t y (t ) = ∫ v (t ' ) sin[ θ ( t ' )] dt ' 0 t θ ( t ) = ∫ ω ( t ' ) dt ' 0 t 1 x(t ) = ∫ [vr (t ' ) + vl (t ' )] cos[[θ (t ' )]dt ' 20 t 1 y (t ) = ∫ [vr (t ' ) + vl (t ' )] sin[θ (t ' )]dt ' 20 t 1 θ (t ) = ∫ [vr (t ' ) − vl (t ' )] dt ' l0 P(t) Drive Ackermann ICC,, w. R y ω ICC = [ x − R sin θ , y + R cos θ ] d R= tan ϕ ω ( R + l / 2 ) = vr ω ( R − l / 2 ) = vl l ( vl + vr ) R= 2 ( vr − vl ) vr − vl ω= l ICC ϕ vl R ϕ (x,y) θ d x vr l/2 Drive Sincrono Posa dipendente p dalla velocità y t x(t ) = ∫ v(t ' ) cos[θ (t ' )]dt ' 0 θ t y (t ) = ∫ v(t ' ) sin[θ (t ' )]dt ' 0 t θ (t ) = ∫ ω (t ' ) dt ' 0 ω(t( ) v(t) () x Drive XR4000 Posa dipendente dalla velocità y t x(t ) = ∫ v(t ' ) cos[θ (t ' )]dt ' 0 t y (t ) = ∫ v(t ' ) sin[[θ (t ' )]dt ' 0 t θ (t ) = ∫ ω (t ' ) dt d' 0 vi((t)) θ ωi(t) x ICC Ruote Mecanum v y = ( v 0 + v1 + v 2 + v3 ) / 4 v x = ( v 0 − v1 + v 2 − v3 ) / 4 v θ = ( v 0 + v1 − v 2 − v3 ) / 4 v error = ( v 0 − v1 − v 2 + v3 ) / 4 Vincoli non-olonomici Vincoli Non-olonomici limitano i movimenti incrementali nello spazio delle configurazioni del robot Robot con drive differenziale o sincrono si muovono su traiettorie cricolari ma non lateralmente XR-4000 o le ruote Mecanum possono muoversi lateralmente. Vincoli non-olonomici Vincoli non-olonomici riducono lo spazio di controllo rispetto alla configurazione attuale (es., il movimento laterale non è possibile). Vincoli olonomici riducono lo spazio delle configurazioni. Problematiche Locomozione Come si fa a sapere dove si deve andare? C Come sii ffa a sapere d dove sii è? Problemi della localizzazione e dell’autolocalizzazione