Documente Academic
Documente Profesional
Documente Cultură
Escola de Engenharia
Departamento de Sistemas Eltricos de Automao e Energia
ENG04479 Robtica A
Modelagem Cinemtica e Dinmica de Robs Mveis
Prof. Walter Fetter Lages
18 de maro de 2015
Introduo
Os modelos cinemticos descrevem o rob em funo da velocidade e orientao das rodas, enquanto os modelos dinmicos descrevem o rob em funo das
foras generalizadas aplicadas pelos atuadores, por exemplo, torques nas rodas.
Os modelos de pose consideram como estado apenas a posio e orientao
do rob, enquanto os modelos de configurao consideram alm da pose outras
variveis internas, como por exemplo deslocamento angular das rodas. Do ponto
de vista de controle da posio e orientao espacial do rob, apenas os modelos
de pose so necessrios.
A maioria dos trabalhos apresentados na literatura [1, 6, 8] descreve o rob em
coordenadas cartesianas e utiliza apenas um modelo cinemtico de pose. Um nmero reduzido de autores consideram tambm um modelo dinmico [10]. Em [8]
utilizado um modelo cinemtico de pose em coordenadas polares. A modelagem
em coordenadas polares permite escrever um modelo com propriedades interessantes do ponto de vista de controle.
A seguir sero apresentados os modelos utilizados neste trabalho, seguindo a
formulao semelhante a [3]. Embora apenas os modelos de pose sejam necessrios para controle do rob, so apresentados tambm os modelos de configurao,
pois o modelo dinmico de pose obtido a partir do modelo dinmico de configurao.
xc
0
c = y c
(1)
c
e a rotao do sistema de coordenadas {Xc , Yc , c } com relao ao sistema de
coordenadas {X0 , Y0 , 0 } ser descrita por
cos c sen c 0
0
Rc = sen c cos c 0
(2)
0
0
1
2
x c
0
(3)
c = yc
c
que descrita no sistema de coordenadas {Xc , Yc , c } ser
c
c = c R0 0 c
(4)
(5)
onde
c
R0 = 0 Rc1
cos c sen c 0
= 0 RcT = sen c cos c 0
0
0
1
c c T c
c c Pw
w = c c + c
c
4
(6)
c c T c
c c Pw
w = w Rc c c + w Rc c
c
(7)
c c T c
c w Rc c Pw
w = w Rc c c + c
c
(9)
cos sen 0
w
Rc = sen cos 0
(8)
0
0
1
ou ainda
Como = +
sen( + ) cos( + ) 0
w
Rc = cos( + ) sen( + ) 0
0
0
1
(10)
sen( + ) cos( + ) 0
l sen
w
c c R0 0 c c
c l cos
w = cos( + ) sen( + ) 0 c R0 0 c + c
0
0
1
(11)
Por outro lado, tem-se que o segundo termo de (11)
0 0 0
l sen
0 0 0 c R0 0 c l cos =
0 0 1
0
l sen
0 0 l cos
0 l cos = 0 0 l sen c R0 0 c
0 0
0
c
(12)
Logo tem-se
r
sen( + ) cos( + ) l cos
cos( + ) sen( + )
l sen c R0 0 c + 0 = 0
0
0
1
c
(13)
(14)
que representa as restries a que est sujeito o movimento do rob devido roda
em questo. Esta expresso pode ainda ser desmembrada em
c
R0 0 c + r = 0
(15)
c
R0 0 c = 0
(16)
l cos + d cos
l cos + d sen( + )
c
Pw = l sen + d sen = l sen d cos( + )
(17)
A velocidade do sistema de coordenadas {Xw , Yw , w } com relao ao sistema de coordenadas inercial {X0 , Y0, 0 } descrita no sistema de coordenadas
7
{Xc , Yc , c }
c
c c T c
c c Pw + c
c + c
c c Pdw
w = c c + c
c
(18)
d cos
d sen( + )
c
Pdw = d sen = d cos( + )
(19)
A expresso (18), descrita no sistema de coordenadas {Xw , Yw , w } associando ao centro da roda assume a forma
w
c c T c
c c Pw + c
c + w Rc c
c c Pdw
w = w Rc c c + w Rc c
c
(20)
ou ainda
w
c c T c
c w Rc c Pw + c
c + c
c w Rc c Pdw
w = w Rc c c + c
c
(21)
sen( + ) cos( + ) 0
l sen + d
c c R0 0 c c
c l cos
= cos( + ) sen( + ) 0 c R0 0 c + c
0
0
1
d
c
c
+ c + c 0
(22)
0 0 0
l sen + d
0 0 0 c R0 0 c l cos +
0 0 1
0
0
l sen + d
0 l cos + d =
0
0 0 l cos
0 0 l sen + d c R0 0 c + d
0 0
0
0
0
0 + d =
0
(23)
Logo tem-se
0
sen( + ) cos( + ) l cos
w
w = cos( + ) sen( + ) l sen + d c R0 0 c + d
0
0
1
e como w w =
r 0 c +
T
(24)
, chega-se expresso
0
r
=0
0
d +
c
(25)
que representa as restries a que est sujeito o movimento do rob devido roda
em questo. Esta expresso pode ainda ser desmembrada em
c
R0 0 c + r = 0
(26)
c
R0 0 c + d = 0
(27)
l cos
c
Pw = l sen
(28)
e a velocidade do sistema de coordenadas {Xw , Yw , w } com relao ao sistema de coordenadas inercial {X0 , Y0, 0 } descrita no sistema de coordenadas
{Xc , Yc , c }
9
c c cT c
c c Pw
w = c c + c
(29)
c c T c
c w Rc c Pw
w = w Rc c c + c
c
(30)
sen( + + ) cos( + + ) 0
w
Rc = cos( + + ) sen( + + ) 0
(31)
0
0
1
consequentemente, tem-se
10
sen( + + ) cos( + + ) 0
= cos( + + ) sen( + + ) 0 c R0 0 c
0
0
1
l sen( + )
c c
0 c
+ c R0 c c l cos( + )
(32)
0
0 0 0
l sen( + )
l sen( + )
0 0 0 c R0 0 c l cos( + ) = 0 l cos( + )
0 0 1
0 0 l cos( + )
= 0 0 l sen( + ) c R0 0 c (33)
0 0
0
Logo tem-se
(34)
Por outro lado, tem-se que a velocidade do rob descrita no sistema de coordenadas {Xw , Yw , w } dada por
r cos
w
w = w wy
(35)
c
Como se trata de uma roda universal, o componente de velocidade normal
desconhecido, pois a velocidade do ponto de contato nesta direo no nula.
Com isto, a restrio de movimento da roda pode ser escrita como
c
R0 0 c + r cos = 0
(36)
Assume-se que para uma roda universal 6= 2 . Caso = 2 a roda estaria
sujeita a uma restrio equivalente restrio de no escorregamento de uma roda
convencional, perdendo o benefcio de ser uma roda universal. A figura 6 mostra
uma roda universal com = 0.
sen( + + ) cos( + + ) l cos( + )
11
(37)
C1 (c , nc )c R0 0 c + C2 nc = 0
(38)
J1f
J1c (c )
J1 (c , nc ) =
J1nc (nc )
J1u
C1f
C1 (c , nc ) = C1c (c )
C1nc (nc )
0
C2 = 0
C2nc
12
(39)
(40)
(41)
(42)
sendo
C1 (c )
C1f
C1c (c )
(43)
(44)
s = (C1c (c ))
(45)
(46)
0 s 2
(47)
2 m + s 3
(48)
14
Classe (1,1) Neste caso tem-se (C1f ) = 1 e portanto deve-se ter uma roda fixa,
ou vrias rodas fixas em um eixo comum e uma ou mais rodas orientveis
centradas, cujo centro no deve estar sobre o eixo das rodas fixas. Havendo
vrias rodas orientveis centradas, o seu movimento deve ser coordenado de
forma que (C1c (c )) = 1. Robs construdos na forma de carros convencionais, com direo tipo Aeckerman [7] pertencem a esta classe. Em [5]
apresentado um mtodo para representar qualquer rob desta classe por
um modelo de bicicleta, com apenas uma roda fixa e uma roda orientvel
centrada.
Classe (1,2) Robs desta classe no possuem rodas fixas, pois (C1f ) = 0. Por
outro lado, possuem duas rodas orientveis centradas, ou mais, desde que
seu movimento seja coordenado de forma que (C1c (c )) = 2.
c = 0 Rc (c )
(49)
C1 (c ).
c
15
(51)
(1,1)
carro
(1,2)
x c
yc
c
c1
c2
Modelo
x c
cos c sen c 0
1
y c = sen c cos c 0 2
0
0
1
3
c
x c
cos c 0
y c = sen c 0 1
2
0
1
x c
cos(c + c ) 0 0
y c sen(c + c ) 0 0 1
2
c =
0
1 0
0
0 1
x c
d cos c sen c 0
y c d sen c cos c 0 1
c =
cos c
0
0
1
c
L [sen c1 cos(c + c2 ) + sen c2 cos(c + c1 )]
L [sen c1 sen(c + c2 ) + sen c2 sen(c + c1 )]
sen(c2 c1 )
0
0
0
0
0
1
0
0
0
0
0
1
0
Rc
, Nc = 0
0
Rc (c ) 0
B(x) =
, Nc 0
0
I
, Nc = 0
u=
, Nc 0
(52)
Pode-se observar que a dimenso do vetor de entradas igual ao grau de manobrabilidade do rob. Este parmetro indica quantos graus de liberdade podem
ser manipulados atravs das entradas e . Em outras palavras, indica a possibilidade de alocar-se livremente o centro instantneo de rotao. M = 3 indica
16
2
2
2
2
l
a +b
a +b
c
d
0
0
d3
arctan(b/a) arctan(b/a)
1
2
3
2
2
que o centro instantneo de rotao pode ser livremente alocado no plano, diretamente atravs de para robs da classe(3,0) ou atravs da reorientao das rodas
centradas para robs das classes (1,2) e (2,1). Por outro lado, M = 2 indica que a
posio do centro instantneo de rotao est restrita pertencer a linha que passa
pelo centro das rodas fixas. Esta posio ser determinada diretamente por para
robs da classe (2,0) ou atravs da orientao das rodas centradas para robs da
classe (1,1).
No entanto, deve-se ressaltar que o nmero de graus de liberdade que podem
ser acessados diretamente igual a m , j que apenas os graus de liberdade acessados por podem ser acessados diretamente. A ao de nas coordenadas de
pose indireta, pois obtida atravs da varivel c , calculada pela integral de
. Fisicamente, isto pode ser verificado considerando-se que modifica apenas
a orientao das rodas centradas do rob e portanto, apenas influenciar as coordenadas de pose do rob se este se mover. Portanto, para um mesmo valor
de M , robs com m maior so mais manobrveis. Como seria de esperar, o
mximo de manobrabilidade obtido com robs omnidirecionais, quando tem-se
M = m = 3.
Pode ser provado [3] que o modelo cinemtico de pose (51) irredutvel, ou
seja, no existe uma transformao de coordenadas tal que uma das coordenadas
identicamente nula.
Exemplo 1 Considere o rob mvel com acionamento diferencial mostrado na
Figura 7.
Considerando as restries (16) e (27) para cada roda e escrevendo-se na
forma matricial tem-se
cos(1 + 1 ) sen(1 + 1 )
l1 sen(1 )
0
cos(2 + 2 ) sen(2 + 2 )
l2 sen(2 ) c R0 0 c + 0 3 = 0
cos(3 + 3 ) sen(3 + 3 ) l3 sen(3 ) + d3
d3
(53)
Y0
Yc
Yw2
2
Xw2
yc
1
Yw1
Xw3
Yw3
Xc
Xw1
1
d3
a
xc
X0
cos(1 + 2 1 ) sen(1 + 2 1 ) l1 sen( 2 1 )
0
cos(2 + 2 ) sen(2 + 2 ) l2 sen( 2 ) c R0 0 c + 0 3 = 0
2
2
2
cos( + 3 )
sen( + 3 )
l3 sen(3 ) + d3
d3
ou
0
1
l1 cos(1 )
0
0
c
0
1
l2 cos(2 )
R0 c + 0 3 = 0
cos(3 ) sen(3 ) l3 sen(3 ) + d3
d3
E como se pode verificar pela Figura 7, tem-se que l1 cos(1 ) = a e l2 cos(2 ) =
a, portanto:
0
0
1
a
c
0
0
1
a
R0 c + 0 3 = 0
d3
cos(3 ) sen(3 ) l3 sen(3 ) + d3
{z
}
| {z }
|
C2
C1 (c ,nc )=C1 (3 )
C1 (c )
0 1 a
= C1
=
0 1 a
c = 0 Rc (c )
1 0
= 0 a
0 1
E portanto, tem-se que o modelo cinemtico de pose ser dado por:
cos(c ) sen(c ) 0 1 0
0
c = sen(c ) cos(c ) 0 0 a
0
0
1 0 1
ou
cos(c ) a sen(c )
0
c = sen(c ) a cos(c )
0
1
(54)
Note que o modelo cinemtico de pose mostrado na Tabela 1 diferente porque foi obtido com outro posicionamento dos sistemas de coordenadas. Observando a Figura 7 possvel perceber que se a origem do sistema de coordenadas {Xc , Yc } tivesse sido posicionada no centro do eixo das rodas fixas, ter-se-ia
a = 0 e o modelo obtido aqui seria o mesmo mostrado na Tabela 1.
1
19
cos(c )
0 1 a
sen(c )
0 1 a
0
sen(c )
sen(c )
C1 c R0 0 c = 0
0 x c
0 yc = 0
1
c
x c
a
yc
= 0
a
c
sen(c )
cos(c )
0
cos(c )
cos(c )
yc
Y0
y c cos(c )
yc
ac
x c
x c sen(c )
c
xc
X0
20
x c
cos(c ) a sen(c )
0
c = yc = sen(c ) a cos(c )
0
1
c
Portanto:
x c = 1 cos(c ) + a2 sen(c )
yc = 1 sen(c ) a2 cos(c )
c = 2
(55)
(56)
(57)
Assim, tem-se de (57) que 2 a velocidade angular do rob. Por outro lado,
de (55) e (56) tem-se que
x c cos(c ) + y c sen(c ) = 1 cos2 (c ) + a2 sen(c ) cos(c )
+ 1 sen2 (c ) a2 cos(c ) sen(c )
= 1
Logo, percebendo-se que x c cos(c ) e y c sen(c ) so as projees de x c e y c
sobre o eixo longitudinal do rob, como mostra a Figura 9, tem-se que 1 a
velocidade linear do rob.
(58)
= J21 J1 (c , nc )c R0
(59)
21
yc
Y0
1
x c cos(c )
yc sen(c )
yc
x c
c
xc
X0
nc = D(nc )(c )
(60)
= E(c , nc )(c )
(61)
1
sendo D(nc ) = C2nc
C1nc (nc ) e E(c , nc ) = J21 J1 (c , nc ).
Definindo-se o vetor de coordenadas de configurao
q=
nc
(62)
(63)
com
Rc (c )
0
S(q) =
D(nc )(c )
E(c , nc )(c )
22
0
I
0
0
(64)
u=
(65)
(66)
tem-se que
m + Nc = dim(1 ) dim (inv(1 )) dim(q) = 3 + Nc + Nnc + N
(67)
onde inv(1 ) denota o fechamento involutivo da distribuio 1 . Consequentemente, pelo teorema de Frobenius [4] tem-se que o modelo cinemtico de configurao redutvel. O nmero de restries de velocidades que no podem ser
integradas, e portanto no podem ser eliminadas representado pelo grau de no
holonomicidade do rob.
Definio 4 (Grau de No Holonomicidade) O grau de no holonomicidade de
um rob mvel definido como
M = dim (inv(1 )) (m + Nc )
Como o modelo cinemtico de configurao redutvel tem-se que para todas
as classes de robs mveis M > 0. Ou seja, todas as classes de robs mveis
possuem restries no holonmicas. Pode-se notar ainda que M depende da
estrutura particular de cada rob, e portanto no tem o mesmo valor para todos os
robs de uma mesma classe.
Por outro lado, o nmero de restries de velocidade que podem ser integradas
e portanto eliminadas dado pela diferena entre dim(q) e dim (inv(1 )).
Exemplo 4 Novamente, considere o rob mvel com acionamento diferencial
mostrado na Figura 7. Considerando, as restries (15) e (26) para cada roda
e escrevendo-se na forma matricial tem-se
r1 0 0
sen(1 + 2 1 ) cos(1 + 2 1 ) l1 cos( 2 1 )
sen(2 + 2 ) cos(2 + 2 ) l2 cos( 2 ) c R0 0 c + 0 r2 0 = 0
2
2
2
sen( + 3 )
cos( + 3 )
l3 cos(3 )
0 0 r3
ou
1
0
l1 sen(1 )
r1 0 0
1
0
l2 sen(2 ) c R0 0 c + 0 r2 0 = 0
sen(3 ) cos(3 ) l3 cos(3 )
0 0 r3
E como se pode verificar pela Figura 7, tem-se que l1 sen(1 ) = b e l2 cos(2 ) =
b, portanto:
1
0
b
r1 0 0
1
c R0 0 c + 0 r2 0 = 0
0
b
sen(3 ) cos(3 ) l3 cos(3 )
0 0 r3
|
{z
}
{z
}
|
J2
J1 (c ,nc )=J1 (3 )
1
C1nc (3 ) = D(3 )
D(nc ) = C2nc
1
cos(3 ) sen(3 ) l3 sen(3 ) + d3
=
d
h 3
i
cos(3 )
l3 sen(3 )
sen(3 )
D(3 ) =
d3 1
d3
d3
e
3 = D(3 )
=
cos(3 )
d3
cos(3 )
d3
3 =
cos(3 )
d3
i 1 0
sen(3 )
3)
l3 sen(
1 0 a
d3
d3
0 1
i
l3
a
sen(
)
sen(
)
1
3
3
d3
d3
i
3
a+l
sen(3 ) + 1
d3
J de (61) tem-se:
24
0 0
1
0
b
r1
0
b
= 0 r12 0 1
1
sen(3 ) cos(3 ) l3 cos(3 )
0 0 r3
r11
0
rb1
b
0
= r12
r2
sen(3 )
cos(3 )
cos(3 )
l
3 r3
r3
r3
b
1
0
r1
r1
0
rb2
E(3 ) = r12
cos(3 )
cos(3 )
sen(3 )
l3 r3
r3
r3
e
= E(3 )
1
r1
1
r2
3)
sen(
r3
1
r1
1
r2
3)
sen(
r3
1
r1
1
r2
3)
sen(
r3
0
0
cos(3 )
r3
b
1
r1
rb2
0
3)
0
l3 cos(
r3
0
a
1
b
r1
rb2
b
r1
b
r2
3
cos(
)
a+l
3
r3
2
tem-se o modelo cinemtico de configurao:
25
(69)
cos(c )
a sen(c )
sen(c )
a cos(c )
1
3
d3
q =
d13
r1
r11
r2
r2
a+l3
3)
sen(
cos(
)
3
r3
r3
T
T
d
T
T
dt nc
nc
T
d T
dt
d T
T
dt c
c
d
dt
Rc J1T (c , nc ) + 0 Rc C1T (c , nc )
(70)
= C2T + nc
(71)
= J2T +
(72)
= c
(73)
26
R0
d
dt
T
d
T
+ D (nc )
+
dt nc
nc
T
d T
T
=
+ E (c , nc )
dt
(74)
(75)
(76)
R0
d
dt
T
d
T
+ D (nc )
+
dt nc
nc
T
d T
T
=
+ E (c , nc )
dt
= D T (nc )nc + E T (c , oc )
T
(77)
Inc nc + T I + c Ic c
T = Rc M(nc ) R0 + 2V (nc )nc + 2W c + nc
(78)
onde M(nc ), V (nc ), W , Inc , I e Ic so funes dos parmetros de massa e
inrcia dos vrios corpos rgidos que formam o rob.
nc ,
Substituindo-se (78) em (73) e (78) e eliminando-se as velocidades ,
nc , e c e com a utilizao das expresses (50), (60)
e c e as aceleraes ,
e (61) e suas derivadas obtm-se
com
H1 (c , nc ) + T (c )V (nc ) + f1 (c , nc , , ) =
= T (c ) D T (nc )nc + E T (c , nc )
27
(79)
H1 (c , nc ) = T (c ) M(nc ) + D T (nc )V T (nc ) + V (nc )D(nc )+
+ D T (nc )Inc D(nc ) + E T (c , nc )I E(c , nc ) (c )
(80)
e
V T (nc )(c ) + Ic + f2 (c , nc , , ) = c
(81)
que juntamente com (50), (60) e (61) formam o modelo dinmico de configurao
de um rob mvel com rodas genrico. Neste modelo genrico, os torques ,
nc e c representam os torques que podem ser aplicados para rotao e orientao das rodas. No entanto, em um rob real, apenas alguns destes torques so
efetivamente aplicados, pois geralmente utiliza-se o nmero mnimo de motores
necessrios. Pode-se facilmente concluir que cada roda centrada deve necessariamente possuir pelo menos um motor para sua orientao, pois caso contrrio
comportar-se-ia como uma roda fixa. Consequentemente, o vetor c no pode possuir componentes identicamente nulos. Por outro lado, os vetores e nc podem
possuir componentes identicamente nulos, desde que a rotao e a orientao das
rodas s quais estes estejam associados possa ser obtida atravs do acionamento
das demais rodas. Tem-se ento, que o vetor dos torques fornecidos para rotao
e orientao das rodas no centradas m pode ser obtido de
nc
= P m
(82)
=
q =
u =
H() =
f (, u) =
F () =
0 =
c
nc
H1 (c , nc ) T (c )V (nc )
V T (nc )(c )
Ic
f1 (c , nc , , )
f2 (c , nc , , )
B(c , nc )P 0
0
I
m
c
O modelo dinmico de configurao de um rob mvel com rodas pode ser simplificado para
1
2
29
q = S(q)u
u = v
(85)
(86)
Concluso
Neste captulo foram apresentados os modelos de robs mveis com rodas. Foram considerados quatro tipos de rodas: rodas fixas, rodas orientveis centradas,
rodas orientadas no-centradas e rodas universais. Sob hipteses bastante realistas, como a de que as rodas no deslizam, mostrou-se que existem apenas cinco
classes de robs com rodas. Atravs da anlise das caractersticas do modelo dinmico foi possvel deduzir o nmero mnimo de motores necessrios para que
robs de uma determinada classe no sejam sub-atuados.
Referncias
[1] A. M. Bloch, M. Reyhanoglu, and N. H. McClamroch. Control and stabilization of nonholonomic dynamic sytems. IEEE Transactions on Automatic
Control, 37(11):17461756, Nov 1992.
30
A Pseudo-inversa de Moore-Penrose
Pseudo-inversas so utilizadas quando necessrio realizar-se a operao inversa
realizada por uma matriz no inversvel.
Existem quatro condies que definem pseudo-inversas2 :
1. T T T = T
2. T T T = T
2
A hermitiana A = A
31
3. T T = T T
4. T T = T T
Diversas pseudo-inversas podem ser definidas, dependendo de quais das quatro condies so satisfeitas:
T 1 satizfaz apenas a condio 1.
T 2 satizfaz as condies 1 e 2.
T 3 satizfaz as condies 1, 2 e 3.
T 3 satizfaz as condies 1, 2 e 4.
T satizfaz todas as quatro condies.
T denominada pseudo-inversa de Moore-Penrose e existe para qualquer
matriz.
A pseudo-inversa de Moore-Penrose pode ser obtida por decomposio. Considere uma matriz genrica T F mn com (T ) = r. Seja
T = F RT
F F mr
RT F rn
= RT F
T = RR RT F F T F T
T = R RT R
32
FTF
FT
T = R RT R
1
FTF
1
FT
1
1
FT
FT
R[RT R]1 [F T F ]1 F T
R[RT R]1 F 1 [F T ]1 F T
R[RT R]1 F 1
R[F (RT R)]1
[F 1 T ]T [F (RT R)]1
T T [F RT RF T ]1
T T [T T T ]1
TL1 =
=
=
=
=
=
R[RT R]1 [F T F ]1 F T
(R1 )T [F T F ]1 F T
[F T F RT ]1 F T
[F T T ]1 R1 T T
[RF T T ]1 T T
[T T T ]1 T T
5. (T ) = (T T ) e (T ) = (T T )
6. (T ) = (T )
7. T T e T T so ambas hermitianas e idempotentes3
8. (T A) = A T se uma ou mais das seguintes condies for vlida
(a) T ou AT possui colunas ortonormais
(b) T e A possuem inversas direita e esquerda, respectivamente
(c) A = T T
(d) T m n, A n k e (T ) = (A) = n
(e) T T T AAT = AAT T T T
A idempotente A2 = A.
U com colunas ortonormais U T U = I
34
35