Академический Документы
Профессиональный Документы
Культура Документы
Introduo
Nos ltimos anos, tem-se observado um vertiginoso crescimento do potencial de sistemas robticos. Numa primeira etapa, houve um grande desenvolvimento na rea de robtica industrial, com a utilizao sobretudo de robs manipuladores. Numa segunda etapa de evoluo, pesquisadores em robtica tm concentrado esforos na construo de robs mveis, introduzindo as capacidades de mobilidade e autonomia para reagir adequadamente ao ambiente, o que abre um vasto campo de novas aplicaes e, conseqentemente, muitos desafios [1].
CAPTULO 1. INTRODUO
limites geogrficos, movimentando-se por meio de pernas, lagartas ou rodas, dotados de autonomia ou no, capazes de serem programados em alto nvel via software e de sentir o ambiente a sua volta atravs de seus sensores. Em resumo, so mquinas passveis de locomoo prpria. Da cronologia dos desenvolvimentos relacionados com a tecnologia da robtica, o primeiro rob mvel construdo e reconhecido na bibliografia data de 1968 com a denominao de Shakey (ver Figura 1.1), desenvolvido no Stanford Research Institute (SRI). Este rob era equipado com uma variedade de sensores, incluindo uma cmera de viso e sensores de toque, o que lhe dava a possibilidade de mover-se de um lado para o outro sobre uma superfcie plana.
Figura 1.1 Shakey, o primeiro rob mvel (adaptado de [3]) Outro rob mvel reconhecido um veculo de 1977 denominado de Stanford Cart do Stanford Artificial Intelligence Laboratory [4] (ver Figura 1.2). O Stanford Cart, utilizava um sistema de navegao baseado no parar e seguir, onde a cada metro percorrido, parava, fazia a leitura de seus sensores e realizava o planejamento da rota a seguir.
CAPTULO 1. INTRODUO
Figura 1.2 O rob Stanford Cart [5] Durante os anos 80 vrios trabalhos envolvendo robs mveis foram desenvolvidos em todo o mundo, dentre eles vale ressaltar o Hilare, um rob multisensorial desenvolvido no Laboratoire dArchiteture et dAnalyse de Systmes (LAAS) em 1983 [4] (ver Figura 1.3).
Figura 1.3 O rob Hilare [6] Ao longo dos anos, muita coisa mudou. Hoje em dia, os robs mveis podem ser encontrados nas mais diferentes formas e modelos, o que lhes compete uma infinidade de aplicaes, desde cientficas, industriais e at educacionais.
CAPTULO 1. INTRODUO
CAPTULO 1. INTRODUO
Figura 1.5 O rob mvel Koala [9] Outro bom exemplo de rob mvel de servio o aspirador de p robtico RoboCleaner (Figura 1.6), da empresa alem Alfred Krcher (a maior fabricante de aspiradores do mundo). O RoboCleaner anda aleatoriamente pela casa (recarregando e esvaziando seu compartimento de poeira quando necessrio), percebendo paredes e outros obstculos com seus pra-choques sensveis a impactos. Ele evita escadas e baixo o bastante para aspirar sob os mveis. Um par de "orelhas de borracha" impede que ele fique entalado. Alm disso, ele monitora o fluxo de poeira e se concentra nos pontos mais sujos. Segundo a Krcher, ele pode funcionar semanas sem superviso: o proprietrio s precisa esvaziar o saco de p da estao recarregadora, quando ele fica cheio.
CAPTULO 1. INTRODUO
CAPTULO 1. INTRODUO
A rea acadmica tambm pode usufruir do Alice (Figura 1.8), um rob mvel de dimenses ultra-reduzidas desenvolvido na cole Polytchnique Fdrale de Lausanne (EPFL). Dentre as possveis aplicaes para o Alice est a investigao de comportamentos coletivos, futebol de robs e outros temas ligados s reas da Inteligncia Artificial e Robtica Inteligente.
CAPTULO 1. INTRODUO
O Nomad o primeiro prottipo da empresa LunaCorp e vem sendo testado no deserto de Atakama, no Chile, sob a superviso do Robotics Institute, com financiamento da NASA. O objetivo da empresa criar um parque temtico na Terra, de onde as pessoas podero comandar os veculos e sentir-se virtualmente explorando o solo lunar [4].
CAPTULO 1. INTRODUO
Dentre as etapas envolvidas no planejamento de trajetria de um rob mvel, esto [15]: a) o planejamento da trajetria; b) a determinao do modelo cinemtico; c) a execuo do plano. Na etapa do planejamento, so determinados os pontos por onde o rob deve seguir (trajetria) dentro do seu espao de trabalho para cumprir o seu objetivo. A segunda etapa trata de descrever o rob em funo da velocidade e orientao das rodas no espao (coordenadas do mundo) em que ele est inserido. A ltima etapa tem a misso de executar o planejamento, alcanar efetivamente os pontos desejados, corrigindo possveis desvios da trajetria planejada. Sendo assim, a ltima etapa exerce um papel importantssimo, pois sem o sucesso desta, a etapa do planejamento (primeira etapa) poder ficar totalmente comprometida.
1.4 Objetivos
A proposta inicial do trabalho era desenvolver um sistema de planejamento de trajetrias, ou seja, dadas as posturas inicial e final para o rob, fazer com que ele, dentre os possveis caminhos gerados (levando em conta a presena de obstculos), escolhesse o caminho timo e atingisse a postura final. Entretanto, aps alguns testes preliminares, verificou-se que o rob raramente atingia a posio final desejada, alis, no somente a posio como tambm a trajetria. Diante deste fato, o trabalho tomou um rumo um pouco diferente, pois, de nada adiantaria ter um sistema de planejamento de trajetrias se a mesma no pudesse ser cumprida. Vrias tcnicas para a estimao da posio e orientao de robs mveis esto disponveis [7][17][18]. Entretanto, a maioria delas (GPS, giroscpio, landmarks, viso) sofisticada e de custo elevado. Outras nem tanto (bssola, sonar, encoders). Um mtodo bastante utilizado para se obter a localizao de robs mveis a odometria [19]. A base deste mtodo a utilizao de encoders, que acoplados as rodas do rob, realizam a leitura dos pulsos de revoluo das mesmas. Apesar de ser um mtodo clssico e de boas caractersticas (baixo custo, simplicidade), o mesmo no adequado para trajetrias longas, pois pela prpria natureza do mtodo, os erros vo sendo acumulados ao integrar-se os deslocamentos para obteno da posio e orientao. Alguns trabalhos relacionados ao tema:
CAPTULO 1. INTRODUO
10
em [20] a odometria combinada com a tcnica de landmarks (marcos dispostos no ambiente), com o intuito de se obter uma localizao mais robusta. No entanto, a deteco de landmarks, que possui custo computacional elevado pode ser reduzida substancialmente. Para tanto, a incerteza dos sensores includa ao modelo de odometria, atravs da adio de um rudo gaussiano idntico nos dois encoders. Em resumo, objetiva-se entender como os erros de odometria se propagam e simular uma metodologia que os minimize auxiliando na localizao do rob; em [21] a forma de propagao dos erros de odometria novamente abordada, porm, ao invs de landmarks, utiliza-se linhas pintadas no cho em forma de grid, com o objetivo de melhorar a estimao da posio e orientao do rob; j em [22] investiga-se as causas e prope-se um mtodo experimental de correo para os erros sistemticos de odometria. A proposta submeter o veculo a trajetrias quadradas (sentido horrio e anti-horrio), calcular os erros de localizao ocorridos e ajustar alguns parmetros do modelo cinemtico. Em se tratando da plataforma robtica utilizada, optou-se pela Khepera, devido aos motivos mencionados na Subseo 1.2.3. Ainda, a variedade, a disponibilidade e a facilidade na obteno de material, aliadas ao fato de a UDESC dispor de duas unidades, tornaram a sua escolha um tanto trivial. Quanto a tcnica utilizada para a estimao da posio e orientao, optou-se pela odometria devido a trs motivos principais: 1) o Khepera em sua verso bsica, dispe (unicamente) de dois encoders incrementais como forma de obter sua localizao; 2) a odometria possui baixo custo e de simples implementao; e 3) por este ser um trabalho pioneiro na rea dentro da UDESC. A presente dissertao tem por base o trabalho [22] e suas dissidncias [23][24]. Assim, foram estudados todos os aspectos envolvidos na obteno do modelo cinemtico do rob Khepera e, a partir deste, as possveis fontes dos erros de odometria (sistemticos), quando do seguimento de trajetrias. Propostas de avaliao e correo para estes erros, e de utilizao em situaes de controle puderam ser avaliadas. Ainda, resultados de simulao e experimentais tambm foram implementados, fazendo com que as tcnicas e modelos utilizados pudessem ser validados. Este trabalho, deixa portanto como contribuio, alm dos resultados obtidos e das importantes concluses alcanadas, um ponto de partida para todos aqueles que desejarem explorar o assunto.
CAPTULO 1. INTRODUO
11
1.5 Organizao
O restante desta dissertao est organizado da seguinte forma: o Captulo 2 trata da modelagem cinemtica dos robs mveis. O Captulo 3 descreve em detalhes a plataforma robtica utilizada (o rob mvel Khepera). O Captulo 4 traz um estudo completo sobre a influncia dos parmetros cinemticos na odometria e a forma de corrig-los. No Captulo 5, discutida a forma de controle, juntamente com alguns resultados de simulao e experimentais realizados para trajetrias de interesse. O ltimo, o Captulo 6, traz as concluses alcanadas e algumas propostas para trabalhos futuros. Finalmente, no Apndice A apresentado o programa UMBmark-Khepera utilizado para a avaliao e correo da odometria e no Apndice B, o programa Rastreador-Khepera utilizado no controlador de rastreamento de trajetrias.
Captulo 2
Modelagem Cinemtica
No mundo da robtica mvel, vrias pesquisas esto sendo realizadas com o objetivo de desenvolver (construir e controlar) sistemas de locomoo [25]. Este crescente interesse pelos robs mveis se deve a grande diversidade de tarefas que podem ser por eles realizadas, e adequ-los da melhor forma possvel as exigncias das mesmas (preciso, exatido, e etc) vm se tornando um trabalho imprescindvel. Para o estudo das tcnicas de controle, planejamento e correo de trajetria de robs mveis, o primeiro passo a ser dado definir o tipo de acionamento do rob e a classe a que ele pertence, e em seguida, a sua modelagem. Existem basicamente trs mtodos para o acionamento de robs mveis[19]: Acionamento atravs de rodas; Acionamento atravs de lagartas; Acionamento atravs de pernas.
O acionamento atravs de rodas o mais utilizado, por ser um mecanismo de fcil construo e adaptar-se bem s condies de operao em ambientes internos e externos, desde que as irregularidades do solo sejam praticamente desprezveis. J a utilizao do acionamento atravs de lagartas ou atravs de pernas reserva-se principalmente operao em ambientes externos, onde o solo apresenta geralmente acentuadas irregularidades, pois esses acionamentos permitem aos robs transpor obstculos com maior facilidade. As Figuras 2.1 e 2.2 apresentam, respectivamente, os robs Urbie e Genghis, como exemplos de robs com acionamento atravs de lagartas e atravs de pernas.
13
Figura 2.1 Acionamento atravs de lagartas (rob Urbie [26]) O rob Urbano, apelidado de Urbie, o resultado do esforo conjunto do Jet Propulsion Laboratory (JPL) do California Institute of Technology, iRobot Corporation, Robotics Institute of Carnegie Mellon University, e da University of Southern California Robotics Research Laboratory [27]. O rob Urbie foi projetado para o reconhecimento militar mvel em terrenos acidentados, inspitos e de difcil acesso.
Figura 2.2 Acionamento atravs de pernas (rob Genghis [28]) J o rob Genghis foi desenvolvido no Artificial Inteligency Laboratory do Massachusetts Institute of Technology (MIT) pelo cientista e pesquisador Rodney Brooks [29] com o intuito de desenvolver uma arquitetura de controle robtico similar ao comportamento dos animais. Em [13], fornecida uma srie de outros exemplos de veculos com locomoo por pernas, incluindo sua evoluo, desde as primeiras idias at os dias atuais. Neste trabalho, sero considerados apenas robs com acionamentos atravs de rodas. A Figura 2.3 apresenta o rob Sojourner, como exemplo para este tipo de acionamento.
14
Figura 2.3 Acionamento atravs de rodas (rob Sojourner [30]) Sojourner (do ingls, hspede temporrio) o batismo carinhoso dado ao modelo Rocky 4 [4], resultado das pesquisas do Jet Propulsion Laboratory (JPL) em parceria com a Nasa e enviado a Marte (Misso Mars Pathfinder) com o objetivo de explorar as caractersticas deste planeta e realizar experimentos cientficos [2]. De acordo com [19], quatro tipos de modelos podem ser estabelecidos para robs com acionamento atravs de rodas: modelo cinemtico de postura, modelo cinemtico de configurao, modelo dinmico de configurao e modelo dinmico de postura. Os modelos cinemticos descrevem o rob em funo da velocidade e da orientao das rodas, enquanto os modelos dinmicos descrevem o rob em funo das foras generalizadas aplicadas pelos atuadores, por exemplo, os torques nas rodas. Os modelos de postura consideram como variveis de estado apenas a posio e a orientao do rob, ao passo que os modelos de configurao consideram, alm da postura, outras variveis internas, como o deslocamento angular das rodas. Do ponto de vista de controle da posio e orientao espacial do rob, apenas os modelos de postura so necessrios. A Seo 2.1 apresenta inicialmente a descrio de um rob mvel genrico e a Seo 2.2, os seus possveis modelos de rodas. Em seguida, as restries de mobilidade (Seo 2.3), a diviso dos robs em classes (Seo 2.4) e um exemplo para uma classe de interesse (Seo 2.5). A Seo 2.6 mostra os modelos cinemticos de postura e para finalizar, a Seo 2.7 apresenta as principais propriedades da classe abordada no exemplo. Tanto a descrio quanto os modelos, seguem a formulao semelhante a [31] e as adaptadas por [19][32] e [33].
15
Figura 2.4 Sistemas de coordenadas do rob mvel (adaptado de [32]) Desta forma, as coordenadas de postura do rob, descritas no sistema {Xb, Yb} so dadas pelo vetor (3 x 1):
&x # = $ y! $ ! $ ! % "
(2.1)
e a matriz de rotao do sistema {Xb, Yb} em relao ao sistema {Xm, Ym} de um ngulo dada por: & cos sin 0# R( ) = $ sin cos 0! $ ! $ 0 0 1! % " Esta rotao representa a mudana de uma base velha ( = 0) para uma nova [34]. (2.2)
16
17
A posio desta roda fica, portanto, caracterizada por 4 constantes: , , l e r, e o seu movimento pela varivel temporal (t). A velocidade do rob em relao ao sistema de referncia inercial, descrita no sistema de coordenadas de referncia do rob {Xm, Ym}, dada por: ! ! m = R ( )
(2.3)
Descrevendo esta mesma velocidade em relao a um sistema de coordenadas de referncia {Xw, Yw} associado ao centro da roda, tem a forma: &0 0 0 # w ! ! ! w = R ( ) m + lw $0 0 0! Rm ( ) m $ ! $0 0 1 ! % "
w m
(2.4)
sistema {Xw, Yw} de um ngulo , e definidos por: & l sin # l w = $ l cos ! $ ! $ 0 ! % " & cos sin 0# R ( ) = $ sin cos 0! $ ! $ 0 0 1! % "
w m
(2.5)
(2.6)
(2.7)
18
(2.8)
Dividindo a Equao (2.8) em duas partes e substituindo a Equao (2.7) em ambas, temse para a primeira parte: & sin( + ) cos( + ) 0# . $ ! ! w = $cos( + ) sin( + ) 0! R( ) ! $ 0 0 1! % " e para a segunda parte: & l sin # &0 0 0# & sin( + ) cos( + ) 0# / $ ! ! w = $ l cos ! $0 0 0! $cos( + ) sin( + ) 0! R( ) ! $ !$ ! $ 0 ! $0 0 1 ! $ 0 0 1! % " % "% " & l sin # &0 0 0# ! / = $ l cos ! $0 0 0! R( ) ! w $ ! $ ! $ 0 ! $0 0 1 ! % " % " &0 0 l cos # ! / = $0 0 l sin ! R( ) ! w $ ! $0 0 0 ! % " Somando as Equaes (2.9) e (2.10): (2.10)
(2.9)
! !. ! / w = w + w
&0 0 l cos # & sin( + ) cos( + ) 0# ! ! = $cos( + ) sin( + ) 0! R ( ) + $0 0 l sin ! R( ) ! w $ $ ! ! $0 0 $ 0 ! 0 0 1! % " % "
19
(2.11)
! &r# & sin( + ) cos( + ) l cos # $ 0 ! = $cos( + ) sin( + ) ! l sin ! R( ) $ ! $ ! ! $ ! $ 0 0 1 ! % " % "
(2.12)
de onde se obtm as restries a que est sujeito o movimento do rob para a roda em questo [31][32]: Ao longo do plano da roda: ! ! cos ( + ) l cos ]R( ) + r = 0
[ sin ( + )
(2.13)
Esta restrio declara que o rob pode movimentar-se somente na direo de rolamento da roda e sem a ocorrncia de derrapagens. Ortogonal ao plano da roda: ! sin( + ) l sin ]R ( ) = 0
[cos( + )
(2.14)
Esta restrio diz que o rob dever permanecer esttico (sem derrapagens) na direo ortogonal do rolamento da roda.
20
Figura 2.6 Roda convencional orientvel no-centrada (adaptado de [32]) Desta forma, a Equao (2.5) torna-se [19]:
& d l sin # l w = $ l cos ! $ ! $ ! 0 % " de onde se obtm as seguintes restries de movimento [31][32]: Ao longo do plano da roda:
(2.15)
[ sin ( + )
(2.16)
21
[cos( + )
2.2.4 Rodas Suecas
! ! sin( + ) d + l sin ]R ( ) + d = 0
(2.17)
Esta classe de rodas diferencia-se da convencional fixa ao introduzir mais um parmetro para caracterizar a direo em relao ao plano da roda, que o do componente nulo da velocidade do ponto de contato da roda com o cho, representado por . A Figura 2.7 mostra este tipo de roda.
Figura 2.7 Roda sueca (adaptado de [32]) Assim, o brao de giro da roda (Equao (2.5)) passar a ser dado por [19]:
(2.18)
22
(2.19)
Por outro lado, a velocidade do rob descrita no sistema de coordenadas {Xw, Yw} dada por [19][35]:
(2.20)
Pelo fato de se tratar de uma roda sueca, o componente de velocidade normal desconhecido, pois a velocidade do ponto de contato nesta direo no nula. Com isto, a restrio do movimento da roda pode ser escrita como [19][31][32][33][35]: ! ! cos ( + + ) l cos( + )]R( ) + r cos = 0
[ sin ( + + )
(2.21)
23
A configurao deste rob descrita por intermdio dos seguintes vetores de coordenadas [31]: Coordenadas de postura: (t ) =[x(t )
y (t ) (t )]
Coordenadas angulares: c (t ) e oc (t ) que denotam a orientao das rodas orientveis centradas e no-centradas, respectivamente;
O nmero total de coordenadas de configurao dado por Nf+2Nc+2Noc+Nsw+3 [31]. Assim, as equaes que descrevem as restries (Equaes (2.13), (2.14), (2.16), (2.17) e (2.21)) podem ser escritas na forma matricial:
! ! J 1 ( c , oc ) R ( ) + J 2 = 0
! ! C1 ( c , oc ) R( ) + C 2 oc = 0 onde: & J1 f # $ J ( ) ! J 1 ( c , oc ) = $ 1c c ! $ J 1oc ( oc )! $ ! % J 1sw " & C1 f # C1 ( c , oc ) = $ C1c ( c ) ! $ ! $C1oc ( oc )! % "
(2.22) (2.23)
(2.24)
(2.25)
& 0 # C 2 =$ 0 ! $ ! $C 2 oc ! % "
(2.26)
As dimenses das matrizes J 1 f , J 1c , J 1oc e J 1sw so, respectivamente, ( N f 3) , ( N c 3) , ( N oc 3) e ( N sw 3) . J 2 uma matriz de dimenso ( N N ) , cuja diagonal so os raios das
24
rodas ou, no caso de rodas suecas, o raio das rodas multiplicado por cos . As dimenses da matrizes C1 f , C1c e C1oc so, respectivamente, ( N f 3) , ( N c 3) e ( N oc 3) . A matriz C 2oc uma matriz diagonal que contm as distncias d das rodas no-centradas. Considerando-se apenas as primeiras (N f + Nc ) restries referentes s rodas
convencionais fixas e orientveis centradas, a Equao (2.23) reduz-se a: ! C1 ( c ) R( ) = 0 onde # & C C1 ( c ) = $ 1 f ! %C1c ( c )" (2.28)
(2.27)
! o que implica dizer que o vetor R( ) pertence ao espao nulo da matriz C1 ( c ) , ou seja: ! R( ) C1 ( c )
(2.29)
As limitaes da mobilidade do rob esto relacionadas com o posto da matriz C1 ( c ) , dado por C1 ( c ) . ! evidente que C1 ( c ) 3 . Se C1 ( c ) = 3 , ento R( ) = 0 , o que demonstra a impossibilidade de se realizar algum movimento no plano. Portanto, deve-se ter C1 ( c ) 2 . Assim, define-se o Grau de Mobilidade de um rob mvel com rodas, denotado por m , como sendo [31]:
m = dim C1 ( c ) = 3 C1 ( c )
(2.30)
Por outro lado se C1 f = 2 , ento o rob possui pelo menos duas rodas fixas cujos planos no so paralelos. Se existirem mais de duas rodas fixas, os eixos de todas elas sero concorrentes para o mesmo Centro Instantneo de Rotao (CIR). Como este centro de rotao fixo, devido aos planos das rodas no serem paralelos, o nico movimento possvel
[ ]
25
para o rob a rotao em torno deste ponto (ver Figura 2.8), o que na prtica de pouca ou nenhuma utilidade. Logo, para evitar esta limitao, assume-se que: C1 f 1
[ ]
(2.31)
ou seja, caso o rob possua mais de uma roda convencional fixa, todas elas devem estar montadas em um mesmo eixo.
Figura 2.8 Centro Instantneo de Rotao (adaptado de [32]) Alm disso, tem-se que C1 ( c ) C 1 f + [C1c ( c )]. No entanto, a situao em que C1 ( c ) < C 1 f + [C1c ( c )] corresponde a ter-se os centros das rodas orientveis sobre o eixo comum das rodas fixas, o que faz as rodas orientveis perderem a sua capacidade de atuar sobre a alocao do CIR. Por isso, assume-se que C1 ( c ) = C1 f + [C1c ( c )]. J o Grau de Dirigibilidade de um rob mvel com rodas, denotado por s , definido como o nmero de rodas convencionais orientveis centradas que podem ser orientadas independentemente para dirigir o rob: s = [C1c ( c )] (2.32)
] [ ]
] [ ]
] [ ]
26
Se o rob estiver equipado com um nmero de rodas convencionais orientveis centradas maior do que s ( N c > s ) , o movimento das N c s rodas excedentes dever ser coordenado com as demais, de forma a garantir a existncia do CIR [19]. De forma resumida, a configurao das rodas de um rob mvel deve obedecer as seguintes restries: 1 m 3 0 s 2 2 m + s 3 Com relao as Restries (2.33), (2.34) e (2.35) vlido dizer: O limite inferior da Restrio (2.33) significa que sero considerados apenas os casos em que possvel o movimento; A Restrio (2.34) indica que podem existir no mximo duas rodas orientveis centradas independentes; O limite superior da Restrio (2.35) devido a condio de que C1 ( c ) 2 e, portanto, s = 2 implica m = 1 . As configuraes em que m + s = 1 permitem apenas a rotao em torno de um centro instantneo fixo, sendo portanto desconsideradas. (2.33) (2.34) (2.35)
27
Figura 2.9 (a) Classe (3,0) utilizando rodas suecas; (b) Classe (3,0) utilizando rodas convencionais orientveis no-centradas (adaptado de [32]) Classe (2,0): Robs pertencentes a esta classe (Figura 2.10) possuem uma roda convencional fixa (caso haja mais de uma roda fixa, todas devem estar no mesmo eixo, pois necessrio que C1 f = 1 ) e, portanto, C1 ( c ) = C 1 f + [C1c ( c )] = 1 com [C1c ( c )] = 0 . Os robs desta classe normalmente possuem rodas operando em modo diferencial.
[ ]
] [ ]
Figura 2.10 Classe (2,0) utilizando duas rodas convencionais fixas e uma roda convencional orientvel no-centrada (adaptado de [32]) Classe (2,1): Esta classe de robs (Figura 2.11) apresenta pelo menos uma roda convencional orientvel centrada ( N c 1) , suas orientaes devem ser coordenadas, de forma que [C1c ( c )] = 1 .
28
Figura 2.11 Classe (2,1) utilizando duas rodas convencionais orientveis no-centradas e uma roda convencional orientvel centrada (adaptado de [32]) Classe (1,1): Robs desta classe (Figura 2.12) possuem uma ou mais rodas convencionais fixas montadas no mesmo eixo de rotao e, portanto, C1 f = 1 . Possuem ainda rodas convencionais orientveis centradas (uma ou mais), com a condio de que seus centros no sejam colocados no mesmo eixo das rodas convencionais fixas. Havendo vrias rodas convencionais orientveis centradas, o seu movimento deve ser coordenado, de forma que [C1c ( c )] = 1 .
[ ]
Figura 2.12 Classe (1,1) utilizando duas rodas convencionais fixas e uma roda convencional orientvel centrada (adaptado de [32]) Classe (1,2): Robs pertencentes a esta classe (Figura 2.13) no possuem rodas fixas ( C1 f = 0) . Em contrapartida, possuem duas rodas convencionais orientveis centradas ou mais, desde que seu movimento seja coordenado de forma que [C1c ( c )] = 2 .
[ ]
29
Figura 2.13 Classe (1,2) utilizando uma roda convencional orientvel no-centrada e duas rodas convencionais orientveis centradas (adaptado de [32])
2.5 Exemplo
Neste trabalho, a ateno est voltada a robs mveis pertencentes a Classe (2,0). Por isso, esta seo apresentar um exemplo para esta classe de rob, mais precisamente, o rob da Figura 2.10. Para robs dotados de duas rodas fixas, como o Khepera que ser estudado nos prximos captulos, basta desconsiderar a informao pertinente a roda convencional orientvel no-centrada. Em [31] e [32] so dados outros exemplos para as demais classes de robs mveis, restringindo-se a ateno a robs com trs rodas. Nas sees anteriores, pode-se observar que as rodas de um rob mvel so descritas por seis caractersticas; trs ngulos , , e trs distncias l, r, d. Para o exemplo, fornecida uma tabela (Tabela 2.1) com os valores numricos destas caractersticas e apresentada as vrias matrizes J e C envolvidas nas Equaes (2.22) e (2.23). Da Figura 2.10, obtm-se Tabela 2.1 Caractersticas constantes do rob Rodas 1f 2f 3oc 0 3/2 0 0 l L L L
1 1 sin oc 3
9 7 L 7 L cos oc 3 7 8
(2.36)
30
< r 0 09 : 7 J 2 = :0 r 07 :0 0 r 7 ; 8
(2.37)
0 0 cos oc 3
9 7 0 7 d + L sin oc 3 7 8
(2.38)
(2.39)
Nota-se que as restries de no-derrapagem das duas rodas fixas so equivalentes (ver as primeiras duas linhas de C1); Portanto, a matriz C1* (Equao (2.28)) possui posto igual a um, devido a Restrio (2.31), como esperado [31][32].
(2.40)
aumentada para
31
! @ = R T ( ) ( c ) ?! > c =
(2.41)
que o modelo do sistema no espao de estados, tendo as coordenadas de postura e as coordenadas angulares c como variveis de estado. Como entradas lineares do sistema temse e . Salienta-se que a necessidade de se aumentar a Equao (2.40) devido existncia de rodas convencionais orientveis centradas. Por outro lado se N c = 0 (o rob no possui rodas orientveis centradas), a matriz no depender de c e a Equao (2.40) no precisar ser aumentada. A seguir descrito o modelo cinemtico de postura para cada uma das cinco classes de robs mveis [19]: Classe (3,0): ! & x # &cos $ y ! = $ sin ! $ ! $ ! $ ! $ 0 % " % Classe (2,0): ! & x # &cos 0# $ y ! = $ sin 0! & 1 # ! $ ! $ ! $ ! !! $ 0 $ " % 1! % 2 " % " Classe (2,1): ! & x # &cos( + c1 ) $ y ! $ sin( + ) ! c1 $ !=$ !! $ $ 0 $! ! $ 0 % c1 " % 0 0# & 1 # 0 0! $ ! ! 2 1 0! $ ! !$ ! 0 1" % " sin 0# & 1 # cos 0! $2 ! !$ ! 0 1! $ 3 ! "% "
(2.42)
(2.43)
(2.44)
32
Classe (1,1): ! & x # & L cos sin c 3 $ y ! $ L sin cos ! c3 $ !=$ ! $ ! $ cos c 3 $! ! $ 0 % c3 " % Classe (1,2): ! & x # & L[sin c1 cos( + c 2 ) + sin c 2 cos( + c1 )] $ y ! $ L[sin sin( + ) + sin sin( + )] ! c1 c2 c2 c1 $ ! $ ! $ !=$ sin( c 2 c1 ) $! ! $ 0 $ c1 ! $ ! ! $ $ c 2 " % 0 % 0 0# 0 0! & 1 # ! 0 0! $ 1 ! !$ ! 1 0 ! $ 2 ! % " 0 1! " 0# 0! &1 # ! 0! $ ! % " ! 1"
(2.45)
(2.46)
Genericamente, o modelo cinemtico de postura pode ser reescrito de forma mais compacta [31]: ! z = B( z )u onde, para N c = 0 (o rob no possui rodas orientadas centradas):
(2.47)
z = B( z ) = R T ( )
u=
(2.51)
33
(2.52)
(2.53)
onde na Equao (2.52), I representa a matriz identidade. Aps definidos os modelos cinemticos de postura possvel analisar melhor a questo da manobrabilidade de um rob mvel acionado por rodas. O Grau de Manobrabilidade, denotado por M , definido como M = m + s (2.54)
e fornece o nmero de graus de liberdade que podem ser influenciados diretamente pelas entradas de controle e . Em outras palavras, indica a possibilidade de alocar livremente o CIR: M = 3 indica que o CIR 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); M = 2 indica que a posio do CIR est restrita a pertencer a linha que passa pelo centro das rodas fixas. Esta posio determinada diretamente por para robs da Classe (2,0) ou atravs da orientao das rodas centradas para robs da Classe (1,1). Entretanto, deve-se ressaltar que o nmero de graus de liberdade, que podem ser obtidos diretamente igual a m , pois apenas os graus de liberdade determinados por podem ser obtidos de forma direta. Por outro lado, a ao de nas coordenadas de postura indireta, pois obtida atravs da varivel c , calculada pela integral de . Na prtica, isto pode ser verificado considerando-se que modifica apenas a orientao das rodas centradas do rob e, portanto, apenas influenciar as coordenadas de postura do rob se este se mover. Assim, para um mesmo valor de M , robs com m maior so mais manobrveis. A situao de mxima
34
manobrabilidade se verifica nos robs omnidirecionais (Classe (3,0)), para os quais M = m = 3 . Em [31] e [32] est demonstrado que o modelo cinemtico de postura irredutvel, isto , no existe uma transformao de coordenadas tal que uma das coordenadas identicamente nula. Ainda em [31] e [32], pode ser encontrado, um resumo das principais propriedades referentes a controlabilidade e estabilidade, do modelo cinemtico de postura dos robs mveis com rodas.
Figura 2.14 Realizao da tarefa do estacionamento: a) rob da Classe (2,0); b) rob da Classe (1,1) [36] Outra propriedade importante diz respeito a forma geomtrica. Os robs podem possuir diversas formas e tamanhos, dependendo da natureza da aplicao. Robs destinados a explorao de ambientes devem possuir forma geomtrica circular, de modo a facilitar o contorno de obstculos. Na Figura 2.15a, mostra-se o caso em que um rob de forma circular movimenta-se em parte de um labirinto, desviando de paredes sem maiores problemas, ao
35
passo que, na Figura 2.15b, um rob de forma quadrangular tenta realizar o mesmo trajeto, no entanto, sem sucesso. Robs de forma quadrangular so destinados principalmente ao transporte de materiais e objetos.
Figura 2.15 Realizao da tarefa do labirinto: a) rob de forma circular; b) rob de forma quadrangular [36] A execuo da tarefa do labirinto pelo rob e de outras (estacionamento em pequenos espaos, rotaes em seu prprio eixo) s facilitada ou possvel, se ambas as caractersticas (forma circular e trao diferencial) estiverem reunidas. Sendo assim, uma infinidade de manobras poder ser realizada, dependendo da alocao do CIR (ver Figura 2.16, onde VE e VD so os vetores de velocidade da roda esquerda e da roda direita respectivamente).
36
Observando a Figura 2.16d tem-se que, se os vetores das rodas motrizes estiverem em sentidos opostos, o Eixo Instantneo de Rotao (EIR), que o eixo imaginrio perpendicular ao plano da superfcie de navegao, intercepta a plataforma do rob e, conseqentemente, seu movimento ser uma rotao em torno deste ponto de interseco. Este eixo corta a superfcie de navegao no CIR [25]. Se os mdulos das velocidades forem iguais, mas de sentidos contrrios, o CIR se localizar exatamente sobre o ponto mdio da distncia entre as rodas motrizes. Entretanto, em alguns robs, o ponto mdio entre as rodas motrizes poder no coincidir com o centro geomtrico do rob (distncia a na Figura 2.17a). Desta forma, o rob descrever uma trajetria circular com raio de curvatura. Por outro lado, se a = 0 (Figura 2.17b), o eixo imaginrio entre as rodas motrizes passar pelo centro geomtrico da plataforma e o rob apresentar apenas velocidade angular (rotao pura) sem nenhuma translao, caracterstica importante para manobras do tipo docagem1 [25].
Figura 2.17 Influncia de a sobre a realizao de manobras (adaptado de [25]) Outra propriedade a relacionada a movimentao. Veculos mveis com rodas possuem impedimentos naturais em sua movimentao, que so traduzidos matematicamente por equaes cinemticas restritivas. Como resultado destas restries, chamadas tambm de restries no-holonmicas, robs mveis deste tipo s conseguem deslocar-se na direo para onde esto orientados [37]. Assim, o rob que ser alvo de estudo nos prximos captulos, o Khepera, um representante da Classe (2,0) e dotado de trao diferencial, um sistema noholonmico. No caso em estudo, as duas rodas impedem que ele se movimente lateralmente, devido ao atrito. Desta forma, o rob pode deslocar-se apenas na direo em que est
1
Neste texto, o termo docagem usado para significar o predomnio de muitas curvas em pequenos espaos.
37
orientado. Matematicamente, isto pode ser expresso pelas equaes derivadas das relaes presentes na Figura 2.18.
tan =
(2.55)
Esta restrio (Restrio (2.55)) diz que o rob no poder movimentar-se na direo ortogonal ao seu deslocamento. ! ! Vdt = dx cos + dy sin x cos + y sin = V (2.56)
J esta outra (Restrio (2.56)), diz que o rob poder movimentar-se somente na direo do seu deslocamento. E agrupando-as de forma mais compacta, no modo matricial: ! & cos sin # & x # &V # $ sin cos ! $ y ! = $ 0 ! % "% ! " % "
(2.57)
38
Captulo 3
A Plataforma Khepera
O Khepera (Figura 3.1) um rob mvel (acionado por rodas e pertencente a Classe (2,0)) comercializado pelo K-Team [38] e desenvolvido no Microcomputing Laboratory (LAMI) do Swiss Federal Institute of Technology [39], tambm conhecido como cole Polytechnique Fderale de Lausanne (EPFL), com o apoio de outras entidades de pesquisa da Europa, como University of Zrich, University of Karlsruhe, University of Sussex, Laboratorie dEtudes et Recherche en Informatique e cole Nationale Suprieure (Paris) [4]. Ele foi originalmente projetado para servir de ferramenta de ensino e pesquisa do Swiss Research Priority Program. Com ele possvel testar algoritmos desenvolvidos (em simulao) para a gerao de trajetrias, desvio de obstculos, pr-processamento de informaes de sensores e hipteses no comportamento de objetos mveis [40]. Seu tamanho reduzido (altura da ordem de 30 mm, dimetro de 55 mm e peso de aproximadamente 70 g), incluindo motores, sensores, baterias e processador, aliado a seu custo relativamente baixo, comparado a outros robs no mercado, tem feito o Khepera um sucesso dentro das universidades [4].
40
41
3.2 Sensores
O rob possui ainda oito sensores de proximidade ou luminosidade, que esto posicionados em seu permetro (ver Figura 3.3). Estes sensores so compostos por um emissor e um receptor de luz infravermelha e permitem detectar a proximidade de obstculos atravs da luz que refletida pelos objetos prximos ou a luminosidade do ambiente (quando utilizada somente a parte receptora do dispositivo). Ambas as aes dependem grandemente de vrios fatores: a posio, a distncia, a intensidade, e a cor da fonte de luz (quando utilizado para a deteco da luz ambiente); a refletividade do obstculo (cor, tipo de superfcie...) e a luz ambiente (quando utilizado para a deteco da luz refletida). Maiores detalhes a respeito deste assunto podem ser obtidos em [40].
3.3 Motores
Como atuadores, o Khepera possui 2 motores DC acoplados s rodas atravs de uma reduo de 25:1 (ver Figura 3.3). Um encoder incremental localizado no eixo do motor permite medidas de odometria, fornecendo 24 pulsos por revoluo do motor. Isto proporciona uma resoluo de 600 pulsos por revoluo da roda, o que corresponde a 12 pulsos por milmetro da trajetria do rob. Os motores so controlados diretamente pelo processador utilizando o mtodo PWM (Modulao por Largura de Pulso) com chaveamento a 20 KHz, como ilustrado na Figura 3.4. Estes sinais so impostos aos motores atravs de uma ponte H com tecnologia NMOS [39].
42
Figura 3.4 Mtodo PWM de acionamento dos motores (adaptado de [40]) Ambos os motores DC podem ainda ser controlados, em um nvel mais elevado, atravs de um controlador PID (ver Figura 3.5) usando uma rotina do processador principal. Cada termo deste controlador (Proporcional, Integral, Derivativo) est associado a uma constante: Kp para Proporcional, Ki para Integral e Kd para Derivativo. O controlador do motor pode ser usado em dois modos de controle: um modo para velocidade e outro para a posio. O modo de controle ativado de acordo com o tipo de comando recebido. Se o controlador recebe um comando de controle de posio, o modo de controle automaticamente ativado para o modo de posio. Os diferentes parmetros de controle (Kp, Ki e Kd) podem ser ajustados para cada um dos dois modos.
43
O modo de controle de posio relaciona a acelerao, a velocidade e a posio das rodas do rob conforme a Figura 3.6. Dadas a posio alvo da roda, a acelerao (acc) e a velocidade mxima, o controlador acelera a roda at o valor mximo da velocidade e desacelera proporcionalmente at atingir a posio alvo.
Figura 3.6 Relao entre velocidade e posio (adaptado de [40]) No modo de controle de velocidade, o controlador tem como entrada um valor que define a velocidade das rodas (velocidade de referncia), e controla o motor para manter esta velocidade. A modificao da velocidade realizada to rapidamente quanto possvel, de maneira brusca. Nenhuma limitao na acelerao considerada neste modo.
44
Elemento Processador RAM ROM Motores Acionamento Encoder Unidade de Deslocamento Velocidade Min. Velocidade Max. Sensores Alimentao
Informao Tcnica Motorola 68331 - 16 MHz - 32 bits SRAM - 256 Kbytes EEPROM - 128 a 512 Kbytes 2 servo motores DC PWM - 20 KHz Incremental - 12 pulsos p/ mm da trajetria do rob 1 pulso = 0,081786 mm 1 pulso / 10 ms 127 pulsos / 10 ms 8 (infravermelho) - p/ proximidade ou luz ambiente 4 baterias NiCd (recarregveis) de +1,2 V / 180 mAh Fonte Externa de +8,5 V
Autonomia Mdulos Adicionais Tamanho Peso Distncia entre Rodas Raio da Roda Comunicao Taxa de Transmisso
aproximadamente 70 g 53 mm 7,81 mm Porta Serial RS232 - Protocolo ASCII 9600, 19200 ou 38400 Baud (8 bit, 1 start bit, 2 stop bit, no parity)
Softwares de Controle
Nas Figuras 3.8 e 3.9, possvel identificar algumas das principais partes que compem o rob Khepera.
45
46
Figura 3.10 Modos de funcionamento do Khepera (adaptado de [40]) Ao todo, esto disponveis oito modos de funcionamento para o rob [40]: Modo 0 (modo de demonstrao): executa o algoritmo do veculo de Braitenberg (algoritmo de desvio de obstculos); Modo 1: modo para o controle do rob atravs do protocolo de comunicao serial RS232 com velocidade de 9600 Baud; Modo 2: modo para o controle do rob atravs do protocolo de comunicao serial RS232 com velocidade de 19200 Baud; Modo 3: modo para o controle do rob atravs do protocolo de comunicao serial RS232 com velocidade de 38400 Baud; Modo 4 (modo de aplicao do usurio): inicia um aplicativo armazenado na EEPROM; Modo 5 (modo downloading): neste modo, o rob espera um programa ser transferido e o executa quando totalmente descarregado (formato serial, 9600 Baud); Modo 6: igual ao modo 5, mas com uma taxa de 38400 Baud; Modo 7: teste da funcionalidade do rob, na taxa de 9600 Baud.
47
Comandos de Sistema kopen([port, baud_rate, timeout]) ! abre a porta serial, suportando um baud rate de at 115200 bps; kcmd(ref, text_string) ! envia um comando ao Khepera por uma nica linha de comunicao; kcmd(ref, text_string, 1) ! envia um comando ao Khepera por vrias linhas de comunicao; kclose(ref) ! fecha a porta serial; kFlush(ref) ! esvazia o buffer. Isto til ao esquecer de inserir o parmetro 1 em um comando de vrias linhas de comunicao; Comandos de Informao kBios(ref) kBios(ref) ! mostra a verso da bios e do protocolo; [a,b] = kBios(ref) ! no mostra os valores, mas atribui os valores para a e b;
Comandos dos Sensores kAmbient(ref) ! retorna o valor lido pelos sensores de luz ambiente em um vetor de 8 elementos; kProximity(ref) ! retorna o valor lido pelos sensores de proximidade em um vetor de 8 elementos; Comandos dos Motores/Encoders kGetStatus(ref) ! retorna um vetor de 6 elementos descrevendo o estado dos controladores dos motores; kStatus(ref) ! mostra uma descrio textual do estado dos controladores dos motores; kGetEncoders(ref) ! retorna um vetor de 2 elementos do valor corrente dos encoders;
48
kSetEncoders(ref, left, right) ! configura a posio dos encoders. Se os valores left e right no esto especificados, as posies so configuradas para zero; kSetPWM(ref, left, right) ! configura a velocidade dos motores usando a faixa de valores no PWM (-255...+255);
Controle de Velocidade kGetSpeed(ref) ! retorna um vetor de 2 elementos da velocidade corrente; kSetSpeed(ref, left, right) ! configura a velocidade dos motores, ajustada pelo controlador PID; kStop(ref) ! para o Khepera (configura a velocidade para zero); kSetSpeedPID(ref, Kp, Ki, Kd) ! configura os coeficientes PID do controlador de velocidade. Se os valores no so especificados, eles adquirem o default (3800, 800, 100); Controle de Posio kMoveTo(ref, left, right) ! utiliza o controlador de posio para mover para a posio desejada dos encoders incrementais; kSetPositionPID(ref, Kp, Ki, Kd) ! configura os coeficientes PID do controlador de posio. Se os valores no so especificados, eles adquirem o default (3000, 20, 4000); kSetProfile(ref, velLeft, accLeft, velRight, accRight) ! configura os perfis de velocidade e acelerao do controlador de posio. Se os valores no so especificados, eles adquirem o default (vel=20, acc=64); Outros Comandos kGetAnalog(ref, channel) ! l a entrada de um canal analgico atravs de um conversor A/D de 10 bits; kLED(ref, n, action) ! configura os dois LEDs, onde 'n' e/ou 'action' podem ser vetores. Exemplo: kLED(ref, [0 1], [2 0]) mudar de estado o LED0 e desligar o LED1; kReadByte(ref, address) ! l um byte proveniente do barramento de extenso; kWriteByte(ref, address) ! escreve um byte no barramento de extenso; kTurret(ref, turretID, textString) ! envia um comando no formato string para um mdulo de extenso;
49
kTurretBios(ref, turretID) ! mostra a verso da bios do mdulo de extenso; kBraitenberg(ref, gain) ! demonstra um veculo de Braitenberg. Se o ganho no for especificado, um valor default de 0,7 utilizado.
Obs.: Todos estes comandos compem um pacote de arquivos designado de kMatlab e se encontra disponvel em [38] para downloading. Para finalizar, fornecido um quadro com a equivalncia entre os comandos Khepera (Apndice A do Manual do Usurio [40]) e kMatlab (comandos MATLAB para o rob Khepera) (ver Figura 3.11):
Comando Khepera A - Configure B - Read software version C - Set a position to be reached D - Set speed E - Read speed F - Configure the position PID controller
Equivalente kMatlab kSetSpeedPID kBios kMoveTo kSetSpeed kGetSpeed kSetPositionPID kSetEncoders kGetEncoders kGetAnalog kSetProfile kGetStatus kLED kProximity kAmbient kSetPWM kTurret kReadByte kWriteByte
G - Set position to the position counter H - Read position I J - Read A/D input - Configure the speed profile controller
N - Read proximity sensors O - Read ambient light sensors P - Set PWM (pulse width modulation) T - Send a message to an extension turret
R - Read a byte on the extension bus W - Write a byte on the extension bus
50
Captulo 4
Odometria
Considerando-se que o objetivo principal deste trabalho o de reduzir os erros de posicionamento e orientao de robs mveis (sobretudo nos robs de trao diferencial, como o caso do Khepera), imprescindvel estud-los em detalhe. Vrias tcnicas esto disponveis para a obteno da posio e da orientao de robs mveis, utilizando encoders, viso computacional, sonar e scanner a laser [19]. Uma descrio detalhada destas e de outras tcnicas pode ser encontrada em [7][17] e [18]. A Figura 4.1 apresenta um quadro comparativo das principais tcnicas utilizadas em posicionamento de robs mveis, identificando suas vantagens e desvantagens [21]. Apesar da existncia de vrias tcnicas sofisticadas de posicionamento tais como as que puderam ser observadas na Figura 4.1, uma das mais utilizadas em robtica mvel, devido as suas caractersticas de simplicidade de implementao e baixo custo ainda a odometria. A odometria um mtodo de estimao de posio e orientao que consiste no clculo da posio atual de um rob mvel, integrando a distncia percorrida, a qual medida por intermdio da rotao de suas rodas [21]. A base deste mtodo a utilizao de encoders incrementais, que acoplados ao eixo das rodas do rob, realizam a leitura dos pulsos de revoluo das mesmas. Embora seja um mtodo clssico e de boas caractersticas, o mesmo no adequado para trajetrias longas, onde os erros vo se acumulando (ver Figura 4.2). Estes erros so classificados em: erros de ordem sistmica e erros de ordem no-sistmica, que so discutidos na Seo 4.2.
CAPTULO 4. ODOMETRIA
Sist. de Pos. Odometria Navegao Inercial Bssola Giroscpio Sonar Descrio posio determinada pela integrao da informao da velocidade sensoriamento das mnimas aceleraes em todas as direes e integrao do tempo para se derivar a velocidade e posio medida da direo baseada na leitura do campo magntico terrestre leitura da direo baseada nas propriedades inerciais da alta rotao do motor medida da distncia a partir do tempo de reflexo de pulsos ultra-snicos Vantagens baixo custo sem necessidade de contato com o solo baixo custo no acum. o tempo insensvel a anomalias magnticas baixo custo Desvantagens distncia acumulada tempo acumulado alto custo sensib. magntica preciso limitada tempo acumulado alto custo lento alcance limitado sem focalizao ecos alcance limitado alto custo setup externo
52
medida angular da reflexo do raio de luz emitido medida do tempo decorrido ou defasagem do pulso de luz emitido medida da distncia e/ou ngulo entre o rob e marcos artificiais medida da distncia atravs da comparao de duas imagens Sistema de Posicionamento Global baseado em satlite
baixo custo rapidez rapidez posio absoluta no necessita de setup externo posio absoluta
CAPTULO 4. ODOMETRIA
53
que o Khepera seja um corpo rgido, cujas rodas no sofrem deformao ou derrapagens e que se movimentam apenas no plano horizontal. A posio e a orientao do rob so descritas em relao a um sistema de coordenadas inercial {Xb, Yb} com origem denotada por O, enquanto que um sistema de coordenadas {Xm, Ym} com origem P associado ao corpo do rob, conforme mostra a Figura 4.3.
Figura 4.3 - Coordenadas de postura (posio e orientao) Desta forma, as coordenadas de postura do rob descritas no sistema {Xb, Yb} so dadas pelo vetor:
(4.1)
CAPTULO 4. ODOMETRIA
54
Por se tratar de um rob de configurao trao-diferencial, o Khepera apresenta apenas dois graus de liberdade, isto , as posies angulares das rodas. Assim, possvel realizar apenas dois movimentos independentes: a translao retilnea e a rotao pura. A realizao de qualquer outro tipo de movimento poder ser obtida pela combinao destes dois. A anlise do comportamento cinemtico ser iniciada pela roda, pois ela o elemento responsvel pela movimentao do rob. O tipo de roda utilizado no Khepera a convencional fixa, que obedece seguinte relao: Vr = r R onde: Vr a velocidade linear da roda; (4.2)
Figura 4.4 - Velocidades angular e linear da roda O restante do modelo cinemtico do rob Khepera obtido com base na Figura 4.5, onde P e P representam respectivamente as posies (x, y) e (x, y) do centro geomtrico do rob nos instantes t e t+t; Dr a distncia entre rodas e DP a distncia do centro do rob ao Centro Instantneo de Rotao (CIR); DE, DD e D so os deslocamentos das rodas esquerda, direita e do centro do rob no intervalo de discretizao, assim como VE, VD e V se referem s velocidades lineares da roda esquerda, direita e do centro do rob no mesmo intervalo e a variao do ngulo de orientao no tempo de discretizao.
CAPTULO 4. ODOMETRIA
55
Figura 4.5 - Modelo cinemtico Desta forma, possvel estabelecer a velocidade angular () do rob a partir da seguinte relao: VD VE Dr
(4.3)
(4.4)
CAPTULO 4. ODOMETRIA
56
Alm disso: VD + VE 2
V=
(4.5)
V=
(4.6)
(4.7)
@ x = V cos t D ? y = V sin t D = t > No limite quando t 0, a forma diferencial obtida: ! & x # &V cos # ! = $ y ! = $V sin ! $ !! $ ! ! $ ! $ ! % " % " ou, ainda &cos 0# &V # ! = $ sin 0! $ ! $ ! $ 0 1! % " % "
(4.8)
(4.9)
(4.10)
CAPTULO 4. ODOMETRIA
57
&cos 0# &V D + V E # $ 2 ! ! = $ sin 0! $V V ! $ ! D E ! $ 0 1! $ D % " $ ! r % " Os deslocamentos lineares das rodas esquerda e direita so dados pelas equaes:
(4.11)
D 9 < D E = : D P r 7 2 8 ;
(4.12)
D 9 < D D = : D P + r 7 2 8 ;
(4.13)
Por outro lado, a Equao (4.14) fornece o deslocamento do centro do rob e a Equao (4.15) o ngulo desenvolvido com relao ao CIR no intervalo [t, t+t]: D D + D E 2 D D D E Dr
D =
(4.14)
(4.15)
Outra forma de se obter o deslocamento linear, muito usada para estimar posio e orientao, consiste em contar a quantidade de pulsos obtidos a partir dos encoders de cada roda em um certo intervalo de tempo. A partir do conhecimento do raio das rodas (R) e do nmero de pulsos por revoluo das rodas nos encoders (Nr), pode-se calcular o deslocamento linear das rodas no intervalo [t, t+t] atravs de [17][19]:
CAPTULO 4. ODOMETRIA
58
D E =
2 R N pE Nr 2 R N pD Nr
(4.16)
D D =
(4.17)
onde NpE e NpD correspondem aos nmeros de pulsos obtidos nos encoders das rodas direita e esquerda no intervalo de tempo discriminado.
CAPTULO 4. ODOMETRIA
59
2. Erros no-sistemticos: so caractersticos da relao do rob com o meio ambiente. As principais causas dos erros no-sistemticos so: a) escorregamento das rodas (solo escorregadio, grandes aceleraes do rob, rotaes rpidas); b) imperfeies no solo (rugoso ou com obstculos inesperados); c) outros fenmenos similares. Em solos irregulares, estes erros podem ser dominantes.
Ed =
(4.18)
onde DRD e DRE so os dimetros atuais das rodas direita e esquerda respectivamente. Para valores nominais, Ed = 1. b) incerteza quanto distncia entre rodas: define-se a distncia entre rodas ( D r ) como a distncia compreendida entre os pontos de contato que as duas rodas do rob fazem com o solo. A incerteza desta distncia pode provocar diferenas na contagem dos encoders, e tem efeito somente quando o rob submetido a trajetos curvilneos ou rotaes em torno de seu prprio eixo (ver Equao 4.3). Esta incerteza dependente da relao:
CAPTULO 4. ODOMETRIA
60
E Dr =
Dr , a Dr , n
(4.19)
onde
Dr , a
Dr , n
respectivamente. Para valores nominais, E Dr = 1. Na Figura 4.6, possvel observar um destes erros (provocado pelos dimetros desiguais das rodas). Ela apresenta um rob de trao diferencial tentando executar um arco de circunferncia (de um ngulo ) em torno de seu prprio eixo de rotao (C). Para isto, ambas as rodas devem girar com a mesma velocidade. Porm, como seus dimetros so diferentes, e suas velocidades lineares so proporcionais aos dimetros atuais, DRD e DRE, o CIR (Centro Instantneo de Rotao), representado por O, no coincidir com o ponto central (C) do rob. Ao ser completado o arco, o ponto C se mover para C, provocando um deslocamento lateral. Entretanto, se o rob executar uma rotao completa em torno de seu prprio eixo, este deslocamento lateral poder ser ignorado, pois C e C ficaro novamente sobrepostos.
CAPTULO 4. ODOMETRIA
61
Pode-se, agora, derivar a relao existente entre os dimetros atuais DRD e DRE e o ngulo de rotao atual , de vital importncia para a reduo dos erros de odometria. A partir da Figura 4.6, obtm-se rD D RD = rE D RE onde rD e rE so as distncias do CIR roda direita e esquerda, respectivamente. Segundo as condies normais de manobra, o CIR estar sempre sobre o eixo do percurso ou ao longo da extenso imaginria alm das rodas (ver Figura 2.16 Formas de alocao do CIR ); ento Dr = rD + rE Combinando as Equaes (4.20) e (4.21), e resolvendo para rE, tem-se D RE Dr D RD + D RE (4.21)
(4.20)
rE =
(4.22)
D E , n = DRE ,n N RE
onde DRE,n o dimetro nominal e NRE o nmero de rotaes da roda esquerda.
(4.23)
Ainda, em condies nominais, a roda esquerda deveria rotacionar em torno de C com um ngulo n dado por
n =
DE ,n Dr 2
2 DRE ,n N RE Dr
(4.24)
CAPTULO 4. ODOMETRIA
62
Supondo que a roda direita seja menor do que a roda esquerda, a rotao ocorrer em torno de O e o ngulo correspondente ao deslocamento da roda esquerda ser
DE DRE N RE = rE rE
(4.25)
Resolvendo a Equao (4.24) para NRE e substituindo na Equao (4.25), o ngulo passa a ser expresso em funo de n, isto :
n Dr D RE 2 rE D RE , n
(4.26)
= n
D RD + D RE 2 D RE , n
(4.27)
Para interpretar estes resultados mais facilmente, define-se a mdia do dimetro atual das rodas (DM) como:
DM =
D RD + D RE 2
(4.28)
DM D RE ,n = n
(4.29)
A partir da Equao (4.29) e da Figura 4.6, trs importantes concluses podem ser estabelecidas [23]:
CAPTULO 4. ODOMETRIA
63
1. A diferena no dimetro das rodas no ocasiona erro de orientao durante as curvas, desde que DM = DRE,n. Em outras palavras, qualquer que seja Ed, = n se DM = DRE,n; 2. O erro de orientao depende da mdia atual do dimetro DM, caso DM DRE,n. Isto : se DM > DRE,n, ento o rob far uma curva maior do que a nominal ( > n); se DM < DRE,n, ento o rob far uma curva menor do que a nominal ( < n); 3. A diferena no dimetro das rodas (Ed) provoca erro de posicionamento, fazendo com que a posio (x, y) do ponto central C mova-se para C. Caso o rob execute uma rotao completa em seu prprio eixo, este erro pode ser ignorado, pois C retornar para C.
Mtodo criado e desenvolvido nos laboratrios de Robtica Mvel da Universidade de Michigan em 1994, pelos Drs. Johann Borenstein e Liqiang Feng, ambos do Depto. de Engenharia Mecnica daquele centro.
CAPTULO 4. ODOMETRIA
64
Figura 4.7 Erro de postura do rob para uma trajetria quadrada (adaptado de [22]) Esta diferena expressa pelos seguintes erros:
x = x abs x calc
y = y abs y calc
= abs calc
onde
x , y ,
CAPTULO 4. ODOMETRIA
65
Este experimento realizado cinco vezes no sentido horrio e cinco vezes no sentido antihorrio [24]. Ao realiz-lo em ambos os sentidos, os erros de odometria so evidenciados; do contrrio, poderiam dar a falsa impresso de que os parmetros cinemticos do rob estariam corretos, uma vez que os erros devidos a Ed e E Dr podem se cancelar, como mostra a Figuras 4.8. Entretanto, quando o mesmo experimento realizado no outro sentido, os erros devidos a Ed e E Dr se somam (Figura 4.9). Por outro lado, se o experimento fosse realizado em apenas um sentido, poderia ocorrer o mesmo erro de posicionamento, devido apenas a Ed ou a E Dr , como se observa na Figura 4.10.
Figura 4.8 Probabilidade de cancelamento de Ed e E Dr , quando o experimento realizado em apenas um sentido (adaptado de [17]) Com relao a Figura 4.8 e as seguintes (Figuras 4.9 e 4.10), nas curvas, o ngulo (erro de orientao devido a Ed) assume o valor de (erro de orientao devido a E Dr ), como forma de simplificar a demonstrao. Mais adiante, no decorrer deste captulo, ser discutida em detalhes a relao entre e e suas conseqncias para os erros de odometria.
CAPTULO 4. ODOMETRIA
66
Figura 4.9 Os erros devidos a Ed e E Dr se somam, quando o experimento realizado no outro sentido (adaptado de [17])
Figura 4.10 Ed e E Dr podem provocar o mesmo erro de posicionamento, quando o experimento realizado em apenas um sentido (adaptado de [17])
CAPTULO 4. ODOMETRIA
67
Figura 4.11 Resultados tpicos do mtodo UMBmark (adaptado de [23]) Percebe-se que a posio final do rob ocupa duas reas distintas. O centro de gravidade da rea formada pelo agrupamento de pontos no sentido horrio definido por xc.g.,H e yc.g.,H, calculados a partir de:
CAPTULO 4. ODOMETRIA
68
x c. g , H = y c. g , H
1 n xi,H n i =1
(4.33a)
1 n = yi , H n i =1
(4.33b)
xc. g , AH = yc. g , AH =
1 n xi, AH n i =1 1 n yi, AH n i =1
(4.34a)
(4.34b)
Este procedimento faz com que os erros no-sistemticos presentes (tais como, erros de posicionamento inicial do rob, derrapagens, imperfeies do solo e outros, verificados pelo espalhamento da posio final em ambos os sentidos na Figura 4.8) sejam reduzidos, permanecendo somente os erros sistemticos. O erro de posicionamento absoluto do rob a partir da origem pode ser obtido atravs de
(4.35)
(4.36)
Assim, o maior valor entre rc.g.,H e rc.g.,AH definido como a medida da preciso de odometria dos erros sistemticos [17][22]: E max ., sist . = max(rc. g ., H ; rc. g ., AH ) (4.37)
CAPTULO 4. ODOMETRIA
69
A razo de no ser usada a mdia entre rc.g.,H e rc.g.,AH que, em aplicaes prticas, interessa apenas saber qual a maior probabilidade do erro de odometria. Ainda, o erro de orientao no se encontra explicitado na Equao (4.37), porque se considera que todos os erros sistemticos de orientao esto embutidos no erro de posio final [22]. Em outras palavras, desde que a trajetria possua lados iguais e comprimentos fixos, os erros sistemticos de orientao traduzem-se imediatamente em erros de posicionamento [22], como pode ser observado nas Equaes (4.43), (4.47), (4.51) e (4.55). 2) Erros de Orientao Seguindo o processo de anlise do mtodo UMBmark, duas novas caractersticas podem ser definidas. Estas caractersticas so chamadas de erros do Tipo A e erros do Tipo B, relativas orientao do rob [24]: Erros do Tipo A: erro de orientao que reduz ou aumenta a quantidade total de rotao do rob durante o experimento em ambos os sentidos; Erros do Tipo B: erro de orientao que aumenta a quantidade total de rotao do rob durante o experimento em um sentido, mas reduz no outro. Estas de definies podem ser descritas em forma matemtica como segue: O erro do Tipo A se
total , H
AH
=4
= 4
CAPTULO 4. ODOMETRIA
70
CAPTULO 4. ODOMETRIA
71
Da anlise das Figuras 4.12 e 4.13, pode-se concluir que os erros do Tipo A (denotados por ) ocorrem devido diferena da distncia atual e nominal entre as rodas do rob, ao passo que os erros do Tipo B (denotados por ) ocorrem devido diferena de seus dimetros atuais. Para se obter os valores de e , preciso fazer algumas consideraes [22]: 1. O rob inicia a trajetria em (x0, y0) com posio (0, 0) e a finaliza em (x4, y4); 2. So admitidas as seguintes aproximaes para pequenos ngulos: Lsin L; Lsin2 2L; Lsin3 3L; Lcos L; Lcos2 L; Lcos3 L; onde L o comprimento de cada lado da trajetria quadrada e o erro de orientao causado por Ed ou E Dr e dado em radianos. Mediante as consideraes adotadas, os erros dos Tipos A e B para ambos os sentidos so obtidos como segue: a) Determinao do posicionamento final (x4, y4) em funo dos erros do Tipo A no sentido Horrio: x1 = x0 + L; y1 = y0; x2 = x1 + Lsin L + L; y2 = y1 - Lcos - L; x3 = x2 - Lcos2 L; y3 = y2 - Lsin2 - L - 2L; (4.40a) (4.40b) (4.41a) (4.41b) (4.42a) (4.42b) (4.39) (4.38)
CAPTULO 4. ODOMETRIA
72
(4.43a) (4.43b)
b) Determinao do posicionamento final (x4, y4) em funo dos erros do Tipo A no sentido Anti-Horrio: x1 = x0 + L; y1 = y0; x2 = x1 + Lsin L + L; y2 = y1 + Lcos L; x3 = x2 - Lcos2 L; y3 = y2 + Lsin2 L + 2L; x4 = x3 - Lsin3 - 2L; y4 = y3 - Lcos3 2L; (4.44a) (4.44b) (4.45a) (4.45b) (4.46a) (4.46b) (4.47a) (4.47b)
c) Determinao do posicionamento final (x4, y4) em funo dos erros do Tipo B no sentido Horrio: x1 = x0 + Lcos(/2) L; y1 = y0 + Lsin(/2) L/2; x2 = x1 + Lsin(3/2) L + 3L/2; y2 = y1 - Lcos(3/2) L/2 - L; x3 = x2 - Lcos(5/2) 3L/2; y3 = y2 - Lsin(5/2) - L2 - L; x4 = x3 - Lsin(7/2) - 2L; y4 = y3 + Lcos(7/2) - 2L; (4.48a) (4.48b) (4.49a) (4.49b) (4.50a) (4.50b) (4.51a) (4.51b)
CAPTULO 4. ODOMETRIA
73
d) Determinao do posicionamento final (x4, y4) em funo dos erros do Tipo B no sentido Anti-Horrio: x1 = x0 + Lcos(/2) L; y1 = y0 + Lsin(/2) L/2; x2 = x1 - Lsin(3/2) L - 3L/2; y2 = y1 + Lcos(3/2) L/2 + L; x3 = x2 - Lcos(5/2) - 3L/2; y3 = y2 - Lsin(5/2) - 2L + L; x4 = x3 + Lsin(7/2) 2L; y4 = y3 - Lcos(7/2) - 2L; (4.52a) (4.52b) (4.53a) (4.53b) (4.54a) (4.54b) (4.55a) (4.55b)
Agora, somando-se os erros dos Tipos A e B (pois estes ocorrem juntos) finais para x4 em ambos os sentidos: x4,H: -2L + (- 2L) = -2L( + ) = xc.g., H x4,AH: -2L + 2L = -2L( - ) = xc.g., AH E da subtrao da Equao (4.57) pela Equao (4.56) chega-se a: -4L = xc.g., H - xc.g., AH e isolando : (4.58) (4.57) (4.56)
(x
c. g ., H
x c. g ., AH ) 180 " 4L
para em graus
(4.59)
CAPTULO 4. ODOMETRIA
74
(y
c. g ., H
+ y c. g ., AH ) 180 " 4L
para em graus
(4.60)
(4.61)
(x
c. g ., H
+ x c. g ., AH ) 180 " 4L
para em graus
(4.62)
(y
c. g ., H
y c. g ., AH ) 180 " 4L
para em graus
(4.63)
3) Obteno de E d e E Dr em Funo dos Erros de Orientao Usando relaes geomtricas (ver Figura 4.14), o raio da curvatura Rc do trajeto curvilneo pode ser encontrado a partir do tringulo ABM, onde M o CIR (Centro Instantneo de Rotao do rob), L2 sin( 2)
Rc =
(4.64)
CAPTULO 4. ODOMETRIA
75
Figura 4.14 Raio Rc da curvatura devido a Ed (adaptado de [22]) Uma vez que o raio Rc da curvatura tenha sido calculado, fica fcil determinar a relao do raio (Ed) entre as duas rodas D RD Rc + Dr 2 = D RE Rc D r 2
Ed =
(4.65)
Semelhantemente, E Dr pode ser calculado (desde que a distncia entre rodas Dr seja diretamente proporcional a quantidade atual da rotao (Equao (4.15)) usando a relao a seguir, Dr , a 90
"
Dr , a = Dr , a Dr ,n =
E Dr =
90 " 90 "
(4.69)
CAPTULO 4. ODOMETRIA
76
4) Fator de Correo A correo do erro E Dr trivial: a distncia entre rodas Dr pode ser redefinida em software conforme a Equao (4.67). No entanto, a correo para o erro Ed um pouco mais complexa: aps a realizao do experimento UMBmark, pode-se obter os fatores de correo das rodas a partir do conhecimento de Ed (Equao (4.65)). Entretanto, quando se aplica um fator de compensao, necessrio certificar-se de que no haver mudana no dimetro mdio atual das rodas DM (Equao (4.28)), a no ser que este parmetro tenha que ser recalibrado [22][24]. Isto, s se faz necessrio, caso DM seja consideravelmente diferente do dimetro nominal das rodas Dn, acarretando em uma terceira e potencial fonte de erro. Este erro, denominado de erro de escala Ee, pode ser facilmente medido e corrigido [22]: programa-se o rob para que percorra uma reta de comprimento nominal Ln, porm, na presena de Ee, uma distncia atual La diferente da desejada ser obtida. Portanto, La Ln
Ee =
(4.70)
Desta forma, DM permanecer imutvel e considerado como um valor constante, desde o incio da realizao do mtodo UMBmark. Assim, com base nas Equaes (4.28) e (4.18), 2 DM Ed + 1
D RE = e
(4.72)
CAPTULO 4. ODOMETRIA
77
D RD =
2 1 +1 Ed
DM
(4.73)
Sendo que dois parmetros podem ser obtidos a partir das Equaes (4.72) e (4.73), 2 Ed + 1
CE =
(4.74)
e CD = 2 1 +1 Ed (4.75)
e de seus inversos, obtm-se, finalmente, os fatores de correo das rodas esquerda e direita, respectivamente, 1 CE 1 CD
C RE = e C RD =
(4.76)
(4.77)
Estes dois fatores de correo podem ser implementados em software, reescrevendo as Equaes (4.16) e (4.17): 2 RM N pE C RE N r 2 RM N pD C RD N r
D E =
(4.78)
D D =
(4.79)
CAPTULO 4. ODOMETRIA
78
n
1 2 3 4 5
n
1 2 3 4 5
Com os resultados da Tabela 4.1 e com o auxlio das Equaes (4.59), (4.62), (4.64), (4.65), (4.67), (4.69), (4.74) e (4.75), foram calculados os seguintes parmetros: = 0,9167 = 0,8976 Rc = 1875,02 cm Ed = 1,002831 E Dr = 1,010074 Dr,a = 5,353393 cm
CAPTULO 4. ODOMETRIA
79
CE = 0,998587 CD = 1,001413 Emax.,sist. = 2,65 cm considerando L = 30 cm; = 3,141593; e Dr,n = 5,30 cm. Agora, levando-se em conta os valores de CE e CD obtidos, pode-se calcular o raio e o dimetro atual de ambas as rodas do rob, considerando que o raio nominal Rn = 7,81 mm; e Ee = 1. Logo RM = Rn. Assim, RRE = CE . RM RRE = 7,798962 mm DRE = 2 . RRE DRE = 15,597924 mm RRD = CD . RM RRD = 7,821038 mm DRD = 2 . RRD DRD = 15,642076 mm Os dados da Tabela 4.1 (Khepera descalibrado) podem ainda ser plotados em um grfico, como pode ser observado na Figura 4.15 (4.83) (4.82) (4.81) (4.80)
CAPTULO 4. ODOMETRIA
80
Figura 4.15 Resultado do experimento UMBmark para o Khepera descalibrado Pela anlise da Figura 4.15 e dos resultados obtidos pode-se observar que o agrupamento dos mesmos no sentido anti-horrio apresenta um erro desprezvel enquanto que no sentido horrio perceptvel o erro de posicionamento. Isto ocorre porque quando o rob realiza o trajeto no sentido anti-horrio, os erros provenientes de Ed e E Dr praticamente se cancelam, pois e so de valores semelhantes (fenmeno semelhante a Figura 4.8, com a ressalva de que tem-se (90 - ) nas curvas), ou seja, total, AH = 4 x (90 + - ) 360. Quando o rob percorre o trajeto no outro sentido, os erros provenientes de Ed e E Dr se somam (fenmeno semelhante a Figura 4.9, com a ressalva de que tem-se (90 - ) nas curvas), ou seja, total, H = 4 x (90 - - ) = 4 x (90 - ( + )) 358. De posse dos valores de CE e CD e utilizando as Equaes (4.76) e (4.77), determina-se os fatores de correo das rodas CRD = 0,998589 CRE = 1,001415
CAPTULO 4. ODOMETRIA
81
A correo dos parmetros Ed e E Dr no Khepera feita da seguinte maneira: a) Correo de Ed: realiza-se a correo dos pulsos desejados (utilizando os fatores CRE e CRD) a partir dos pulsos lidos dos encoders das rodas ao final de cada marco artificial implementado em software, sendo que a quantidade de marcos (MA) dada por
< L 9 < L 9 M A : 7 : C RE RD 7 :u 7 : ud 7 ; d8 ; 8
(4.84)
onde ud a unidade de distncia do encoder e vale 0,0081786 cm (ver Figura 3.7 Especificaes tcnicas do Khepera Captulo 3) e L a distncia do trajeto a ser percorrido pelas rodas do rob. Ainda, com relao a MA vlida a seguinte observao: deve-se adotar valores inteiros, uma vez que MA representa a diferena da quantidade total de pulsos desejados dos encoders para o trajeto, anterior e aps a correo. Assim, considerando-se os valores anteriormente calculados MA 5,2 ! MA = 5 b) Correo de E Dr : redefine-se em software o valor de Dr para o Dr,a, ou seja, na equao
DE D =
D r 2 D r D r = = 2 4 2 4
(4.85)
onde DE/D a distncia linear a ser percorrida pelas rodas esquerda e direita a cada 90 ( = 2/4). E convertendo a Equao (4.85) para pulsos de encoder
CAPTULO 4. ODOMETRIA
82
PE D =
DE D ud
(4.86)
onde PE/D representa a quantidade de pulsos de encoder desejados para as rodas esquerda e direita, respectivamente. Aps as devidas correes em software, foram obtidos os seguintes resultados para o experimento UMBmark (Khepera calibrado): Tabela 4.2 Resultados obtidos aps a realizao da correo dos parmetros Ed e E Dr
Sentido Horrio (H) Sentido Anti-Horrio (AH)
n
1 2 3 4 5
x (cm) y (cm)
-0,2 -0,1 0 0,15 0,15 0 0,00 -0,2 0,15 0,05 0,25 0,15 0,1 0,3 0,85 0,17 0,05 0,3
rc.g.,H (cm)
0,21 0,27 0,15 0,18 0,34 1,14 0,23 0,15 0,34
n
1 2 3 4 5
x (cm) y (cm)
-0,05 0,1 -0,1 -0,05 0,05 -0,05 -0,01 -0,1 0,1 0,2 0,2 -0,1 -0,25 -0,25 -0,2 -0,04 -0,25 0,2
rc.g.,AH (cm)
0,21 0,22 0,14 0,25 0,25 1,08 0,22 0,14 0,25
= 0,0048 = -0,0048 Rc = -360000,00 cm Ed = 0,999985 E Dr = 1,000053 Dr,a = 5,350284 cm CE = 1,000007 CD = 0,999993 Emax.,sist. = 0,23 cm
CAPTULO 4. ODOMETRIA
83
Os dados da Tabela 4.2 (Khepera calibrado), quando plotados em um grfico, adquirem a forma mostrada na Figura 4.16.
Figura 4.16 Resultado do experimento UMBmark para o Khepera calibrado Como se pode observar pela Figura 4.16, ocorreu uma melhora significativa quanto ao erro de posicionamento. Levando-se em conta o Emax.,sist, esta melhora foi da ordem de 11,5 vezes.
Captulo 5
Controle e Resultados
Este captulo tem por objetivo avaliar e corrigir os erros de posicionamento e orientao do rob Khepera sob determinadas situaes de interesse, que so: a) submeter e verificar o comportamento do rob perante o controle de rastreamento de trajetrias, e; b) dada uma tabela de valores desejados (orientao do rob, velocidade das rodas e distncia a ser percorrida por elas) fazer com que ele percorra algumas trajetrias especficas. Para tanto, resultados de simulao e experimentais se fazem necessrios e so apresentados como forma de validar o estudo. Quanto ao controle, ser utilizada a tcnica de controle de rastreamento considerando o modelo cinemtico de postura em coordenadas cartesianas (Equao (4.10)). Em outros trabalhos [19][25][33][44], possvel obter informaes em detalhes de uma srie de outras tcnicas, do ponto de vista do controle e para outros modelos de robs da Classe (2,0).
5.1 Rastreamento
O problema do rastreamento da trajetria para veculos no-holonmicos considerado da seguinte maneira: Da Figura 4.5 (ver Captulo 4), obtm-se a seguinte referncia [44]
(5.1)
85
onde pr representa o vetor de postura de referncia e vr o vetor das velocidades linear e angular de referncia. O objetivo encontrar um controlador suave de velocidade, c (t ) = f c (e p , r , K ) tal que lim( p r p ) = 0
t
onde ep, vr e K so, respectivamente, o erro de rastreamento (Equao (5.2)), o vetor de velocidade referencial e o vetor de ganho do controlador.
5.2 Controle de Robs Mveis segundo o Modelo Cinemtico de Postura em Coordenadas Cartesianas
Para o caso do rob mvel rastreando uma trajetria de referncia, como na Seo 5.1, considera-se o erro de postura ep, como a diferena entre a postura de referncia e a postura atual do rob, com a devida transformao de coordenadas [44]. Assim, e p = Te ( p r p ) & e1 # & cos sin 0# $e ! = $ sin cos 0! $ 2! $ ! $ e3 ! $ 0 0 1! % " % " & xr x # $ y y! $ r ! $ r ! % "
(5.2)
onde Te a matriz de rotao do sistema de coordenada inercial {Xb, Yb} em relao ao sistema de coordenada mvel do rob {Xm, Ym}, j definida no Captulo 4.
86
p do rob. O objetivo deste controlador obter a convergncia do erro de postura ep para zero. A estrutura de controle utilizada pode ser visualizada pelo diagrama de blocos da Figura 5.1.
Figura 5.1 Diagrama de blocos do sistema de controle utilizado A regra de controle proposta para o rastreamento de veculos no-holonmicos tem a seguinte forma [33][44]
(5.3)
com c (t ) = f c (e p , r , K , t ) e K = (k1 k 2 k 3 ) T , sendo os parmetros de projeto kis (ganhos do controlador) todos positivos. A estabilidade assinttica da regra de controle da Equao (5.3) ocorre em torno de ep = 0 [44]. No projeto do controlador, os ganhos kis so ajustados experimentalmente de forma a se manter um compromisso entre a velocidade de resposta do controlador e o fato de ser implementvel [44]. Como pode ser observado na Equao (5.3), os ganhos afetam diretamente as velocidades de controle, sendo necessrio, portanto, ajust-los de forma a no ultrapassar os limites de hardware do rob. Outra considerao importante a se fazer no projeto de controladores de rastreamento implementveis com relao gerao da trajetria de referncia: as trajetrias devem ser contnuas e suaves para que o rastreamento seja possvel [44].
87
88
Da Figura 5.2, pode-se verificar que o rob tende a adquirir a trajetria de referncia, mas, devido aos erros de odometria presentes (discutidos no Captulo 4), produz uma trajetria diferente da desejada, com erro acumulativo. Contudo, corrigindo alguns parmetros do modelo cinemtico do Khepera, o rob rastreia perfeitamente a trajetria desejada. Na Figura 5.3, so apresentados os sinais de controle para V, requeridos para que o rob atinja a trajetria desejada. Verifica-se que o rastreamento possvel de ser aplicado na prtica, uma vez que no supera os limites de velocidade do rob.
Figura 5.3 Sinais de controle para V Na Figura 5.4, a velocidade angular de controle do centro do rob apresentada. Depreende-se do seu comportamento a natureza retilnea da trajetria a ser seguida, pois se VE e VD tendem a se igualar (Figura 5.3), tende para zero. A Figura 5.5 apresenta os erros de postura, definidos na Equao (5.2).
89
90
Os erros de postura da Figura 5.5 levam em considerao o modelo cinemtico do rob com seus parmetros corrigidos. Pelo comportamento apresentado (estabilidade assinttica em torno de ep = 0) por estes erros, conclui-se que o desempenho do sistema de controle adotado adequado. O tempo de amostragem (passo de integrao da simulao) considerado nas simulaes foi de T = 0,01 s, igual ao adotado por [44]. Ainda, da integrao da informao da velocidade, observada na Figura 5.3, obtm-se a Figura 5.6. Esta apresenta tanto as distncias de deslocamento das rodas, dadas por DE e DD, respectivamente, roda esquerda e roda direita, quanto a do centro do rob, dada por D.
Figura 5.6 Distncias para o deslocamento do rob Outra trajetria simulada, e que pode ser observada na Figura 5.7 o segmento de curva. Para esta, os ganhos do controlador utilizados na trajetria anterior foram mantidos, ou seja, K = (48 0,12 0,48)T. Entretanto, mudaram as posturas e velocidades de controle para pr = (5 0 /2)T, p = (0 0 /2)T, Vr 2,8 cm/s e r -0,15 rad/s.
91
Figura 5.7 Khepera rastreando uma trajetria curvilnea As demais figuras, isto , as Figuras 5.8, 5.9, 5.10 e 5.11, mostram, respectivamente, os resultados para as velocidades de controle linear, angular, os erros de postura e o deslocamento do rob para a trajetria desejada.
92
93
94
As Figuras 5.12 e 5.13 apresentam o resultado obtido para uma trajetria de referncia do tipo fechada, isto , partindo de um ponto e retornando a ele. Na Figura 5.12, percebe-se claramente uma diferena entre a postura final desejada e a obtida, quando o Khepera rastreia a trajetria de referncia no sentido horrio. Esta diferena resultado da presena dos erros sistemticos de odometria estudados no Captulo 4.
Figura 5.12 Khepera rastreando uma trajetria fechada no sentido horrio A postura de partida do rob foi atribuda como p = (40 5 )T e a de referncia como pr = (40 10 )T. Nas retas, as velocidades de controle foram de Vr 1,6 cm/s e r 0 rad/s e durante as curvas de Vr 1,6 cm/s (com VE 2,4 cm/s e VD 0,8 cm/s) e r -0,30 rad/s. Com relao aos ganhos do controlador de rastreamento, manteve-se os mesmos adotados anteriormente. A Figura 5.13 apresenta o mesmo tipo de trajetria a ser seguida pelo rob, porm, em sentido contrrio, ou seja, anti-horrio. As posturas de partida do rob e da referncia foram atribudas como: p = (40 5 0)T e pr = (40 10 0)T.
95
Figura 5.13 Khepera rastreando uma trajetria fechada no sentido anti-horrio Diante disto, obteve-se o resultado esperado, ou seja, a postura final do rob praticamente foi igual desejada (ver Figura 5.13). Este resultado s pode ser obtido graas ao cancelamento dos parmetros Ed e E Dr (ver Captulo 4). Outra trajetria simulada diz respeito a um circuito sinuoso, fazendo com que o rob realize guinadas tanto para a direita quanto para a esquerda (ver Figura 5.14). Atravs deste circuito possvel observar melhor os efeitos do no seguimento da trajetria desejada (quando da no correo dos parmetros cinemticos do rob), pois mistura retas e curvas em vrios sentidos. Para esta trajetria, a postura de partida do Khepera foi p = (40 5 )T e da trajetria de referncia foi pr = (40 10 )T. As velocidades de controle do rob e os ganhos do controlador de rastreamento foram iguais aos adotados para a trajetria fechada.
96
97
Diante dos problemas comentados no pargrafo anterior, foram feitas as seguintes otimizaes: a) A postura de partida do rob foi igual a de referncia; b) Reduziu-se consideravelmente a quantidade de pontos da interpolao graas a separao entre as retas e as curvas presentes nas trajetrias; c) Nas curvas, a distncia Dp (distncia do centro do rob ao CIR ver Captulo 4, Figura 4.5) foi definida como o produto entre a velocidade V do rob e a distncia do seu centro s rodas dada por Dr 2 , isto , D p = V . ( D r 2) (5.4)
A diferena (em software) entre VE e VD deve ser igual a 2 pulsos/10ms de modo a manter a distncia entre as rodas do rob sempre igual a Dr, j que em hardware este valor fixo. Estas alteraes, alm de tornarem possvel a correo dos erros de odometria, tambm propiciaram ao rob atingir a postura final no tempo previsto. Se as simulaes forem utilizadas apenas como forma de comparao, somente a primeira otimizao (item (a)) se faz necessria. Assim, novas simulaes foram realizadas. Nas Figuras 5.15, 5.16 e 5.17, podem ser observados os resultados obtidos.
98
Figura 5.15 - Khepera rastreando uma trajetria fechada no sentido horrio A postura de partida do rob na Figura 5.15 foi atribuda como p = (40 10 )T e a posio de chegada obtida (considerando os erros de odometria) foi x = 41,9 cm; y = 11,4 cm.
99
A postura de partida do rob na Figura 5.16 foi atribuda como p = (40 10 0)T e a posio de chegada obtida (considerando os erros de odometria) foi x = 39,9 cm; y = 10 cm.
Figura 5.17 - Khepera rastreando uma trajetria sinuosa A postura de partida do rob na Figura 5.17 foi atribuda como p = (40 10 )T, a postura de chegada desejada como p = (24,7 41,5 /2)T. A posio de chegada obtida (considerando o erros de odometria) foi x = 23,2 cm; y = 42 cm. Antes de apresentar os resultados experimentais, necessrio explicar o modo de controle adotado para o Khepera. Utilizou-se o modo de controle por posio, devido ao fato de requerer-se preciso em seus movimentos. No modo de controle por velocidade, a velocidade mnima das rodas de aproximadamente 0,8 cm/s e incrementada na forma de pulsos, ou seja, a velocidade superior a mnima de 1,6 cm/s. Isto implica em movimentos indesejveis, caso fosse necessria, por exemplo, uma velocidade de controle de 1,2 cm/s. No modo de controle por posio, a unidade de deslocamento o pulso de encoder e vale aproximadamente 0,08 mm, aumentando significativamente a preciso dos movimentos do rob. Assim, por intermdio de uma tabela de valores contendo as velocidades, as distncias a serem percorridas nas retas pelas rodas esquerda e direita, e o ngulo das curvas, torna-se possvel realizar e obter os resultados experimentais relativos s trajetrias simuladas. O
100
ngulo das curvas um dado importante, pois, a partir dele fica fcil obter as distncias percorridas pelas rodas, como pode ser verificado nas Equaes 5.6 e 5.7. Para validar os resultados obtidos nas simulaes, foram realizados vrios experimentos com o Khepera (dez vezes para cada trajetria), sendo que a metade, considerando corrigido os erros sistemticos de odometria. Seguem os resultados obtidos: Trajetria Fechada - Sentido Horrio: Aps o rob percorrer a trajetria de referncia gerada a partir da Tabela 5.1 (trajetria desejada na Figura 5.15) com a utilizao do programa de controle do Apndice A, obtiveram-se os resultados da Tabela 5.2: Tabela 5.1 Valores de controle para a trajetria fechada (sentido horrio)
VE(pulso) VD(pulso)
2 3 2 3 2 3 2 3 2 1 2 1 2 1 2 1
DE(mm)
200 200 200 200 -
DD(mm)
200 200 200 200 -
90 90 90 90
y (cm)
11,2 11,5 11,4 11,75 11,6 11,49
y (cm)
9,85 9,7 10,05 9,8 9,9 9,86
Mdia
Mdia
101
Y [cm]
12 11, 8 11, 6 11, 4 11, 2 11 10, 8 10, 6 10, 4 10, 2 10 39, 6 39, 8 9, 8 9, 6 9, 4 9, 2 40 40, 2 40, 4 40, 6 40, 8 41 41, 2 41, 4 41, 6 41, 8 42 42, 2
X [cm]
Sem Correo Com Correo c.g.Sem Correo c.g.Com Correo
Figura 5.18 Resultados obtidos para trajetria (fechada sentido horrio) Analisando a Figura 5.18, pode-se perceber claramente os efeitos da correo realizada, apresentando um resultado bastante semelhante ao da simulao (ver Figura 5.15). Analisando novamente a Figura 5.18, agora considerando o centro de gravidade das duas regies formadas (mdia dos valores de x e y da Tabela 5.2) e a posio desejada, obtmse um rc.g.H = 2,34 cm (sem correo) e um rc.g.H = 0,18 cm (com correo). Considerando estes dois valores, a melhora no erro do posicionamento final obtida com a correo dos erros sistemticos de odometria foi de aproximadamente 13 vezes. Trajetria Fechada - Sentido Anti-Horrio: Aps o rob seguir a trajetria de referncia gerada a partir da Tabela 5.3 (ver Figura 5.16) utilizando o programa de controle do Apndice A, obtiveram-se os seguintes resultados (Tabela 5.4 e Figura 5.19):
102
DE(mm)
200 200 200 200 -
DD(mm)
200 200 200 200 -
90 90 90 90
y (cm)
9,75 10,1 10,25 9,95 9,8 9,97
y (cm)
9,9 9,95 10,15 10,05 9,7 9,95
Mdia
Mdia
Y [cm]
12 11, 8 11, 6 11, 4 11, 2 11 10, 8 10, 6 10, 4 10, 2 10 39, 6 39, 8 9, 8 9, 6 9, 4 9, 2 40 40, 2 40, 4 40, 6 40, 8 41 41, 2 41, 4 41, 6 41, 8 42 42, 2
X [cm]
Sem Correo Com Correo c.g.Sem Correo c.g.Com Correo
103
Pela Figura 5.19, percebe-se que os efeitos da correo realizada apresentam um resultado bastante semelhante ao da simulao (ver Figura 5.16) e ao encontrado no Captulo 4 (cancelamento dos erros provenientes a Ed e E Dr ). Da anlise da Figura 5.19, obtm-se um rc.g.AH = 0,095 cm (sem correo) e um rc.g.AH = 0,086 cm (com correo), acarretando em uma melhora desprezvel.
Trajetria Sinuosa: Mantendo o mesmo procedimento adotado com as duas trajetrias anteriores e aps utilizar os dados da Tabela 5.5, obtiveram-se os seguintes resultados (Tabela 5.6 e Figura 5.20): Tabela 5.5 Valores de controle para a trajetria sinuosa
VE(pulso) VD(pulso)
2 3 2 1 2 3 2 2 1 2 3 2 1 2
DE(mm)
200 200 100 50
DD(mm)
200 200 100 50
180 180 90 -
y (cm)
41,89 42,09 42,24 42,04 42,09 42,07
y (cm)
41,24 41,34 41,59 41,39 41,54 41,42
Mdia
Mdia
104
Y [cm]
42, 6
42, 4
42, 2
42
41, 8
41, 6
X [cm]
22, 8 23 23, 2 23, 4 23, 6 23, 8 24 24, 2 24, 4 24, 6 41, 4 24, 8 25 25, 2
41, 2
41
40, 8
Figura 5.20 - Resultados obtidos para a trajetria sinuosa Da anlise da Figura 5.20, percebe-se que os resultados experimentais obtidos foram bastante semelhantes aos simulados (ver Figura 5.17). Fazendo os clculos, obteve-se um rc.g. = 1,53 cm (sem correo) e um rc.g. = 0,10 cm (com correo). Levando-se em conta estes valores, a melhora no erro do posicionamento final, obtida aps a correo dos erros sistemticos de odometria, foi de aproximadamente 15 vezes.
Captulo 6
106
Avaliao e correo dos erros sistemticos de odometria em robs mveis com acionamento diferencial atravs do mtodo UMBmark. Aplicao do mtodo a plataforma Khepera. Os resultados obtidos evidenciaram a necessidade de correo de alguns dos parmetros cinemticos do rob; Incorporao dos resultados do mtodo UMBmark em situaes de controle. Utilizouse a tcnica de controle de rastreamento em coordenadas cartesianas como forma de verificar a posio e orientao do Khepera, aps a correo de alguns de seus parmetros cinemticos. Diversos resultados de simulao ilustram o bom desempenho da estratgia de controle adotada; Otimizao das trajetrias utilizadas, de modo a confrontar os resultados experimentais com os simulados. Devido a grande quantidade de pontos de interpolao gerados (em virtude do baixo passo de integrao utilizado nas simulaes) foram feitas algumas otimizaes, com o objetivo do rob atingir o ponto final da trajetria, no tempo desejado e com os seus parmetros cinemticos corrigidos.
107
informao de uma bssola digital mediante um filtro de Kalman. Em [47], tcnicas de processamento de imagens, baseadas em landmarks, so combinadas com as informaes de encoders, atravs de um filtro de Kalman Estendido. J em [48], os dados obtidos dos encoders so combinados com uma imagem que contenha pontos conhecidos (posio e orientao conhecidas) do ambiente. Estes pontos podem ser identificados na imagem atravs da Transformada de Hough ou atravs da comparao da imagem com mapas do ambiente e a posio do veculo em relao a este ponto conhecido computada. Mais uma vez, a fuso dos dados pode ser feita utilizando-se um Filtro de Kalman Estendido; Utilizao de um mdulo de comunicao por rdio entre o computador e o Khepera ao invs de fio, como forma de reduzir os erros no-sistemticos de odometria e aumentar o raio de ao do rob; Aplicao das tcnicas de estimao da posio e orientao em combinao com algoritmos reativos, tal como o veculo de Braitenberg [49]; Aplicao das tcnicas de estimao da posio e orientao em conjunto com tcnicas de planejamento de trajetria [7][14], por exemplo: grafos de visibilidade, mapas de grid, campos de potencial, diagramas de Voronoi, lgica Fuzzy ou splines; Aplicao das tcnicas de estimao da posio e orientao em conjunto com tcnicas de navegao autnoma empregando inteligncia artificial, por exemplo, redes neurais [15], algoritmos genticos, ou processamento de imagens baseadas na imposio de limiares [42], ultra-som, e infravermelho; Estudo e incluso da modelagem dinmica do rob; Melhoria na obteno dos resultados experimentais, por exemplo, atravs da monitorao grfica em tempo real do deslocamento do rob; Hierarquizao do controle do rob em camadas de prioridade atravs da Arquitetura de Assuno [50], o que permitiria a realizao de vrias tarefas ao mesmo tempo, por exemplo, a deteco de obstculos, seguimento de fontes de luz, recarga de energia, e etc, combinadas com as tcnicas de predio e correo da posio e orientao; Implementar outras tcnicas de controle, tais como: coordenadas polares, via modos deslizantes ou realimentao variante no tempo [19][33].
108
Relacionar e desenvolver o estudo a outros tipos de robs mveis, inclusive os industriais, por exemplo, os AGVs.
Apndice A
Programa UMBmark-Khepera
A seguir fornecida a listagem completa do programa UMBmark adaptado ao Rob Khepera implementado em MATLAB, juntamente com a tabela de valores para controle.
DE(mm)
300 300 300 300 -
DD(mm)
300 300 300 300 -
90 90 90 90
DE(mm)
300 300 300 300 -
DD(mm)
300 300 300 300 -
90 90 90 90
110
Q=size(valores,1); %quantidade Q de linhas da matriz valores for n=1:Q kSetProfile(ref,Ve(n),256,Vd(n),256); % % Retas % if Ve(n) == Vd(n) p=abs((De(n)/ud)-(Cre*(De(n)/ud))); Ma=floor(p); %calcula a quantidade if Ma == 0 Ma=1; end per=Cre*(De(n)/ud); %pulsos desej. pdr=Crd*(Dd(n)/ud); %pulsos desej. xpe=round(per/Ma); %pulsos desej. xpd=round(pdr/Ma); %pulsos desej. %calcula a dif. p de pulsos Ma de marcos artificiais
p/ p/ p/ p/
a a a a
p/ p/ p/ p/
o o o o
111
Tetarad=(Tetagraus(n)*pi)/180; %converte graus p/ radianos DeltaDe=abs(Tetarad*(Ve(n)*(DrC*(Drn/2)))); %distancia p/ a roda esq. DeltaDd=abs(Tetarad*(Vd(n)*(DrC*(Drn/2)))); %distancia p/ a roda dir. if DeltaDe <= DeltaDd p=abs((DeltaDe/ud)-(Cre*(DeltaDe/ud))); %calcula a dif. p de pulsos Ma=floor(p); %calcula a quantidade Ma de marcos artificiais if Ma == 0 Ma=1; end elseif DeltaDe > DeltaDd p=abs((DeltaDd/ud)-(Crd*(DeltaDd/ud))); %calcula a dif. p de pulsos Ma=floor(p); %calcula a quantidade Ma de marcos artificiais if Ma == 0 Ma=1; end end per=Cre*(DeltaDe/ud); %pulsos desej. p/ a roda esq. p/ o desloc. total pdr=Crd*(DeltaDd/ud); %pulsos desej. p/ a roda dir. p/ o desloc. total xpe=round(per/Ma);%pulsos desej. p/ a roda esq. p/ o segm. de curva xpd=round(pdr/Ma);%pulsos desej. p/ a roda dir. p/ o segm. de curva m=0; for m=1:Ma kSetEncoders(ref,0,0); pos=kGetEncoders(ref); Gxpe=abs(pos(1)); Gxpd=abs(pos(2)); while (Gxpe < xpe)|(Gxpd < xpd) kMoveTo(ref,xpe,xpd); pos=kGetEncoders(ref); Gxpe=abs(pos(1)); Gxpd=abs(pos(2)); end end end kStop(ref); end kclose(ref); %fecha a porta serial (comunicao com o Khepera)
Apndice B
Programa Rastreador-Khepera
A seguir fornecido em diagrama de blocos - SIMULINK, o programa do controlador de rastreamento de trajetrias utilizado nas simulaes, juntamente com os programas em MATLAB com os parmetros de controle e de exibio dos grficos.
113
114
115
116
117
% %Parmetros de controle % %constantes fsicas nominais do Khepera em [cm]: r=0.781; %raio das rodas Drn=5.3; %distncia entre rodas %constantes fsicas atuais do Khepera (aps correo) em [cm]: re=0.7798962; %raio da roda esquerda rd=0.7821038; %raio da roda direita Dra=5.353393; %distncia entre rodas %unidade de velocidade [0.81786 cm/s] = [1 pulso/10ms]: uv=0.81786; %velocidade do rob em [pulsos/10ms]: v=2; %velocidade do rob em [cm/s]: V=v*uv; %correo das velocidades: Ce=1; %fator de correo p/ roda esq. --> =1 (sem correo) Cre=1/Ce; Cd=1; %fator de correo p/ roda dir. --> =1 (sem correo) Crd=1/Cd; %correo da distncia entre rodas. DrC --> =1 (sem correo) DrC=1; %DrC=Dra/Drn; %postura inicial de referncia: xi=40; yi=10; tetai=0; %postura inicial do rob: xir=40; yir=10; tetair=0; %ganhos do controlador de rastreamento: k1=48; k2=0.12; k3=0.48;
118
while 1, which = menu('RESULTADOS', ... 'Posio XY de ref. versus do rob desejada e real', ... 'Erro de postura desejado', ... 'Erro de postura real', ... 'Velocidades desejadas', ... 'Velocidades reais', ... 'Velocidade angular desejada versus real',... 'Velocidade submetida ao rob',... 'Distncia percorrida pelo rob',... 'Sada'); if which == 1, clf; %grfico xyr versus xy plot(pr(2,:), pr(3,:),'green',p(2,:), p(3,:),'blue', preal(2,:), preal(3,:),'red'); grid on; xlabel('X [cm]'); ylabel('Y [cm]'); zoom on; elseif which == 2, clf; %grfico ep1, ep2 e ep3 t = ep(1,:); subplot(3,1,1); plot(t, ep(2,:),'blue'); grid on; ylabel('ep1 [cm]'); zoom on; subplot(3,1,2); plot(t, ep(3,:),'blue'); grid on; ylabel('ep2 [cm]'); zoom on; subplot(3,1,3); plot(t, ep(4,:),'blue'); grid on; xlabel('t [s]'); ylabel('ep3 [rad]'); zoom on;
119
120
Referncias Bibliogrficas
[1] [2] Arago, A., Romero, R., Marques, E. (2000). Computao Reconfigurvel Aplicada Robtica. CORE2000. Da Silva, L. R. (2003). Anlise e Programao de Robs Mveis Autnomos da Plataforma Eyebot. (Dissertao de Mestrado, Programa de Ps-Graduao em Engenharia Eltrica). Universidade do Estado de Santa Catarina UFSC. Florianpolis SC. http://www.frc.ri.cmu.edu/~hpm/talks/Robot.Figures/fig.ch2/p027.html Vieira, R. De S. (1999). Prottipo de um Sistema de Monitoramento Remoto Inteligente. (Dissertao de Mestrado). Universidade do Estado de Santa Catarina UFSC. Florianpolis SC. http://www.frc.ri.cmu.edu/~hpm/project.archive/Image.Archive/Stanford.AI.Lab. 1970s/sail.rod/Cart.side.1979.jpg http://www.laas.fr/~matthieu/robots/images/hilare.gif Heinen, F. J. (1999). Robtica Autnoma: integrao entre planificao e comportamento reativo. (Trabalho de Iniciao Cientfica), Universidade do Vale do Rio dos Sinos UNISINOS, So Leopoldo RS, Brasil. http://www.egeminusa.com/products/AGVS/vehicles/index3.htm http://www.k-team.com/gallery/index.html
[3] [4]
[8] [9]
[10] http://br.wired.com/news/images/full/foto2.223.jpg [11] http://www.contrib.andrew.cmu.edu/%7Erjg/webrobots/alice99.jpg [12] http://grok.ecn.uiowa.edu/Main/Projects/nomad-climb.jpg [13] Silva, M. S., Machado, J. A. T. (2001). Sistemas Robticos de Locomoo Estado da Arte. Departamento de Engenharia Eletrotcnica, Instituto Superior de Engenharia do Porto. Porto, Portugal. [14] Ottoni, G. De L. (2000). Planejamento de Trajetrias para Robs Mveis. (Projeto de Graduao do Curso de Engenharia de Computao), Fundao Universidade Federal do Rio Grande, Rio Grande RS, Brasil.
REFERNCIAS BIBLIOGRFICAS
122
[15] Barreto, G. de A.; Arajo, A. F. R.; Rosa, M. de O (1997). Algoritmo de Busca Heurstica Usando Redes Neurais Competitivas para Planejamento timo de Trajetria de um Rob Mvel. Universidade de So Paulo USP, So Carlos SP, Brasil. [16] Lora, F. A. S., Hemerly, E. M., Lages, W. F. (1998). Sistema para Navegao e Guiagem de Robs Mveis Autnomos. SBA Controle e Automao, Vol. 9, N 3. [17] Borenstein, J.; Everett, H. R.; Feng, L. (1996). Where Am I? Sensors and Methods for Mobile Robot Positioning. University of Michigan Tecnical Report, EUA. [18] Borenstein, J.; Everett, H. R.; Feng, L.; Wehe, D. (1996). Mobile Robot Positioning Sensors and Techniques. University of Michigan, EUA. Invited paper for the Journal of Robotic Systems, Special Issue on Mobile Robots. Vol. 14, N 4. pgs. 231-249. [19] Lages, W. F. (1998). Controle e Estimao de Posio e Orientao de Robs Mveis. (Tese de Doutorado), Instituto Tecnolgico de Aeronutica ITA, So Jos dos Campos SP, Brasil. [20] Valgas Filho, J. H. ., Campos, M. F. M., (2002). Uma Metodologia de Correo Automtica de Erros de Odometria Durante a Navegao do Rob. XIV Congresso Brasileiro de Automtica, Natal RN. [21] Mchler, P. (1998). Robot Positioning By Supervised and Unsupervised Odometry Correction. (Thse de Docteur), cole Polytechnique Fdrale de Lausanne EPFL, Switzerland. [22] Borenstein, J.; Feng, L. (1994). UMBmark A Method for Measuring, Comparing, and Correcting Dead-reckoning Errors in Mobile Robots. University of Michigan Tecnical Report, EUA. [23] Borenstein, J.; Feng, L. (1996). Measurement and Correction of Systematic Odometry Errors in Mobile Robots. University of Michigan, EUA. IEEE Transactions on Robotics and Automation, Vol. 12, N 5. [24] Borenstein, J.; Feng, L. (1995). Correction of Systematic Odometry Errors in Mobile Robots. University of Michigan Tecnical Report, EUA. Procedings of the International Conference on Intelligent Robots and Systems (IROS95) Pitsburgh, Pennsylvania, pgs. 569-574. [25] Martins de Lima, L. E. (1995). Modelagem e Controle de um Rob Mvel a Rodas. (Trabalho de Ps-Graduao), Universidade Federal do Esprito Santo, Vitria ES, Brasil. [26] http://www.jpl.nasa.gov/technology/images_videos/iv_browse/D120299B1browse. jpg [27] http://robotics.jpl.nasa.gov/tasks/tmr/homepage.html
REFERNCIAS BIBLIOGRFICAS
123
[28] http://www.ai.mit.edu/projects/genghis/genghis.jpg [29] Brooks, R. A. (1989). A Robot that Walks; Emergent Behaviors from a Carefully Evolved Network.Artificial Intelligence Laboratory. Massachusetts Institute of Technology. [30] http://www-2.cs.cmu.edu/~mwm/rover/i/sojourner.jpg [31] Campion, G., Bastin, G., D Andra-Novel, B. (1996). Structural Properties and Classification of Kinematic and Dynamic Models of Wheeled Mobile Robots. IEEE Transactions on Robotics and Automation, Vol. 12, N 1, pgs. 47-62. [32] Canudas de Wit, C.; Siciliano, B.; Bastin, G. (1996). Theory of Robot Control. SpringerVerlag, Londres. [33] De Oliveira, V. M. (2001). Tcnicas de Controle de Robs Mveis. (Dissertao de Mestrado), Universidade do Estado de Santa Catarina UFSC, Florianpolis SC. [34] Howard, A., Rorres, C. (2001). lgebra Linear com Aplicaes. Trad. Claus Ivo Doering. 8 Ed., Bookman, Porto Alegre RS. [35] Lages, W. F., Hemerly, E. M. (1998). Controle em Coordenadas Polares de Robs Mveis com Rodas. Anais do XII Congresso Brasileiro de Automtica, Vol. II, Pgs. 605-610, Uberlndia MG. [36] Jones, J. L., Flynn, A. M. (1993). Mobile Robots - Inspiration to Implementation. A K Peters, Wellesley Massachusetts. [37] Alsina, P. J.(2002). Sistemas Robticos Autnomos. (Apostila do curso disponvel em: http://www.dca.ufrn.br/~pablo/cursos.html). Centro de Tecnologia, Departamento de Engenharia de Computao e Automao, Universidade Federal do Rio Grande do Norte UFRN, Natal RN. [38] http://www.k-team.com [39] Mondada,F., Franzi, E., Lenne, P. (1994). Mobile Robot Miniaturization: A tool for investigation in control algorithms. Experimental Robotics III, Proceedings of the Third International Symposium on Experimental Robotics, Kyoto, Japan. Pgs. 501-513. [40] K-Team (1998). Khepera User Manual. Verso 5.0. Lausanne, Switzerland. [41] Floreano, F., Mondada, F. (1998). Evolutionary Neurocontrollers for Autonomous Mobile Robots. Swiss Federal Institute of Technology, Lausanne, Switzerland. [42] Bianchi, R. A. C., Costa, A. H. R., Simes, A. S. (2000). Comportamentos Reativos para Seguir Pistas em um Rob Mvel Guiado por Viso. Escola Politcnica da Universidade de So Paulo, So Paulo SP, Brasil.
REFERNCIAS BIBLIOGRFICAS
124
[43] Michelon, R. (2000). Desvio de Obstculos Utilizando um Ambiente Simulado para o Rob Mvel Khepera. (trabalho de concluso do Curso de Informtica). Universidade Regional Integrada do Alto Uruguai e das Misses URI, Frederico Westphalen RS, Brasil. [44] Pimentel, J. C. (2000). Tcnicas de Viso Computacional e de Controle para Aplicao em Robtica Mvel. (Tese de Mestrado), Instituto Tecnolgico de Aeronutica ITA, So Jos dos Campos SP. [45] Ogata, K. (1998). Engenharia de Controle Moderno. Prentice Hall do Brasil, 3 Edio. [46] Lora, F. A. S., Hemerly, E. M., Lages, W. F. (1997). Estimao em Tempo Real de Posio e Orientao de Robs Mveis Utilizando Sensores com Diferentes Taxas de Amostragem. Anais do 3 Simpsio Brasileiro de Automao Inteligente, Vitoria-ES, pgs. 453-458. [47] Lages, W. F., Hemerly, E. M., Pereira, L. F. A. (1996). Controle Linearizante de uma Plataforma Mvel Empregando Realimentao Visual. Anais do XI Congresso Brasileiro de Automtica, So Paulo, pgs. 537-542. [48] Lages, W. F., Hemerly, E. M. (1995). Tcnicas para Estimao de Posio e Orientao de uma Plataforma Mvel. Instituto Tecnolgico de Aeronutica ITA, So Jos dos Campos SP. [49] Braitenberg, V. (1984). Vehicles: Experiments in syntetic psychology. Cambridge, MIT Press. [50] Xavier, J. E. M. (1996). Uma Estrutura para a Construo de Sistemas de Controle Baseados em Agentes para Robs Mveis. Universidade Federal do Esprito Santo, Vitria ES, Brasil.