TCC Eduardo Rohreducatec.eng.br/engenharia/Monografia de apoio... · 2009-06-14 · O hardware...
Transcript of TCC Eduardo Rohreducatec.eng.br/engenharia/Monografia de apoio... · 2009-06-14 · O hardware...
2
Resumo
Este trabalho tem por objetivo dar continuidade ao estudo da robótica móvel
autônoma no Grupo de Automação e Controle de Sistemas (GACS) da Pontifícia
Universidade Católica do Rio Grande do Sul. Para tanto o robô PITECO – Plataforma
Integrada para Testes de Estratégias de Controle e Orientação – teve seu hardware
elétrico totalmente atualizado. Foram abordados tópicos como navegação, orientação e
controle. No que diz respeito à navegação, este trabalho se preocupou apenas em
interpolar pontos de um ambiente previamente obtidos em trabalhos anteriores
(Conceição, 2003). Para a parte de orientação, foi utilizado um sensor do tipo ultra-
som, montado sobre um motor de passo, caracterizando um sonar. Redes neurais
artificiais são utilizadas para tratar as informações provenientes do sonar. Encoders
nas rodas ativas permitem uma estimativa da postura do robô, através de técnicas de
odometria. Quanto ao controle, dois tipos de problemas foram abordados: estabilização
em torno de um ponto e estabilização em uma trajetória. O hardware mecânico do robô
se caracteriza por duas rodas de tração e uma terceira roda omnidirecional, que serve
apenas como apoio. Desta forma, o problema de controle recai num grupo chamado de
Sistemas não-holonômicos. Foram escolhidos alguns artigos representativos do tema e
suas idéias foram implementadas primeiramente em simulação e posteriormente em
tempo real.
3
Sumário
1. Introdução ...................................................................................................................5 2. Plataforma Utilizada ....................................................................................................6 3. Controle de Robôs Móveis com Acionamento Diferencial.........................................12 4. Métodos de Controle .................................................................................................16
4.1 Métodos em malha aberta ...................................................................................16 4.2 Métodos em Malha Fechada................................................................................17
4.2.1 Estabilização no Ponto ..............................................................................20 4.2.2 Estabilização em uma trajetória .................................................................22
5. Implementação do Controle em malha fechada ........................................................25 6. Localização................................................................................................................30
6.1. Sensor de ultra-som............................................................................................30 6.2. Sonar ..................................................................................................................31 6.3. Rede Neural........................................................................................................31 6.4. Estratégia de localização ....................................................................................32
7. Resultados ................................................................................................................33 7.1. Estabilização em torno de um ponto...................................................................33 7.2. Estabilização em torno de uma trajetória ............................................................36 7.3. Localização por redes neurais ............................................................................38
Conclusões....................................................................................................................42 Referências Bibliográficas .............................................................................................43
4
Lista de Figuras
Figura 2-1: Robô PITECO. ..............................................................................................6 Figura 2-2: Topologia do hardware elétrico do robô. .......................................................7 Figura 2-3: Comunicação entre a FPGA e o microcontrolador. .......................................8 Figura 2-4: Multiplexador principal...................................................................................9 Figura 2-5: Principais sensores. ....................................................................................10 Figura 2-6: Ambiente de controle no MATLAB/Simulink................................................11 Figura 3-1:Topologia do Robô PITECO.........................................................................12 Figura 3-2: Posição e orientação do veículo em coordenadas cartesianas...................13 Figura 3-3: Posição e orientação do veículo em coordenadas polares. ........................15 Figura 4-1: Posição e orientação do robô em coordenadas polares. ............................18 Figura 4-2: Seguimento de uma trajetória. ....................................................................22 Figura 5-1: Velocidade do alvo em função do erro em distância. ..................................28 Figura 5-2. Exemplo de trajetória e erro admissível associado a um ponto. .................29 Figura 7-1: Ambiente de simulação no MATLAB/Simulink. ...........................................33 Figura 7-2: Velocidades nas rodas. ...............................................................................34 Figura 7-3: Saturador ....................................................................................................34 Figura 7-4: Resultados obtidos em tempo real ..............................................................35 Figura 7-5: Mapa do ambiente de localização...............................................................38 Figura 7-6: Erro de localização......................................................................................39 Figura 7-7: Comparação entre dados obtidos e esperados...........................................40 Figura 7-8: Sobreposição do sinal esperado no mapa. .................................................41 Figura 7-9: Sobreposição do sinal real no mapa. ..........................................................41
5
1. Introdução
Este trabalho é parte dos requisitos para a aprovação na disciplina de Trabalho
de Integração do curso de Engenharia Elétrica da Pontifícia Universidade Católica do
Rio Grande do Sul. A área escolhida para a pesquisa é a de robótica móvel autônoma,
por ela agregar conhecimentos de diversas disciplinas do curso de Engenharia Elétrica,
em especial as disciplinas relacionadas a Sistemas de Controle. O objetivo da pesquisa
é dar continuidade ao desenvolvimento do robô PITECO, que foi totalmente projetado e
construído por professores e alunos do Grupo de Automação e Controle de Sistemas –
GACS da PUCRS. Serão implementadas técnicas de controle e localização
encontradas em artigos que normalmente só possuem resultados em simulação.
6
2. Plataforma Utilizada
É conveniente que um robô móvel autônomo que tenha como objetivo o
desenvolvimento de técnicas de orientação, navegação e controle, tenha
características como robustez, facilidade de implementação dos algoritmos, facilidade
de agregar novos sensores e praticidade. Para satisfazer estas necessidades, foi
escolhido o robô PITECO (Pereira et al., 2000, 2001, 2002, 2003), que foi totalmente
desenvolvido com fins didáticos, pelo Grupo de Automação e Controle de Sistemas –
GACS – da Pontifícia Universidade Católica do Rio Grande do Sul. Visando o
aprimoramento constante da plataforma, algumas alterações foram feitas,
principalmente no que diz respeito ao hardware elétrico.
Figura 2-1: Robô PITECO.
As estratégias de navegação e o controle das funções do robô em alto nível são
gerenciadas por um computador portátil que fica sobre o robô. O software utilizado é o
MATLAB/Simulnk, rodando aplicações em tempo real. Esta é uma grande vantagem do
robô PITECO, pois a simulação e a implementação real são feitas no mesmo ambiente,
permitindo que os resultados obtidos sejam facilmente validados. O computador se
7
comunica com uma FPGA, responsável pelo controle em baixo nível das funções
básicas do robô, como ler sensores e atuar nos motores. Um microcontrolador é
utilizado para fazer a interface entre o Laptop, através da porta paralela e a FPGA.
O robô móvel é alimentado através de quatro baterias de 12V/7Ah e conta com
dois motores de corrente contínua acoplados por correias síncronas às duas rodas
ativas. Cada motor possui um encoder com resolução de 500 pulsos por volta. Para a
parte de navegação, o robô conta com cinco sensores do tipo ultra-som, dispostos no
formato de um pára-choque. Na parte mais alta do robô, um motor de passo gira outro
sensor de ultra-som, para que o robô possa obter informações sobre obstáculos em
todas as direções. Um esquema básico da topologia do Robô pode ser visto na figura
2-2.
Figura 2-2: Topologia do hardware elétrico do robô.
Uma das principais modificações feitas no robô foi a troca dos circuitos de
controle. A FPGA utilizada é o modelo fabricado pela ALTERA, ACEX10K50, que
possui apenas memória volátil. Assim, toda vez que o robô é ligado a FPGA deve ser
programada. Anteriormente isto era feito de forma manual, conectando o robô a um
segundo computador, responsável por descarregar o programa para a FPGA. O
modelo atual utiliza uma plataforma também desenvolvida pelo GACS originalmente
utilizada para o controle de motores elétricos (Conte, 2003), que foi adaptada para o
8
caso do robô. Neste modelo, o programa é gravado em uma memória não-volátil
presente no robô e toda vez que é ligado, o microcontrolador transfere o conteúdo da
memória para a FPGA. A figura 2-3 mostra o diagrama em blocos da parte do software
que trata da comunicação entre a FPGA e o microcontrolador.
Figura 2-3: Comunicação entre a FPGA e o microcontrolador.
Um multiplexador principal seleciona qual sensor será lido. Cada sensor é
mapeado em um endereço, assim o programa que roda no MATLAB/Simulink pode ler
a velocidade de uma roda, por exemplo, através de uma simples operação de leitura. A
figura 2-4 mostra o multiplexador principal com entradas para sensores de velocidade,
ultra-som e sensores de aceleração, utilizados experimentalmente.
9
Figura 2-4: Multiplexador principal.
A grande vantagem do uso de FPGA é a possibilidade de processamento
paralelo. Assim, as informações de vários sensores são tratadas simultaneamente.
Desta forma, cada sensor recebe um bloco específico que controla suas funções e
armazena os resultados. A figura 2-5 apresenta os principais controles de sensores
10
Figura 2-5: Principais sensores.
Além dos sensores já mencionados, percebe-se que o programa prevê o uso
futuro de outros sensores como acelerômetros.
Para fazer a interface entre a placa principal de controle que contém o
microcontrolador, a FPGA e a memória não-volátil, foi desenvolvida outra placa que
contém isolamento óptico para o sinal de controle dos motores, fontes de alimentação,
circuito de controle para o motor de passo, conectores específicos para os sensores
existentes e conectores para possíveis sensores que se deseje agregar ao robô.
Para o acionamento dos motores, foram utilizados dois circuitos em ponte H com
chaves do tipo mosfets, ligados às baterias de forma que possibilitam alimentar cada
motor com até 24V.
O ambiente integrado de simulação e funcionamento em tempo real que roda
sobre o MATLAB/Simulink permite que as técnicas de controle, navegação e orientação
desenvolvidas em simulação sejam facilmente implementadas no robô. O ambiente
básico utilizado é mostrado na figura 2-6.
12
3. Controle de Robôs Móveis com Acionamento Diferencial
A plataforma onde o trabalho foi desenvolvido constitui-se de uma base metálica,
sobre a qual estão os circuitos eletrônicos, baterias, motores e um computador portátil
para o controle. Nesta base estão acopladas duas rodas paralelas acionadas de
maneira totalmente independente e uma terceira roda omnidirecional que serve apenas
como apoio. A figura 3-1 ilustra a topologia do robô.
Figura 3-1:Topologia do Robô PITECO.
A seta representa a orientação do robô, ou seja, a direção em que ele pode se
movimentar considerando sentido positivo para a velocidade linear. O ponto A é o
ponto médio da linha imaginária que une os eixos das rodas ativas.
O primeiro passo para entender o problema do controle deste tipo de robô é
modelar o sistema, tarefa que pode ser dividida em duas partes: modelo cinemático e
modelo dinâmico. O modelo cinemático do robô é utilizado para estudar as
características físicas e restrições de movimentos. Já o modelo dinâmico apresenta as
características do robô no que se refere à resposta de referências externas ao longo do
tempo, considerando sua massa, momento de inércia, dinâmica dos atuadores,
A
13
motores e forças de atrito envolvidas. A maioria da literatura existente trata apenas do
modelo cinemático, pois as influências do modelo dinâmico podem ser desprezadas
quando as velocidades envolvidas são pequenas. Este trabalho também se preocupa
apenas com modelagem cinemática do problema.
A figura 3-2 ilustra as principais variáveis que se deseja controlar.
Figura 3-2: Posição e orientação do veículo em coordenadas cartesianas.
Onde Xr - coordenada X do ponto A;
Yr - coordenada Y do ponto A;
ø - ângulo entre a orientação do robô e o eixo X;
v - velocidade linear do robô;
w - velocidade angular do robô em trono do ponto A.
Fica claro que se trata de um sistema sub-atuado, pois se deseja controlar três
variáveis (Xr, Yr e ø) com atuação em apenas duas (v e w). Uma restrição importante é
imposta ao modelo: o robô não pode se movimentar na direção do eixo que passa pelo
centro das rodas ativas. A velocidade no eixo X e a velocidade no eixo Y são obtidas
A
Xr
Yr
X
Y
ø
v
w
14
1/ 2 1/ 2.
1/ 1/
v Vd
w d d Ve
= −
pela decomposição da velocidade linear v. A velocidade angular é dada diretamente
pelo sinal de controle. O modelo cinemático que descreve este sistema é dado por:
w
vrY
vXr
=
=
=
•
•
•
ø
)øsin(
)øcos(
(3.1)
O mesmo problema pode ser escrito na forma matricial:
=
•
w
vsenYr
Xr
.
10
0
0cos
φφ
φ (3.2)
A forma de atuação sobre o robô não é diretamente sobre as velocidades linear
e angular do robô, mas pela velocidade de cada uma das rodas ativas. A velocidade
linear é dada pela média das velocidades das duas rodas atuadas e a velocidade
angular é calculada com base na diferença entre elas. As seguintes equações mostram
a relação entre as velocidades do robô e das rodas.
(3.3)
Onde “d” representa a distância entre as duas rodas ativas.
Esta representação do robô serve como base para outras formas de equacionar
o problema, chamadas de formas canônicas. Uma outra forma de modelar o problema
é através de coordenadas polares, na qual as equações passam a ser:
=
•
w
vsen
e
.
10
0
0cos
φφ
φθ (3.4)
Onde ‘e’ é a distância entre o ponto A do robô e a origem do referencial inercial
e ‘θ ’ é o ângulo formado entre o eixo x e o segmento ‘e’, conforme mostra a figura 3-3.
15
Figura 3-3: Posição e orientação do veículo em coordenadas polares.
Infinitas formas canônicas podem ser encontradas manipulando a modelagem
básica do robô (Figueiredo & Jota, 2004). Grande parte da pesquisa na parte de
controle deste tipo de robô busca encontrar uma forma canônica na qual se possa
implementar um controle com vantagens sobre os existentes.
A
X
Y
ø
v
w
e
θ
16
4. Métodos de Controle
O controle de robôs móveis com acionamento diferencial pode ser dividido em
dois grupos, de acordo com a teoria de controle clássica: métodos em malha aberta e
métodos em malha fechada. Os métodos em malha aberta consistem basicamente em
determinar previamente uma trajetória a ser seguida, respeitando as limitações do
acionamento diferencial. Já os métodos em malha fechada utilizam a informação da
posição do robô e sua orientação para realimentar o sistema.
4.1 Métodos em malha aberta
Os métodos de controle em malha aberta, também conhecidos como
planejamento de trajetória, devem levar em consideração as restrições instantâneas de
movimento do robô. As técnicas mais utilizadas atualmente são baseadas em
geometria e álgebra diferencial, fase geométrica, parametrização de entrada, controle
ótimo de movimento e planejamento do movimento evitando obstáculos.
O método utilizado no robô PITECO em trabalhos anteriores (Conceição, 2003)
é o de planejamento do movimento evitando obstáculos. O planejamento do caminho é
feito utilizando o algoritmo A-estrela, que determina o caminho com menor custo
evitando obstáculos. Este método determina pontos distantes entre si, chamados de
nodos, que o robô deve percorrer para chegar ao seu destino. O caminho entre estes
pontos é determinado através de um método por interpolação cúbica. Os sinais de
controle que fazem o robô percorrer a trajetória desejada são as referências do bloco
de controle das rodas. O controle da velocidade de cada roda é feito em malha
fechada, através de um controlador do tipo PI, porém, o robô não possui em nenhuma
parte uma realimentação da sua posição e orientação. Com isto, supõe-se que o
controle de cada roda tenha sempre erro nulo. Isto pode ser considerado, devido às
17
limitações no sinal de controle, que são levadas em consideração na determinação das
trajetórias.
4.2 Métodos em Malha Fechada
Métodos de controle em malha fechada utilizam-se das informações
provenientes dos sensores para determinar a postura, ou seja, a posição e orientação
do robô. Esta postura é comparada com uma referência e o sinal de erro resultante é
aplicado ao controle. Os principais objetivos deste método são a estabilização do robô
em torno de um ponto e o seguimento de uma trajetória.
Pode-se citar como principais técnicas em malha fechada para o controle de
robôs móveis com acionamento diferencial: rastreamento de trajetórias não singulares
usando realimentação dinâmica de estados, estabilização suave no tempo,
estabilização usando sinais não contínuos ou transformações não lineares e
controladores híbridos. Neste trabalho é utilizada uma adaptação da técnica de
estabilização utilizando sinais não contínuos ou transformações não lineares, proposta
por Aicardi, 1995.
Como foi visto anteriormente, algumas técnicas de controle utilizam formas
canônicas do problema para encontrar soluções que satisfaçam os requisitos
desejados. A forma proposta por Aicardi (1995) consiste em modelar o problema
utilizando coordenadas polares.
Será considerada a origem do referencial <g> como sendo a posição a ser
alcançada e o alinhamento do robô na direção do eixo x de <g> como a orientação
desejada. Neste caso, os estados ‘e’, ‘α ’ e ‘θ ’ representam erro de posição, em
coordenadas polares representado por ‘e’ e ‘θ ’ e erro de alinhamento, representado
por ‘α ’. Entende-se por erro de alinhamento a diferença angular entre a orientação
desejada e o ângulo ‘θ ’, que descreve a direção que o robô deve ir para chegar à
origem de <g>.
18
X
Y
ø w
θ
α u
e
<g>
Figura 4-1: Posição e orientação do robô em coordenadas polares.
=
−=
−−=
w
senu
ue
φφθθ
φθ
&
&
&
)(.
)cos(.
(4.1)
Onde u representa a velocidade linear do robô e w representa a velocidade
angular do robô.
O método proposto por Aicardi visa minimizar as variáveis ‘ e’, ‘α ’ e ‘θ ’,
descritas na equação 4.1, o que implica em dizer que a configuração final do robô é
esperada na origem do referencial <g>, com orientação 0º. Como se trata de um caso
particular, para alcançar outras configurações finais deve-se transladar e rotacionar o
referencial <g> em relação ao referencial inercial a fim de atingir a configuração
desejada.
A substituição de )( φθ − por α nos leva à equação 4.2.
19
=
+−=
−=
e
senu
e
senuw
ue
)(.
)(.
)cos(.
αθ
αα
α
&
&
&
(4.2)
Nota-se que esta forma de equacionamento apresenta uma singularidade para o
caso de e=0.
A equação (4.2) deve ser perfeitamente compreendida, pois será utilizada como
base para todo o controle que apresentado a seguir, portanto será detalhada cada
expressão.
)cos(. αue −=& (4.3)
A derivada do erro em distância é igual à componente da velocidade linear na
direção da origem do referencial <g>. O sinal negativo indica que o erro em distância
deve diminuir quando o robô estiver orientado na direção da origem de <g>.
e
senvw
)(.
αα +−=& (4.4)
A derivada do ângulo entre o alinhamento do robô e a direção que leva à origem
é igual à velocidade angular somada a componente da velocidade linear normal à
direção da origem do referencial <g>. Esta componente ‘ )(. αsenv ’ é normalizada pela
distância ‘e’, que se comporta como o raio da trajetória.
e
senv
)(.
αθ =& (4.5)
A variação do ângulo θ , lembrando que θ indica a direção da origem do
referencial <g> para o robô, é dada diretamente pela componente da velocidade linear
normal à θ . Esta componente ‘ )(. αsenv ’ também é normalizada pela distância ‘e’.
Pode-se então escrever a equação (4.2) da seguinte forma:
20
−−
=
•
w
u
esen
esen
e
.
0/)(
1/)(
0)cos(
αα
α
θα (4.6)
4.2.1 Estabilização no Ponto
Pode-se definir o problema da estabilização em um ponto da seguinte maneira:
“Seja um robô móvel com acionamento diferencial localizado inicialmente a uma
distância não nula do referencial-alvo <g> e assumindo que as variáveis [ e, α, θ ] ’são
diretamente mensuráveis para qualquer ponto onde 0>e . Encontrar uma lei de
controle [u,w]’ = ),,( θαeg que garanta que os estados convirjam assintoticamente para
o estado [0,0,0]’ sem atingir a condição e = 0 em tempo finito” (Aicardi, 1995).
Para encontrar tal lei de controle é utilizada a teoria da estabilidade de
Lyapunov. Este método consiste basicamente em encontrar uma função, denominada
função candidata de Lyapunov tV ∀> 0),,( θαλ , cuja derivada temporal deve ser
negativa para qualquer tempo finito, i. e. tV ∀< 0),,( θαλ& . Em outras palavras, as
variávei utilizadas para o equacionamento da função candidata devem diminuir
progressivamente sua energia, caracterizando estabilidade.
A função candidata de Lyapunov escolhida é:
( )222
2
1
2
1 θαλ heV ++= (4.7)
Cuja derivada é dada por:
( )θθααλ &&&& heeV ++= (4.8)
Substituindo [ θα ,,e ]’ de acordo com (5.2) , chega-se a:
+
+−+=e
senuh
e
senuweuV
)(.
)(.)cos(
αθαααλ& (4.9)
21
Esta função deve ter derivada negativa, portanto deve-se escolher um controle
[ wu, ] que satisfaça tal condição. Para facilitar a análise, a função foi dividida em duas
partes:
21 VVV &&& += (4.10)
)cos(1 αλevV =& (4.11)
+
+−=e
vhe
vwV)sin()sin(
2
αθαα& (4.12)
O controle ‘u ’ é determinado pela análise de (4.11).
)cos(αγev −= (4.13)
A prova da estabilidade é obtida pela substituição de (4.13) em (4.11):
0,0,0)( 221 >>≤−= γλαλγ esenV& (4.14)
Agora é feita a substituição de (4.13) em (4.12):
−+
−−=e
seneh
e
senewV
)().cos(
)().cos(2
ααγθααγα& (4.15)
( ) ( ))()cos()()cos(2 ααγθααγα senhsenwV −+−−=& (4.16)
++−= )()()cos(
2 θαα
ααγα hsen
wV& (4.17)
Assim, o controle ‘ w ’ é definido por:
)()()cos( θα
αααγα h
senkw ++= (4.18)
A prova da estabilidade é obtida pela substituição de (4.18) em (4.12).
22
+++−−= )()()cos(
)()()cos(
2 θαα
ααγθαα
ααγαα hsen
hsen
kV& (4.19)
0,022 >≤−= kkV α& (4.20)
Portanto as leis de controle que levam o robô à origem do referencial-alvo <g>
são:
++=
−=
)()()cos(
)cos(
θαα
ααγα
αγ
hsen
kw
eu (4.21)
4.2.2 Estabilização em uma trajetória
O problema da estabilização em uma trajetória consiste em determinar uma
trajetória sobre a qual o veículo deverá se mover de forma suave. Dado um caminho
orientado, parametrizado por ‘s’ e denotando por p(s) o estado que o veículo assume
ao longo do caminho, considere-se a possibilidade de movimento contínuo de p(s)
sobre o caminho ‘s’.
Figura 4-2: Seguimento de uma trajetória.
Assim, considerando p(s) como o objetivo a ser alcançado, verifica-se através da
imposição de movimento de p(s) que as equações cinemáticas (4.2) se modificam:
s p(0)
p(s)
23
−−=
−+−=
+−=
)(
)(sen)sen(.
)(sen)sen(.
)cos()cos(.
sR
s
es
eu
es
euw
sue
&&&
&&
&&
θαθ
θαα
θα
(4.22)
Onde R(s) é o raio de curvatura do caminho S. É importante ressaltar que o raio
de curvatura pode assumir valores positivos e negativos, dependendo da posição do
centro da curva em relação ao caminho. Comparando (4.2) com (4.22), percebe-se que
os termos adicionados estão todos multiplicados por s& .
Uma característica deste tipo de controle é a imposição da orientação do robô
sobre a trajetória, devido ao fato do veículo se mover apenas em uma direção. Assim,
dados dois pontos A e B, consecutivos em uma trajetória, a única orientação do veículo
que leva do ponto A para o B, é a mesma do vetor AB . Como o sistema de
coordenadas se move com o deslocamento do alvo p(s) de forma que o eixo x do
sistema de coordenadas aponte para a direção a ser seguida, esta deve ser também a
orientação do veículo.
Comparando os termos adicionados aos existentes na equação (5.2), verifica-se
que aos termos relacionados a velocidade linear imposta ao veículo pelo controle ‘u’ é
somada a velocidade s& na qual o alvo se move. O sinal contrário da velocidade
imposta pelo movimento da referência p(s) é devido ao fato do erro aumentar conforme
aumenta a velocidade do alvo. Verifica-se também a substituição de ‘α’ por ‘θ’ onde se
está decompondo a velocidade. Isto ocorre porque ‘α’ leva em consideração a
orientação do veículo, que não tem relação direta com o movimento do alvo p(s).
A seguinte política para a determinação da velocidade s& é adotada:
≤++=
>++==
εθαλθαεθαλ
)( ),,f(e,
)( 0,222
222
heV
heVs& (4.23)
Onde V é a função candidata de Lyapunov, que expressa o erro de posição e de
alinhamento. A variável ε indica o erro máximo para a qual o sistema é governado pela
equação (4.22). Quando o erro (V) for maior que ε, a referência de velocidade pára de
se mover ( s&= 0 ) e o sistema se comporta como o descrito por (4.2). Note que isto
ocorre pois todos os termos acrescentados em (4.22) são multiplicados por s& .
24
Em torno do alvo p(s) é criada uma região elipsoidal no espaço de estados do
robô, dentro da qual o erro é admissível. A função f( θα ,,e ) expressa a velocidade que
a referência p(s) deve se deslocar. Assim, f( θα ,,e ) deve ter um valor máximo quando o
veículo estiver sobre o alvo p(s) e valor nulo para o caso do robô estar sobre a borda
da elipsóide. As leis de controle utilizadas são as mesmas de (4.21).
25
5. Implementação do Controle em malha fechada
Seja a configuração do robô descrita pela tripla 12),,( SRyx RR ×∈φ , onde ),( RR yx
são as coordenadas de um ponto de referência sobre o robô, relacionado ao sistema
cartesiano inercial e φ o ângulo entre os eixos x, no sentido positivo, do robô e do
sistema Cartesiano inercial. Da mesma maneira, a postura desejada para este robô,
pode ser representada pela tripla 12),,( SRyx TT ×∈σ , onde a interpretação é equivalente
a explicada anteriormente. A diferença entre a postura desejada e a atual, em
coordenadas polares, é determinada pelas seguintes equações.
22 yxe ∆+∆= (5.1)
∆∆=
x
ya tanθ (5.2)
onde RT xxx −=∆ e RT yyy −=∆ .
O sub-índice “C” indica relação ao robô (car), enquanto que “T”, expressa
relação ao alvo (target).
Então, derivando estas equações em relação ao tempo e considerando o alvo
em movimento, tem-se:
TT
RR
TT
RR
yy
ey
y
ex
x
ex
x
ee &&&&&
∂∂+
∂∂+
∂∂+
∂∂= (5.3)
TT
RR
TT
RR
yy
yy
xx
xx
&&&&&
∂∂+
∂∂+
∂∂+
∂∂= θθθθθ (5.4)
Fazendo φθα −= e desenvolvendo as equações acima, tem-se:
26
−++−=
−+=
+−=
ssinee
vsin
ssinee
vsin
ssinve
&&
&&
&&
))cos(),((1)(
))cos(),((1)(
))(),(cos()cos(
θθαωα
θθαθ
θθα
(5.5)
onde TTT )y,x(s &&& = .
O eixo X do sistema de coordenadas do alvo aponta para a direção tangente à
trajetória, fazendo com que o termo yT seja nulo. Neste caso, não há informações no
modelo que permitam que a trajetória mude sua direção, apenas sua velocidade. Uma
perturbação é adicionada na equação 5.5, no parâmetro θ , a fim de representar as
curvas da trajetória.
)())cos(),((
1)(
sR
sssin
ee
vsin &&& +−+= θθαθ (5.6)
Considerando apenas o problema da estabilização em torno de um ponto, 0=s& ,
a seguinte função candidata de Lyapunov é proposta.
222
2
1
2
1
2
1 θα ++= eV (5.7)
Como solução para este problema, as seguintes leis de controle foram obtidas
(Aicardi, 1995).
++=
−=
)()sen()cos(
)cos(
θαα
ααγα
αγ
hkw
ev
(5.8)
A desvantagem deste método é a forma como a trajetória é especificada. Mesmo
que seja possível calcular o raio da trajetória em cada ponto do caminho, esta
informação não está diretamente relacionada ao sistema de coordenadas inercial.
27
Desta forma, os erros na tarefa de seguir uma trajetória produzem um erro de distância
entre o alvo desejado e a posição do veículo, quando integrados em um tempo finito.
A fim de transformar o erro relativo integrado em um erro absoluto, em relação
ao referencial inercial, o comportamento do veículo é descrito em coordenadas
cartesianas. O movimento do alvo não é descrito diretamente, mas está implícito nos
erros de distância.
∆∆
=
y
x
wv
y
x
R
R
.
0010
100sin
010cos
φφ
φ&&
&
(5.9)
Com uma simples transformação de coordenadas, os estados do veículo voltam
a ser expressos em coordenadas polares, cumprindo os requisitos para fechar a malha,
através da equação 4.21.
Para realizar a tarefa de seguimento de trajetória, uma estratégia baseada no
erro em distância entre o veículo e o alvo é adotada. Uma região circular, de raio RMAX,
centrada em (xT,yT), é associada a cada par de coordenadas da trajetória. Se o veículo
estiver dentro desta região, um valor positivo é atribuído à velocidade do alvo,
caracterizando um problema de seguimento de trajetória. A equação 5.10 define esta
região.
∆+∆−= 0,1max22
MAXR
YXS (5.10)
Note que quanto menor for o erro em distância, maior será a velocidade do alvo,
e maior também a velocidade do robô. Quando o veículo estiver fora desta região
circular, o ponto alvo irá parar de se mover, resultando num problema de estabilização
em um ponto. A figura 5-1 mostra o movimento do alvo como função do erro de posição
entre o veículo e o alvo.
28
Para determinar a trajetória, pontos-chave são escolhidos no caminho desejado
e os pontos restantes são calculados por interpolação cúbica. Isto resulta nos vetores X
e Y. Note que estes vetores não estão associados ao tempo, portanto, o acesso a
estes vetores é feito através da integração da velocidade do alvo (equação 5.10).
A velocidade do alvo pode ser externamente forçada a zero quando se deseja
realizar uma varredura com o ultra-som, a fim de obter a posição do veículo de forma
absoluta. Isto ocorre quando o erro odométrico, estimado pela soma da integral das
variáveis de controle (v e w), atinge um valor predeterminado.
Figura 5-1: Velocidade do alvo em função do erro em distância.
A figura 5-2 mostra um exemplo de trajetória e a região admissível associada a um
ponto do caminho.
30
6. Localização
Para a localização dentro de um ambiente previamente conhecido, o robô
PITECO conta com odometria e um sonar ultra-sônico, que consiste em um sensor de
ultra-som montado sobre um motor de passo capaz de fazer uma varredura de 360º.
A navegação por odometria, conhecida como dead reckoning, é de
implementação relativamente fácil e apresenta bons resultados para trajetos curtos.
Porém, como esta técnica se baseia em medidas relativas, um pequeno erro de
posição e orientação é integrado a medida que o veículo se movimenta, gerando um
erro significativo para trajetórias mais longas.
Como alternativa para minimizar o erro em trajetórias maiores, o sonar ultra-
sônico foi a solução escolhida. O princípio de funcionamento se baseia em uma rede
neural do tipo RBF que compara os dados de distância obtidos por uma varredura do
sonar com as entradas utilizadas durante o treinamento da rede.
6.1. Sensor de ultra-som
O sensor de ultra-som utilizado é fabricado pela Polaroid. Seu princípio de
funcionamento é baseado no tempo de resposta de um sinal sonoro na freqüência de
49,7kHz que é emitido e recebido pelo mesmo transdutor, refletindo no obstáculo cuja
distância está sendo medida. Esta técnica é conhecida como Time of Flight (TOF).
Um feixe direcional de ondas planas, com concentração de energia gaussiana é
a aproximação idealizada do sinal emitido (Kuc et al., 1989, 1990, 1991). Os principais
problemas na utilização do ultra-som decorrem dos princípios físicos que governam a
propagação das ondas sonoras. Os dois principais fenômenos relevantes ao uso do
ultra-som são a difração e a reflexão. A difração ocorre quando a onda encontra um
31
obstáculo com dimensões comparáveis ao seu comprimento de onda (7 mm), onde se
incluem bordas de superfícies. Neste caso, a frente de onda plana concentrada em um
feixe cilíndrico se torna esférica, espalhando sua energia com o quadrado da distância
percorrida. Por este motivo, a detecção de obstáculos deste tipo tem uma distância
limitada.
Por se tratar de um feixe cilíndrico, quando um sinal sonoro encontra uma
superfície plana, com rugosidade muito menor que o comprimento de onda, o obstáculo
se comporta como um espelho. O feixe é refletido com ângulo de reflexão igual ao
ângulo de incidência, em relação à reta normal à superfície. Desta forma, o sinal
refletido que chega ao receptor pode percorrer caminhos diferentes do sinal emitido, se
for considerada a hipótese de múltiplas reflexões. Como conseqüência, só tem-se
medidas confiáveis de distância quando o ângulo de incidência em relação à normal de
uma superfície plana for pequeno.
Diversos artigos (Kuc et al., 1989, 1990; Gutierrez et al., 1998) foram escritos na
década de 90 com o objetivo de modelar o sensor de ultra-som. Um modelo mais
preciso do sonar poderá fornecer dados mais confiáveis, essenciais para o
desenvolvimento do algoritmo descrito a seguir.
6.2. Sonar
O sonar consiste de um sensor de ultra-som montado sobre um motor de passo
capaz de realizar uma varredura de 360º. O motor de passo utilizado possui uma
resolução de 1,8º/passo, o que permite uma varredura de 360º com resolução de 200
medidas. Uma chave de fim de curso indica a posição inicial do ultra-som. Cada vez
que o robô é iniciado, o motor de passo é acionado até que a posição inicial do ultra-
som seja determinada.
6.3. Rede Neural
A rede neural artificial utilizada é do tipo RBF. Possui 3 camadas, sendo a
primeira de 200 entradas (uma para cada direção do sonar), uma camada intermediária
32
oculta de 41 neurônios e uma camada com duas saídas (x,y). Na entrada da rede
neural tem-se o vetor de 200 posições obtido através da varredura do sonar. O
treinamento da rede é feito com 42 pontos dispostos uniformemente em um mapa
conhecido. A distância esperada para cada direção mensurável pelo sonar é calculada
e utilizada como entrada teórica para a rede. Do mesmo ponto, as coordenadas
cartesianas x e y são utilizadas como referência de saída para a rede. Desta forma, a
rede é treinada com dados sintéticos, dispensando a etapa de obtenção em campo dos
vetores de 200 posições através de medidas no ambiente real.
6.4. Estratégia de localização
Como a rede neural só é capaz de determinar as coordenadas x e y do robô,
uma estratégia auxiliar de localização que contempla também a orientação φ foi
utilizada. O vetor de distâncias lidas é utilizado como entrada para a rede neural, que
por sua vez responde as coordenadas equivalentes. A seguir, com base nestas
coordenadas é calculado o vetor de entradas esperado e obtido o valor do erro médio
quadrático entre o sinal medido e o calculado. Em seguida, o vetor de distâncias
medidas é rotacionado, simulando um incremento de 1,8º na orientação do robô. O
processo de determinação de coordenadas por rede neural e cálculo do erro médio é
repetido até que as 200 orientações possíveis tenham sido utilizadas. A orientação
considerada correta será aquela que apresentar menor erro médio quadrático.
Maiores detalhes a respeito deste algoritmo de localização podem ser
encontrados em Berg, 2005.
33
7. Resultados
Serão apresentados aqui os resultados obtidos nas principais áreas de
desenvolvimento deste trabalho: estabilização em torno de um ponto, estabilização em
torno de uma trajetória e localização.
7.1. Estabilização em torno de um ponto
O método implementado para a estabilização em um ponto utiliza sinais não
contínuos ou transformações não lineares (Aicardi, 1995). O ambiente de simulação,
ilustrado na figura 6-1, utilizado para o teste antes da implementação real, revelou que
os sinais de controle nas rodas chegam a 6m/s, excedendo a velocidade máxima do
robô PITECO, que é de aproximadamente 1m/s. Como apenas o modelo cinemático do
robô está sendo considerado, e a fim de evitar problemas de escorregamento das
rodas, a velocidade do robô foi limitada em 0,2m/s.
Figura 7-1: Ambiente de simulação no MATLAB/Simulink.
34
Figura 7-2: Velocidades nas rodas.
Este problema foi resolvido com o desenvolvimento de um saturador especial,
visto na figura 7-3.
Figura 7-3: Saturador.
Com este sistema, a velocidade das rodas fica limitada a 0,2m/s em módulo,
mas a velocidade das duas rodas é proporcional. Se, por exemplo, o bloco de controle
enviar um sinal indicando que a roda direita deve andar a 2m/s e a roda esquerda a
1m/s, o saturador desenvolvido limitará a velocidade da roda direita em 0,2m/s e
manterá a roda esquerda a 0,1m/s.
35
Outro problema encontrado está na restrição do equacionamento que não
permite que o erro em distância seja nulo. Caso isto ocorra, a informação de θ não faz
sentido, pois um raio nulo já define a localização de um ponto no plano. Como a
orientação do robô não é uma variável utilizada diretamente, mas relacionada a θ, ao
chegar em um erro de distância ‘e’ muito pequeno, o robô não consegue determinar
sua orientação e começa a girar em torno do próprio eixo. Para resolver este problema,
foi estabelecido um critério de parada: quando o valor da função de Lyapunov (5.7),
que expressa o erro quadrático dos estados, for inferior a um valor estabelecido como
erro aceitável, o robô pára.
Os dados obtidos na implementação real, mostram o robô se deslocando do
ponto (-1,-1,0) ao ponto (0,0,0). A figura 7-4 mostra os resultados obtidos.
Figura 7-4: Resultados obtidos em tempo real.
36
7.2. Estabilização em torno de uma trajetória
A fim de observar o comportamento da estratégia de localização, foram
escolhidos os seguintes pontos:
X = [ 0 0.5 1.0 1.5 1.5 1.5 1.0 0.5 0.5 1.0 ]
Y = [ 0 0 0 0 0.5 1.0 1.0 1.0 1.5 1.5 ]
A partir destes pontos, foi feita uma interpolação cúbica para cada um dos
vetores X e Y, com 100 pontos intermediários entre cada par de pontos principais. O
resultado deste processo pode ser visto na figura 7-5.
Figura 7-5: Trajetória gerada por interpolação cúbica.
Os parâmetros utilizados na simulação podem ser vistos na tabela a seguir.
37
Parâmetro Valor
RMAX 0,1m
γ 3
k 6
h 1
X0 0,5 m
Y0 0,5 m
A figura 7-6 compara a trajetória planejada, com a efetivamente seguida, no
ambiente de simulação.
Figura 7-6: trajetória seguida.
Percebe-se na figura 7-6 que inicialmente o robô se desloca em direção ao início
da trajetória. Uma vez que o robô entra em uma região de erro pequeno, e com a
orientação adequada, a trajetória é seguida com erro praticamente nulo.
38
7.3. Localização por redes neurais
O ambiente escolhido para o teste dos algoritmos de localização pode ser visto
na figura 7-7.
Figura 7-7: Mapa do ambiente de localização.
Os pontos marcados por um “x” no mapa representam as coordenadas
utilizadas para o treino da rede neural. A tabela a seguir compara o resultado em
simulação de 10 pontos escolhidos aleatoriamente em espaços válidos do ambiente. O
algoritmo utilizado simula a leitura do sonar nas 200 possíveis orientações e fornece o
vetor resultante à rede neural.
39
Real Simulado Erro
X (mm) Y (mm) φ (º) X (mm) Y (mm) φ (º) X (mm) Y (mm) φ (º)
203 90 0 182 87 347,4 21 3 12,6
61 165 0 68 152 23,4 7 13 23,4
65 70 0 76 65 1,8 11 5 1,8
192 123 0 230 124 0 38 1 0
318 108 0 292 122 0 26 14 0
315 52 0 311 85 7,2 4 33 7,2
366 110 0 310 137 0 56 27 0
255 64 270 202 83 270 53 19 0
80 69 180 84 52 180 4 17 0
88 140 125 98 109 137,6 10 31 12,6
O resultado apresentado na tabela anterior pode ser visto na figura 7-8. Os
pontos marcados por “+” representam a posição real do robô, enquanto que os pontos
marcados com “o”, indicam a resposta da estratégia com redes neurais.
Figura 7-8: Erro de localização.
Percebe-se pelas informações apresentadas que existe um erro considerável na
estratégia de localização. Este erro está intimamente relacionado às características do
sonar utilizado e, principalmente, do ambiente em que o robô irá navegar. Quanto
maior for o número de características detectávei pelo sonar, maior será a precisão das
40
medidas de localização. O modelo utilizado para o ultra-som foi simplificado,
considerando apenas um ângulo de abertura para o feixe de ondas, sem considerar os
efeitos provocados por bordas, cantos e reflexões que originam multipercurso.
Para continuar a análise, serão considerados os resultados obtidos para o
primeiro ponto (x=203 mm, y=90 mm, φ =0º). A figura 7-9 compara o vetor de distâncias
obtido com o esperado.
Figura 7-9: Comparação entre dados obtidos e esperados.
O principal efeito verificado na figura acima que gera erro é a reflexão quando a
frente de onda incide em um ângulo de aproximadamente 45º com uma superfície lisa.
Isto explica as duas divergências encontradas na parte inferior da figura 7-9.
Na figura 7-10, o resultado teórico esperado, utilizando o modelo simplificado do
ultra-som, foi sobreposto ao mapa do ambiente. Já na figura 7-11, o resultado
experimental obtido foi sobreposto ao mapa do ambiente.
41
Figura 7-10: Sobreposição do sinal esperado no mapa.
Figura 7-11: Sobreposição do sinal real no mapa.
42
Conclusões
O trabalho com robôs móveis autônomos é particularmente interessante, pois
requer conhecimentos em diversas áreas. Dentre as principais ciências utilizadas neste
trabalho pode-se citar a Física, no equacionamento da cinemática do veículo, o cálculo
diferencial e integral e a álgebra linear na formulação e solução das equações de
estados do robô. Conhecimentos em eletrônica digital e microcontroladores foram
fundamentais para o trabalho com as interfaces entre sensores, robô e computador. A
Informática proporcionou os conhecimentos necessários para a programação do
computador, responsável pelo gerenciamento do robô. Finalmente os Sistemas de
Controle, foco principal do trabalho, estiveram presentes em todas as etapas do
projeto, balizando todo o trabalho desenvolvido até aqui.
A escolha de uma plataforma totalmente desenvolvida no GACS, além de
contribuir para o desenvolvimento da pesquisa realizada nesta área a no mínimo seis
anos neste laboratório, apresenta outras vantagens sobre a aquisição de uma onerosa
plataforma comercial equivalente. Entre estas vantagens estão a não dependência do
fabricante para atualizar os recursos do veículo, a possibilidade de agregar novos
sensores e/ou atuadores e o desenvolvimento de tecnologia própria nesta área de
crescente interesse em diversos tipos de aplicação.
43
Referências Bibliográficas
1. Microchip Technology Inc.,” PIC17C7XX User's Guide, DS30289b”, http://www.microchip.com/
2. Altera Corporation, “Device Data book”, http://www.altera.com/
3. The MathWorks Inc., “Simulink - Writing S-Functions, Version 3”, http://www.mathworks.com/
4. IEEE STANDARDS – Institute of Electrical and Electronic Engineers. http://standards.ieee.org/
5. Matlab User’s Guide, “Real-Time Workshop,” Version 3, The MathWorks Inc., 1999.
6. NOVEL, B.; BASTIN, G.; CAMPION G. “Control of nonholonomic wheeled mobile robots by state feedback linearization. International Journal of Robotics Research, vol. 14, 6, pp543-559, 1995.
7. SAMSON, C. “Time-varying feedback stabilization of car-like wheeled mobile robots”. International Journal of Robotics Research, vol. 12 pp. 55-64, 1993.
8. AICARDI, M.; CASALINO, G.; BICCHI, A.; BALESTRINO, A. “Closed loop steering of unicycle-like vehicles via Lyapunov techniques”. IEEE Robotics e Automation Magazine, vol.2, pp. 27-35, 1995.
9. FIGUEIREDO, L. C.; JOTA, F. G. “Introdução ao Controle de Sistemas Não-Holonômicos”. Revista Controle & Automação / Vol. 15 no. pp. 243-268, 2004.
10. CHAVES, L. F.; PEREIRA ,L. F. A.;SPILLER, CAPELETTI P. A.; E. A.; MANZONI, A. “Design and construction of a low-cost mobile robot platform for developing and validating control navigation algorithms”. In the 25th Annual Conference of He IEEE Industrial Electronics Society – IECON, pages 541-546, San Jose – CA, 1999.
11. CONCEIÇÃO, A. G. S.; PEREIRA, L. F. A.; CHAVES, L. F. Projeto e Desenvolvimento de um Robô de Serviço Incorporando a Vantagens da Prototipação Rápida. In: XXIX Congresso Brasileiro de Ensino de Engenharia, 2001, Porto Alegre. Anais do XXIX COBENGE, 2001. v. 1. p. 486-492.
12. CHAVES, L. F.; CONCEIÇÃO, A. G. S.; SPILLER, P. A.; PEREIRA, L. F. A. “A Matlab/Simulink Based Plataform for Real-Time Planning and Execution of Control Technicques Apllied to Mobile Robots”. In: IEEE International Symposium on Computacional Intelligence in Robotics and Automation, 2001, Alberta, Canada. Proceedings of CIRA 2001, 2001. v. 01. p. 530-535.
44
13. CONCEIÇÃO, A. G. S.; CONTE, R. N.; PEREIRA, L. F. A. ; CHAVES, L. F.. “Projeto e Desenvolvimento de uma Plataforma Móvel de Baixo Custo Utilizada para o Ensino de Automação e Controle”. In: XIV Congresso Brasileiro de Automática, 2002, Natal. XIV Congresso Brasileiro de Automática, 2002. v. 1. p. 2144-2149.
14. CONCEIÇÃO, A. G. S.; R. N. CONTE, CHAVES, L.F.; PEREIRA, L. F. A., “Strategy of Localization Using The Neural Network Toolbox of the Matlab/Simulink Applied to Mobile Robots”, IEEE International Symposium on Industrial Electronics - ISIE 2003, 9-12 June/2003 – Rio de Janeiro – Brazil.
15. CONCEIÇÃO, A. G. S..“Desenvolvimento de um Ambiente Integrado em Tempo Real para Validação e Implementação de Algoritmos de Localização, Navegação e Controle de um Robô Móvel Autônomo”. Tese de Mestrado defendida em 2003 na PUCRS.
16. CHAVES, L. F. “Projeto, Construção, Modelagem e Controle de um Robô Móvel”. Tese de mestrado defendida em 2000 na PUCRS.
17. KUC R.; BARSHAN, B.. “Navigating vehicles through an unstructured environment with sonar,'' Proceedings of IEEE Conference on Robotics and Automation, pp.1422-1426, May 1989, Scottsdale, Arizona, U.S.A.
18. KUC, R. "A Spatial Sampling Criterion for Sonar Obstacle Detection," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 12, no. 7, pp. 686-690, July, 1990.
19. BOZMA O.; KUC, R. "Building a Sonar Map in a Specular Environment Using a Single Mobile Sensor", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 13, no. 12, pp. 1260-1269, December, 1991.
20. GUTIERREZ-OSUNA, R; JANET, J. A.; LUO, R.C. “Modeling of ultrasonic range sensors for localization of autonomous mobile robots” Industrial Electronics, IEEE Transactions on, volume 45, Issue 4, pp.654 – 662 Aug. 1998
21. BARSHAN, B.; AYRULU, B.; UTETE, S.W. “Neural network-based target differentiation using sonar for robotics applications”, Robotics and Automation, IEEE Transactions on Volume 16, Issue 4, Aug. 2000 Page(s):435 – 442
22. CONTE, R. N. “Ambiente Integrado para o Desenvolvimento de Estratégias de Acionamento e Controle de Máquinas de Corrente Alternada”. Dissertação de Mestrado defendida em 2003 na PUCRS.
23. BERG, A. “Localização de um robo móvel em um ambiente estruturado através de Redes Neurais”. Trabalho de Conclusão de Curso, PUCRS, 2005.