Download PDF
ads:
RICARDO ARTIGAS LANG
ER
ESTUDO E IMPLEMENTAÇ
ÃO DE MÉTODOS PARA P
LANEJAMENTO
DE TRAJETÓRIAS E CON
TROLE DE ROBÔS MÓVEI
S NÃO
HOLONÔMICOS
CURITIBA
Agosto
, 2007
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
RICARDO ARTIGAS LANG
ER
ESTUDO E IMPLEMENTAÇ
ÃO DE MÉTODOS
PARA PLANEJAMENTO
DE TRAJETÓRIAS E CON
TROLE DE ROBÔS MÓVEI
S NÃO
HOLONÔMICOS
Documento apresentado ao Programa de Pós
Graduação em Engenharia de Produção e
Sistemas da Pontifícia Universidade Católica do
Paraná como requisito parcial para a obtenção
do título de Mestre em Engenharia de Produção
e Sistemas
Orientador:
Gustavo Henrique da Costa Oliveira
Co
orientador:
Leandro dos Santos Coelho
Pontifícia Universidade Católica do Paraná
PUCPR
CURITIBA
Agosto
, 2007
ads:
I
AGRADECIMENTOS
Gostaria
de registrar aqui meus profundos agradecimentos ao meu orientador, Prof.
Gustavo Henrique da Costa Oliveira, e ao meu co-orientador, Prof. Leandro dos Santos
Coelho, pela inspiração, amizade e constante disponibilidade que proporcionaram durante
todo o curso de mestrado. São professores que vão além das obrigações profissionais do
magistério, revelando-se pessoas iluminadas pelo idealismo da excelência na profissão que
abraçaram. Seus profundos e comprovados conhecimentos técnicos são coroados por suas
ele
vadas qualidades morais.
Agradeço aos meus pais que sempre me proporcionaram todos os recursos
necessários para que eu trilhasse meu caminho acadêmico com segurança. Em especial, a
minha mãe, pessoa maravilhosa que muito contribuiu, inclusive em caráter técnico, para que
este trabalho fosse concluído. Obrigado pelo seu carinho, paciência e compreensão dedicados
durante toda a minha vida.
Deixo também o meu muito obrigado:
Ao meu amigo-irmão Ivan cujas conversas, sessões de videogame e risadas
mantiveram, e
ainda mantém, a minha sanidade.
A minha irmãzinha Carol que me auxiliou em diversas tarefas, abrindo mão de parte
do seu tempo e possibilitando que eu me dedicasse com mais afinco a este trabalho de
mestrado.
Aos meus amigos e companheiros de profissão Tiago e Gelson, meu muito obrigado
pelo incentivo.
Ao Mestre Lee por ter contribuído imensamente na construção de quem sou hoje.
Aos amigos de treino Daniel, David e Akira, por me mostrarem constantemente que
sempre podemos nos superar.
Aos meus sócios Walte
r e Gustavo que já a alguns anos possibilitam inestimável troca
de conhecimentos técnicos.
Finalmente, agradeço aos meus familiares e amigos que me apoiaram nesta jornada
rumo ao meu aperfeiçoamento intelectual.
II
RESUMO
Este trabalho apresenta um estudo no campo da robótica móvel abordando diversos tópicos
da disciplina, objetivando controlar remotamente robôs móveis tais como AGVs (
Automatic
Guided Vehicles), empilhadeiras e outros utilitários de transporte industrial, através da
realimentação de informação visual proveniente de uma câmera aérea. Para isso, são
estudados métodos para planejar uma trajetória evitando obstáculos no ambiente, controlando
a sua posição e orientação na superfície de trabalho, através de um sistema de visão
computacional.
Ao longo do trabalho são discutidas e comparadas quatro principais vertentes
de algoritmos para realizar o planejamento de trajetórias de robôs móveis: (i) uma topologia
utilizando algoritmos genéticos; (ii) campos potenciais artificiais; (iii) um método
consagrado na literatura para buscas enumerativas chamado A*; e (iv) os algoritmos tipo
Bug
. Finalmente, um novo algoritmo é apresentado chamado de K
Bug
, cujas principais
características são o baixo custo computacional, o tratamento vetorial do ambiente e
a
maximização da utilização da informação disponível. Três metodologias de controle são
implementadas para fazer com que o robô percorra a trajetória planejada, sendo elas: (i) um
controlador PID, (ii) um controlador baseado em lógica
fuzzy
; e (iii) um con
trolador preditivo
baseado em modelo. Um robô móvel terrestre não holonômico com tração diferencial é
utilizado como plataforma de testes e um sistema de simulação é programado para validar os
controladores e planejadores de trajetórias. O trabalho propõe ainda um desacoplamento
entre as variáveis de entrada do robô, permitindo o uso de controladores monovariáveis
independentes. Usando um modelo de robô móvel construído e acionado com um kit Lego
todo o sistema é implementado em tempo real, sendo controlado pela plataforma
LabVIEW
TM
, da National Instruments, que está integrada ao
hardware
de acionamento Lego
pela porta serial e à câmera por uma placa de aquisição de imagens do mesmo fabricante.
Todo o processo de reconhecimento de padrões para a identificação do robô na imagem
também é apresentado. Ao final do trabalho, tem-se duas plataformas completas de estudo e
validação de algoritmos para robôs móveis totalmente em linguagem de alto nível, uma
sendo em simulação e outra em tempo real. As etapas de resultados mostram as diferentes
trajetórias geradas e percorridas pelos algoritmos estudados, ressaltando os diversos graus de
otimização conseguidos.
Palavras chave
: robótica móvel, planejamento de trajetórias, controle.
III
ABSTRACT
This work presents a study in the field of the mobile robotics, approaching several topics
within this context, intending to remotely control mobile robots such as AGVs (Automatic
Guided Vehicles), pilers and other industrial transport vehicles through the feedback of
visu
al information proceeding from an aerial camera. To accomplish this goal, several
methods are studied to plan the trajectory preventing collisions with the obstacles in the
environment, controlling its position and orientation in the work surface through a
computational vision system. Throughout the work, four mobile robots path planning
algorithms are presented and compared: (i) a topology using genetic algorithms; (ii) artificial
potential fields; (iii) a literature consecrated method for enumerativas searches call A*; and
(iv) the Bug algorithms. Finally, a new algorithm is presented called K Bug, whose main
characteristics are the low computational cost, the vectorial treatment of the environment and
the maximization of the available information usage. Three methodologies of control are
implemented to make robot s path tracking: (i) a Proportional-
Integral
-Derivative controller,
(ii) a controller based on fuzzy logic; and (iii) a model based predictive controller. A wheeled
terrestrial nonholonomic mobile robot with differential traction is used as test platform and a
simulation system is programmed to validate the controllers and trajectory planners. The
work still considers a robot model with decoupled inputs, allowing the use of independent
single
inpu
t
single
output controllers. Using a model of mobile robot constructed and
driven with a LEGO kit, the entire system is implemented and tested in real time, being
controlled by the LabVIEW
TM
platform, from National Instruments, which is integrated to
the hardware drives through the serial port and to the camera by an image acquisition board
from the same manufacturer. All the process of patterns recognition to identify the robot in
the image also is presented. At the conclusion of the work, two complete platforms to study
and validate algorithms for mobile robots in high level language are available, one in
simulation and another in real time. The results show the different trajectories planned and
tracked by the mobile robot for the studied algorithms, pointing out the diverse degrees of
optimization obtained.
Key words
: mobile robotics, path planning, control.
IV
SUMÁRIO
Agradecimentos..................................................................................................
p.I
Resumo..........
....................................................................................................
p.II
Abstract............................................................................................................
p.III
Lista de Figuras............
..................................................................................
p.VII
Lista de Tabelas................................................................................................
p.X
Lista de Siglas...................................
..............................................................
p.XI
Lista de Símbolos......................................... ..........................................
p.XII
Capítulo 1
Introdução
........................................................................................
1
1.1
Motivação.........................................................................................................................
1
1.2
Robótica móvel ................................................................................................................
3
1.2.1
Tipos e Classificaç
ões
.....................................................................................................
5
1.2.2
Sensores
...........................................................................................................................
5
1.2.3
Comportamento e Navegação
..........................................................................................
6
1.3
Mod
elo do Robô móvel tipo CART.................................................................................
8
1.4
A Concepção do Sistema em Malha Fechada................................................................11
1.4.1
O LabVIEW
TM
............................................................................................................... 13
1.5
Contribuições da Dissertação.........................................................................................13
1.6
Estrutura da Dissertação................................................................................................
.14
Capítulo 2
Planejamento
da Trajetória de Robôs Móveis em Ambiente
Conhecido
.........................................................................................
17
2.1
Introdução.......................................................................................................................17
2.2
Algoritmos Genéticos (AGs)..........................................................................................21
2.2.1
Principais Conceitos sobre AGs
....................................................................................22
2.2.2
Algoritmos Genéticos para Planejamento de Trajetórias
.............................................. 25
2.2.3
Resultados
..................................................................................................................... 26
2.2.4
Considerações Finais sobre os Algoritmos Genéticos para Planejamento de Trajetórias
de Robôs Móveis
........................................................................................................... 28
2.3
Campos Potenciais Artificiais (APFs)............................................................................ 29
2.3.1
Principais Conceitos sobre APFs
...................................................................................29
2.3.2
Equacionamento do
Campo Potencial
...........................................................................31
2.3.3
Resultados
..................................................................................................................... 33
2.3.4
Considerações Finais sobre os APFs
.............................................................................35
2.4
Algoritmo A* .................................................................................................................36
2.4.1
Principais conceitos do A*
............................................................................................36
2.4.1.1
Pseudo
código do Algoritmo A* (Rich, 1998)
...................................................... 38
2.4.2
A* para o Planejamento de Trajetórias
..........................................................................39
2.4.2.1
Segmentação do Ambiente Utilizando Grafos de Visibilidade
...............................39
2.4.3
Resultados
..................................................................................................................... 41
2.4.4
Considerações Finais sobre o A*
..................................................................................42
2.5
Algoritmos
tipo
Bug
e o Método
K
Bug........................................................................43
2.5.1
Algoritmos tipo Bug
...................................................................................................... 44
2.5.2
O algoritmo
K
Bug
........................................................................................................ 46
2.5.2.1
O
K
Bug
quando toda a Informação sobre o Ambiente é Conhecida
.....................47
2.5.3
Pseudo
código do
K
Bug
..............................................................................................50
2
.5.4
Resultados
..................................................................................................................... 53
2.5.5
Considerações Finais sobre o
K
Bug
............................................................................54
V
2.6
Conclusões Sobre os Métodos de Planejamento de Trajetórias.....................................56
Capítulo 3
Controle da Trajetória através de Controle
Fuzzy
.........................
59
3.1
Introdução.......................................................................................................................59
3.1.1
Controle
Fuzzy
............................................................................................................... 61
3.2
Motivação.......................................................................................................................65
3.3
Descrição do Controlador...............................................................................................66
3.3.1
Posição de Destino
........................................................................................................ 66
3.3.2
Planejamento da Trajetória
............................................................................................67
3.3.3
Cálculo dos Erros
.......................................................................................................... 67
3.3.4
Amostragem da Trajetória
.............................................................................................67
3.3.5
Controlador
.................................................................................................................... 69
3.3.6
Transformaç
ão de Coordenadas
....................................................................................75
3.3.7
Transformação dos Sinais de Controle
..........................................................................75
3.3.7.1
Aumento da Ponderação sobre a Correção do Erro Angula
r
.................................. 76
3.3.8
Sistema
..........................................................................................................................77
3.3.9
Reconhecimento de imagens
.........................................................................................77
3.3.10
Câmera
...........................................................................................................................77
3.4
Formulação de um Controlador PID para Comparação com o Controlador
Fuzzy .......78
3.5
Resultados em Simulação............................................................................................... 79
3.5.1
A Interface de Simulação
..............................................................................................79
3.5.2
Trajetórias Percorridas pelo Robô em simulação
..........................................................81
3.5.2.1
Controlador PID
...................................................................................................... 82
3.5.2.2
Controlador Baseado em Lógica
Fuzzy
.................................................................. 86
3.6
Considerações Finais......................................................................................................90
Capítulo 4
Controle de Trajetória através de Controle Preditivo
....................
91
4.1
Introdução.......................................................................................................................91
4.2
Motivação.......................................................................................................................93
4.2.1
Controle Preditivo Aplicado a Robótica Móvel
............................................................94
4.3
Implementação do controlador MPC .............................................................................96
4.3.1
Modelo de Previsão
....................................................................................................... 96
4.3.2
Função de Custo
............................................................................................................ 99
4.3.2.1
Refe
rências Futuras
................................................................................................
.
99
4.3.3
Obtenção da Lei de Controle
.......................................................................................101
4.4
Resultados em Simulação............................................................................................. 102
4.5
Considerações Finais sobre o Controlador Preditivo...................................................106
Capítulo 5
Experimento em Tempo Real
......................................................
107
5.1
Descrição Geral do Sistema ......................................................................................... 108
5.1.1
Sistema de Acionamento dos Motores
........................................................................ 110
5.1.2
Sistema de Comunicação Serial Via Rádio
................................................................
.
111
5.1.3
Sistema de Reconhecimento de Imagens
..................................................................... 112
5.2
Estimação do Modelo Real do Robô............................................................................118
5.3
Resultados Experimentais............................................................................................122
5.3.1
Controlador PID
.......................................................................................................... 122
5.3.1.1
Ambiente 1
............................................................................................................ 122
5.3.1.2
Ambiente 2
............................................................................................................ 124
5.3.2
Controlador Baseado em Lógica
Fuzzy
....................................................................... 125
5.3.2.1
Ambiente
1............................................................................................................ 126
5.3.2.2
Ambiente 2
............................................................................................................ 127
5.3.3
Controlador Preditivo
.................................................................................................. 128
5.3.3.1
Ambiente 1
............................................................................................................ 128
5.3.3.2
Ambiente 2
............................................................................................................ 130
Capítulo 6
Conclusões e Trabalhos Futuros
..................................................
131
VI
6.1
Conclusões ...................................................................................................................131
6.2
Trabalhos Futuros.........................................................................................................133
Bibliografia
.......................................................................................................
135
Lista de Anexos
................................................................................................
142
VII
LISTA DE FIGURAS
F
IGURA 1
AGV
USADO NAS FÁBRICAS D
A
VOLVO. F
ONTE
: (C
URIE
, 1999)..........................
2
F
IGURA 2
S
TANFORD
CART. F
ONTE
: (C
URIE
, 1999). ..............................................................
4
F
IGURA 3
E
XEMPLO DE UM ROBÔ DI
FERENCIAL ......................................................................
8
F
IGURA 4
P
ROPOSTA DA IMPLEMENT
AÇÃO EM TEMPO REAL
. ................................................12
F
IGURA 5
A
MBIENTE DECOMPOSTO U
SANDO
C S
PACES
........................................................18
F
IGURA 6
T
IPOS DE AMBIENTES
.............................................................................................21
F
IGURA 7
O
PERADORES DE
S
ELEÇÃO
, C
RUZAMENTO E
M
UTAÇÃO
.......................................23
F
IGURA 8
E
STRATÉGIAS DE CRUZAM
ENTO
............................................................................ 24
F
IGURA 9
C
ICLO DE DADOS EM UM
ALGORITMO GENÉTICO C
ANÔNICO
.................................. 24
F
IGURA 10
T
RAJETÓRIA ENCONTRADA
PELO ALGORITMO GENÉ
TICO
. ...................................27
F
IGURA 11
E
VOLUÇÃO DO FITNESS D
O MELHOR INDIVÍDUO
(A
)
E DA MÉDIA DA POPULA
ÇÃO
(B
)
EM FUNÇÃO DO NÚMERO
DE GERAÇÕES COM A SE
LEÇÃO POR ROLETA
........................27
F
IGURA 12
M
ELHORES TRAJETÓRIAS
ENCONTRADAS PELO
AG.............................................. 28
F
IGURA 13
E
LABORAÇÃO DOS CAMPOS
POTENCIAIS
. .............................................................29
F
IGURA 14
C
ÁLCULO DA R
ESULTANTE
..................................................................................30
F
IGURA 15
P
ROCESSO DE TRIANGULA
RIZAÇÃO POR
C
ORTA
O
RELHAS
............................. 32
F
IGURA 16
F
UNÇÃO DE REPULSÃO RE
SULTANTE DE UM T
RIÂNGULO
..................................... 32
F
IGURA 17
O
BSTÁCULOS TRIANGULAR
IZADOS
(A
)
E
APF
RESULTANTE
(B
)..........................33
F
IGURA 18
T
RAJETÓRIA GERADA PEL
O ALGORITMO
..............................................................34
F
IGURA 19
T
RAJETÓRIAS GERADAS A
TRAVÉS DE CAMPOS POT
ENCIAIS
.................................34
F
IGURA 20
P
ROBLEMA DOS MÍNIMOS
LOCAIS
. F
ONTE
: (C
HENNEY, 20
05).............................35
F
IGURA 21
E
XEMPLO DO UMA BUSCA
PELA MELHOR ESCOLHA
. F
ONTE
: (R
ICH
, 1998).......... 37
F
IGURA 22
C
ONSTRUÇÃO DOS GRAFOS
DE VISIB
ILIDADE
. F
ONTE
: (C
HENNEY
, 2005). ..........40
F
IGURA 23
P
ROCESSO DE
OFFSET
OBSTÁCULO ORIGINAL E
M VERMELHO E EM AZUL
A
FIGURA AMPLIADA
............................................................................................................41
F
IGURA 24
T
RAJETÓRIA ENCONTRADA
PELO
A*................................................................... 41
F
IGURA 25
T
RAJETÓRIAS ENCONTRAD
AS PELO
A*................................................................ 42
F
IGURA 26
T
RAJETÓRIA GERADA
PELO ALGORITMO
B
UG
2
PROPOSTO POR
L
UMELSKY E
S
TEPANOV
........................................................................................................................44
F
IGURA 27
T
RAJETÓRIA GERADA PELO ALGORITMO
V
IS
B
UG
PROPOSTO POR
L
UMELSKY E
S
KEWIS
.............................................................................................................................45
F
IGURA 28
C
OMPARAÇÃO ENTRE UMA
TRAJETÓRIA GERADA PE
LO
V
IS
B
UG
(
EM VERMELHO
),
O
D
IST
B
UG
(
EM PRETO
)
E O
BUG2
(
EM VERDE
)................................................................46
F
IGURA 29
T
RAJETÓRIA GERADA PE
LO ALGORITMO
K B
UG
. ...............................................47
F
IGURA 30
A
MBIENTE DIVIDIDO EM
TRÊS ÁREAS
................................................................. 48
F
IGURA 31
A
MBIENTE NOVAMENTE DI
VIDIDO EM TRÊS ÁREAS
PASSO 2.............................49
F
IGURA 32
T
RAJETÓRIA FINAL
............................................................................................49
F
IGURA 33
T
RAJETÓRIA SENDO GERA
DA PELO MÉTODO
K B
UG
PASSO A PASSO
................... 52
F
IGURA 34
T
RAJETÓRIA GERADA PAS
SO
A
PASSO PELO
K B
UG
EM UM AMBIENTE
COMPLEXO
. ......................................................................................................................53
F
IGURA 35
T
RAJETÓRIAS GERADAS P
ELO ALGORITMO
K B
UG
..............................................54
F
IGURA 36
C
OMPARAÇÃO ENTRE UMA
TRAJETÓRIA GERADA PE
LO
K B
UG
(
VERDE
)
E PELO
A* (
VERMELHO
)
PARA O AMBIENTE 3..............................................................................54
VIII
F
IGURA 37
E
XEMPLO DE UM AMBIEN
TE EM QUE A TRAJETÓR
IA GERADA PELO
K B
UG
NÃO É
ÓTIMA
. .............................................................................................................................55
F
IGURA 38
W
ATT
G
OVERNOR.
O
TORQUE GERADO PELO P
ESO DAS BOLAS É EQUI
LIBRADO
PELO TORQUE GERADO P
ELA ROTAÇÃO DO EIXO (R
OUTLEDGE
, 1900)..............................60
F
IGURA 39
D
IAGRAMA EM BLOCOS BÁ
SICO DE UM
FLC. F
ONTE
: (S
HAW
ET AL
.
, 1999). ....... 62
F
IGURA 40
E
XEMPLOS DE TRAJETÓRI
AS CONSEGUI
DAS COM UM CONTROLAD
OR LINEAR E
BASEADO EM LÓGICA
FUZZY
.............................................................................................65
F
IGURA 41
D
IAGRAMA EM BLOCOS DO
SISTEMA REALIMENTAD
O COM CONTROLE
FUZZY
. .... 66
F
IGURA 42
C
ÁLCULO DOS ERROS DE
CONTROLE
. ..................................................................67
F
IGURA 43
R
EFERÊNCIAS DE TRAJET
ÓRIA
.............................................................................68
F
IGURA 44
T
RAJETÓRIA INTERPO
LADA
.................................................................................68
F
IGURA 45
T
RAJETÓRIA INTERPOLAD
A,
REFERÊNCIAS COMUTADA
S POR PROXIMIDADE
.......69
F
IGURA 46
E
RROS PARA O CONTROLA
DOR
FUZZ
Y..................................................................71
F
IGURA 47
P
ROCESSO DE FUZZIFICA
ÇÃO
...............................................................................73
F
IGURA 48
F
UNÇÕES DE PERTINÊNCI
A PARA OS ERROS EM
X
E EM
Y..................................... 74
F
IGURA 49
F
UNÇÕES DE PERTINÊNCI
A PARA O ERRO DE ORIENTAÇÃO
. .................................74
F
IGURA 50
F
UNÇÕES DE PERTINÊNCI
A PARA A VELOCIDADE
ANGULAR
................................. 74
F
IGURA 51
F
UNÇÕES DE PERTINÊNCI
A PARA A VELOCIDADE
LINEAR
. ...................................75
F
IGURA 52
D
IAGRAMA EM BLOCOS DO
SISTEMA REALIMENTAD
O UTILIZANDO CONTROL
E
PID
. .................................................................................................................................79
F
IGURA 53
P
AINEL FRONTAL DO SIM
ULADOR
........................................................................80
F
IGURA 54
F
UNÇÕES DE PERTINÊNCI
A
FUZZY
. F
ONTE
: (N
GUYEN E
W
ALKER
, 2000).............80
F
IGURA 55
A
MBIENTE DE CONFIGURA
ÇÃO DO CONTROLADOR
FUZZY
. ..................................81
F
IGURA 56
T
RAJETÓRIA PERCORRIDA
E PLANEJADA PARA O
CONTROLADOR
PID
COM
COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
........................................................................... 82
F
IGURA 57
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O CONTROLADO
R
PID
COM COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
................................................................... 83
F
IGURA 58
R
EFERÊNCIAS,
ORIENTAÇÕES DO ROBÔ
E SINAIS DE CONTROLE
GERADOS PELO
CONTROLADOR
PID
COM COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
................................... 84
F
IGURA 59
T
RAJETÓRIA
PERCORRIDA E PLANEJ
ADA PARA O CONTROLAD
OR
PID
COM
COMUTAÇÃO DE
WAYPOINTS
POR DISTÂNCIA
.....................................................................84
F
IGURA 60
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O CONTROLADO
R
PID
COM COMUTAÇÃO DE
WAYP
OINTS
POR DISTÂNCIA
.............................................................85
F
IGURA 61
R
EFERÊNCIAS,
ORIENTAÇÕES E SINAIS
DE CONTROLE GERADOS
PELO
CONTROLADOR
PID
COM COMUTAÇÃO DE
WAYPOINTS
POR DISTÂNCIA
............................. 85
F
IGURA 62
T
RAJETÓRIA DE ESTACIO
NAMENTO COM O CONTRO
LADOR
FUZZY
.......................86
F
IGURA 63
T
RAJETÓRIA PERCORRIDA
E PLANEJADA PARA O
FLC
COM COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
. .................................................................................................... 87
F
IGURA 64
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O
FLC
COM
COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
........................................................................... 87
F
IGURA 65
R
EFER
ÊNCIAS,
ORIENTAÇÃO E SINAIS
DE CONTROLE GERADOS
PELO
FLC
COM
COMUTAÇÃO DE
WAYPOINTS
POR TEMPO
........................................................................... 88
F
IGURA 66
T
RAJETÓRIA PERCORRIDA
E PLANEJADA PARA O
FLC
COM COMUTAÇÃO DE
WAYPOINTS
POR DISTÂN
CIA
...............................................................................................88
F
IGURA 67
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O
FLC
COM
COMUTAÇÃO DE
WAYPOINTS
POR DISTÂNCIA
.....................................................................89
F
IGURA
68
R
EFERÊNCIAS,
ORIENTAÇÃO E SINAIS
DE CONTROLE GERADOS
PELO
FLC
COM
COMUTAÇÃO DE
WAYPOINTS
POR DISTÂNCIA
.....................................................................89
F
IGURA 68
D
ESENHO ESQUEMÁTICO D
O ROBÔ MÓVEL CONSIDE
RANDO A NOVA VARIÁVE
L
DE CON
TROLE
................................................................................................................... 97
IX
F
IGURA 69
E
RROS CONSIDERADOS PA
RA O CÁLCULO DAS REF
ERÊNCIAS FUTURAS DO
CONTROLADOR PREDITIV
O. ............................................................................................100
F
IGURA 70
TRAJET
ÓRIA PERCORRIDA E PL
ANEJADA PARA O CONTR
OLADOR PREDITIVO NO
ENSAIO 1. .......................................................................................................................103
F
IGURA 71
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O CONTROLADO
R
PREDITIVO NO ENSAIO 1.................................................................................................
.103
F
IGURA 72
R
EFERÊNCIAS ANGULARES,
ORIENTAÇÃO E SINAIS
DE CONTROLE GERADOS
PELO
CONTROLADOR PREDITIV
O NO ENSAIO 1.........................................................................104
F
IGURA 73
T
RAJETÓRIA PE
RCORRIDA E PLANEJADA
PARA O CONTROLADOR
PREDITIVO NO
ENSAIO 2. .......................................................................................................................104
F
IGURA 74
R
EFERÊNCIAS E POSIÇÕE
S INSTANTÂNEAS DO RO
BÔ PARA O CONTROLADO
R
PREDITIVO NO ENSAIO 2.................................................................................................
.105
F
IGURA 75
R
EFERÊNCIAS ANGULARES,
ORIENTAÇÕES E SINAIS
DE CONTROLE GERADOS
PELO CONTROLADOR PRE
DITIVO NO ENSAIO 2................................................................105
F
IGURA 76
E
SQUEMA DO
HARDWARE
UTILIZADO
................................................................. 108
F
IGURA 77
F
OTO DA PLACA DE ACIO
NAMENTO DO ROBÔ
.................................................... 109
F
IGURA 78
F
OTOS DO ROBÔ CONSTRU
ÍDO COM
LEGO
........................................................ 109
F
IGURA 79
F
ORMA DE ONDA PULSADA
................................................................................110
F
IGURA 80
M
ODULAÇÃO POR LARGURA
DE PULSO
.............................................................. 111
F
IGURA 81
I
MAGEM COM RUÍDOS E D
EPOIS DE FILTRADA
. F
ONTE
: (C
ASACURTA
ET AL
.,
1998). ............................................................................................................................113
F
IGURA 82
P
ADRÕES SENDO DESTACA
DOS EM UMA IMAGEM
. F
ONTE
: (C
ASACURTA
ET AL
.,
1998). ............................................................................................................................113
F
IGURA 83
F
IGURA PADRÃO PARA O
RECONHECIMENTO DO RO
. .....................................115
F
IGURA 84
R
OBÔ SENDO RECONHECID
O NA IMAGEM
. .........................................................116
F
IGURA 85
I
MAGEM CAPTURADA PELA
CÂMERA AÉREA
...................................................... 116
F
IGURA 86
O
BJETOS CLAROS DESTAC
ADOS DA IMAGEM
. ....................................................117
F
IGURA 87
R
ECONHECIMENTO DE PAD
RÕES CIRCULARES
...................................................117
F
IGURA 88
P
ADRÕES CIRCULARES RE
CONHECIDOS
.............................................................118
F
IGURA 89
P
ROCEDIMENTO PARA EST
IMAR AS VELOCIDADE D
OS MOTORES
. ......................119
F
IGURA 90
R
ESPOSTA AO DEGRAU DO
S MOTORES DO ROBÔ
................................................ 120
FI
GURA 91
C
OMPARAÇÃO ENTRE O SI
STEMA REAL E O MODEL
O ESTIMADO
........................121
F
IGURA 92
L
INEARIDADE DO SISTEM
A................................................................................121
F
IGURA 93
T
RAJETÓRI
A PERCORRIDA EM TEMP
O REAL PELO CONTROLA
DOR
PID
PARA O
AMBIENTE 1....................................................................................................................123
F
IGURA 94
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O CONTROL
ADOR
PID
EM TEMPO REAL PARA O
AMBIENTE 1......................................................................123
F
IGURA 95
S
INAIS DE CONTROLE PA
RA O CONTROLADOR
PID
EM TEMPO REAL PARA O
AMBIENTE 1....................................................................................................................123
F
IGURA 96
T
RAJETÓRIA PERCORRIDA
EM TE
MPO REAL PELO CONTRO
LADOR
PID
PARA O
AMBIENTE 2....................................................................................................................124
F
IGURA 97
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O CONTROL
ADOR
PID
EM TEMPO REAL PARA O
AMBIENTE 2......................................................................124
F
IGURA 98
S
INAIS DE CONTROLE PA
RA O CONTROLADOR
PID
EM TEMPO REAL PARA O
AMBIENTE 2....................................................................................................................124
F
IGURA 99
-
F
UNÇÕES DE PERTINÊNCI
A PARA OS ERROS EM
X
E
Y
UTILIZADAS NO
CONTROLADOR EM TEMPO
REAL
.....................................................................................125
F
IGURA 100
-
F
UNÇÕES DE PERTINÊNCI
A PARA A VELOCIDADE
ANGULAR CONTROLADOR
EM
TEMPO REAL
...................................................................................................................125
X
F
IGURA 101
-
F
UNÇÕES DE PERTINÊNCI
A PARA OS ERROS EM
X
E
Y
UTILIZADAS NO
CONTROLADOR EM TEMPO
REAL
.....................................................................................126
F
IGURA 102
T
RAJETÓRIA PERCORRIDA
EM TEMPO REAL PELO
FLC
PARA O AMBIENTE 1....126
F
IGURA 103
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O
FLC
EM
TEMPO REAL NO O AMBI
ENTE 1.......................................................................................127
F
IGURA 104
S
INAIS DE CONTROLE PARA O
FLC
EM TEMPO REAL PARA O
AMBIENTE 1. ......127
F
IGURA 105
T
RAJETÓRIA PERCORRIDA
EM TEMPO REAL PELO
FLC
PARA O AMBIENTE 2....127
F
IGURA 106
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O
FLC
EM
TEMPO REAL PARA O AM
BIENTE 2...................................................................................128
F
IGURA 107
S
INAIS DE CONTROLE PA
RA O PELO
FLC
EM TEMPO REAL PARA O
AMBIENTE 2.128
F
IGURA 108
T
RAJETÓRIA PERCORRIDA
EM TEMPO REAL PELO
CONTROLADOR PREDITIV
O
PARA O AMBIENTE 1. ......................................................................................................129
F
IGURA 109
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O CONTROL
ADOR
PREDITIVO EM TEMPO R
EAL PARA O AMBIENTE 1............................................................129
F
IGURA 110
S
INAIS DE CONTROLE PA
RA O CONTROLADOR PRE
DITIVO EM TEMPO REAL
PARA
O AMBIENTE 1.................................................................................................................129
F
IGURA 111
T
RAJETÓRIA PERCORRIDA
EM TEMPO REAL PELO
CONTROLADOR PREDITIV
O
PARA O AMBIENTE 2. ......................................................................................................130
F
IGURA 112
P
OSIÇÃO ATUAL E REFER
ÊNCIAS EM FUNÇÃO DO
TEMPO PARA O CONTROL
ADOR
PREDITIVO EM TEMPO R
EAL PARA O AMBIENTE 2............................................................130
F
IGURA 113
S
INAIS DE CONTROLE PA
RA O CONTROLADOR PRE
DITIVO EM TEMPO REAL
P
ARA
O AMBIENTE 2.................................................................................................................130
XI
LISTA DE TABELAS
T
ABELA 1
E
XEMPLO DE UMA POPULA
ÇÃO,
CODIFICAÇÃO E
FITNESS
. ....................................23
T
ABELA 2
D
ESEMPENHO DO ALGORIT
MO GENÉTICO
. ............................................................27
T
ABELA 3
C
OMPARAÇÃO ENTRE OS M
ÉTODOS DE PLANEJAMEN
TO DE TRAJETÓRIAS
.............58
T
ABELA 4
T
ABELAS ASSOCIATIVAS
DO CONTROLADOR
FUZZY
..............................................72
T
ABELA 5
G
ANHOS UTILIZADOS PAR
A O CONTROLADOR
PID
EM SIMULAÇÃO
......................82
TA
BELA 6
C
OMPARAÇÃO ENTRE OS C
ONTROLADORES
PID
E
FUZZY
IMPLEMENTADOS
.......... 90
T
ABELA 7
C
OMANDOS DADOS AO ROB
Ô..............................................................................112
T
ABELA 8
G
ANHO
S UTILIZADOS PARA O
CONTROLADOR
PID
EM SIMULAÇÃO
....................122
XII
LISTA DE SIGLAS
AG
Algoritmo Genético
AGV
Automatic Guided Vehicle
APF
Artificial Potencial Field
CAD
Computer Aided Drawing
CCD
Charge Coupled Device
DC
Direct Current
FLC
Fuzzy Logic Controller
GPC
Generalized Predictive Controller
GPS
Global Positioning System
LED
Light Emitting Diode
MIMO
Multiple Input, Multiple Output
PC
Personal Computer
PID
Proporcional, Integral e Derivativo
PWM
Pu
lse Width Modulation
RAM
Random Access
Memory
RMS
Root Mean Square
SISO
Single Input, Single Output
SMPA
Sense
Model
Plan
Act
USB
Universal Serial Bus
XIII
LISTA DE SÍMBOLOS
X(t),
Y(t)
: posição do robô com relação aos eixos
X
e
Y
(t)
:
orientação do robô (ângulo com o eixo
X)
F
: função que descreve a dinâmica e cinemática do robô
V
r
(t)
: tensão elétrica aplicada ao motor direito, valor eficaz
V
l
(t)
:
tensão elétrica aplicada ao motor esquerdo, valor eficaz
T
r
: constante de
tempo do motor direito [ segundos ]
T
l
: constante de tempo do motor esquerdo [ segundos ]
K
r
: ganho do motor direito [ radianos / ( Volts x segundo ) ]
K
l
: ganho do motor esquerdo [ radianos / ( Volts x segundo ) ]
q
l
(t)
: velocidade angular do eixo
do motor esquerdo [ rad/s ]
q
r
(t)
: velocidade angular do eixo do motor direito [ rad/s ]
R
: metade da distância entre as rodas ou raio do carro [ metros ]
r
: metade do diâmetro das rodas ou raio da roda [ metros ]
: o número de características de cada indivíduo
)(ta
k
:
k
ésimo indivíduo da população na geração
t
P(t)
:
população na geração
t
(
)(ta
k
) :
fitness do
k
ésimo indivíduo da população na geração
t
))
(('
}{
tPr
c
p
: operação de cruzamento sobre a população na geração t usando a probabilidade
pc de ocorrer
))
(('
}{
tam
kp
m
: operação de mutação sobre o k ésimo indivíduo da população na geração t
usando a probabilidade pm de ocorrer
))
((' tPs
:
operação de seleção sobre a população na geração
t
T
: número máximo de gerações
f
:
fitness
suficientemente otimizado
t
: operador de tempo em número de gerações
N
: número de nós (incluindo o ponto de início e destino)
X
i
, Y
i
: coordenad
as do nó
i
(considerando
i
=1 o nó inicial)
i
:
distância percorrida dentro de um obstáculo por um segmento entre o i e o
nó seguinte
: fator de penalidade
XIV
||
r
F
: módulo da força de repulsão
d : distância euclidiana do ponto atual até o centro círculo circunscrito ao triângulo
que origina a força de repulsão
Rr
máx
: ganho no raio da força de repulsão
Rc
: raio do círculo circunscrito ao triângulo que origina a força de repulsão
Mr
: ganho no módulo da força repulsiva
h
: fator de decaimento da força repulsiva
F
: força resultante
Ma
: ganho da força de atratividade
a
F
: força de atratividade
ir
F
,
: força de repulsividade gerada pelo triângulo
i
atuand
o sobre o ponto considerado
rmáx
F
: força de repulsividade,
ir
F
,
, de maior módulo atuando sobre o ponto considerado
n
: número do nó atual
f(n)
: custo atribuído ao nó
n
g(n)
: custo para partir do nó inicial e ati
ngir o nó
n
h (n)
: estimativa do custo para partir do nó n e atingir o nó objetivo
rm
: coeficiente angular da reta
rm
rm
:
coeficiente linear da reta
rm
ij
: coeficiente angular da reta que contém a aresta
i
do objeto
j
ij
:
coeficiente linear da reta que contém a aresta
i
do objeto
j
X
c
: coordenada no eixo das abscissas do
ponto onde ocorre a intersecção das retas
Y
c
: coordenada no eixo das ordenadas do ponto onde ocorre a intersecção das retas
Q
L
(t)
: velocidade linear em regime permanente[ m/s ]
Q
(t)
: velocidade angular do robô [ rad/s ]
V
l1
: valor calculado pelo
controlador para o motor esquerdo [ Volts ]
V
r1
: valor calculado pelo controlador para o motor direito [ Volts ]
V
l2
: valor que será efetivamente enviado para o motor esquerdo [ Volts ]
V
r2
: valor que será efetivamente enviado para o motor direito [
Volts ]
V
MÀX
: tensão máxima suportada pelos motores [ Volts ]
Q
L
: velocidade linear [ m/s ]
Q
: velocidade angular do robô [ rad/s ]
E
L
: erro linear [ m ]
E
: erro angular [ rad ]
XV
t
: intervalo de amostragem [ s ]
k
: tempo discreto
w(
k
+
j|k)
: referências futuras
(
k
+
j|k)
: previsões das saídas do sistema
u(
k
+
j|k)
: incrementos
do sinal de controle
: ponderação sobre os esforços de controle
Ny
: horizonte de previsão da saída
Nu
: quantidade de incrementos do sinal de controle considerados na otimização
w
L
(
k
+
j|k)
: referências futuras de deslocamento [m]
w (
k
+
j|k)
: r
eferências futuras de orientação [ rad ]
[X
d
(k
),
Y
d
(k
)]
:
waypoint
atual com relação aos eixos
X
e
Y
[ m ]
M
: número de instantes de amostragem considerados no ensaio;
L
: comprimento do carro
V
: norma II do vetor V é definida como sendo a raiz quadrada do somatório dos
quadrados de todos os seus elementos.
1
Capítulo 1
Introdução
Com a crescente necessidade de aumento de produtividade e entrega de produtos finais com
qualidade uniforme, a indústria está cada vez mais adotando soluções automatizadas. Atualmente, a
maioria das atividades automatizadas na manufatura é realizada por máquinas especializadas,
projetadas para cumprirem atividades pré-determinadas. Assim sendo, a robótica, com a utilização de
braços manipuladores robotizados, atingiu o seu ápice gerando um mercado de mais de dois bilhões
de dólares por ano no mundo (Pazos, 2002).
Preso a uma determinada posição no processo produtivo, manipuladores robóticos podem atuar
com grande velocidade e precisão apropriadas para realizar tarefas como soldagem ponto e pintura.
Na indústria eletrônica, por exemplo, manipuladores colocam componentes com precisão sobre-
humana, tornando realidade equipamentos sofisticados tais como os telefones celulares e os
laptops
.
Mas apesar deste sucesso, estes robôs comerciais possuem uma desvantagem: a falta de
mobilidade. Um manipulador possui um volume de trabalho limitado ao local onde ele está fixado. A
falta de flexibilidade e o alto custo destes sistemas têm aumentado a procura por alternativas mais
fl
exíveis e de baixo custo (Fu
et al.
, 1987).
Em contraste com os manipuladores, um robô móvel pode percorrer o parque fabril aplicando
suas funcionalidades onde quer que seja útil. Assim, o campo da robótica móvel vem ganhando força
e destaque em diversas aplicações, tais como: polir superfícies, patrulhar áreas, desativar bombas,
cortar a grama, fazer
tours
em museus, guiar pessoas em supermercados, transportar materiais, buscar
minas terrestres, localizar destroços submarinos, entre outros (Siegwart e Nour
bakhsh, 2004).
1.1
Motivação
A robótica móvel é um pico desafiante por diversas razões. Primeiramente, transformar um
computador sobre rodas em uma máquina inteligente, capaz de identificar características do ambiente,
medir grandezas sicas, reconhecer padrões, construir mapas, aprender com a experiência requer
conhecer diversas áreas do conhecimento humano. A engenharia e a ciência da computação são as
2
principais áreas que tratam da robótica móvel. Quando surgem questões referentes ao comportamento
intelig
ente, a psicologia e a filosofia oferecem hipóteses e algumas respostas (Nehmzow, 2000).
Em segundo lugar, os robôs móveis são o mais próximo que se pode chegar na criação de
agentes inteligentes. Por séculos as pessoas têm interesse em construir máquinas
que possam pensar e
tomar decisões baseadas no ambiente que as cercam. Para satisfazer este objetivo, a pesquisa em
robótica móvel tem intensificado o uso de inteligência artificial, a fim de capacitar os robôs para
mimetizar o comportamento dos seres vivo
s.
Em terceiro lugar está o fato de que se encontram aplicações de robótica móvel em diversas
áreas, tais como na manufatura, no transporte e armazenamento de materiais (Santos, 2001), na
medicina realizando assistência de deficientes físicos (Takahashi
et al.
, 2004), em aplicações militares
no desarmamento de minas terrestres e explosivos (Mclurkin, 1995), em jogos de computador
(Littman
et al., 1994) e na exploração espacial (NASA, 1997). Em Asami (1994) e Schraff (1994),
por exemplo, os robôs de serviços são apresentados como uma área emergente de pesquisa e
aplicação. Como um exemplo mais específico pode
-
se citar Mandow
et al.
(1996), onde é descrito um
robô móvel autônomo para aplicação em agricultura, objetivando substituir o trabalhador humano em
a
tividades inóspitas em estufas, tais como a pulverização com inseticidas.
A indústria automobilística, que utiliza na maioria das vezes robôs manipuladores, está
empregando robôs móveis. Nova geração de AGVs (Automatic Guided Vehicles) da VOLVO,
mostra
do na
Figura
1, são usados para transportar blocos de motores de uma estação de montagem
para outra. Eles são guiados por um fio elétrico instalado no chão. cerca de 4000 AGVs apenas
nas fábricas da VOLVO.
Figura
1
AGV usado nas fábricas da VOLVO. Fonte: (Curie, 1999).
Os mesmos algoritmos usados para planejar trajetórias de robôs móveis também são utilizados
em jogos eletrônicos. Esta indústria, a de jogos eletrônicos, movimenta mais dinheiro no mundo do
que a indústria cinematográfica, ultrapassando, em 2005, mais de 17 bilhões de dólares por ano
(Comitê de Promoção da Indústria de Desenvolvimento de Jogos Eletrônicos no Brasil, 2006).
Atualmente, a robótica autônoma móvel também vem assumindo um importante papel no
desenvolvimento de pesquisas em inteligência artificial. Existem picos, nesta área, que são de
3
fundamental importância, por exemplo: manutenção da localização do robô, planejamento de
trajetórias e navegação.
Por outro lado, o desenvolvimento de sistemas de controle para robôs móveis autônomos tem
se mostrado um desafio até os dias atuais. Diferentes abordagens para o projeto de sistema de controle
para robôs móveis autônomos têm sido utilizadas em diversas áreas de pesquisa. No entant
o, os robôs
móveis autônomos ainda não causaram impacto em aplicações domésticas, principalmente devido à
falta de um sistema de controle robusto, confiável e flexível que permita que estes robôs operem em
ambientes desconhecidos e habitados por seres huma
nos.
Para poder navegar em um dado ambiente, um robô precisa ser capaz de determinar sua
localização (posição e orientação). Estimativas de posição relativamente precisas podem ser obtidas
integrando as informações cinemáticas do ro com os seus sensores de velocidade e direção
(
encoders
). Mas o acúmulo de erro pode levar a níveis inaceitáveis de discrepância, prejudicando de
forma significativa o desempenho do sistema de controle e navegação. Para se corrigir este problema
pode
-se usar sensores que não acumulam erros com o decorrer da trajetória, tais como sonares e
câmeras. Dentre os dispositivos sensores que vêm sendo cada vez mais usados em robótica móvel
estão os sistemas de aquisição de imagens através de câmeras de vídeo (Asami, 1994; Dudek e
Jenkin,
2000; Gomide e Rodrigues, 1994; Righes, 2004).
Após a sua localização ser determinada, o robô deve utilizar as informações provenientes de
seus sensores e planejar a sua trajetória de forma a evitar obstáculos e atingir o seu objetivo. Nesta
etapa devem ser analisadas as dimensões do robô, as posições e geometrias dos obstáculos, a
possibilidade dos obstáculos se moverem durante a trajetória do robô e a otimização da trajetória
segundo critérios pré estabelecidos. Com a trajetória planejada, um sistema de
controle é responsável
por fazer com que o ro a percorra, levando em consideração sua dinâmica e a velocidade do
movimento.
1.2
Robótica móvel
A seguir, tem-se um histórico resumido da robótica móvel destacando alguns aperfeiçoamentos
do último século.
Os p
rimeiros robôs móveis surgiram durante a 2
a
Guerra Mundial como resultado das pesquisas
em novos campos da ciência da computação e cibernética. Esses primeiros robôs eram, na maioria das
vezes, bombas voadoras que usavam sistemas de orientação e controle por radar para detonar apenas
a uma determinada distância do alvo. Os foguetes V1 e V2 tinham um primitivo sistema de piloto
automático e foram os predecessores dos mísseis balísticos continentais atuais (Keramas, 1999).
4
Em 1948, Grey Walter construiu Elmer e Elsie, dois robôs móveis que se assemelhavam a
tartarugas. Oficialmente eles foram chamados de Machina Speculatrix, pois estes robôs estavam
programados para explorar o ambiente através de sensores luminosos.
Mais de uma década depois, a Universidade John Hopkins desenvolveu o
Beast,
em 1961. Este
robô usava um sonar para se guiar e quando suas baterias estavam se esgotando ele procurava uma
tomada de energia elétrica e se carregava sozinho. Alguns anos depois, em 1969, surgiu o
Mowbot
,
que foi o primei
ro robô que automaticamente cortava a grama.
Em 1970, foi construído o Stanford Cart, mostrado na
Figura
2. Era um robô capaz de seguir
uma linha desenhada no chão usando uma câmera. Este robô tinha uma conecção de rádio para um
c
omputador central que efetuava o processamento das imagens.
Figura
2
Stanford Cart.
Fonte: (Curie, 1999).
Na mesma época o Instituto de Pesquisa de Stanford também estava desenvolvendo o
Shakey
.
Este robô, com movimentos trêmulos, era capaz de raciocinar sobre as suas ações, interpretando os
comandos dados por seus operadores.
Após alguns anos, a União Soviética explorou a superfície da Lua com o Lunokhod 1. Em
1976, a NASA enviou duas espaçonaves não tripuladas a Marte.
Em 1990, Joseph Engelberger, juntamente com alguns colegas, projetou o
Helpmate
, o
primeiro robô autônomo para auxiliar em atividades hospitalares. Seis anos depois, a NASA enviou
para Marte o robô
Sojourner
. Este robô era teleoperado da Terra, mas possuía um sistema de evasão
de perigo que o permitia navegar pelo ambiente desconhecido de forma autônoma.
A Sony introduziu o
Aibo
em 1999, um cachorro robótico capaz de ver, andar e interagir com
os seres humanos.
A robótica móvel no início do século XXI foi marcada pelo aparecimento dos robôs
humanóides. Em 2005 a HONDA terminou quase três décadas de desenvolvimento produzindo o
Asimo
, um robô humanóide de 1,5m de altura que é capaz de correr e subir escadas, algo nunca antes
alcançado (Honda, 2000).
5
1.2.1
Tipos e Cla
ssificações
O campo da robótica móvel pode ser dividido segundo diferentes topologias possíveis para os
robôs, suas formas de locomoção e navegação. Quanto à forma de locomoção os robôs móveis
classificam
-
se em quatro tipos: terrestres, aquáticos, aéreos
e espaciais (Dudek e Jenkin, 2000).
Os robôs terrestres são aqueles que caminham sobre o chão usando uma superfície sólida e a
gravidade. Estes robôs geralmente possuem rodas, mas também os que caminham, escalam, se
arrastam ou usam esteiras para se locomover. Robôs aquáticos operam tanto na superfície da água
quanto sob a água. Os robôs aéreos, em sua maioria, mimetizam os aviões e pássaros. Robôs espaciais
são desenvolvidos para operarem em micro
gravidade, próprios para a exploração espacial.
Os robôs terrestres com rodas podem ser construídos a partir de diversas topologias, podendo
ou não ser holonômicos. A característica de ser holonômico deve-se ao fato do robô ser capaz de
atingir certas posições imediatamente adjacentes a sua posição atual, sem a necessidade de realizar
manobras complexas. Esta característica é raramente observada em robôs móveis que utilizam rodas,
a menos que todas as suas rodas possuam esterçamento independente.
Um outro critério usado para classificar robôs móveis não está na sua construção física, mas
sim na maneira com que ele interage com outros robôs. Robôs móveis podem ser projetados para
atuarem de forma solitária ou construídos especificamente para trabalharem em conjunto como, por
exemplo, nas competições de futebol de
robôs (Brand et al.
, 2002).
1.2.2
Sensores
Na robótica, são empregados diversos tipos de sensores que informam ao robô detalhes sobre o
ambiente em que ele está inserido. Estes sensores podem ser ativos ou passivos. Sensores ativos são
aqueles que emitem energia e analisam as perturbações que esta energia gera sobre o ambiente.
Sensores passivos são aqueles que apenas realizam observações do ambiente sem modificá lo. Os
tipos de sensores mais empregados em robôs móveis são sensores de choque (
bumbers
), sensores
infravermelhos, sensores do tipo sonar, sensores do tipo radar, sensores Laser, sensores baseados em
satélites (GPS
Global Positioning System), bússolas, odômetros e sensores baseados em visão
(Dudek e Jenkin, 2000; Heinen, 2000).
Os sensores de visão obtêm uma grande quantidade de dados. Para o processamento desses
dados, normalmente é necessário um
hardware
dedicado para análise e processamento destes dados.
Com um sensor CCD (
Charge
Coupled Device), o robô pode amostrar o ambiente onde está inserido
ce
rca de 30 vezes por segundo, obtendo imagens, coloridas ou em tonalidades de cinza, com uma
resolução
variável dependendo do CCD utilizado.
Com as imagens obtidas, técnicas de processamento de imagens como reconhecimento de
padrões, detecção de bordas, análise de cores, etc, podem ser aplicadas para se extrair informações
sobre o ambiente. Usando-se duas câmeras, pode-se até reconstruir o ambiente em três dimensões.
6
Isso permite que a distância entre o robô e um objeto possa ser determinada. Este processo
é
conhecido por estereoscopia. Entretanto, a reconstrução de ambientes acarreta um alto custo
computacional e está sujeita a problemas de oclusão e imprecisão (Silva, 2001).
Com relação a sua disposição, os sensores podem ser internos ou externos. Os senso
res internos
são aqueles localizados no próprio robô e por isso se movem juntamente com o mesmo. Em oposição,
os sensores externos são fixos ao ambiente ou em algum outro sistema móvel e observam o
movimento do veículo. Além desta classificação, os sensore
s podem fornecer um conhecimento local,
que é usado para determinação das características internas do robô (ex.: velocidade e posição dos
motores), ou um conhecimento global que provê informação dos estados do robô em relação ao
ambiente (ex.: velocidade e
posição do robô) (Abidi e Gonzales, 1992).
Os sensores visuais podem, portanto, ser também internos ou externos (Horn, 1986). Quando as
câmeras estão localizadas no robô, este usa conhecimentos prévios e marcas visuais para localizar-
se
no ambiente (Ma
et
al., 1999;
Sujan
et al., 2006). De maneira similar, as câmeras externas são usadas
para observar o movimento do robô e informar a sua localização. A principal diferença neste caso, é
que o processamento da imagem não está no veículo, mas em um segundo computador que toma
algumas decisões e as transmite ao robô, muitas vezes denominado agente. O controle dos robôs é
feito, então, de forma externa e, quando não existe além do sistema visual um processamento e
sensoriamento local, este se torna uma tarefa não trivial (Ma et al., 1999). Atualmente, esta
configuração tem sido encontrada em aplicações onde se deseja obter robôs de baixo custo ou que não
podem conter carga (Zhang e Ostrowski, 1999).
1.2.3
Comportamento e Navegação
Para que um robô móvel autônomo possa navegar com sucesso através de um ambiente, ele
deve ser capaz de tomar decisões baseadas nas informações provenientes de seus sensores. O
comportamento do robô pode ser classificado em três tipos: sistemas deliberativos, reativos ou
híbridos (Siegwart e No
urbakhsh, 2004; Nehmzow, 2000).
Os sistemas de controle deliberativos usam o modelo SMPA (
Sense
Model
Plan
Act
). O robô
recebe, através de seus sensores, informações sobre o ambiente onde está inserido. Baseado nestes
dados o robô constrói um modelo do ambiente para que possa gerar um plano de ação. Estes sistemas
possuem a desvantagem de necessitar a construção de um modelo preciso
do ambiente.
Por outro lado, os sistemas de controle reativos não possuem uma representação do ambiente
onde estão inseridos e funcionam sob o princípio dos sistemas sensoriais motores, ou seja, sentem e
agem. Baseados no princípio da reatividade, isto é, na suposição de que, em sistemas dinâmicos
complexos, comportamentos inteligentes podem emergir a partir da interação de compo
rtamentos
simples. Neste caso, existem vários processos que concorrem entre si. Cada processo recebe dados de
seus sensores e alguns desses processos podem inibir outros, dependendo das prioridades de cada um.
7
Há também sistemas híbridos que incorporam car
acterísticas deliberativas e reativas de forma a
conseguir uma melhora no desempenho (Siegwart e Nourbakhsh, 2004; Nehmzow, 2000).
A classificação entre deliberativo ou reativo refere-se ao comportamento do ro quanto à
tomada de decisões locais, de forma a evitar obstáculos e determinar a sua posição em um dado
ambiente. Para que um robô seja capaz de ir de um ponto a outro, é necessário também determinar o
caminho a ser percorrido até o objetivo. Com estas informações, o robô poderá planejar e executar a
tarefa de se deslocar até um local específico. Este conjunto de condições e ações é chamado de
navegação (Heinen, 2000). A navegação robótica pode ser dividida em três grupos: global, local e
híbrida.
Na navegação global, o robô planeja o caminho que irá percorrer baseado no seu
posicionamento absoluto em relação ao mapa de um ambiente.
Na navegação local, a posição é sempre relativa a objetos (estáticos ou em movimento) do
ambiente. O robô então avança no seu caminho evitando tais obstáculos.
A navegação visual pode ser enquadrada tanto como global quanto local. Se a câmera estiver
instalada externamente ao roserá uma navegação global. Se a câmera estiver instalada no robô a
informação será relativa a pontos de referência contidos em uma seqüência de imagens. Esta
seqüência de imagens descreverá uma determinada área do ambiente onde o robô está inserido.
Samsom
et al. (1990) apresentam diversos aspectos e dificuldades encontrados no projeto de
sistemas de controle para robôs com rodas, não holonômicos, em espaço cartesiano.
Aracil
et al.
(2005) menciona a utilização de robôs móveis em ambiente
indoor
com realimentação de informação
visual.
Os trabalhos supracitados são exemplos de duas principais dificuldades encontradas para que
um robô móvel atinja o seu destino e evite obstáculos. O primeiro problema consiste em fazer com
que o robô móvel parta de um ponto específico e atinja um outro ponto com uma determinada
orientação. O segundo problema decorre do fato de que cada um dos pontos que o robô percorr
erá
deve ser planejado
a priori
, a fim de evitar os obstáculos e atender a todas as condições de otimização
(Harden, 1997). Resumindo, é necessário um planejamento de trajetória que gere pontos
intermediários e um controle de movimento para que se faça cu
mprir tais pontos.
Para o planejamento da trajetória existem duas vertentes: planejamento em um ambiente
estático ou dinâmico (Paula, 2004). Denomina-se ambiente estático quando os obstáculos não
apresentam qualquer movimento, permanecendo imóveis durante todo o trajeto do robô móvel.
Enquanto que no ambiente dinâmico os obstáculos se movem, necessitando que o processo de
planejamento de trajetória seja recalculado dinamicamente durante o percurso do robô. Em qualquer
um dos casos, o ambiente pode ser conhecido por completo, por meio de câmeras ou de um
mapeamento realizado a priori, ou apenas parcialmente, necessitando o robô possuir sensores locais
como infravermelho e/ou ultra
som.
8
1.3
Modelo do Robô móvel tipo CART
A plataforma de testes utilizada neste tra
balho é de um robô móvel denominado tipo
cart.
E
sta
topologia consiste em duas rodas montadas em um eixo comum e controladas por motores
individuais. Este modelo de robô possui duas rodas de tração independentes, paralelas e uma terceira
roda para sustentação. Também conhecida por tração diferencial, esta topologia é não
holonômica,
pois o robô não pode se mover no sentido do eixo das rodas. Pode-se ver um exemplo de um robô
diferencial na
Figura
3(a) com uma representação esquemática do seu acionamento na
Figura
3
(b).
Cada um dos motores recebe sinais de controle independentes, em função da velocidade desejada para
cada um. A orientação e velocidade linear do veículo são controladas através destas velocid
ades.
Figura
3
Exemplo de um robô diferencial
Assim sendo, para se controlar o robô no plano cartesiano é suficiente controlar a sua posição
em relação aos eixos X e Y e mais o ângulo da sua orientação. Desta forma, tem-
se o
sistema MIMO
(
Multiple Input, Multiple Output
) apresentado na equação
(1.1)
, contendo duas entradas, e três saídas.
))
(
),
((
))
(
),
(
),
(( tVtVFttYtX
lr
(1.1)
onde:
X(t),
Y(t)
: posição do robô
com relação aos eixos X e Y;
(t)
:
orientação do robô (ângulo com o eixo X);
F
: função que descreve a dinâmica e cinemática do robô;
V
r
(t)
: tensão elétrica aplicada ao motor direito, valor eficaz;
V
l
(t)
:
tensão elétrica aplicada ao motor esquerdo, valor eficaz.
Para o roandar em linha reta é necessário imprimir velocidades iguais em módulo e de
mesmo sentido para ambos os motores. Para que o robô gire sobre o seu eixo são colocadas
velocidades iguais e de sentidos opostos. Para a realização de curvas são usadas combinações desses
casos.
9
Com o intuito de adicionar a informação sobre a dinâmica do robô faz-se necessária uma
elaboração de um modelo matemático detalhado. Para isso, parte-se das equações que descrevem o
comportamento dos motores que impulsionam o robô. A função de transferência de um motor DC
pode ser aproximada por um sistema de primeira ordem como sendo (Franklin
et al.
, 1990):
)(
1
)( sV
Ts
K
sq
(1.2)
considerando:
K
: ganho do motor [ radianos /
( Volts x segundo ) ];
T
: constante de tempo do sistema [segundos];
V(s)
: tensão elétrica aplicada ao motor [ Volts ];
q(s)
: velocidade angular do eixo do motor [ rad/s ].
Escrevendo a equação (1.2) na forma de equações diferenciais para cada um dos motores
obtém
-
se:
tV
T
K
tq
T
tq
tV
T
K
tq
T
tq
r
r
r
r
r
r
l
l
l
l
l
l
1
1
º
º
(1.3)
sendo que:
T
r
: constante de tempo do motor direito [ segundos ];
T
l
: constante de tempo do motor esquerdo [ segundos ];
K
r
: ganho do motor direito [ radianos / ( Volts x segundo ) ];
K
l
: ganho do motor esquerdo [ radianos / ( Volts x segundo ) ].
Assim, um modelo que inclui tanto a cinemática quando a dinâmica de primeira ordem dos
motores do robô pode ser equaciona
da como:
tV
T
K
tq
T
tq
tV
T
K
tq
T
tq
tq
R
r
tq
R
r
t
tqt
r
tqt
r
ty
tqt
r
tqt
r
tx
r
r
r
r
r
r
l
l
l
l
l
l
lr
lr
lr
1
1
22
)(
sen
2
)(
sen
2
)(
cos
2
)(
cos
2
º
º
º
º
º
(1.4)
sendo:
q
l
(t)
: velocidade angular do eixo do motor esquerdo[ rad/s ];
q
r
(t)
: velocidade angular do eixo do motor direito[ rad/s ];
V
l
(t)
: tensão elétrica aplic
ada ao motor esquerdo[ Volts ];
V
r
(t)
: tensão elétrica aplicada ao motor direito [ Volts ];
10
R
: metade da distância entre as rodas ou raio do carro [ metros ];
r
: metade do diâmetro das rodas ou raio da roda [ metros ].
Que em notação de espaço de estados resulta em:
tq
tq
t
ty
tx
C
t
ty
tx
tV
tV
B
tq
tq
t
ty
tx
A
tq
tq
t
ty
tx
r
l
T
r
l
r
l
r
l
)(
)(
)(
)(
)(
º
º
º
º
º
(1.5)
sendo:
00100
00010
00001
0
0
00
00
00
1
0000
0
1
000
22
000
sen
2
sen
2
000
cos
2
cos
2
000
T
r
r
l
l
r
l
C
T
K
T
K
B
T
T
R
r
R
r
rr
rr
A
Como o objetivo é simular o sistema em um ambiente computacional, o equivalente discreto da
equação
(1.5)
é necessário, sendo apresentado na equação
(1.6)
, considerando um segurador de ordem
zero.
kq
kq
k
ky
kx
C
k
ky
kx
kV
kV
kq
kq
k
ky
kx
kq
kq
k
ky
kx
r
l
T
r
l
r
l
r
l
)(
)(
)(
)(
)(
1
1
1
1
1
(1.6)
11
Considerando:
r
l
r
l
r
l
r
l
T
t
T
t
T
t
r
T
t
l
T
t
r
T
t
l
T
t
r
T
t
l
e
e
e
R
rT
e
R
rT
e
krT
e
krT
e
krT
e
krT
0000
0000
1
2
1
2
100
1
2
)(
sen
1
2
)(
sen
010
1
2
)(
cos
1
2
)(
cos
001
r
l
r
l
r
l
r
l
T
t
r
T
t
l
r
T
t
r
r
l
T
t
l
l
r
T
t
r
r
l
T
t
l
l
r
T
t
r
r
l
T
t
l
l
eK
eK
TeTt
R
Kr
TeTt
R
Kr
TeTt
krK
TeTt
krK
TeTt
krK
TeTt
krK
10
01
22
2
)(
cos
2
)(
sen
2
)(
cos
2
)(
cos
00100
00010
00001
T
C
1.4
A Concepção do Sistema em Malha Fechada
No presente trabalho, as variáveis que realimentam os controladores são a posição do robô sob
os eixos
X
e
Y
e a sua orientação, que são as variáveis de saída da equação
(1.1).
No caso de robôs que usam rodas, o sistema mais simples para determinação da posição é a
odometria, que é a estimativa da distância percorrida medindo-se o quanto as rodas giraram. Apesar
deste sistema ser conceitualmente simples, existem al
gumas complicações. Dentre elas pode
-
se citar o
deslizamento lateral, escorregamento da roda no sentido do movimento e as diferenças de rugosidade
do solo. Estes fatores influenciam diretamente na precisão da medição (Dudek e Jenkin, 2000). Tais
incertezas
podem ser resolvidas usando uma câmera aérea para medir a posição do robô. Neste
contexto, é necessário manter o rodentro do raio de visão da câmera, mas os benefícios trazidos
pelo sistema de visão computacional superam os inconvenientes da limitação
da área do movimento.
Neste trabalho os testes dos algoritmos de planejamento de trajetórias e controle são realizados
tanto em simulação quanto em tempo real. Na implementação em tempo real utilizou-se um protótipo
12
de robô móvel não holonômico construído com um kit LEGO Mindstorm
TM
. O robô construído é
desprovido de odômetros e a realimentação da sua posição e orientação no ambiente é feita através de
uma câmera aérea. Desta maneira as informações sobre a atitude do robô e o ambiente são conhecidas
em todo
s os instantes.
A concepção do projeto para implementação em tempo real é representada na
Figura
4
.
Uma câmera adquire 30 imagens por segundo do robô juntamente com o ambiente em que este
está inserido. As imagens são digitalizadas por uma placa de aquisição de imagens da
National
Instruments
. Com as imagens no computador, a posição do robô é determinada através de um
programa de reconhecimento de padrões projetado especificamente para identificar o robô construído.
Em tempo real, estes dados são processados por um algoritmo de planejamento de trajetórias. Um
controlador digital envia pela porta serial os sinais para o motor esquerdo e direito. Estes sinais são
enviados por um transmissor de rádio freqüência acoplado à porta serial para um receptor no robô.
Um circuito micro processado no robô recebe essas informações e aplica cada um dos sinais nos
motores utilizando uma modulação por largura de pulsos.
Figura
4
Proposta da implementação em tempo real.
Através da realimentação de informação visual proveniente de uma câmera aérea é possível
controlar remotamente AGVs, empilhadeiras e outros utilitários de transporte industrial. Esta
abordagem, que utiliza câmeras externas aos robôs, permite que poucas câmeras controlem vários
robôs. Assim sendo, não é necessário incluir nestes as câmeras, sistemas de processamento de
imagens e computadores para processar sofisticados algoritmos de controle e planejamento de
trajetórias. Os AGVs podem ser construídos com menos tecnologia embarcada, diminuindo-se o
custo.
13
1.4.1
O LabVIEW
TM
O ambiente de programação usado, tanto nos testes em simulação quanto na implementação em
tempo real, é o LabVIEW
TM
da National Instruments. A linguagem de programação que o
LabVIEW
TM
usa é cha
mada de linguagem G.
Quando surgiu, em 1986, o LabVIEW
TM
era voltado principalmente para instrumentação
virtual e prototipagem rápida, sendo usado pelas indústrias para solucionar necessidades casuais de
softwares
customizados para o uso interno. Com a popularização do programa no meio industrial o
compilador foi aperfeiçoado e hoje contém uma linguagem de programação completa, capacitada
principalmente nas áreas de aquisição e processamento de sinais, análise das medições e apresentação
dos dados, com alta flexibilidade, interface amigável com o usuário e de alta confiabilidade (Bishop,
2003).
Neste trabalho, o LabVIEW
TM
é utilizado devido a sua capacidade de interagir com
dispositivos de
hardware
, tornando possível a utilização de uma única linguagem em todo o escopo
do projeto. Desde os algoritmos de planejamento de trajetórias até os de processamento e aquisição de
imagens estão codificados em LabVIEW
TM
, tornando a programação mais homogênea e dispensando
diversas linguagens dentro do mesmo projeto. A única parte do sistema que não está programado em
LabVIEW
TM
é o processador que vai acoplado ao robô, programação esta desenvolvida em linguagem
C.
1.5
Contribuições da Dissertação
No decorrer deste trabalho de dissertação são apresentados métodos para planejar a trajetória
de um romóvel não holonômico, com tração diferencial, de forma que este evite os obstáculos do
ambiente através de um sistema de visão computacional. São apresentadas e comparadas quatro
vertentes de algoritmos para realizar o planejamento de trajetórias de robôs móveis: (i) uma topologia
utilizando algoritmos genéticos; (ii) um método da classe de campos potenciais artificiais; (iii) um
método consagrado na literatura para buscas enumerativas, o A*; e (iv) um algoritmo tipo
Bug
. Um
novo algoritmo chamado de K
Bug
aqui é proposto. As principais características deste novo método
são o baixo custo computacional, o tratamento vetorial do ambiente e a maximização da utilização da
informação disponível. Uma análise comparativa entre todos os métodos é apresentada sendo que
dois deles são escolhidos para a implementação em tempo real.
Três metodologias de controle são implementadas para fazer com que o robô percorra a
trajetória planejada, sendo elas: (i) controle PID (Proporcional, Integral e Derivativo), (ii) controle
baseado em lógica
Fuzzy
; e (iii) controle preditivo baseado em modelo. Para que os controladores
PID e
Fuzzy
possam ser sintonizados mais facilmente faz-se um desacoplamento entre as variáveis de
14
entrada do robô, permitindo o uso de controladores monovariáveis independentes. Uma nova base de
regras para o controlador baseado em lógica
Fuzzy
é proposta de forma a ser capaz de estacionar o
robô com uma orientação final controlada. Para o controlador preditivo, foi desenvolvida uma
modela
gem alternativa para o robô, diferente dos modelos clássicos não lineares apresentados na
literatura. Este novo modelo incorpora a referência do movimento, tornando
-
se linear.
Usando um modelo de robô móvel construído e acionado com um kit LEGO todo o sistema é
implementado em tempo real, sendo controlado pela plataforma LabVIEW
TM
, da
National
Instruments
, que está integrada ao
hardware
de acionamento Lego pela porta serial e à câmera por
uma placa de aquisição de imagens do mesmo fabricante. Todo o processo de reconhecimento de
padrões para a identificação do robô na imagem também é apresentado.
Ao final do trabalho, tem-se duas plataformas completas para o estudo e validação de
algoritmos para robôs móveis em linguagem de alto nível, sendo uma em simulação
e outra em tempo
real. Considerando uma aplicação acadêmica, essas plataformas são um recurso útil para o ensino de
robótica móvel, onde os pesquisadores e alunos podem simular e visualizar diferentes combinações
de algoritmos de controle e planejamento de trajetórias. O sistema construído é modular o suficiente
para possibilitar a alteração de suas configurações originais, substituindo-se, por exemplo, o robô
móvel por um outro modelo de dinâmicas diferentes.
1.6
Estrutura da Dissertação
A dissertação está di
vidida em seis capítulos.
O Capítulo 2 descreve quatro diferentes abordagens para planejar a trajetória de um robô móvel
no plano cartesiano, de forma que este atinja o ponto de destino evitando obstáculos e atendendo a
determinadas condições de otimização. O primeiro método é uma especialização de um algoritmo
genético voltado para o planejamento de uma trajetória em um ambiente conhecido. Nessa abordagem
são geradas várias possíveis soluções para o problema e estas são combinadas de forma inspirada na
evo
lução natural descrita por Darwin.
O segundo método é o de Campos Potenciais Artificiais (Artificial Potencial Fields
APF
).
Existem diversas topologias em diferentes graus de complexidade de APFs. Neste trabalho será feita
uma implementação clássica do m
étodo, explorando o conceito básico que o rege.
Em seguida, é estudada uma especialização de um algoritmo de busca em grafos conhecido
como A*. Este algoritmo realiza uma busca enumerativa em um grafo e, segundo uma determinada
heurística, sempre produz o resultado ótimo. Esta característica torna o método adequado para
comparar o grau de otimização dos demais métodos de planejamento de trajetórias.
15
Finalmente, uma família de algoritmos baseados no comportamento de insetos é estudada,
chamada de algoritmos tipo
Bug
. Três algoritmos desta família são apresentados, mostrando a
evolução do aperfeiçoamento das trajetórias geradas pelos algoritmos. As primeiras versões do
método são mais robustas e garantem a convergência para uma trajetória válida (Lumelsky e
S
tepanov, 1987; Lumelsky e Skewis , 1990). As versões mais modernas geram trajetórias mais curtas,
porém a convergência não é garantida para qualquer ambiente (Kamon e Rivlin, 1997). Analisando
estas características, em conjunto com as vantagens e desvantagens apresentadas para os demais
algoritmos de planejamento de trajetórias, uma nova abordagem inspirada nos algoritmos tipo
Bug
é
proposta, sendo denominada K
Bug
. Este algoritmo visa maximizar a utilização da informação sobre
o ambiente disponível, garantir a convergência e diminuir o custo computacional em relação aos
demais métodos. Para cada um dos métodos apresentados no capítulo 2, são apresentados testes em
simulação considerando ambientes com diferentes obstáculos. Para a implementação em tempo real
,
são escolhidos dois algoritmos. O A* pelo fato de garantir a convergência para o caminho ótimo e o
K
Bug
que resulta em trajetórias semelhantes às produzidas pelo A*, mas com um custo
computacional menor. Ambos possuem custos computacionais factíveis para a implementação em
tempo real caracterizada por curtos intervalos de amostragem.
No Capítulo 3 é apresentado um controlador baseado em lógica fuzzy capaz de fazer com que
um robô móvel percorra as trajetórias planejadas no capítulo anterior. Um
controlad
or baseado em
lógica fuzzy
é adotado devido a sua capacidade de gerar comportamentos não lineares durante o
percurso do robô. A base de regras do controlador foi elaborada de forma a possibilitar que o robô
estacione no ponto de destino com uma orientação
pré
determinada. Neste mesmo capítulo também é
descrito um controlador PID multivariável. Este controlador tem como objetivo fornecer uma base de
comparação para o controlador fuzzy
. Outra contribuição deste capítulo consiste em
um método para a
comutação
dos
waypoints
durante a trajetória do robô. Isso foi necessário devido a dois fatos: (i) os
algoritmos de planejamento de trajetórias geram uma seqüência de pontos no plano cartesiano
(chamados de
waypoints
) que devem ser atingidos em ordem pelo robô e (ii) para calcular as
referências dos controladores deve-se determinar em todos os instantes de tempo para qual dos
waypoints
o robô está se dirigindo. Ao final do capítulo são mostradas experiências em simulação
comparando o desempenho e características do controlador baseado em lógica fuzzy com o
controlador PID.
No Capítulo 4 será tratada uma segunda metodologia de controle da trajetória do robô móvel,
um controlador preditivo. Ao contrário do que acontece com o controlador baseado em lógica
fuzzy,
que é sintonizado através da experiência do operador, nesta metodologia os sinais de controle são
calculados resolvendo-se um problema de otimização, baseado em um modelo linear adotado para
representar o robô. Assim o controlador, assumindo que o modelo linear é
uma boa aproximação para
o modelo real, prevê o comportamento do robô e encontra qual é a seqüência de sinais de controle que
atende a algumas condições de otimização. Por conseguinte, este controlador, chamado de
16
controlador preditivo baseado em modelo, necessita de um modelo interno para estimar o
comportamento do robô. O modelo descrito na equação (1.6) representa o robô com precisão
suficiente, mas não é um modelo linear. Fato este comprovado pela dependência da matriz de
transformação de estados ( ) pela orientação do robô ( ), que também é um dos estados do modelo.
Algoritmos de controle preditivo baseados em modelos não lineares requerem um elevado custo
computacional que, muitas vezes, não é compatível com aplicações de robótica caracterizadas por
curtos períodos de amostragem. Para resolver este problema, um outro modelo é equacionado de
forma linear. Neste novo modelo é inserido a informação sobre a distância que o robô se encontra até
o ponto de destino, reduzindo para quatro o número de variáveis de estado e eliminando a
dependência da matriz de transformação de estados pela orientação do robô. Neste mesmo capítulo
também é apresentado o equacionamento do controlador a fim de que este possa ser reconfigurad
o
para atender a qualquer modelo. Ao final do capítulo são mostradas experiências em simulação,
comparando o desempenho e características do controlador preditivo com o controlador PID.
No Capítulo 5 é feito um estudo de caso com uma implementação em tempo real. São descritos
a construção do protótipo, o projeto da eletrônica embarcada no robô e o protocolo de comunicação
serial usado para enviar os sinais de controle. Um processo de identificação é aplicado para obter os
parâmetros dos motores. Estes parâmetros são usados em testes em simulação considerando algumas
não
linearidades do modelo, como por exemplo, a zona morta dos motores.
A realimentação da posição e orientação do robô é feita através de uma câmera aérea. Por esse
motivo, o processo de reconhecer o robô na imagem do ambiente deve ser feito entre os instantes de
amostragem. Todos as etapas para a filtragem da imagem,
identificar os padrões da imagem do robô e
calcular a sua posição e orientação no plano cartesiano estão descritos neste capítulo. Como
resultados são apresentadas algumas trajetórias percorridas em ambientes com e sem obstáculos
usando diferentes combinações de algoritmos de planejamento e controle da trajetória.
As conclusões serão abordadas no Capítulo 6, juntamente com as perspectivas de futuras
pesquisas.
17
Capítulo 2
Planejamento da Trajetória de
Robôs Móveis em Ambiente Conhecido
2.1
Introdução
Em robótica móvel, tanto as tarefas simples, como partir de uma origem e atingir um destino,
quanto as complexas, como realizar cooperação entre robôs, necessitam de algum tipo de
planejamento para o movimento a ser executado, seja este feito a priori ou durante o próprio
movimento.
O planejamento de trajetórias é uma das tarefas importantes em robótica móvel, principalmente
para aplicações que envolvem robôs móveis inteligentes e/ou autônomos. De acordo com (Harden,
1997)
, o problema do planejamento da trajetória consiste em fazer com que um robô móvel parta de
uma origem determinada e atinja o seu destino evitando obstáculos durante o percurso e
atende
ndo a
uma ou várias condições de otimização, tais como, gerar caminhos mais curtos ou com o menor
tempo de percurso
.
Para que uma trajetória possa ser determinada, uma representação apropriada do ambiente
deve ser construída. Uma representação comumente utilizada é a decomposição em espaço composto
(
Composite
Space
ou C
space
) (Mahjoubi et al., 2006). A
Figura
5(a) mostra um exemplo da
aplicação deste método em um ambiente. O objeto preto representa um obstáculo enquanto o fundo
branco representa regiões livres. A
Figura
5(b) apresenta a divisão do ambiente em células e a
Figura
5
(c) mostra o mapa resultante.
A decomposição através de C
space
é considerado um método de simples imp
lementação,
porém, gera uma representação numérica do ambiente, o que acarreta problemas de precisão e custo
computacional proporcional ao tamanho da imagem.
Existem também outras formas mais elaboradas de decompor numericamente um ambiente
com obstáculos, tais como, diagrama de Voronoi e decomposição em células. Nestas decomposições,
os centros das células são utilizados para gerar a trajetória do robô. O diagrama de Voronoi possibilita
18
gerar trajetórias que tendem a ser distantes dos obstáculos e longe do caminho ótimo. Ou seja, a
técnica maximiza a segurança do trajeto quanto a impedir as colisões do robô com os obstáculos. Na
decomposição em células o espaço livre é representado por uma coleção de células que não se
interceptam, cuja união é igual ao espaço livre (Heinen, 2000; Latombe, 1991; Siegwart e
Nourbakhsh, 2004).
Figura
5
Ambiente decomposto usando
C
Spaces
.
Outros métodos de representar o ambiente, de forma que a conectividade do espaço livre é
representada por uma rede de curvas unidimensionais, são chamados de
Roadmap
. Dentre estes
métodos destacam-se o
Roadmap
probabilístico, o Random Rapid Trees
,
Freeway
, o
Silhouette
e os
grafos de visibilidade. Nestes métodos não é realizada uma divisão por células, o ambiente é tratado
vetorialmente (Latombe, 1991; Siegwart e Nourbakhsh, 2004).
Após o ambiente ser decomposto é necessário aplicar um algoritmo que encontre a seqüência
de células que o robô deve percorrer para que este, partindo da origem, possa atingir o destino de
forma factível. Neste processo podem ser inseridos vários critérios de otimização, como distanciar-
se
ao máximo dos obstáculos, percorrer a trajetória mais rapidamente ou com o menor percurso possível.
As principais dificuldades na determinação de trajetórias ótimas são devidas ao fato de que os
métodos analíticos são complexos para serem utilizados em tempo real e os métodos de busca
enumerativos são muito afetados pelo tamanho do espaço de busca.
Independente do método de representação do ambiente utilizado e do algoritmo de
planejamento de trajetória empregado, pode-se classificar o planejamento de trajetórias de robôs
móveis em dois tipos: (i) planejamento de trajetória em ambiente dinâmico, que permite um robô
móvel responder a situações inesperadas enquanto engajado no procedimento de resolução do
problema, isto é, o sistema é capaz de produzir um novo caminho em resposta a mudanças
ambientais, e (ii) planejamento de trajetória em ambiente estático, que permite ao robô móvel mover-
se em um ambiente
conhecido
a priori
(Tu e Yang, 2003; Ferrentinos et al.
, 2002; Paula, 2004).
Em ambientes estáticos, o espaço de trabalho (mapa do ambiente) é conhecido e a trajetória
pode ser gerada antes do robô iniciar o percurso. Neste caso, o planejamento da trajetória pode ser
restrito, no caso de existirem obstáculos, ou irrestrito, caso o percurso até o destino esteja
desobstruído (Latombe, 1991).
19
Dentre os métodos mais utilizados para realizar o planejamento da trajetória estão os métodos
de busca heurística. Estes métodos baseiam-se em uma função heurística para buscar uma solução em
um grafo orientado, grafo este que é gerado pelos métodos de decomposição do ambiente (Rich,
1998; Kambhampati e Davis, 1986). Para isto utilizam-se listas encadeadas para decompor
o
ambiente, como, por exemplo, com grafos de visibilidade. Um algoritmo de busca heurística pode
então ser usado para encontrar o melhor caminho. Entretanto, tais todos possuem um alto custo
computacional principalmente em ambientes dinâmicos. Em 1968 foi introduzido por Hart et al. o
algoritmo denominado A* (A Estrela) que até os dias de hoje é considerado como o método de busca
heurística de maior eficácia, pois, segundo a heurística adotada, sempre o melhor caminho é
enco
ntrado, o que o torna um bom ponto de partida para comparações com as trajetórias geradas por
métodos novos. As suas desvantagens estão no fato de que o ambiente deve ser decomposto e
organizado de forma a possibilitar a busca, aumentado ainda mais o seu elevado custo
computacional (
Hart
et al.
, 1968; Rich, 1988; Bender, 1996).
Para o caso do planejamento de trajetórias, o ambiente é representado por um conjunto de
localizações chamadas de
waypoints
, conectados uns aos outros como em uma teia de aranha,
compondo um grafo. Tomando-se um dos
waypoints
como o ponto de origem e um outro para o
destino, o algoritmo encontra a menor distância que liga ambos os pontos pesquisando caminhos
intermediários (Nareyek, 2004).
Também pode-se utilizar algoritmos de otimização estocásticos, como os algoritmos genéticos,
encarando o problema de determinar uma trajetória factível como um problema de otimização
(Mahjoubi
et al., 2006; Almeida, 2005). Os algoritmos genéticos são uma família de modelos
computacionais inspirados na evolução natural de Darwin. Numa utilização mais abrangente do
termo, um algoritmo genético é qualquer modelo baseado em população que utiliza operadores de
seleção, recombinação e mutação para gerar novos pontos amostrais em um espaço de busca. Tais
algoritmos podem ser usados par
a resolver equações de várias variáveis e problemas de otimização de
parâmetros (Goldberg, 1994; Goldberg, 1989). Uma vez que determinar uma trajetória de um robô
pode ser encarado como um problema de estabelecer um conjunto de pontos (variáveis) que desvi
am
de obstáculos e minimizam distâncias (condições), os algoritmos genéticos constituem-se em uma
escolha para a sua solução (Sierakowaki et al., 2004). As desvantagens mais impeditivas para esta
família de métodos estão no alto custo computacional e no fato de não existir garantias de que uma
solução será encontrada.
Para gerar trajetórias dispensando a etapa de decomposição do ambiente pode-se empregar a
técnica dos campos potenciais artificiais, onde o robô é tratado como uma partícula sob a influência
de forças de atração e repulsão (Silveira et al., 1997; Heinen, 2000; Khosla e Volpe, 1988; Krogh,
1984). Este método consiste em definir uma função sobre o espaço livre que possua um mínimo
global no local do destino. Assim, o destino emite um campo atrativo e os obstáculos emitem um
campo repulsivo. O somatório destas duas forças resulta no chamado campo potencial artificial. Este
20
método, apesar de poder ser aplicado tanto em ambientes estáticos quanto em dinâmicos, resulta em
somente uma solução de trajetória que pode não ser a ótima (mais curta) mesmo em um ambiente
estático (Tsuji
et al.
, 2002; Agirrebeitia
et al.
, 2005; Nilsson, 1969; Lin
et al.
, 1999).
Os algoritmos tipo
Bug
também dispensam a decomposição do ambiente, sendo que a sua
versão mais simp
les garante encontrar uma trajetória válida em qualquer ambiente, indiferentemente à
sua complexidade ou número de obstáculos (Lumelsky e Stepanov, 1987; Lumelsky e Skewis , 1990;
Kamon e Rivlin, 1997).
Finalmente, pode-se aplicar algoritmos que visam suavizar as trajetórias independente do
método escolhido para o seu planejamento, utilizando alguma técnica de interpolação, como por
exemplo,
splines
(Mahjoubi
et al.
, 2006; Almeida, 2005).
Neste trabalho as experimentações reais são feitas usando-se uma câmera aérea que fornecerá
as posições tanto dos obstáculos quando do robô em todos os instantes. Desta forma, o planejamento
da trajetória pode ser feito antecipadamente caso o ambiente permaneça estático. Para uma
movimentação em um ambiente dinâmico o algoritmo de planejamento deve ser rápido o suficiente
para recalcular toda a trajetória ou alterá
la continuamente durante o movimento do robô.
Quatro diferentes abordagens são descritas neste capítulo para planejar a trajetória de robôs
móveis em ambientes estáticos: (i) uma topologia utilizando algoritmos genéticos, (ii) campos
potenciais artificiais, (iii) um método consagrado na literatura para buscas enumerativas chamado A*
e (iv) os algoritmos tipo
Bug
.
Ao final, é proposto um novo método denominado K
Bug
. Este método não garante a solução
ótima, entretanto visa maximizar o aproveitamento da informação sobre o ambiente buscando
contornar os obstáculos um a um, levando em consideração seus aspectos geométricos. Apesar de ser
proposto para ambientes estáticos, seu baixo custo computacional em comparação com os outros
métodos faz com que possa ser recalculado sempre que ocorrem modificações no ambiente.
No decorrer do capítulo, os métodos de planejamento de trajetórias estudados são testados
sobre quatro diferentes ambientes para estudos comparativos, todos com obstáculos estáticos. Tais
ambientes foram escolhidos de forma a facilitar a visualização das limitações e vantagens de cada um
dos métodos, em ordem crescente de complexidade.
A
Figura
6(a) mostra um ambiente com três obstáculos convexos. A
Figura
6(b) mostra um
ambiente com apenas um obstáculo, mas este é côncavo possuindo uma forma em U , conhecida na
literatura por causar instabilidade em alguns métodos de planejamento de trajetórias. Um ambiente
complexo, contendo diversos obstáculos irregulares está exibido na
Figura
6(c). Com o intuito de
simular uma condição mais próxima do real, um ambiente com a forma de um escritó
rio foi escolhido
e encontra-se na
Figura
6(d). Todos os ambientes foram decompostos em formas poligonais fechadas
e toda a informação passada para os algoritmos é feita vetorialmente.
21
Figura
6
Tipos
de ambientes.
Este capítulo está estruturado da seguinte forma:
Na seção
2.2
é apresentado um algoritmo genético (AG) adaptado para o planejamento de
trajetórias para um robô móvel. Na seção
2.3
é discutida uma versão clássica do método de campos
potenciais artificiais. O método A*, utilizado para buscar um caminho ótimo em um mapa
segmentado por um grafo de visibilidade, é apresentado na seção
2.4
. Na seção
2.5
é proposto um
novo algoritmo para o planejamento de trajetórias de robôs móveis chamado de K
Bug
. Finalmente,
na seção
2.6
, um resumo é discutido levantando as principais vantagens e desvantagens de cada um
dos métodos.
2.2
Algoritmos Genéticos (AGs)
Os algoritmos genéticos (AGs) têm sido utilizados em uma ampla gama de problemas de
otimização de parâmetros (Goldberg, 1989; Bäck e Schwefel, 1997). Com aplicações desde
elaboração de cronogramas escolares e otimização de designs de residências até organização de
ordens de produção em linhas automobilísticas e no projeto de turbinas de aviões comerciais.
22
Recentemente, a robótica tem usado tais algoritmos no planejamento de trajetórias de robôs móveis
dentro do ambiente fabril quando o espaço de busca é grande ou mesmo complexo (Tu e Yang, 2003;
Xiao
et al.
, 1997; Yao
et al.
, 1999).
Descreve
-se, a seguir, uma adaptação do método de algoritmos genéticos para determinar e
otimizar a trajetória de um robô móvel.
2.2.1
Pr
incipais Conceitos sobre AGs
Os algoritmos genéticos são técnicas robustas e eficientes em espaços de procura irregulares,
multidimensionais e complexos, e se caracterizam por (Goldberg, 1989): (i) operar em uma população
de pontos; (ii) não requerer derivadas; (iii) trabalhar com a codificação de seu conjunto de
parâmetros; (iv) realizar transições probabilísticas, em vez de regras determinísticas; (v) necessitar
apenas de informação sobre o valor de uma função objetivo para cada indivíduo da população.
A implementação do algoritmo genético binário começa com uma população (geralmente
iniciada de forma aleatória com distribuição uniforme) de cromossomos. Estas estruturas são então
avaliadas para gerar oportunidades reprodutivas de forma que, cromossomos que representam uma
solução "melhor" tenham maiores chances de se reproduzirem do que os que representam uma
solução "pior" (Goldberg, 1994). A definição de uma solução, ou indivíduo, melhor ou pior é dada de
acordo com uma função de custo , ou
fitness
.
Par
a aplicar os algoritmos genéticos, uma função de aptidão (
fitness
) deve ser definida para
avaliar quão adequada é cada uma das soluções produzidas pelo algoritmo. Através dos operadores de
seleção, cruzamento e mutação, os indivíduos (soluções factíveis do
problema) com maior aptidão são
encontrados. Um operador de seleção elitista garante que os indivíduos com maior aptidão se
propagarão para as futuras gerações.
Os operadores utilizados no algoritmo genético abordado foram os operadores clássicos de
sele
ção, cruzamento e mutação. Duas estratégias de seleção são apresentadas a seguir: a seleção por
roleta e a seleção por torneio. Ambas serão usadas com o fim de comparar os resultados obtidos.
A operação de seleção por roleta é um meio de escolher membros da população de forma a
priorizar aqueles com maior
fitness
. Este operador por si não garante que o membro mais apto seja
transferido para a população seguinte, apenas lhe uma chance maior de participar do cruzamento.
Na seleção por torneio são selecionados aleatoriamente pares de indivíduos que competem . O
indivíduo com maior
fitness
vence a rodada e aqueles que acumularem mais vitórias são selecionados
para o cruzamento. A
Tabela
1
mostra um exemplo de uma população compos
ta de 4 indivíduos, suas
respectivas codificações em números binários e seus valores de fitness
.
A
Figura
7, etapa 1, mostra um esquema ilustrativo do operador de seleção por roleta. A cada
membro da população é dada uma fatia de
um gráfico tipo torta. O tamanho da fatia é proporcional ao
valor do
fitness
. Assim, seleciona-se aleatoriamente um ponto do círculo externo do gráfico. A fatia
que contiver o ponto selecionado resulta no membro da população que será selecionado para
23
part
icipar do cruzamento. Em cada par de indivíduos selecionados será executado o operador de
cruzamento.
Tabela
1
Exemplo de uma população, codificação e
fitness.
Indivíduo
Genoma
Fitness
% do Total
1
01101
169
14,4
2
11000
576
4
9,2
3
01000
64
5,5
4
10011
361
30.9
Total
1170
100,0
O operador de cruzamento combina dois indivíduos para formar dois novos indivíduos (filhos)
que tenham a probabilidade de apresentarem melhor aptidão que seus pais. três formas diferentes
de executar o cruzamento, podendo este ser um cruzamento de ponto único (Single Point Cross
SPX), de ponto duplo (Double Point Cross
DPX) ou uniforme (Uniform Point Cross
UPX;
Buckland, 2002).
Figura
7
Operadores de Seleção, Cr
uzamento e Mutação.
. A
Figura
8 mostra exemplos das estratégias de cruzamento supra citadas. No SPX cada
progenitor tem o seu genoma dividido ao meio e cada um dos descendentes receberá metade do
genoma de cada progenitor. No cruzamento tipo DPX e UPX há, respectivamente, dois ou mais
pontos em que os genomas são divididos. Estas variações objetivam fundir mais uniformemente a
carga genética dos progenitores. Em todos os casos, são escolhidas aleatoriamente as seqüências de
bits
para serem trocadas entre os membros selecionados para o cruzamento. Cada par de membros
progenitores geram um par de descendentes independente da estratégia de cruzamento. A
Figura
7
,
etapa 2, mostra um exemplo numérico de um cru
zamento SPX com uma probabilidade P
c
de ocorrer.
A operação de mutação insere uma alteração aleatória em um indivíduo da população, visando
inserir novas informações genéticas na população e prevenindo a convergência prematura para um
máximo local. O operador de mutação permite que novas áreas do universo do problema sejam
exploradas. É aplicado o operador de mutação em cada um dos bits de cada um dos indivíduos
gerados pelo processo de cruzamento. Dessa forma, cada um dos bits possui uma probabilidade P
m
24
(geralmente baixa, entre 0,1% e 3%) de sofrer a mutação passando de zero para um ou vice
versa
(Buckland, 2002).
Figura
8
Estratégias de cruzamento.
Para garantir que o melhor indivíduo de cada geração seja transmitido para a geração seguinte,
pode
-se utilizar uma estratégia elitista (Ahn e Ramakrishna, 2003), que simplesmente mantêm o
indivíduo com maior
fitness
na população.
Os algoritmos genéticos provocam um melhoramento gradativo da aptidão dos indivíduos que,
após a realização de muitas gerações (ciclo evolucionário), esperam criar indivíduos contendo um
conjunto de variáveis otimizadas adequadamente (ver diagrama da
Figura
9
)(Yao
et al.
, 1999).
Figura
9
Ciclo de dad
os em um algoritmo genético canônico.
A seguir, um pseudo código do algoritmo genético descrito é apresentado. Este algoritmo
também é conhecido por algoritmo genético canônico. Assumindo:
: o número de características de cada indivíduo;
)(ta
k
:
k
ésimo
indivíduo da população na geração
t;
P(t)
: população na geração
t
;
( )(ta
k
)
: fitness do
k
ésimo
indivíduo da população na geração
t;
))
(('
}{
tPr
c
p
: operação de cruzamento sobre a população na geração t usando a
probabilidade
p
c
de ocorrer;
))
(('
}{
tam
kp
m
: operação de mutação sobre o k
ésimo
indivíduo da população na geração
t
usando a probabilidade
p
m
de ocorrer;
25
))
((' tPs : operação de seleção sobre a população na geração t. A probabilidade de
um indivíduo ser escolhido é dada por
1
))
((/
))
((
))
((
j
jkks
tatatap ;
T
: número máximo de gerações;
f
: fitness suficientemente otimizado;
t
: operador de tempo em número de gerações.
t:=0
iniciar: P
(0)
:=
{
)(
1
ta
,...,
)(ta
}
processar: P
(0)
:
{ (
)(
1
ta
),..., (
)(ta
)}
selecionar: P
(0)
:=
))
((' tPs
enquanto
(
Max
({
(
)(
1
ta
),..., (
)(ta
)})
<f e t<T
)
faça
recombinar:
)(ta
k
:=
))
(('
}{
tPr
c
p
}
,...,
1{k
mutar:
)(ta
k
:=
))
(('
}{
tam
kp
m
}
,...,
1{k
processar: P (t)
: {
(
)(
1
ta
),..., (
)(ta
)}
selecionar: P
(
t+1
)
:=
))
("(' tPs
t := t + 1
fimenquanto
Maiores informações sobre tipos de algoritmos evolucionários podem ser encontradas em Bäck
e Schwefel (1993).
2.2.2
Algoritmos Genéticos para Planejamento de Trajetórias
Para o caso do planejamento de trajetórias usando algoritmos genéticos, as populações criadas
represen
tam conjuntos de possíveis trajetórias que podem ser seguidas pelo ro móvel. Cada
indivíduo representa uma trajetória, contendo uma quantidade pré-determinada de nós. A trajetória é
formada ligando-se todos os nós por linhas retas, partindo-se do ponto de início, passando por todos
os nós e chegando até o ponto de destino. Cada é composto de duas coordenadas, uma para X e
outra para
Y
. Assim sendo, considerando trajetórias com quatro nós, não incluindo os pontos de início
e destino, têm-se duas variáveis por , totalizando oito variáveis por indivíduo. Estas variáveis
também são chamadas de características dos indivíduos no âmbito do algoritmo genético. Cada
uma delas é codificada no formato binário para então ser alterada pelos operadores de mutação e
cruzamento, gerando as novas populações.
Antes da sua execução, o usuário deve informar ao algoritmo a quantidade de indivíduos por
população, o número máximo de gerações, a quantidade de nós móveis, as probabilidades de mutação
e cruzamento, a quantida
de de bits usada nas codificações genotípicas (resolução) e o alcance de cada
uma das variáveis (X
,
Y). Percebe-se que é um número elevado de parâmetros que afetam diretamente
o comportamento do algoritmo, tornando a tarefa de selecionar e ajustar todos eles um tanto
complexa.
26
Para o cálculo do
fitness
é usado o comprimento total da trajetória gerada somando-se as
distâncias euclidianas entre todos os nós. As trajetórias menores apresentam um valor de
fitness
maior. Também é computada a distância percorrida dentro dos obstáculos. Sempre que um dado
segmento de uma trajetória passa por cima de um obstáculo, o valor do
fitness
para esta trajetória é
penalizado. A equação
(2.1
) mostra o método de cálculo do
fitness
:
1
1
2
1
2
1
2
1
2
1
*
N
i
iiiii
NN
XXYY
XXYY
fitness
(2.1)
onde:
N
: o número de nós (incluindo o ponto de início e destino);
X
i
, Y
i
:
as coordenadas do nó
i
(considerando
i
=1 o nó inicial);
i
:
a distância percorrida dentro de um obstáculo por um segmento entre o i e o
nó seguinte;
: fator de penalidade.
Os valores de fitness foram normalizados considerando que a melhor resposta (fitness = 1.0)
seria o resultado de uma trajetória em linha reta entre a origem e o destino, isenta de colisões com
quaisquer obstáculos. Esta normalização justifica o numerador da equação (2.1). Dessa forma, quanto
mais longa for uma trajetória, ou quanto mais obstáculos ela colidir, menor será seu fitness.
2.2.3
Resu
ltados
Para os experimentos em simulação apresentados neste trabalho é usado o operador SPX.
Depois de fornecido ao algoritmo um arquivo de informações contendo as posições dos
vértices de todos os obstáculos do ambiente, é reconstruído o mapa do ambiente através de uma
matriz de dados. Esta matriz também é usada para calcular o
fitness
de cada indivíduo penalizando
aqueles que atravessam as regiões com obstáculos.
A
Figura
10
mostra a trajetória encontrada em um ambiente com vários obstáculos quadrados.
Como parâmetros de entrada foram usados: probabilidade de
crossover
de 80%, probabilidade de
mutação de 1%, com elitização e sem o torneio. Trinta indivíduos por população resultaram em uma
diversidade suficiente sem que o custo computacional ultrapassasse alguns segundos para cada 300
gerações. Foi escolhida a quantidade de três nós móveis para cada trajetória/indivíduo e dez bits de
precisão para a codificação das variáveis.
27
Figura 10
Trajetória
encontrada pelo algoritmo genético.
Na
Figura
11
pode-se acompanhar a convergência do algoritmo genético, assumindo o
ambiente da
Figura
10
. São apresentados o melhor
fitness
(a) e a média dos
fitness
da população (b).
Ambos os gráficos apresentam os valores em função do número de gerações processadas até o
momento.
(a) (b)
Figura 11
Evolução do
fitness do melhor indivíduo (a) e da média da população (b) em função do número de gerações
com a seleção por roleta.
Pode
-se optar pela utilização ou não da elitização. A elitização garante que o melhor indivíduo
seja transferido para a geração seguinte. Para os quatro estudos de caso propostos na
Figura
6, o
desempenho do algoritmo está relacionado na
Tabela
2, que mostra os valores médios de 50
evoluções. Os parâmetros usados foram: 160 indivíduos por população, precisão de 8 bits,
probabilidade de cruzamento de 80%, probabilidade de mutação de 1%, elitização e
= 30.
Tabela
2
Desempenho do algoritmo genético.
Caso
Maior
fitness
Média do
fitness
Desvio padrão
do
fitness
Qua
ntidade
de nós
Número de
gerações
Tempo computacional
gasto [s]
Ambiente 1
0,941
0,553
0,2078
3
20
1,5
Ambiente 2
0,910
0,570
0,189
3
20
1,5
Ambiente 3
0,528
0,124
0,071
6
200
19
Ambiente 4
0,605
0,356
0,171
6
200
18
O algoritmo foi codificado em LabV
IEW
TM
e processado em um computador Athon de 2.8GHz
com 512Mb de memória RAM. As melhores trajetórias encontradas estão mostradas na
Figura
12
.
28
Figura 12
Melhores trajetórias encontradas pelo AG.
2.2.4
Consi
derações Finais sobre os Algoritmos Genéticos para Planejamento
de Trajetórias de Robôs Móveis
Os algoritmos genéticos são ferramentas extremamente flexíveis para resolver problemas
complexos, encontrando aplicações nas mais diversas áreas. Entretanto, esta flexibilidade os torna
nada especialistas. A geração de uma trajetória de poucos nós demora alguns segundos. Para
trajetórias com maior número de nós o processo pode demorar minutos. Outra desvantagem reside no
fato do algoritmo não garantir nem ao menos encontrar uma resposta viável, muito menos que a
trajetória encontrada será ótima. Dentre as suas vantagens encontram-se a facilidade de
implementação, a vasta literatura e a diversidade de aplicações e variações no método.
29
2.3
Campos Potenciais Artific
iais (APFs)
Um dos métodos mais usuais e simples para resolver problemas de planejamento de trajetórias
é o dos Campos Potenciais Artificiais (Artificial Potencial Fields
APFs). Este conceito foi
introduzido por Khatib (1986) que o chamou de um método para evitar obstáculos em tempo real .
2.3.1
Principais Conceitos sobre APFs
Este método consiste em definir uma função sobre o espaço livre que possua um mínimo global
no local do objetivo. Assim, o objetivo emite um campo atrativo e os obstáculos emitem um camp
o
repulsivo. O somatório destas duas forças resulta no chamado APF. A
Figura
13
mostra uma área
contendo dois obstáculos: um triângulo e um retângulo. Esta área é processada segundo a teoria do
APF gerando regiões mais altas, isto é, com maior repulsividade, e regiões mais baixas com maior
atratividade.
Figura 13
Elaboração dos campos potenciais.
Então o problema do planejamento da trajetória resume-se em encontrar o caminho com menor
potencial entre a posição atual e a posição de destino. Uma vez que o destino imprime uma força
atrativa no robô móvel, pode
-
se representá
la por um vetor do robô até o ponto de destino. O produto
vetorial de todas as forças de todos os obstáculos gera um vetor de repulsão no robô. O vetor
resultante entre o vetor de repulsão e o vetor de atração indica a direção instantânea a ser seguida
(Agirrebeitia
et al.
, 2005). A
Figura
14
mostra um exemplo das forças de atração e repulsão aplicadas
quando o
robô se encontra em diferentes posições.
Existem na literatura diversas equações para a determinação dos vetores de repulsão e atração
(Tsuji
et al., 2002; Agirrebeitia et al., 2005; Nilsson, 1969; Lin et al., 1999; Kathib, 1986). Estes
trabalhos descrevem desde algoritmos simples até processos complexos envolvendo cálculos
30
diferenciais para representar o deslocamento dos obstáculos quando estes forem móveis, elementos
finitos na determinação das geometrias dos mesmos e detalhamento dos campos repulsivos.
Neste
trabalho será descrito um algoritmo elementar e de fácil implementação, visando explorar apenas o
conceito do método dos campos potenciais artificiais.
Figura 14
Cálculo da resultante.
A primeira etapa do algoritmo é determinar a força que atrai o robô em direção ao destino. A
fundamentação teórica conceitua a força atrativa que o destino exerce no robô como um vetor na
direção do robô para o destino. A intensidade desta força de atração pode ser fixa ou variar
proporcion
almente em função da distância até o destino, somente sendo suspensa quando o robô
estiver próximo do ponto de destino.
Neste trabalho será usado um valor constante para o módulo da força atrativa em todo o
ambiente.
A segunda parte refere-se a definição dos campos de repulsão, campos estes responsáveis pelo
afastamento do robô dos obstáculos. Cada objeto deve emitir uma força de repulsão proporcional à
proximidade do robô e condizente a sua geometria. A direção da força de repulsão deve ter o sentido
do
s obstáculos para o robô, com a intenção de fazê
lo se afastar. A principal questão relacionada com
este problema está na determinação do ponto de referência para o cálculo, visto que a geometria dos
obstáculos pode variar de simples quadrados para complex
os polígonos irregulares. Uma das soluções
é dividir os obstáculos em triângulos, que são os polígonos fechados mais simples que existem.
Assim os obstáculos passam por um processo de triangularização, sendo decompostos em vários
triângulos, mas mantendo a relação de que a união das áreas de todos os triângulos de um dado
obstáculo resulta no próprio obstáculo original. Finalmente, cada um destes triângulos gera
independentemente uma força de repulsão proporcional às suas dimensões e em função da sua
posiçã
o no ambiente.
Neste sentido, dois métodos propostos na literatura são estudados: a triangularização por
orelhas (Preparata e Shamos, 1978) e a triangularização de Delaunay (Lee e Schachter, 1980). O
primeiro, apesar de ser menos eficiente com relação a homogeneização dos triângulos resultantes, foi
escolhido para a simulação devido à maior facilidade de implementação.
O algoritmo Corta Orelhas , como é conhecido informalmente, é um algoritmo que faz a
triangularização de um polígono em ordem cúbica. Ele baseia-se no fato de que cada polígono com
mais que 3 arestas possui pelo menos 2 orelhas. Orelha é um par de segmentos do polígono com um
31
ponto em comum que, quando ligado aos outros dois pontos delimitantes dos segmentos, não ocorre
nenhum tipo de colisão com outros segmentos. Então se percorre todos os pontos procurando as
orelhas e, cada vez que uma é encontrada, é traçada a diagonal entre os pontos dos segmentos da
orelha e o processo é repetido, agora em um polígono com um ponto a menos para process
ar. Para um
polígono de
n
arestas, o algoritmo percorre todas os pontos no máximo n/2 vezes. Em cada ponto
gasta
-
se
n vezes o tempo necessários para testar se um ponto é o vértice de uma orelha. Portanto, o
custo computacional do algoritmo é de ordem cúbic
a O(
n
3
) (Preparata e Shamos, 1978). A notação do
Grande
O (ou como é conhecido em inglês,
Big
O Notation, ou Big Omicron Notation) é uma
notação matemática utilizada para analisar o comportamento assintótico de funções. Essa notação,
padronizada como "ordem de", é bastante utilizada para a análise de algoritmos em ciência da
computação, pois relaciona o tamanho do problema com o custo computacional necessário para
resolve
lo. A criação dessa notação é creditada ao matemático alemão Paul Bachmann, em 1894, n
a
publicação da segunda versão da sua obra Analytische Zahlentheorie, sendo popularizada por outro
alemão, Edmund Landau, e por causa disso, essa notação é também conhecida como "Símbolo de
Landau" (Landau, 1909).
Pode
-se também, ao invés de triangularizar os obstáculos, usar os segmentos de retas das
arestas para gerar os campos de repulsão. Esta consideração pode melhorar o desempenho do método
e diminuir o custo computacional, uma vez que as regiões internas aos obstáculos nunca irão
influenciar no processo de determinação da força de repulsão (Agirrebeitia et al., 2005). Esta
variação, apesar de teoricamente ser mais eficiente, não chegou a ser implementada em simulação
neste trabalho.
Dentre as variações do método APF, pode-se citar o algoritmo quase geodésico , em que a
cada passo o robô móvel somente se desloca de forma que a distância até a origem seja diminuída
(Agirrebeitia
et al.
, 2005).
Existem algoritmos evolutivos capazes de localizar os mínimos globais dos APFs. Tais
estratégias aperfeiçoam o APF durante o movimento e usam a integral da força resultante (integral da
soma da força resultante com a força atrativa) durante todo o percurso para calcular o
fitness
dos
indivíduos (Vadakkepat
et al.
, 2000).
2.3.2
Equacionamento do Campo Potencial
A seguir tem-se um exemplo do processo de triangulação com o algoritmo Corta Orelhas .
Para o problema do planejamento de trajetórias, cada um dos obstáculos deve emitir um campo de
repulsão. A
Figura
15
(a) mostra um obstáculo em forma de um U . As linhas coloridas mostram as
divisórias dos triângulos internos em que o objeto é dividido. A área máxima dos triângulos pode ser
limitada, o que resulta em um campo potencial com maior definição com relação à geometria original
do obstáculo, p
orém causa um aumento exponencial no custo computacional. A
Figura
15
(b) e
Figura
15
(c) mostram o obstáculo dividido com triângulos de área reduzida.
32
Figura 15
Processo de tri
angularização por Corta Orelhas .
Cada triângulo gerado influencia individualmente o ponto móvel na direção do seu centro
geométrico. Uma curva de Gauss gradua a intensidade da força repulsiva de cada triângulo. A
distribuição de Gauss proporciona a quantidade de parâmetros necessária para que se possa sintonizar
as funções de repulsão e estudar o comportamento do algoritmo. A
Figura
16
mostra um exemplo da
função de repulsão gerada a partir de apenas um triângulo.
Figura 16
Função de repulsão resultante de um triângulo.
Quanto mais próximo do ponto médio do triângulo, maior é o módulo da força de repulsão. A
área interna, equivalente ao círculo circunscrito ao triângulo, contém a força de repulsão máxima e
representa uma região onde o robô móvel não deverá ultrapassar. Como o processo do cálculo da
força de repulsão de um dos triângulos é baseada na distância euclidiana até o seu ponto médio, o
campo potencial resultante adquire um aspecto circular. A equação (2.2) mostra o processo para o
cálculo do módulo da força de repulsividade, em um dado ponto, resultante de apenas um triângulo.
máx
máx
Rc
Rr
Rr
Rc
d
h
r
Rr
Rc
d
se
Mr
Rr
Rc
d
se
e
Mr
F
máx
máx
2
2
||
(2.2)
Onde:
||
r
F
: módulo da força de repulsão;
d : distância euclidiana do ponto atual até o centro círculo circunscrito ao triângulo
que origina a força de repulsão;
Rr
máx
: ganho no raio da força de repulsão.;
Rc
: raio do círculo circunscrito
ao triângulo que origina a força de repulsão;
Mr
: ganho no módulo da força repulsiva;
h
: fator de decaimento da força repulsiva.
33
O parâmetro Rr
máx
multiplica o raio onde a força de repulsão é máxima e o parâmetro h
controla a inclinação da curva
de Gauss.
Para um local qualquer no mapa, a força resultante, que é a força que está efetivamente sendo
aplicada no local, é calculada através da soma vetorial entre a força de atratividade e a força de
repulsividade de maior módulo que está incidindo sobre o ponto de acordo com a equação
(2.3
).
rmáx
a
FF
Ma
F
(2.3)
Sendo que:
F
: a força resultante;
Ma
: ganho da força de atratividade;
a
F
: força de atratividade (módulo unitário e direção sempre apontando para o ponto de
destino);
ir
F
,
: força de repulsividade gerada pelo triângulo i atuando sobre o ponto considerado
(possui direção sempre apontada para o robô mó
vel);
rmáx
F
: força de repulsividade, , de maior módulo atuando sobre o ponto considerado.
2.3.3
Resultados
Por exemplo, seja a área com três obstáculos mostrada na
Figura
17
(a), o campo potencial
artificial resultante está mostrado na
Figura
17
(b). Os pontos mais altos representam regiões com
maior repulsividade. O ponto de destino está na região mais baixa do gráfico. Neste exemplo está
sendo usado
Mr=
1.5,
h=
1.0
, Rr
máx
=
1.5
e
Ma =
1,
e
m uma região que mede 100 x 100.
Figura 17
Obstáculos triangularizados (a) e APF resultante (b).
Na
Figura
18
(a) pode-se ver uma outra representação do APF em um gráfico de intensidades.
As regiões mais claras representam locais com menor repulsividade. Nesta mesma figura pode-se ver
ir
F
,
34
em azul escuro a trajetória gerada pelo algoritmo. Se o valor do parâmetro h for diminuído de, por
exemplo, 1.0 para 0.2, pode-se fazer com que a trajetória gerada contorne o triângulo, e não mais
passe por entre o círculo e o triângulo. A diminuição do valor de h provoca uma inclinação menos
acentuada na curva de repulsão, fazendo com que os campos de repulsão gerados pelo círculo e pelo
triângulo se fundam, comportando
-s
e como um único obstáculo, como mostra a
Figura
18
(b).
Figura 18
Trajetória gerada pelo algoritmo.
A
Figura
19
mostra as trajetórias geradas para os quatro estudos de caso p
ropostos na
Figura
6
.
Os parâmetros usados foram:
Mr =
1.5,
h =
1.0
, Rr
max
=
2.0
, Ma =
1.
Figura 19
Trajetórias geradas através de campos potenciais.
35
Pode
-se ver que para o Ambiente 2 o algoritmo não convergiu para uma trajetória válida. Para
os casos mais complexos, como por exemplo os ambientes 3 e 4, devido a proximidade dos
obstáculos a trajetória gerada nestes ambientes é mais irregular tendendo a instabilidade. Para o
ambiente 4, a instabilidade que ocorreu próxima do ponto de destino gerou colisões com um dos
obstáculos do ambiente obstáculo.
O tempo computacional gasto para o ambiente 1 foi de 1.5 segundos, para o ambiente 3 foi de
2.5 segundos e para o ambiente 4 foi de 3.3 segundos, sendo que todos os algoritmos foram
executados por um computador AMD Athon 64 de 2,4GHz com 512Mb de memória RAM. Este
tempo foi maior para os ambientes 3 e 4 devido ao maior número de obstáculos.
2.3.4
Considerações Finais sobre os APFs
Um dos problemas encontrados neste método está no fato de que podem existir regiões em que
o campo de atração é exatamente igual ao somatório dos campos de repulsão, criando um mínimo
local. Para vencer este vale, o algoritmo teria que atravessar uma das regiões vizinhas em que a força
de repulsão afasta o móvel do seu destino, indo contra o princípio do funcionamento do método. A
Figura
20
exemplifica este fato. Existem na literatura várias condições de contorno para o problema
dos mínimos locais, como inserir u
m aspecto aleatório na trajetória do robô móvel (Chenney, 2005).
Figura 20
Problema dos mínimos locais. Fonte: (Chenney, 2005).
Uma das vantagens do método APF é o baixo custo computacional do algoritmo, permitindo
aplicações
em ambientes dinâmicos. Este custo pode ser ainda menor se o espaço de trabalho for pré
processado, como em ambientes estáticos. Há algumas aplicações deste método para ambientes
móveis de geometria complexa, funcionando para controle de trajetórias de man
ipuladores
robotizados (Harden, 1997).
Dentre a desvantagens pode-se ressaltar o problema dos mínimos locais, que é de difícil
solução. Portanto os APFs não garantem que um caminho entre a origem e o destino seja encontrado
e não garante que, uma vez encon
trado um caminho, ele seja ótimo.
36
2.4
Algoritmo A*
Outra categoria de métodos que pode ser aplicada ao problema abordado neste capítulo é a dos
métodos de busca heurística. Estes métodos consistem em buscar uma resposta ótima em um universo
previamente mapea
do usando uma função heurística (Rich, 1998; Hart
et al.
, 1968).
diversos métodos de busca heurística e estes podem ser classificados em duas categorias,
métodos fracos e métodos fortes (Rich, 1998). Os métodos fracos buscam de maneira quase errática
por uma resposta, por isso costumam ser pouco eficientes. Dentre estes métodos estão aqueles
denominados de força bruta e da subida de encosta. Os métodos fortes possuem fundamentos
matemáticos elaborados e garantem encontrar pelo menos uma solução quando esta existe. Dentre
estes métodos estão os de busca em profundidade e em amplitude (Rich, 1998).
Hart
et. al
(1968) introduziu o algoritmo chamado A* (leia
-
se A Estrela) que até os dias de hoje
é considerado o método de busca heurística de maior eficácia (H
art
et al., 1968). Este algoritmo une
as vantagens dos métodos de busca em profundidade e em amplitude.
2.4.1
Principais conceitos do A*
Para o funcionamento correto de qualquer método de busca é necessário que o universo do
problema esteja mapeado, isto é, repr
esentado em alguma forma de segmentação para que o algoritmo
de busca percorra as diferentes possibilidades. Uma das formas de representação segmentada de
conhecimento amplamente usada são os grafos orientados (Bender, 1996). Tipicamente, um grafo é
repres
entado como um conjunto de pontos (chamados de vértices ou nós) ligados por retas (chamadas
de arestas ou arcos). Em um grafo orientado, as arestas são direcionadas e representadas por setas.
Cada arco do grafo recebe um peso dado pela função heurística. No algoritmo A* a função
heurística define o custo de um determinado nó. Esta pode ser definida pela equação (2.4) como
sendo uma soma do custo de partir do estado inicial e atingir o estado atual mais uma estimativa do
custo de se
atingir o objetivo final.
nhngnf '
(2.4)
onde:
n
: número do nó atual;
f(n)
: custo atribuído ao nó
n;
g(n)
: custo para partir do nó inicial e atingir o nó
n;
h (n)
: estimativa do c
usto para partir do nó n e atingir o nó objetivo.
De forma resumida, o algoritmo procura passo a passo até encontrar o ponto de destino. Para
isto, o algoritmo mantém duas listas, uma chamada de
ABERTOS
e outra chamada de
FECHADOS
.
A lista dos
ABERTOS
contém todos os nós que podem ser explorados no próximo passo partindo-
se
de qualquer um dos passos previamente visitados. A lista dos
FECHADOS
contém todos os nós que
37
foram visitados. A lista dos
ABERTOS
é inicializada com o do ponto de partida e a lista dos
FECHADOS
inicia vazia. Seleciona-se o da lista de
ABERTOS
que contém o menor custo dado
pela equação (2.4) e explora-se os seus sucessores calculando o custo de cada um deles. Se um
recém aberto foi explorado, pesqu
isa
-se o caminho encontrado da origem até o aberto
verificando se é melhor que o encontrado anteriormente, em caso afirmativo troca-se as referências
para que o recentemente explorado aponte para o melhor caminho e atualiza-se os pesos dos nós
subseq
üentes. Assim que o ponto de destino for adicionado à lista de
ABERTOS
o menor caminho
é encontrado resgatando
-
se todos os melhores caminhos, partindo do ponto de destino até o chegar ao
ponto de origem.
A
Figura
21
mostra um exemplo da busca do A*. Inicialmente apenas o A na lista de
ABERTOS
e este será explorado, gerando 3 sucessores, os nós B, C e D. O custo de cada um é
calculado sendo 3 para o B
, 5 para o nó
C
e 1 para o nó
D
. Este custo refere
-
se a soma do custo de
sair do inicial (A) e chegar ao em questão mais uma estimativa do custo para se atingir ao
destino partindo-se do atual. O A passa a lista de
FECHADOS
e os novos nós são armazenados
na lista de
ABERTOS
.
O D é o que possui o menor custo sendo o mais promissor da lista de abertos. No passo 3
este é explorado, sendo depois enviado a lista de
FECHADOS
, gerando sucessores (
E
e
F). Agora
o B é o mais promissor da lista de
ABERTOS
sendo explorado no passo 4. Dentre os nós abertos,
o E é o de menor custo, sendo explorado no passo 5. O algoritmo continua até que o de destino
seja inserido à lista de
ABERTOS
. Cada deve sempre apontar para o melhor caminho até ele,
sendo que se for encontrado algum que está na lista de
FECHADOS,
os custos das respectivas
funções
g(n)
(do que foi explorado e do recentemente aberto) devem ser comparadas. Caso
verifique
-se a necessidade deve-se ajustar os ganhos e as referências para que os nós continuem
sempre apontando para o menor caminho a
té o nó inicial.
Figura 21
Exemplo do uma busca pela melhor escolha. Fonte: (Rich, 1998).
38
2.4.1.1
Pseudo
código do Algoritmo A* (Rich, 1998)
1.
Comece com
ABERTOS
contendo apenas o nó inicial. Atribua 0 do valor de
g
do nó, seu
valor
de
h
para qualquer que seja ele e seu valor de f
para h
+ 0, ou h . Atribua a
FECHADOS
a lista vazia.
2.
Até ser encontrado um nó
meta, repita o seguinte procedimento: se não houver nenhum
em
ABERTOS
com menor valor de f . Remova o de
ABERTOS
. Coloque o em
FECHADOS
. Veja se
MELHOR
é um meta. Em caso positivo, encerre e reporte
uma solução (
MELHOR
se tudo o que quisermos for o ou o caminho que foi
criado entre o estado inicial e MELHOR se estivermos no caminho). Caso contrário
gere os sucessores de MELHOR NÓ, mas ainda não ajuste MELHOR para apontar
para eles. (Precisamos primeiro ver se algum deles foi gerado). Para cada
SUCESSOR
, faça o seguinte:
(a)
Ajuste
SUCESSOR
para apontar de volta para MELHOR NÓ. Estas ligações
para trás permitirã
o recuperar o caminho, uma vez encontrada uma solução.
(b)
Compute g
(
SUCESSOR
) =
g(
MELHOR
) + o custo de sair de
MELHOR
e chegar a
SUCESSOR.
(c)
Veja se
SUCESSOR
é igual a qualquer em
ABERTO
S (isto é, se ele foi
gerado, mas não processado). Em caso positivo, chame aquele de
ANTIGO
.
Uma vez que este nó já existe no gráfico, podemos desconsiderar
SUCESSOR
e
acrescentar
ANTIGO
à lista de sucessores de
MELHOR
. Agora precisamos
decidir se a ligação com o pai de
ANTIGO
deve ser ou não reajustada para
apontar para
MELHOR
. Ela deve ser reajustada se o caminho que
encontramos para chegar a
SUCESSOR
for mais barato que o atual melhor
caminho até
ANTIGO
(já que
SUCESSOR
e
ANTIGO
são, na realidade, o
mesmo nó). Portanto, veja se é mais barato chegar a
ANTI
GO
via seu pai atual
ou a
SUCESSOR
via
MELHOR
: compare os valores de g. Se
ANTIGO
for
mais barato (ou se o preço for o mesmo), então não precisaremos fazer nada.
Se
SUCESSOR
for mais barato, então reajuste a ligação com o pai de
ANTIGO
,
para apontar par
a
MELHOR
, registre o novo caminho mais barato em
g(
ANTIGO
) e atualize
f (
ANTIGO
).
(d)
Se
SUCESSOR
não estava em
ABERTOS
, veja se está em
FECHADOS
. Em
caso positivo, chame o em
FECHADOS
de
ANTIGO
e acrescente
ANTIGO
à
lista de sucessores de
MELHOR
. Ve
rifique se o novo caminho ou o caminho
antigo é melhor, como na etapa 2(
c
) e ajuste corretamente a ligação com o pai e
os valores de g e f . Se tivermos acabado de encontrar um melhor caminho para
ANTIGO
, precisamos propagar a melhoria aos sucessores de
AN
TIGO
. Esta
operação é um pouco delicada.
ANTIGO
aponta para seus sucessores. Cada
sucessor, por sua vez, aponta para seus sucessores, e assim por diante, até que
cada ramificação acabe com um que ainda esteja em
ABERTOS
ou que não
tenha sucessores, faça caminhamento em profundidade da árvore, começando
em
ANTIGO
, mudando o valor de g em cada (e portanto também o valor de
f ), e encerrando cada ramificação quando encontrar um sem sucessores ou
um para o qual um caminho melhor ou equivalente tenha sido encontrada.
Essa segunda verificação garante que o algoritmo termine mesmo que haja
ciclos no grafo. Se houver um ciclo, quando um dado nó for visitado pela
segunda vez, o caminho não será melhor que na primeira vez, portanto, a
propagação acabará. A ligação de cada com o pai aponta para o melhor pai
conhecido. No momento da propagação, verifique se o pai aponta para o do
qual você está vindo. Se sim, continue. Caso contrário, então o valor de g
reflete o melhor caminho do qual ele é parte. Então compare os dois. Se o
caminho através do pai atual ainda for melhor, encerre a propagação. Se o
caminho através do qual que você está propagando agora for melhor, reajuste o
pai e prossiga com a propagação.
(e)
Se
SUCESSOR
não estava nem em
ABERTOS
nem em
FECHADOS
, então
coloque
o em
ABERTOS
e acrescente o à lista de sucessores de
MELHOR
. Compute
f (
SUCESSOR
) = g(
SUCESSOR
) + h (
SUCESSOR
).
39
2.4.2
A* para o Planejamento de Trajetórias
No âmbito do planejamento de trajetórias o universo do problema é o ambiente que contém os
obstáculos, o robô móvel e o ponto de destino. Para segmentar o ambiente e possibilitar a busca é
usado um método conhecido como grafos de visibilidade (Paula, 2004). Também pode-se utilizar
outras formas de segmentar um ambiente, tais como os diagramas de Voronoi e decomposição em
células (Chenney, 2005).
Considerando a equação
(2.4)
, o valor da função
g(n
) é calculado através do somatório de todas
as distâncias euclidianas partindo-se do nó de partida até o n, como mostra a equação (2.5). A
função
h (n), dada pela equação (2.6
), pode ser calculada como a distância euclidiana entre o nó atual
e o nó de destino.
n
i
iiii
XXYYng
1
2
1
2
1
(2.5)
22
'
nDnD
XXYYnh
(2.6)
onde:
X
i
, Y
i
:
as coordenadas do nó
i
(considerando
i
=1 o nó inicial);
X
D
, Y
D
:
as coordenadas do nó destino.
2.4.2.1
Segmentação do Ambiente Utilizando
Grafos de Visibilidade
Com uma boa relação custo benefício entre a otimização do resultado e a simplicidade de
implementação, os grafos de visibilidade unem a facilidade de programação com um bom
desempenho. Aproximando a forma dos obstáculos por polígonos este método objetiva separar os
vértices dos obstáculos e compor um grafo de acordo com a visibilidade de cada vértice, formando
um grafo não orientado cujos nós são o início e o fim do caminho e os vértices de cada obstáculo. As
arestas são os segmentos de reta que unem cada com outro e não passam pelo meio dos obstáculos
(Chenney, 2005).
O problema desta abordagem é que, a princípio, a construção do grafo de visibilidade possui
alto custo computacional. Observa-se que o algoritmo é de ordem cúbica com relação ao custo
computacional (Paula, 2004).
Por fim, destaca-se que o algoritmo de geração do grafo de visibilidade é completo, ou seja,
sempre retorna um caminho quando existir algum (Paula, 2004). Pode-se ver na
Figura
22
a
construção de um grafo de visibilidade.
Os grafos de visibilidade apresentam uma desvantagem devido às trajetórias geradas estarem
sobrepostas às arestas dos obstáculos, o que, apesar de funcionar para robôs móveis pontuais, não é
adequado para implementações reais. Para resolver este problema, os obstáculos são expandidos em
todas as direções da mesma forma que o operador
offset
executa em programas de CAD (
Computer
Aided Drawing). Assim sendo, se a distância a ser considerada para o
offset
dos obstáculos for igual
ou maior do que o raio do círculo circunscrito à geometria do robô móvel, considerando que o centro
40
é a sua referência para o movimento, pode-se evitar as colisões. Chama-se de
offset
a distância entre
um vértice do obstáculo original e o seu e
quivalente no obstáculo ampliado.
a) Ambiente com obstáculos
b) Vértices dos obstáculos selecionados
c) Grafo formado pela visibilidade dos vértices entre si
d) Grafo sem os obstáculos originais
Figura 22
Construção d
os grafos de visibilidade. Fonte: (Chenney, 2005).
Para expandir os obstáculos, considerando os obstáculos como regiões claras no ambiente
escuro, podem ser utilizadas operações tipo
Open
, muito comuns em processamento de imagens (Jain,
1989). Apesar desta técnica ser muito difundida na literatura, ela opera a imagem matricialmente,
pixel a pixel, tornando o processo muito caro computacionalmente.
Dessa forma, o efeito de expandir os obstáculos foi desenvolvido usando a informação de
forma vetorial, uma vez que todos os obstáculos são decompostos em segmentos de retas. Cada um
dos vértices do obstáculo foi expandido individualmente, removido do seu local original e recolocado
em uma posição mais afastada. Para geometrias convexas o processo é simples, pois é suficiente
afastar cada um dos vértices do centro de massa do obstáculo. para os obstáculos ncavos, um
critério mais elaborado e abrangente deve ser utilizado, pois em alguns casos, mesmo quando o
vértice se afasta do obstáculo original, este pode estar se aproximando do seu centro de massa. Para
resolver este problema, em todos os vértices são traçadas as retas bissetrizes às suas arestas. Retas
estas que obrigatoriamente passam pelos vértices que as geraram. É certo que os pontos ampliados
estão sobre estas retas bissetrizes. É necessário ainda determinar a direção correta, visto que, partindo
de cada um dos vértices as retas bissetrizes possuem dois possíveis sentidos. Para isso são contadas
quantas intercessões ocorrem entre uma dada bissetriz e as demais arestas do objeto em cada um
desses dois sentidos. O sentido da bissetriz que contém um número par (ou zero) de colisões
representa o lado de fora do obstáculo. A
Figura
23
mostra um exemplo de um obstáculo em forma de
H e o seu equivalente expandido.
41
Figura 23
Processo de
offset
obstáculo original em vermelho e em azul a figura ampliada.
Com o grafo de visibilidade mapeando um ambiente, cujos obstáculos estão expandidos, pode-
se usar o al
goritmo A* para procurar pelo melhor caminho segundo uma dada heurística.
2.4.3
Resultados
Combinando o método de busca heurística A*, os grafos de visibilidade e o
offset
dos
obstáculos, o algoritmo é capaz de, recebendo as informações de um ambiente com obstác
ulos,
determinar o menor caminho possível entre dois pontos. A
Figura
24
uma trajetória (em preto)
encontrada o ambiente 3. Os pontos vermelhos representam os vértices explorados pelo A*. Percebe-
se que estes pontos estão levemente afastados dos obstáculos. Isso é devido ao processo de
offset
discutido anteriormente.
Figura 24
Trajetória encontrada pelo A*.
A
Figura
25
mostra a trajetória encontrada nos casos de estudo propostos no início do capítulo.
O único parâmetro que foi especificado foi a distância de
offset
de valor igual a 3. Para o ambiente 4,
nota
-se alguns pontos mais próximos dos obstáculos. Isto se deve ao fato de que todos os obstáculos
foram mapeados com polígonos, assim, algumas formas arredondadas, apesar de serem visivelmente
aparentes, foram descartadas.
42
Figura 25
Trajetórias encontradas pelo A*.
O tempo computacional gasto para o ambiente 1 foi de 22 milisegundos, para o ambiente 2 foi
de 4 milisegundos, para o ambiente 3 foi de 306 milisegundos e para o ambiente 4 foi de 1435
milisegundos, sendo que todos os algoritmos foram codificados em LabVIEW
TM
e executados por um
computador AMD Athon 64 de 2,4GHz com 512Mb de memória RAM. Apesar do ambiente 3
possuir mais obstáculos que o ambiente 4, este foi mapeado com uma quantidade menor de vértices,
pois não possui obstáculos arredondados como o ambiente 4. Dessa forma, a construção do grafo de
visibilidade para o am
biente 4 é mais demorada.
Esta combinação de métodos mostrou-se eficaz sempre retornando o menor caminho. Também
existe a possibilidade de determinar as trajetórias para ambientes dinâmicos, porém a atualização dos
grafos de visibilidade deve ser feita con
tinuamente e esta é a tarefa que consome quase todo o esforço
computacional.
2.4.4
Considerações Finais sobre o A*
Várias observações podem ser feitas a respeito deste algoritmo. A primeira refere-se ao papel
da função g. Esta função permite escolher qual será expandido a seguir, com base não apenas na
qualidade do em si (medida por f), mas também com base na qualidade do caminho até o nó. Se
43
for incorporado
em
f
de acordo com a equação
(2.4
), nem sempre será escolhido como pró
ximo nó
a ser expandindo o que parece estar mais próximo ao objetivo. Se o objetivo for apenas encontrar
uma solução, pode-se definir g sempre como 0, escolhendo assim sempre o que parecer mais
próximo do objeto. Para encontrar um caminho que envolva
o menor número de passos, então deve
-
se
de definir o custo de sair de um nó e chegar a seu sucessor como uma constante, geralmente 1. Se, por
outro lado, deseja-se encontrar o caminho mais barato, e alguns operadores custam mais do que
outros, então ajust
amos o custo de sair de um nó e chegar a outro de modo a que ele reflita tais custos.
Desta forma, o algoritmo A* pode ser usado tanto para encontrar o melhor caminho quanto encontrar
um caminho o mais rápido possível (Rich, 1998).
Para um ambiente estátic
o o A* não precisa reconstruir o grafo de visibilidade que é demorado,
principalmente quando o mero de vértices e obstáculos é elevado. A complexidade do ambiente
também afeta diretamente a velocidade do A*. Um ambiente com muitas bifurcações fará com que o
algoritmo vasculhe muitos caminhos diferentes, atualizando os pesos de todos os s no melhor
caminho encontrado até o momento sempre que algum desvio mostre
-
se melhor que o caminho atual.
Algumas tentativas de otimizar o funcionamento do algoritmo foram elaboradas, porém ao
melhorar a velocidade de convergência, deixam de garantir que a melhor solução será encontrada
(Chenney, 2005).
2.5
Algoritmos tipo
Bug
e o Método
K
Bug
Grande parte dos algoritmos usados na literatura, incluindo os apresentados neste capítulo,
pouco utilizam
-
se da informação disponível sobre o ambiente como um todo quando este é conhecido
a priori (Chenney, 2005). Os algoritmos genéticos apresentam convergência lenta quando comparado
com o A*. Os campos potenciais artificiais dificilmente retornam o melhor caminho e possuem o
problema de estabilizar em um mínimo local, problema este que é de difícil solução. O algoritmo A*,
que é a estrela dos métodos de planejamento de trajetória, realiza uma busca enumerativa a nó,
não levando em consideração as dimensões e posições geométricas dos obstáculos e necessitando de
um pré
processamento de todo o ambiente. Uma analogia pode ser feita com uma pessoa caminhando
por um labirinto com um GPS (Global Positioning System) na mão. Esta pessoa não tem noção do
que por detrás de uma parede e não sabe se um dado caminho será o melhor sem percorre
lo
primeiramente. Para este projeto, que visa controlar a trajetória de um robô móvel, baseado na
realimentação de informação visual proveniente de uma câmera instalada no teto, baixo custo
computacional é crucial para o funcionamento em tempo real. Além disso, toda a informação sobre o
ambiente está sempre disponível.
44
Apesar da busca nos grafos de visibilidade usando o algoritmo A* ter se mostrado b
astante
eficiente, ela apresentou desvantagens. Uma grande parte do mapa deve ser explorada mesmo para
trajetórias simples e o tempo gasto no processamento aumenta de acordo com a complexidade do
ambiente.
2.5.1
Algoritmos tipo Bug
Baseados na observação do comportamento de insetos, uma outra vertente de algoritmos que
planejam a trajetória de robôs móveis são os Bug Algorithms. Apesar destes algoritmos serem
indicados para robôs que possuem apenas sensores locais, não dispondo da informação global sobre o
ambien
te, estes algoritmos podem ser utilizados em sistemas deliberativos, onde um plano global é
traçado antes do início do movimento(vide
1.2.3
).
Todos os algoritmos tipo
Bug
baseiam
-se no fato de que a menor distância entre dois pontos é
uma linha reta. Assim sendo, os esforços em encontrar uma trajetória para um robô móvel estão
voltados em aproximá la ao máximo da linha reta que une os pontos de origem e destino. Quando
esta não pode ser alcançada, como por exemplo, no caso de um obstáculo, o algoritmo tentará
imediatamente contornar tal obstáculo para, em seguida, retornar a busca pela reta
Origem
Destino
.
Um dos primeiros algoritmos neste contexto é o denominado Bug2 (Lumelsky e Stepanov,
1987). Estes algoritmos operam alternando entre dois comportamentos simples: (i) o movimento em
direção ao objetivo e (ii) a circunav
e
gação de um obstáculo.
No algoritmo
Bug2
, o robô inicia movendo-se diretamente em direção ao ponto de destino.
Quando encontra um obstáculo, começa a contorná
lo,
apenas retornando a deslocar-se na direção do
ponto de destino quando uma condição de direção é atingida. Para este método, a condição consiste
no robô encontrar novamente a reta que liga o ponto de origem ao ponto de destino. A
Figura
26
mostra um exemplo da trajetória gerada pelo algoritmo.
Percebe
-se que, mesmo para obstáculos simples, o método citado não é capaz de encontrar a
trajetória ótima. Dentre as suas vantagens estão: o baixo custo computacional e a garantia de
encont
rar pelo menos uma trajetória factível.
Figura 26
Trajetória gerada pelo algoritmo
Bug2
proposto por Lumelsky e Stepanov.
Lumelsky e Skewis (1990) propõem uma melhoria ao
Bug2
no
VisBug
. Esta melhoria está
relacion
ada com a condição que o robô usa para deixar de contornar o obstáculo e voltar a dirigir-
se
45
para o ponto de destino, gerando atalhos na trajetória. Esta condição é conhecida por condição de
saída (leaving condi
tion
). Assim que a reta Origem Destino torna-se visível ao robô, este deixa de
contornar o obstáculo para seguir em direção ao destino. A
Figura
27
mostra um exe
m
plo de trajetória
gerada pelo
VisBug
para contornar um obstáculo. A partir do ponto V, a reta
Origem
Destino
es
visível
para o robô, sendo que este r
e
toma a sua trajetória em direção ao destino.
Neste contexto, Kamon e Rivlin (1997) publicam o
DistBug
em um trabalho que propõem
nov
amente uma alteração na condição de saída e comprovam a convergência do método para alguns
c
asos simples.
Figura 27
Trajetória gerada pelo algoritmo
VisBug
proposto por
Lumelsky e Skewis.
O algoritmo
DistBug
incorpora, basicamente, duas contribuições em relação aos casos já
citados: (i) uma condição de saída mais agressiva sem aumentar o custo computacional e (ii) um
método para determinar qual dos lados deve ser usado para iniciar o contorno do obstáculo.
No
DistBug
,
a condição de saída é tomada de forma a garantir que o próximo ponto de colisão
está mais próximo do ponto de destino que o ponto de colisão an
terior. Para que isto funcione, o robô
deve medir constantemente a distância livre F, isto é, a distância desobstruída de qualquer obstáculo
em direção ao ponto de destino
T
. Depois que uma colisão é dete
c
tada, o
robô inicia o modo em que o
obstáculo é contornado. A menor distância até o ponto de destino T, detectada desde a última colisão,
d
min
(T), também deve ser armazenada. Tomando-se por d(X, T) a distância de um ponto X qualquer
até o destino T, a condição de saída é ativada quando uma das seguintes condições é verificada
(Kamon e Rivlin, 1997):
i) Se a equação
(2.7
) for atendida, significando que o destino está visível.
ii) Se a equação (2.8) for atendida, significando que é mais vantajoso dirigir-se para o desti
no
do que continuar contornando o obstáculo.
STEP
TdFTXd
FTXd
)(),(
0),(
min
(2.7)
(2.8)
O p
a
râmetro
STEP
é um valor cons
tante, segundo suge
s
tão dos autores, igual a menor distância
entre objetos existentes no ambiente.
As diferenças de comportamento surgem quando, durante o modo de contorno dos obstáculos,
a reta
Origem
Destino
é de difícil visualização. Isto faz com que o
VisBug
gere caminhos piores que
o
DistBug
como mostrado na
Figura
28.
46
Outra contribuição do algoritmo está no uso de um método de determinação, através de
sensoriame
nto local, do lado a ser contornado e de um ger
enci
ador de busca . Estes procedimentos
contrib
u
em para a geração de caminhos menores e podem ser usados não somente em conjunto com o
DistBug
, mas com qualquer outro algoritmo apresentado. Sem estes procedimentos, para ambientes
contendo s
o
mente obst
á
culo
s convexos, o desempenho do
Dis
t
Bug
é igual ao VisBug
.
Figura 28
Comparação entre uma trajetória gerada pelo
VisBug
(em vermelho), o
DistBug
(em preto) e o
BUG2
(em verde).
O algoritmo
Distbug
é um exemplo de como regras simples podem gerar um comportamento
co
m
plexo utilizando as técnicas de navegação baseadas em sensores. O algoritmo é reativo no sentido
de que depende dos dados sensoriais para tomar decisões locais.
Kamon e Rivlin (1997) também demonstram que o
DisBug
pode oscilar e gerar caminhos com
vários ciclos antes de convergir para uma trajetória até o destino. Isto é esperado em um método que
privilegia as inform
a
ções de sensores locais.
Em qualquer um dos algoritmos apresentados, caso o robô complete um volta inteira em torno
do obstáculo significa que o alvo está inacessível.
2.5.2
O algoritmo
K
Bug
O algoritmo proposto utiliza toda a informação disponível do ambiente e aplica princípios
geométricos para a determinação da trajetória, ao invés de processos de busca ou aprox
imações
numéricas.
Denominado de K
Bug
, este novo algoritmo está baseado no mesmo conceito dos métodos
descritos anteriormente. A maior diferença deste novo método está no fato de que o algoritmo
abandona a trajetória em direção ao destino assim que uma co
li
são é detectada. Quando isso acontece,
o robô tem duas opções: contornar o obstáculo pela esquerda ou pela direita. A decisão é toma
da
verificando, em cada um dos lados, o ponto visível mais afastado do robô que ainda pertence ao
obstác
u
lo. Desta forma,
o robô dirige
-
se imediatamente para o que estiver mais próximo.
A
Figura
29
exemplifica este processo, ainda baseado no mesmo princípio de geração de uma
trajetória de forma reativa.
47
Assumindo uma trajetória onde o robô parta da origem e detecte uma colisão a sua frente.
Nesta situação, os pontos mais afastados que pertencem ao obstáculo e estão visíveis para o robô são
os vértices A e B. Como o vértice A está mais próximo, é para ele que o robô se dirige. Quando es
te
atingir o vértice A, novamente é verificada a colisão mais a frente caso tente se deslocar em dire
ção
ao destino. Nesta posição, os pontos visíveis mais afastados que pertencem ao obstáculo são os
vértices C e B. O ponto C será agora o novo destino do r
obô e assim por diante.
Dessa forma o algoritmo se concentra em contornar apenas o necessário para ultrapassar o
obstác
u
lo, saltando para os pontos mais extremos sem prec
i
sar contorná
lo por completo.
Figura 29
Trajetória
gera
da pelo algoritmo
K
Bug.
Da mesma forma que o
DistBug
e o
Vi
s
Bug
, o K
Bug
pode oscilar gerando loops na trajetória.
Entretanto, a sua convergência pode ser melhorada caso seja considerada toda a informação sobre o
ambiente no planejamento da trajetória.
2.5.2.1
O K
Bug
quando toda a Informação sobre o Ambiente é Conhecida
algumas aplicações em que toda a informação sobre o ambiente é conhecida a priori
,
podendo, portanto ser considerada no planejamento da trajetória. Assim sendo, serão adicionadas ao
algoritmo
informações a respeito da geometria do obstáculo de forma a determinar, com mais
eficiência, quais os pontos que serão inseridos na trajetória. Dessa forma, serão resolvidos os
problemas de convergência inerentes a todos os métodos de planejamento que consideram apenas
informações locais.
O procedimento descrito detalhadamente a seguir consiste em partindo de uma linha reta que
une o ponto de origem com o ponto de destino, procurar por uma região onde ocorrem colisões e
contorná
la, inserindo pontos intermediários na trajetória. Estes pontos são selecionados dentre os
vértices do próprio obstáculo que causou a colisão. O processo deve ser repetido até que não existam
mais colisões.
Com toda a informação sobre o ambiente disponível traça-se uma reta, denomina
da
rm
, unindo
os pontos de origem e destino. Esta reta irá atravessar as arestas dos obstáculos presentes no
ambiente. Tais colisões sempre irão aparecer aos pares para um mesmo obstáculo, pois todas as
entidades no ambiente podem ser representadas por polígonos fechados. Assim sendo, a reta
rm
gera
48
sempre uma colisão quando entra em um obstáculo e outra quando sai. Para escolher
obr
igatoriamente uma colisão que seja um ponto de entrada basta selecionar a colisão mais próxima
do po
n
to de origem. Este ponto
de colisão será chamado
C
1
.
Seleciona
-se a segunda colisão em função da distância até a origem. Este ponto será um ponto
em que a reta
rm s
ai do obstáculo denominado
C
2
.
Para determinar por qual lado o obstáculo será contornado mede-se o perímetro do obstá
culo
parti
ndo de C
1
até C
2
pelo sentido horário e anti horário. Será selecionado o lado que contem a seção
de m
e
nor perímetro.
A seção entre
C
1
e
C
2
de menor perímetro contém um número finito de vértices do obstáculo. O
vértice contido na secção selecionada que estiver mais distante da reta
rm
será inserido como ponto
intermediário na trajetória entre o ponto de origem e o ponto de destino. Este novo ponto será
chamado de V
1
. Agora a trajetória consiste em dois segmentos de reta, o segmento Origem V
1
e o
se
gmento
V
1
Destino. Todo o processo deve ser repetido recursivamente para os novos segmentos
gerados até que tenham sido eliminadas todas as colisões.
Caso um obstáculo possua mais de um par de c
o
lisões, em cada passo será processado apenas o
par entrada/sa
ída que divide o obstáculo mais ao meio com relação ao seu perímetro.
Embora esta proposta apresentada considere alguns conceitos dos métodos
Bug
clássicos, está
inspirada na metodologia que um ser humano usaria para encontrar o caminho caso enxergasse o
mapa de cima. Por exemplo, se no ambiente mostrado na
Figura
30
for traçado uma reta ligando os
pontos de origem e destino, teria-se a menor trajetória possível. Tal trajetória não é viável devido à
presença dos ob
stáculos que geraram as colisões destacadas em vermelho na
Figura
30.
Figura 30
Ambiente dividido em três áreas.
Considera
-se uma colisão um ponto de intersecção entre a trajetória planejada e uma aresta de
um obstáculo. Empiricamente pode-se identificar três regiões distintas de acordo com as colisões.
Enquanto as regiões A e C não contém colisões, a região B está próxima de quatro colisões e deve,
neste primeiro momento, necessariamente ser contornada. Percebe-se que a inserção de um ponto
intermediário na trajetória próximo à letra B eliminaria todas as colisões existentes. Outro aspecto
49
interessante está no fato de que qualquer que fosse a geometria do ambiente nas áreas A e C, a
decisão seria a mesma com respeito a contornar a região B. Dessa forma, neste primeiro passo é
absolutamente dispensável o processamento de qualquer informação proveniente das regiões
contendo obstáculos que não geram colisões com a trajetória, o método d
eve concentrar
-
se apenas em
resolver o problema em B.
Depois de inserir um ponto intermediário na trajetória, ponto este chamado de
I
1
, a trajetória foi
dividida em dois segmentos de reta:
Origem
I
1
e I
1
Destino
. O procedimento é recomeçado agora
analisan
do o segmento de reta Origem I
1
. Percebe-se que o ponto I
1
apesar de resolver as quatro
colisões anteriores gerou duas novas colisões como se pode ver na
Figura
31
. Dividindo a área
novamente em três regiões mais uma vez é constat
ada a irrelevância das regiões A e C neste passo.
Considerando apenas a nova região B conclui-se que a inserção de um ponto intermediário
entre o ponto de origem e
I
1
, chamado de
I
2
, pode
-
se contornar as duas novas colisões.
Figura 31
Ambiente novamente dividido em três áreas
passo 2.
Obteve
-se agora uma trajetória livre de colisões mostrada na
Figura
32
. Apenas a informação
necessária foi considerada no processo, o que evita desperdí
cios de processamento.
Figura 32
Trajetória final.
50
De forma resumida o processo consiste em, partindo de uma linha reta que une o ponto de
origem com o ponto de destino, procurar por uma região onde ocorrem colisões e cont
orná
la
inserindo pontos intermediários na trajetória. O processo deve ser repetido até que não existam
colisões.
2.5.3
Pseudo
código do
K
Bug
Seja um ambiente com obstáculos onde são demarcados dois pontos, um para o origem da
trajetória e outro para o destino.
Liga
-
se o ponto de destino (a partir de agora chamado de B) ao ponto
de origem (a partir de agora chamado de A), formando o segmento AB. A reta que contém o
segmento será chamada de
rm
. Como a menor distância entre dois pontos é uma linha reta, o
algoritm
o sempre tentará estabelecer retas entre os nós da trajetória.
Este segmento AB pode, eventualmente, interceptar as arestas dos obstáculos gerando colisões.
Um ou mais obstáculos podem ser interceptados em um ou mais pontos. Salvo quando o segmento
AB for coincidente com uma aresta de um obstáculo, existe apenas um ponto de intercessão entre
uma aresta e o segmento AB. Para cada uma das arestas de cada um dos obstáculos é elaborado um
sistema de equações contendo a equação da reta que contém a aresta e a eq
uação da reta que contém o
segmento AB. Tal sistema possui solução analítica mostrada na equação (2.9). Uma colisão é
identificada quando este sistema resulta em uma solução contida no segmento AB.
ijij
c
ij
rm
ij
rm
c
XYX
(2.9)
Considerando:
XY
: equação geral da reta no
R
2
;
rm
: coeficiente angular da reta
rm
;
rm
:
coeficiente linear da reta
rm
;
ij
: coeficiente angular da reta que contém a ar
esta
i
do objeto
j;
ij
:
coeficiente linear da reta que contém a aresta
i
do objeto
j;
X
c
: coordenada no eixo das abscissas do ponto onde ocorre a intersecção das retas;
Y
c
: coordenada no eixo das ordenadas do ponto onde ocorre a in
tersecção das retas.
As colisões sempre irão aparecer aos pares em um mesmo obstáculo, pois todas as entidades no
ambiente são representadas por polígonos fechados. Assim sendo, a reta
rm
gera sempre uma colisão
quando entra em um obstáculo e outra quando sai. Pontos tangentes são considerados como sendo
duas colisões no mesmo local e podem acontecer sobre os vértices dos obstáculos. Para escolher
obrigatoriamente uma colisão que seja um ponto de entrada basta selecionar a colisão mais próxima
do ponto de origem, uma vez que este não pode estar contido dentro de um obstáculo. Esta colisão
será chamada de C
1
.
51
Seleciona
-se a segunda colisão em função da distância até a origem. Este pondo será um ponto
em que a reta rm sai do obstáculo, um ponto de saída que será chamado de C
2
. Apenas o objeto que
contém C
1
e C
2
será analisado neste passo, sendo que todos os demais obstáculos somente serão
considerados após um novo ponto ser inserido à trajetória. As demais colisões devem ser descartadas.
Após um novo ponto ser inserido à trajetória, novas colisões podem surgir e as colisões existentes
podem ser eliminadas
Partindo
-se do ponto de entrada (C
1
) percorre
-
se os vértices do objeto (que estão em ordem) no
sentido horário até encontrar o ponto de saída C
2
, medindo as distâncias percorridas, isto é, somando
os comprimentos das arestas entre C
1
e C
2
no sentido horário. Este valor será chamado de Dh.
Repetir a operação, mas para o sentido anti horário (A soma das duas distâncias encontradas
deve resultar no perímetro do obstáculo). Este valor será chamado de Da. Divide-se a distância
encontrada no sentido horário (Dh) pela encontrada no sentido anti horário (Da) gerando-se um fator
de forma.
Repete
-se o processo para todos os pares entrada/saída de colisões do obstáculo. Cada par
analisado resultará em um fator de forma. Em obstáculos convexos sempre apenas um par de
colisões.
Em casos onde, em um mesmo segmento de trajetória, ocorre mais de um par de colisões no
mesmo obstáculo, considera
-
se apenas o par de colisões com
o fator de forma mais próximo de 1 para
os próximos passos. Um fator de forma igual a 1 significa que o obstáculo está dividido praticamente
ao meio. Este passo otimiza a tentativa de contornar o obstáculo, preocupando-se em contornar a
porção do obstáculo
de maior perímetro.
O vértice mais afastado de
rm,
contido entre C
1
e C
2
, no sentido que foi calculado o menor
valor do somatório das arestas (menor valor entre Dh e Da ) será adicionado à trajetória. Para que o
próprio ponto adicionado não gere colisões
com o vértice que o gerou pode
-
se aplicar o procedimento
de
offset
descrito nos tópicos anteriores no vértice selecionado. O ponto gerado será chamado de C.
Inserir o ponto C na trajetória entre o ponto de origem e o ponto de destino. Agora a trajetória
co
ntém um intermediário em C. O algoritmo é recomeçado considerando o segmento Origem
C
de forma isolada do restante da trajetória. Toma
-
se o ponto C como o ponto de destino. Quando todas
as colisões de um segmento são contornadas o algoritmo passa para o próximo segmento. Uma
trajetória é encontrada quando são eliminadas todas as colisões geradas por todos os segmentos entre
os pontos de origem, destino e pelos pontos inseridos pelo próprio algoritmo.
Para determinar qual o vértice que está mais a
fastado
da reta
rm
é simplesmente determinada a
di
s
tância euclidiana entre uma reta e um ponto (X, Y) no R
2
. como mostra a equação
(2.
10
).
1
2
rm
rmrm
YX
d
(2.10)
52
A
Figura
33
mostra uma trajetória sendo gerada passo a passo pelo algoritmo K
Bug
. O caso
escolhido é de um obstáculo com formato em U devido a este ter uma forma propícia a causar
instabilidade e problemas com m
í
nimos locais nos métodos tradicionais.
Inicialmente a trajetória é composta pelo segmento Origem Destino como mostra a
Figura
33
(a). São encontrados dois pontos de colisão C
1
(entre os vértices G e H do obstáculo) e C
2
(entre os
vértices C e D do obstáculo). Duas secções são identificadas, a secção C1 H A B C C2 de menor
comprimento e a secção C
1
G F E D C
2
de maior comprimento. Dentre os vértices que compõe a
secção de menor comprimento, aquele que se encontra mais afastado da reta (equação (2.
10
) ) que
contém o segmento Origem Destino é o vértice C. Este será inserido na trajetória como ponto
intermediário, mostrado na
Figura
33
(b).
Repete
-se agora o mesmo processo, mas considerando o segmento Origem C no lugar de
Origem
Destino. Seguindo os mesmos critérios é encontrado o vértice B, sendo este inserido como
ponto intermediário em Origem
C como mostra a
Figura
33
(c).
Figura 33
Trajetória sendo gerada pelo méto
do
K
Bug
passo a passo.
Finalmente, o vértice A é inserido entre Origem B resultando em uma trajetória livre de
colisões mostrada na
Figura
33
(d). Caso um obstáculo possua mais de um par de colisões, em cada
passo será processad
o apenas o par entrada/saída que divide o obstáculo mais ao meio com relação ao
seu perímetro.
53
2.5.4
Resultados
Na
Figura
34
é apresentado novamente a geração passo a passo de uma trajetória, mas desta
vez em um ambiente complexo.
Figura 34
Trajetória gerada passo
a
passo pelo
K
Bug
em um ambiente complexo.
No algoritmo K
Bug
não é necessário organizar o ambiente de forma a compor algum tipo de
grafo, como no A*. O único pré requisito é a informação referente aos vértices dos objetos, que
devem estar armazenados em listas circulares, de forma a manter a informação da ordem dos vértices
e a qual obstáculo eles pertencem.
Para os ambientes apresentados no início do capítulo como os estudos de caso, dois foram
demonstrados nas figuras
Figura
33
e
Figura
34
. As trajetórias geradas para os demais ambientes
estão na
Figura
35
. O tempo computacional gasto para gerar a trajetória para o ambiente 1 foi de 0.8
milisegundos, para o ambiente 2 foi de 0.3 milisegundos, para o ambiente 3 foi de 19 milisegundos e
para o ambiente 4 foi de 21 milisegundos, sendo que todos os algoritmos foram codificados em
LabVIEW
TM
e executados por um computador AMD Athon 64 de 2,4GHz com 512Mb de memória
RAM.
54
Figura 35
Trajetórias geradas pelo algoritmo
K
Bug
.
2.5.5
Considerações Finais sobre o
K
Bug
Comparando o algoritmo K
Bug
apresentado com os demais métodos estudados chegou-
se às
seguintes conclusões.
Para ambientes pouco complexos, isto é, com poucas bifurcações e poucos obstáculos, o A*
pode eventualmente ser mais rápido que o algoritmo K
Bug
. Com ambientes de mesma
complexidade, o K
Bug
leva a vantagem de visitar apenas os vértices dos obstáculos que geraram
colisões, mas ele tem que identificá las a cada passo, resolvendo vários sistemas de equações (um
sistema para cada aresta de cada obstáculo).
Quanto à otimização da trajetória encontrada, resultados em simulação mostraram que o K
Bug
pode gerar caminhos muito similares ao A*, mesmo para ambientes com muitos obstáculos. A
Figura
36
mostra uma comparação entre uma trajetória gerada pelo K Bug (verde) e pelo A*
(vermelho)
para o ambiente 3. Para os ambientes 1 e 2 a trajetória gerada pelo A* e pelo K
Bug
foram idênticas.
Figura 36
Comparação entre uma trajetória gerada pelo K
Bug (verde) e pelo A* (vermelho)
para o ambiente 3.
55
O fato de o ambiente ser ou não dinâmico não muda a velocidade do K
Bug
, pois a cada passo
que um novo ponto é inserido na trajetória o algoritmo refaz todos os seus cálculos como se estivesse
começando do zero. Pode-se até definir alguns pontos intermediários na trajetória e o algoritmo
el
imina as colisões encontradas, gerando um percurso que obrigatoriamente visita todos pontos pré
estabelecidos.
Dentre as vantagens do
K
Bug
destacam
-
se:
1.
Poucas iterações para atingir um resultado. O algoritmo não busca por um caminho, a cada
passo ele in
sere um nó que faz parte da trajetória final;
2.
Não existe a necessidade de mapear todo o ambiente antes de iniciar o processamento;
3.
Não é necessário processar os objetos/obstruções que não interessam à trajetória;
4.
Há a possibilidade de traçar caminhos que passem por pontos pré
determinados;
5.
Para um mesmo ambiente, o
K
Bug
mostrou
-
se o mais rápido de todos os métodos estudados.
As desvantagens do
K
Bug
são:
1.
Não garante retornar o menor caminho e não tem garantia formal de retornar um caminho,
mesmo que ele e
xista. Este item pode ser exemplificado através da
Figura
37
.
2.
Pontos de origem e destino não podem ser colisões ou estar contidos dentro dos obstáculos.
(Este problema, embora pareça ilógico a princípio, pode ser resolvido por um
APF. O obstáculo
poderia ser simplesmente uma área proibida e o algoritmo afastaria o robô móvel da região
para um local permitido );
3.
Obstáculos distintos colocados juntos (encostados) causam indeterminações no algoritmo.
Considerando o ambiente com um obstáculo em forma de E , mostrado na
Figura
37
(a), o K
Bug
gera a trajetória em verde, enquanto o A* gera a trajetória em vermelho. Isto ocorre devido ao
fato mostrado na
Figura
37
(b). A primeira colisão encontrada C1 C2 divide o obstáculo em duas
partes e segundo o critério do menor perímetro o ponto adicionado à trajetória será o vértice A.
Seguindo então o algoritmo chega
-
se invariavelmente a trajetória mostrada na
Figura
37
(
a).
Figura 37
Exemplo de um ambiente em que a trajetória gerada pelo
K
Bug
não é ótima.
56
2.6
Conclusões Sobre os Métodos de Planejamento de
Trajetórias
Os quatro algoritmos de planejamento de trajetórias foram analisados perante os seguintes
critérios: (i) condição de convergência, (ii) custo computacional, (iii) complexidade do algoritmo,
(iv) otimização do resultado, (v) determinismo, (vi) problemas com mínimos locais e (vii)
dependência da informação de todo o ambiente.
(i) C
ondição de convergência.
Quanto à convergência, apenas o A* garante encontrar uma trajetória válida viável. O K
Bug
ainda não possui uma prova matemática da sua convergência, e apesar de não ter sido encontrado um
contra
exemplo, isto é, um ambiente onde o algoritmo falhe em encontrar uma trajetória válida, a sua
convergência não é comprovada para todos os casos. Os algoritmos genéticos têm a sua convergência
apenas estimada estatisticamente. Os campos potenciais têm a convergência dependente das equações
q
ue descrevem o campo e o método numérico usado para resolvê
la.
(ii) Custo computacional.
Para atender o objetivo principal deste trabalho, que é a implementação de um sistema em
tempo real de navegação e controle de robôs móveis, os métodos de planejamento de trajetórias
devem ser capazes de processar em um tempo compatível com a aplicação. Uma das características
mais comuns das aplicações de robótica em tempo real são os pequenos intervalos de amostragem,
geralmente na ordem de mili e micro segundos. Isso se deve principalmente ao fato de que os
controladores que implementam efetivamente o movimento necessitam responder à perturbações e
realizar eventuais correções na postura do robô de forma que a trajetória seja mantida. Assim sendo,
o planejamento da trajetória não é o único algoritmo que é continuamente processado durante a
execução do sistema real. também algoritmos de reconhecimento de imagens, controladores e a
comunicação entre computador e o robô.
O custo computacional do AG depende da quantidade de nós e não da complexidade do
ambiente. O APF depende diretamente da complexidade do ambiente, visto que a cada passo todos os
obstáculos influenciam no deslocamento do robô. O custo do A* está concentrado em gerar o grafo de
visibilidade, mas este depois de gerado não precisa ser refeito até que ocorra alguma alteração no
ambiente. O K
Bug
trata toda a informação sobre o ambiente de forma vetorial e a cada iteração
apenas o obstáculo que está imediatamente obstruindo a sua trajetória é considerado.
Dessa forma descartou-se o algoritmo genético para a implementação em tempo real devido ao
alto custo computacional. Uma forma de viabilizar o uso dos AGs é realizar o planejamento da
trajetória em modo
offline
, isto é, realizada uma vez apenas antes do início do movimento. Nesta
57
abordagem o sistema perde a capacidade de reagir a qualquer alteração no ambiente. Mesmo assim os
AGs mostram nenhuma vantagem, visto que a qualidade do resultado obtido foi melhor com os
demais algoritmos, não resultando em nenhu
m motivo para manter o AG no sistema em tempo real.
(iii) Complexidade do algoritmo.
Os AGs e os APFs são métodos de mais fácil implementação computacional devido ao número
reduzido de passos em seus algoritmos. Por outro lado, gerar e manter os grafos de visibilidade,
juntamente com a base de dados do algoritmo de busca do A* são atividades complexas. O K
Bug
é
um algoritmo de complexidade maior que os AGs mas menor que o A*.
(iv) Otimização do resultado.
Apenas o A* garante além de encontrar uma trajetória válida, que esta será a melhor segundo
uma dada heurística. O K
Bug
não possui ainda uma prova matemática da sua convergência, apesar
de não ter sido encontrado um contra exemplo, isto é, um ambiente onde o algoritmo falhasse em
encontrar uma trajetória válida. Experiências práticas mostraram que as trajetórias geradas pelo K
Bug
assemelham
-
se das geradas pelo A*.
Os APFs podem gerar em trajetórias com curvas arredondadas sem a necessidade de qualquer
pós
processamento. Apesar dos demais métodos gerarem curvas abruptas, estas podem ser
suavizadas após o término do planejamento da trajetória por algum método de interpolação, como por
exemplo,
splines
. A própria dinâmica do sistema e/ou pela ação do controlador que irá efetivamente
imprimir o movimento
no robô também podem causar alguma suavização no movimento.
(v) Determinismo.
O AG conceitualmente não apresenta determinismo no resultado, sendo que duas execuções do
algoritmo com os mesmos dados de entrada fornecem resultados diferentes, podendo a sua
convergência ser apenas estimada estatisticamente. Os demais algoritmos apresentam determinismo
em seus resultados, pois não dependem de números aleatórios.
(vi) Problemas com mínimos locais.
O APF mostrou-se muito susceptível a mínimos locais e o sistema em tempo real deve ser
robusto o suficiente para alcançar qualquer destino em um ambiente qualquer. Pode-se ainda utilizar
APFs mais elaborados, recorrendo a algoritmos de otimização de problemas não lineares para
encontrar trajetórias válidas, porém o custo computacional aumenta incorrendo na mesma situação do
AG. Por estes motivos o APF também foi descartado para a implementação em tempo real. Os AGs,
assim como todo algoritmo numérico de otimização, também apresentam problemas de convergência
prematura
para um mínimo local.
58
(vii) Dependência da informação de todo o ambiente.
Os campos potenciais podem ser aplicados em ambientes dinâmicos onde nem toda a
informação sobre os obstáculos é conhecida, caracterizando um comportamento reativo do sistema.
Devid
o a esta qualidade, os APF são largamente aplicados em robótica móvel onde a câmera está
montada no próprio robô. Para este trabalho, toda a informação sobre o ambiente será conhecida em
todos os instantes, assim, esta qualidade não representa uma vantagem para a aplicação em tempo
real.
A
Tabela
3 mostra uma comparação entre os métodos estudados.
Tabela
3
Comparação entre os métodos de planejamento de trajetórias.
Método
Critério
AG
APF
A* em
grafos de
visibilidade
K
Bug
para
ambientes
conhecidos
Condição de
convergência
Não é garantida
a convergência
Não é garantida
a convergência
Algum caminho
existir
Não é garantida a
convergência
Custo
computacional
Muito alto,
moderadamente
dependente da
complexidade
do ambiente
Médio,
altamente
dependente da
complexidade
do ambiente
Médio,
altamente
dependente da
complexidade do
ambiente
Baixo, pouco
dependente da
complexidade do
ambiente
Complexidade
do algoritmo
Baixa
Baixa
Alta
Moderada
Otimização do
resultado
Pode apenas ser
estimada
Imprevisível
Sempre retorna o
melhor caminho
Próximo do
melhor caminho
Determinismo
Não
Sim
Sim
Sim
Problemas com
mínimos locais
Sim
Sim
Não
Não
Depende da
informação de
todo o ambiente
Sim
Não
Sim
Sim
59
Capítulo 3
Controle da
Trajetória através de
Controle
Fuzzy
O capítulo anterior apresentou estratégias de planejamento de trajetórias para robôs móveis de
forma a evitar os obstáculos, atender a determinados quesitos de otimização e formular um caminho
viável até o ponto de dest
ino. Para que a implementação em tempo real seja possível, além de planejar
a trajetória do robô é necessário que um sistema de controle faça com que o robô efetivamente
percorra a trajetória planejada. Este algoritmo de controle gera a seqüência de sinais que, através de
circuitos eletrônicos, são convertidos para tensões elétricas e aplicadas, a cada instante, nos motores
do robô.
Neste capítulo é apresentada uma metodologia de controle baseada em gica
Fuzzy
capaz de
atender às necessidades do sistema.
3.1
Introdução
Parte dos fundamentos da teoria de controle está associada à algoritmos matemáticos
desenvolvidos principalmente após a 2
a
Guerra Mundial. Mas os princípios do controle realimentado,
na forma de conhecimento empírico, intuição e experiência prática têm sido aplicados desde os
tempos da Grécia antiga. A primeira motivação para o controle realimentado que remonta tempos da
Antiguidade surgiu da necessidade em medir a passagem do tempo com precisão. Assim, em
aproximadamente 270 a.C. o grego Ktesibios inventou um regulador de nível para um relógio de
água. A função do regulador era manter o nível de água em um tanque constante. Este nível constante
fornecia um fluxo constante de água para um Segundo tanque. O nível de água neste segundo tanque
depen
dia do tempo transcorrido. Para controlar o nível de água, Ktesibios usou uma bóia e uma
válvula, sistema este que lembra o controle de nível em caixas d´água atuais (Routledge, 1900).
A revolução industrial na Europa introduziu as máquinas com movimento p
róprio. Foi marcada
com a invenção de moendas, caldeiras, fundições e motores a vapor. Estes dispositivos não poderiam
ser regulados manualmente, o que provocou uma necessidade por sistemas de controle automático.
60
Uma série de dispositivos de controle foi inventada, incluindo reguladores de nível, de temperatura,
pressão e velocidade (Fuller, 1976).
James Watt e Matthew Boulton inventaram o motor a vapor em 1769, e esta data marca o
início da Revolução Industrial. O dispositivo de controle utilizado para regular a vazão de vapor em
função da velocidade do motor foi chamado de Watt Governor e é até hoje o dispositivo de controle
automático mais famoso da história.
Figura 38
Watt Governor
.
O torque gerado pelo peso das bolas é equ
ilibrado pelo torque gerado pela rotação do eixo
(Routledge, 1900).
No final do século XIX foi aperfeiçoada a matemática necessária para modelar e comprovar a
estabilidade dos sistemas de controle mecânicos com os trabalhos de J.C. Maxwell, E.J. Routh e A
.M.
Lyapunov (Maxwell, 1868; Lyapunov, 1907; Routh, 1888).
N. Minorsky introduziu, em 1922 (Minorsky, 1922), um controlador para a navegação de
navios composto por três termos, sendo o primeiro a utilizar o controle Proporcional
Integral
Derivativo (PID), que é até os dias de hoje o controlador mais utilizado em aplicações industriais
(Åström e Witternmark, 1997).
Durante a 2
a
. Guerra Mundial, com o aparecimento do transistor e o aperfeiçoamento da
eletrônica, os primeiros circuitos de controle analógicos foram desenvolvidos e utilizados
principalmente para navegação de navios e controle de mira de armamentos. Estas aplicações
caracterizam o chamado de período do controle clássico, onde os projetos eram baseados em técnicas
empíricas de sintonia, usando cal
culadoras de mão e métodos gráficos (Fuller, 1976).
Com o advento do microprocessador em 1969 um novo nicho para o controle automático
começou a se desenvolver. três áreas em que um computador digital é necessário. Primeiramente
para resolver as equações de projeto que regem a lei de controle. Segundo, uma vez que as leis de
controle ótimo e filtros podem ser variantes no tempo, um computador digital é necessário para
implementar as técnicas de controle moderno em sistemas reais. Terceiro devido a que sistemas de
controle podem ser implementados em computadores digitais e estes interagem com o sistema através
de conversores digitais analógicos e circuitos amostradores. Para isso, sistemas de controle que são
implementados em computadores digitais devem ser formulados em tempo discreto. Assim, o
crescimento da teoria de controle digital foi uma necessidade para a época (Åström e Wittenmark,
1997).
61
Durante a década de 1950, a teoria de sistemas amostrados estava sendo desenvolvida em
Columbia pelos professores J.R. Ragazzini, G. Franklin e L.A. Zadeh, entre outros (Ragazzini e
Franklin, 1958; Ragazzini e Zadeh, 1952). A idéia de usar computadores digitais em processos
industriais surgiu neste período. Em 1956 foi iniciado um projeto em conjunto entre a TRW e
a
Texaco que resultou em um sistema controlado por computador instalado na refinaria do porto
Arthur, no Texas, em 1959.
Em meados de 1970, com trabalhos como os de K. Åström (Åström, 1970), a viabilidade do
controle digital em aplicações industriais foi e
stabelecida.
L. Zadeh, em 1965 (Zadeh, 1965), introduziu a idéia de conjuntos nebulosos, que são uma
forma de representar o conhecimento como uma generalização da teoria de conjuntos. De acordo com
a lógica nebulosa, uma variável pode pertencer a um número qualquer de conjuntos em diferentes
níveis de pertinência. A primeira aplicação industrial de um sistema
Fuzzy
foi em um forno rotativo
para cimento, construído na Dinamarca e inaugurado em 1975.
Inicialmente, apesar dos sistemas baseados em lógica fuzzy serem ignorados nos Estados
Unidos da América, no Japão foram recebidos com interesse. A companhia Hitachi apresentou
simulações que demonstravam a superioridade de sistemas de controle fuzzy quando aplicadas no
metro de Sendai, em 1985 (Schwartz e Klir, 1
992).
Um outro evento em 1987 ajudou a impulsionar o interesse em sistemas fuzzy. Durante o
encontro internacional de pesquisadores fuzzy, em Tóquio, Takeshi Yamakawa demonstrou como um
conjunto de regras simples controla um experimento com um pêndulo invertido. Yamakawa
organizou o seu próprio laboratório de sistemas fuzzy
para explorar as suas patentes na área (Schwartz
e Klir
,
1992).
Nos anos que se seguiram, surgiu no Japão um interesse crescente por sistemas baseados em
lógica fuzzy. Em 1988 foi criado o Laboratório Internacional de Engenharia Fuzzy, uma coligação
entre 48 indústrias (Berardinis, 1992).
Atualmente, a lógica fuzzy possui aplicações nas mais variadas áreas, como por exemplo,
avaliações por questionários, medidas de incerteza, inteligência artificial, tomada de decisão,
processamento de imagens, otimização, reconhecimento de padrões, entre outras. Em aplicações
industriais existem produtos desde lavadoras de roupas (Sansung e AEG) até câmeras digitais
(Olympus e Sony), impressoras (Ricoh) e sistemas de ar condicionado (Brastemp) (Dubois e Prade,
1980).
3.1.1
Controle
Fuzzy
A lógica nebulosa, quando aplicada a algoritmos de controle, permite formular controladores
baseados na representação do conhecimento humano em uma base de regras. Isso torna o
controle
fuzzy
conceitualmente diferente do controle convencional que depende de uma síntese analítica.
62
Entende
-se por FLC (Fuzzy Logic Controller) uma lei de controle descrita na forma de uma
base de conhecimentos consistindo em regras do tipo SE <condição> ENTÂO <ação> com
predicados vagos e um sistema de inferência fuzzy
(Yager e Filev, 1994).
A base de dados é a parte principal do FLC. É um conjunto de informações que relacionam as
entradas e as saídas do controlador. Por exemplo, seja um FLC aplicado para controlar a trajetória de
um robô móvel. Se o robô estiver muito longe do destino, este deve utilizar uma velocidade alta. Na
medida que o robô se aproxima do ponto de destino, a sua velocidade deve ser reduzida e as correções
em sua direção devem t
ornar
-se cada vez mais agressivas. Neste exemplo nota-se que são usados
termos lingüísticos para definir os possíveis estados das variáveis consideradas como, por exemplo,
menor, alto e positivo.
Dessa forma, através de um conjunto de variáveis codificadas lingüisticamente e de uma base
de dados determinada a priori, pode-se entender o funcionamento de um controlador fuzzy. Para
colocá
lo em prática precisa-se ainda ponderar numericamente os termos lingüísticos e escolher um
método de defuzzyficação. A
Figura
39
ilustra um diagrama de um FLC.
Figura 39
Diagrama em blocos básico de um FLC. Fonte
: (Shaw
et al.
, 1999).
Os valores discretos (não fuzzy) das variáveis de entrada geralmente são provenientes de
sensores das grandezas físicas ou de dispositivos de entrada computadorizados. A interface de
fuzzificação usa funções de pertinência contidas na base de conhecimento, convertendo sinais de
entrada em um intervalo predeterminado, denominado universo de discurso, que pode estar associado
a rótulos lingüísticos (Nguyen e Walker, 2000). Uma função de pertinência é uma função, gráfica ou
tabulada, que atribui valores de pertinência
fuzzy
para valores discretos de uma variável, em seu
universo de
discurso.
A defuzzificação consiste em se obter um único valor discreto utilizável numa ação de controle
concreta no mundo real, a partir de valores fuzzy
de saída obtidos com as funções de pertinência.
63
Neste trabalho, o controle fuzzy será usado para controlar a trajetória de aproximação e
estacionamento do robô móvel. Uma vantagem do controlador fuzzy
reside no fato deste prescindir da
modelagem dinâmica do robô, requerendo apenas que os comandos de controle, obtidos com base na
experiência heurística do operador humano, sejam expressos em variáveis lingüísticas e regras de
produção do tipo: Se {condução 1} e {condição 2}então {ações}.
Detalhes sobre lógica
fuzzy
podem ser encontrados na literatura, como por exemplo em Mendel
(1995). Uma coletânea de aplicações industriais bem como a revisão do estado da arte em controle
fuzzy pode ser encontrada em Feng (2006). Neste mesmo artigo são discutidos detalhes de projeto e
análise da estabilidade de modelos fuzzy tipo Takagi Sugeno. No caso de controle de robôs móveis
utilizando lógica fuzzy
, alguns exemplos são descritos a seguir:
Um sistema para realizar o planejamento e controle da trajetória de um romóvel autônomo,
usando programação evolutiva e lógica fuzzy
, é descrito em Martínez
Alfaro e Gómez
García
(1998).
A programação evolutiva é utilizada para obter uma trajetória livre de colisões. Um controlador
baseado em lógica fuzzy é utilizado para percorrer a trajetória planejada e evitar colisões com
obstáculos móveis no ambiente. Experimentos em tempo real são apresentados com o robô NOMAD
200.
Em Howard et al. (2001) é apresentada uma técnica para auxiliar a navegação de robôs móveis
em ambiente externo, baseada no mapeamento do conhecimento de um operador humano, que usa a
informação adquirida on line do terreno. A metodologia usa uma estrutura fuzzy e algoritmos de
imagem para analisar o terreno e produzir trajetórias viáveis através de um comportamento reativo.
CHANG e LI (2002) exploram controladores fuzzy para produzir manobras complexas em
robôs móveis. Neste artigo são descritos dois controladores utilizados para realizar o estacionamento
paralelo de um robô móvel que mimetiza um automóvel em miniatura (CTMR
Car
Type Mobile
Robot
). Um controlador para realizar o estacionamento com o robô aproximan
do
-se pela frente e
outro para o ro aproximando-se em marcha ré. Um experimento em tempo real comprova ser
factível. A arquitetura de
hardware
e do controlador também são apresentadas neste trabalho.
Em Zavlangas e Tzafestas (2003) um sistema para controlar a trajetória de um robô
omnidirecional usando lógica fuzzy é descrito. O controlador fuzzy
combina a repulsão dos obstáculos
próximos ao robô à atração da posição de destino, de uma forma semelhante à metodologia de
campos potenciais artificiais. Os autores afirmam que o sistema pode ser facilmente sintonizado e
aplicado em sistemas reais com obstáculos móveis. Experimentos em simulação são também
apresentados.
Em Mucientes et al. (2003) é descrito um controlador de velocidade baseado em lógica fuzzy
para o robô móvel NOMAD 200. O projeto do controlador é separado em dois blocos, controle de
velocidade angular e linear. O modelo do robô é representado através de um conjunto de regras fuzzy
chamado de regras temporais fuzzy . Os autores objetivam, através da metodologia exposta, obter
trajetórias suaves e aumentar a velocidade média do robô quando comparado experimentos anteriores.
64
Um método baseado em lógica fuzzy é também apresentado em Cuesta et al. (2003) para
processar a informação sensorial sobre um ambiente e combinar os comportamentos reativos e
deliberativos de um robô móvel. Este método é capaz de tratar incertezas e imprecisões e levar em
consideração as restrições não holonômicas. Experimentos em tempo real são também apresentados
no controle
do veículo autônomo ROMEO
3R.
Em Antonelli et al. (2007) é proposta uma abordagem baseada em regras de inferência fuzzy
que mimetizam o comportamento humano ao dirigir um automóvel. A entrada do sistema fuzzy é a
representação da próxima curva que o veículo deve executar e as saídas são as velocidades linear e
angular do veículo. Este controlador fuzzy é aplicado sobre um controlador dinâmico que, executando
em um laço de controle mais rápido, imprime efetivamente as velocidades no robô.
Lin Cai (2007) aplica uma metodologia baseada em lógica fuzzy para controlar a trajetória de
um robô móvel que mimetiza em escala um veículo automotor convencional. O sistema de controle é
composto por dois controladores fuzzy em paralelo, um com comportamento
feedback
e ou
tro
feedfoward
. Um algoritmo genético é utilizado com sucesso para sintonizar os parâmetros dos
controladores. Neste artigo, os autores comparam o desempenho do controlador com um controlador
PD (Proporcional Derivativo) convencional, enfatizando o melhor desempenho do controlador fuzzy
quando a distúrbios na trajetória e variações no modelo.
Para este trabalho, objetiva-se nas seções seguintes desenvolver um sistema de controle de
trajetórias baseado em lógica
fuzzy
similar aos apresentados em Gomide e Rodrigues (1994), Vaneck
(1997) e Sandi et al. (1998). São utilizados esboços em papel para visualizar os caminhos que o robô
deve seguir para atingir os objetivos da mesma forma que em Vaneck (1997) e Sandi et al. (1998).
Através destes esboços são definidas
as regras do controlador.
Este capítulo está estruturado da seguinte forma:
Na seção
3.2
é apresentado o problema do estacionamento do robô e a motivação que levou a
escolha de um controlador baseado em lógica fuzzy. Na seção
3.3
é descrito o controlador baseado
em lógica fuzzy implementado. A formulação de um controlador PID será apresentada na seção
3.4
com a finalidade de comparar o seu desempenho com o controlador fuzzy. Na seção
3.5
são
apresentados os resultados de simulações comparando o controlador PID com o controlador fuzzy
.
Também é apresentada a modelagem matemática do robô usada no simulador juntamente com alguns
aspectos da arquitetura do programa de simulação. As conclusões e considerações finais são
apresentadas na seção
3.6
.
65
3.2
Motivação
A escolha por um controlador baseado em lógica fuzzy para o controle da trajetória de robôs
móveis é vantajosa principalmente pelo fato do mesmo permitir, baseado na experiência heurística do
operador humano, a tomada de decisões complexas. Esta característica, inerente à lógica fuzzy
,
permite que o controlador estacione o robô com uma determinada orientação.
De acordo com a equação (1.1), três são as variáveis que devem ser controladas: posição sobre
o eixo X, posição sobre o eixo Y e orientação. A orientação do roé o ângulo que este faz com o
eixo
X, chamado de ângulo . A
Figura
40
(a) mostra uma representação do robô na posição X=
10,
Y=
10 e
= 90°.
A configuração diferencial deste robô permite que suas rodas traseiras o impulsionem sempre
no sentido de . Assim sendo, por exemplo, com uma orientação de = 90° é impossível para este
alterar a sua posição em X, necessitando primeiramente alterar a sua orientação. Para isto o
controlador deve imprimir no robô sinais diferentes em cada um dos motores.
Figura 40
Ex
emplos de trajetórias conseguidas com um controlador linear e baseado em lógica fuzzy
.
Um controlador PID pode produzir uma trajetória que leve o robô até o ponto de destino em X
= 10 e Y = 10, como mostra na
Figura
40
(b), mas para que este atinja o ponto de destino com uma
determinada orientação é necessário um controlador capaz de tomar decisões ao longo do percurso,
66
gerando trajetórias compostas por manobras que não apenas dirigem-se diretamente para o ponto de
destino. A
Figura
40
(c) mostra como um controlador fuzzy pode estacionar o robô com uma
determinada orientação no ponto de destino.
3.3
Descrição do Controlador
Para controlar um robô móvel não holonômico usando a realimentação de informação visual,
de acordo com o esquema apresentado na
Figura
4 apresentada no Capítulo 1, várias etapas são
usadas para fechar a malha de controle.
O propósito do controlador é garantir que a resposta na saída seja o mais próximo possível do
sina
l de entrada, denominado set point. A referência, ou
setpoint
do controle de trajetórias é dada
pelos algoritmos de planejamento de trajetórias, abordados no capítulo anterior. Assim sendo, um
algoritmo amostra a trajetória planejada e gera a referência instantânea que deve ser atingida pelo
robô. O sensor que mede as saídas do sistema é uma câmera, sendo que as imagens capturadas por
esta devem ser convertidas em valores numéricos antes de serem aproveitadas pelo controlador. Um
processo de desacoplamento das variáveis de entrada também é usado para facilitar a sintonia do
controlador. Esta sintonia, por ser baseada na experiência do operador, deve ser o mais intuitiva
possível. Devido a arquitetura implementada, uma transformação de coordenadas também é
ne
cessária para controlar a trajetória de estacionamento do robô.
O diagrama do sistema realimentado utilizando o controlador fuzzy
está ilustrado na
Figura
41
.
Figura 41
Diagrama em bloco
s do sistema realimentado com controle fuzzy
.
3.3.1
Posição de Destino
É a postura final desejada pelo usuário para o robô em termos de posição sobre os eixos
X
e
Y
e
a sua orientação. O termo postura é utilizado aqui para descrever a tripla [X(k
),
Y(k
),
(k)]. Neste
trabalho, apenas o controlador baseado em lógica
fuzzy
é capaz de considerar a orientação final.
67
Considerando que o tempo computacional de planejar a trajetória não seja significativo quando
comparado com o intervalo de amostragem, esta postura po
de ser alterada durante a movimentação do
robô.
3.3.2
Planejamento da Trajetória
Neste passo a trajetória global é determinada segundo os algoritmos abordados no capítulo
anterior. Para este capítulo é utilizado o método K
Bug
, pois este mostrou-se o mais rápido dos
métodos abordados e pretende-se planejar a trajetória de forma
online
, isto é, dentro do intervalo de
amostragem.
3.3.3
Cálculo dos Erros
A
Figura
42
mostra o processo do cálculo dos erros.
Figura 42
Cálculo dos erros de controle.
Os erros nos eixos X (E
X
) e Y (E
Y
) são a diferença aritmética entre a posição atual do robô e o
ponto de destino. Também é utilizado neste trabalho o parâmetro de erro linear (E
l
), definido em
(3.1).
O erro de orientação, ou erro angular, é a diferença instantânea entre o ângulo da reta que une o
robô ao ponto de destino e a orientação atual do robô.
22
YXL
EEE
(3.1)
3.3.4
Amostragem da Trajetória
Apó
s a trajetória ser planejada, tem-se um conjunto ordenado de pontos, denominados aqui de
waypoints
, que o robô deve atingir. Independente do controlador a ser usado, este conjunto de
waypoints
deve ser transformado em um conjunto de referências, de forma que os erros possam ser
devidamente calculados.
Seja a
Figura
43
(a) onde o robô encontra-se na origem. A trajetória foi planejada utilizando o
algoritmo
K
Bug
e está desenhada em amarelo. Os pontos destacados por números são os
way
points
que o robô deve atingir de forma a evitar os obstáculos segundo o planejamento. Considerando um
modelo para os motores do robô com uma constante de tempo maior que dez vezes o intervalo de
amostragem, se a cada instante de amostragem for enviado para o controlador um novo
waypoint,
a
referência de trajetória atinge o ponto de destino antes mesmo do robô iniciar o movimento, conforme
68
mostrado na
Figura
43
(b). Nesta figura está ilustrada o
setpoint
de velocidade linear, em vermelho e
a velocidade linear do robô, em verde. Este experimento é apenas qualitativo e como ainda não foram
definidos os parâmetros do robô ou do controlador é usada uma unidade adimensional para a escala
de tempo (unidade de tempo
ut). Para a escala das ordenadas também é utilizada uma unidade
adimensional de velocidade como sendo uma unidade de comprimento por unidade de tempo.
(a) (b)
Figura 43
Referências de trajetória.
Assim sendo, é necessário interpolar a trajetória planejada de forma que seja possível que o
robô a acompanhe. Para isso, a distância euclidiana entre um
waypoint
e o próximo é dividida de tal
forma que a cada instante de amostragem um novo ponto é apresentado e a taxa do deslocamento do
setpoint
esteja de acordo com uma velocidade predefinida. Dessa forma pode-se especificar também
uma referência de velocidade para que o robô realize a trajetória.
A
Figura
44
(a) mostra uma trajetória percorrida com sucesso. Neste caso, ao invés da
referência demorar 0.5 ut para atingir o destino, são necessárias 36 ut.
(a) (b)
Figura
44
Trajetória interpolada.
69
Pode
-se ver na
Figura
44
(b) que a velocidade linear consegue acompanhar tal referência. Nesta
figura está ilustrado, em preto, o erro linear, definido como a soma dos quadrados dos erros em X e Y
e a velocidade linear do robô, em verde, que é a velocidade do sentido da sua orientação.
Nas primeiras oito ut da simulação percebe-se um valor maior do erro linear, isso se deve à
orientação inicial do robô. Como o controlador privilegia a correção do erro angular, a referência
percorre a trajetória planejada se afastando do robô e causando um aumento no erro linear.
Com a interpolação, o controlador recebe indiretamente uma referência de velocidade. Com o
intuito de remover a influência desta referência e permitir que o controlador dirija o robô o mais
rápido o possível, uma outra forma de interpolação pode ser utilizada.
Sejam os 5
waypoints
apresentados na
Figura
43
(a). No próximo experimento, a condição que
comuta a referência de um
waypoint
para o próximo não mais está vinculada à passagem do tempo, e
sim com a posição instantânea do robô. A
Figura
45
(a) mostra a mesma trajetória percorrida com o
novo critério de comutação.
(a) (b)
Figura 45
Trajetória interpolada, referências comutadas por proximidade.
Este critério considera a reta bissetriz traçada sobre os segmentos de reta que conectam cada
waypoint
. Quando a distância entre o robô e a reta bissetriz é menor que o comprimento do próprio
robô o
waypoint
é comutado. O cálculo da distância entre um ponto e uma reta está definido na
equação
(2.
10
). Assim, quando o robô se aproxima do
waypoint
atual, a referência é comutada para o
próximo, causando os degraus na amplitude do erro linear mostrados na
Figura
45
(b). Neste caso a
trajetória é percorrida em aproximadamente 18 ut devido a um comportamento mais agressivo do
controlador.
3.3.5
Controlador
Um controlador baseado em lógica fuzzy proposto a seguir é semelhante ao descrito por Sandi
et al.(1998). O objetivo do controlador é similar: aproximar o robô do ponto de destino com este
voltado sempre para a direção 90
o
.
70
O controlador descrito neste trabalho, apesar de utilizar o mesmo princípio que o controlador
descrito em Sandi et al. (1998), possui uma base de regras diferente. As considerações feitas para
projetar esta nova
base de regras são as seguintes:
as entradas do controlador são os erros em
X
,
Y
e orientação;
as saídas do controlador são as velocidades linear e angular;
existe uma região chamada longe , onde o robô trafega diretamente para o destino;
existe uma região chamada perto , onde o robô manobra corrigindo a orientação e
realiza a aproximação em baixa velocidade para o destino;
existe uma região chamada zero , onde o robô estaciona;
os erros grandes de orientação são corrigidos com ações de controle agressivas e
baixas velocidades lineares.
O conjunto de termos lingüísticos usado para definir as tabelas associativas fuzzy
é apresentado
a seguir:
O erro de orientação (
E
) é classificado como:
grande e negativo (GN);
médio e negativo (MN);
pequeno e negativo (
PN);
zero (Z);
pequeno e positivo (PP);
médio e positivo (MP);
grande e positivo (GP).
Tanto o erro em
X
(
E
X
) quanto o erro em
Y
(
E
Y
) podem assumir a classificação:
longe e negativo (LN);
perto e negativo (PN);
zero (Z);
perto e positivo (PP);
longe e pos
itivos (LP).
Considerando que o robô não deve mover-se para trás, o sinal de controle para a velocidade
linear é classificado como:
rápido (R);
lento (L);
zero (Z).
O sinal de controle referente à velocidade angular é classificado segundo os termos:
rápido
e negativo (RN)
lento e negativo (LN);
zero (Z);
71
lento e positivo (LP);
rápido e positivo (RP).
A
Figura
46
apresenta uma ilustração das regiões consideradas para gerar a base de dados
fuzzy. A orientação do robô durante o estacionamento é feita em termos de X e Y. O controlador deve
aproximar o rodo seu destino sempre com uma orientação igual a 90º, isto é, sempre através de
posições com erro em Y positivos. Para isso, sempre que o robô se aproxima pelos quadr
antes em que
o erro em Y é positivo, ao passar da região longe para a região perto, são gerados sinais de controle
que levam o robô a navegar conservando um erro médio de orientação. Ao atingir a condição de erro
zero em X e erro perto em Y o robô corrige rapidamente o erro restante de orientação e estaciona
sempre virado para a direção 90
o
.
Caso o robô esteja se aproximando por uma região onde o erro em Y é negativo, ao cruzar da
área
longe para a área perto ele novamente mantém um erro médio de orientação, mas desta vez
contorna a região perto até passar para uma condição de erro em Y perto e positivo. Então os
procedimentos normais de aproximação e manobra encarregam
-
se de o estacio
nar.
O conjunto completo das tabelas associativas fuzzy são apresentadas nas tabelas 4(a), 4(b), 4(c),
4(d), 4(e), 4(f), 4(g), 4(h), 4(i) e 4(j).
Figura 46
Erros para o controlador fuzzy
.
72
Tabela
4
Tabelas associativas do controlador
fuzzy.
(a)
Saída: velocidade angular
E
Y
=
LP
E
x
E
LN
PN
Z
PP
LP
GN
RN
RN
RN
RN
RN
MN
RN
RN
RN
RN
RN
PN
LN
LN
LN
LN
LN
Z Z Z Z Z Z
PP
LP
LP
LP
LP
LP
MP
RP
RP
RP
RP
RP
GP
RP
RP
RP
RP
RP
(b)
Saída: velocidade angular
E
Y
= PP
E
x
E
LN
PN
Z
PP
LP
GN
RN
RN
RN
RN
RN
MN
RN
LN
RN
RN
RN
PN
LN
LP
LN
RN
LN
Z Z
RP
Z
RN
Z
PP
LP
RP
LP
LN
LP
MP
RP
RP
RP
LP
RP
GP
RP
RP
RP
RP
RP
(c)
Saída: velocidade angular
E
Y
= Z
E
x
E
LN
PN
Z
PP
LP
GN
RN
RN
Z
RN
RN
MN
RN
LN
Z
RN
RN
PN
LN
Z Z
RN
LN
Z Z
RP
Z
RN
Z
PP
LP
RP
Z Z
LP
MP
RP
RP
Z
LP
RP
GP
RP
RP
Z
RP
RP
(d)
Saída: velocidade angular
E
Y
= PN
E
x
E
LN
PN
Z
PP
LP
GN
RN
LN
LN
RN
RN
MN
RN
LN
Z
RN
RN
PN
LN
Z
LP
RN
LN
Z Z
LP
LP
LN
Z
PP
LP
RP
LN
Z
LP
MP
RP
RP
Z
LP
RP
GP
RP
RP
LP
LP
RP
(e)
Saída: velocidade angular
E
Y
= LN
E
x
E
LN
PN
Z PP
LP
GN
RN
RN
RN
RN
RN
MN
RN
RN
LN
RN
RN
PN
LN
LN
Z
LN
LN
Z Z Z
LP
Z Z
PP
LP
LP
Z
LP
LP
MP
RP
RP
LP
RP
RP
GP
RP
RP
RP
RP
RP
(f)
Saída: velocidade linear
E
Y
= LP
E
x
E
LN
PN
Z
PP
LP
GN
Z Z Z Z Z
MN
L L L L L
PN
R R R R R
Z R R R R R
PP
R R R R R
MP
L L L L L
GP
Z Z Z Z Z
(g)
Saída: velocidade linear
E
Y
= PP
E
x
E
LN
PN
Z
PP
LP
GN
Z Z Z Z Z
MN
L L Z Z L
PN
R L Z L R
Z R L L L R
PP
R L Z L R
MP
L Z Z L L
GP
Z Z Z Z Z
(h)
Saída: velocidade linear
E
Y
= Z
E
x
E
LN
PN
Z
PP
LP
GN
Z L Z L Z
MN
L L Z L L
PN
R L Z L R
Z R L Z L R
PP
R L Z L R
MP
L L Z L L
GP
Z L Z L Z
(i)
Saída: velocidade linear
E
Y
= PN
E
x
E
LN
PN
Z
PP
LP
GN
Z R L Z Z
MN
L R R L L
PN
R L L L R
Z R L Z L R
PP
R L L L R
MP
L L R R L
GP
Z Z L R Z
(j)
Saída: velocidade linear
E
Y
= LN
E
x
E
LN
PN
Z
PP
LP
GN
Z Z Z Z Z
MN
L L L L L
PN
R R R R R
Z R R R R R
PP
R R R R R
MP
L L L L L
GP
Z Z Z Z Z
O grau de pertinência de cada uma das variáveis do sistema dentre as classificações lingüísticas
é definido por um conjunto de funções de pertinência. Cada uma das variáveis de entrada é verificada
quanto a sua pertinência em cada uma das funções de pertinência de entrada. Se o robô estiver na
região longe , a sua pertinência nesta região é maior. se o robô estiver próximo da linha limite
73
entre as regiões longe e perto , este possuirá um nível de pertinência em ambas as funções. Assim,
para cada combinação dos valores das variáveis X
,
Y e ângulo são determinadas as respectivas
pertinências. Dessa forma, existirá um conjunto de pertinências com valores diferentes de zero para
cada variável de entrada, estas são as pertinências ditas ativadas para os dados valores das variáveis
de entrada.
Para combinar as diversas pertinências utilizou-
se o proce
sso de fuzzificação chamado máximo
dos mínimos (Mamdani e Assilian, 1975), como mostra a
Figura
47
. De cada conjunto de valores de
pertinência das variáveis de entrada é selecionado apenas o menor valor. Com esses valores mínimos
são encontrados os máximos valores nas funções de pertinência das variáveis de saída.
R
i
: se x
1
é
A
i,1
e ... x
m
é
A
i,m
então
y
é
C
i
Figura 47
Processo de fuzzificação.
De acordo com as funções que estão ativadas, usa-se a tabela de memórias associativas fuzzy
para descobrir quais as funções de saída que estarão ativadas. Por exemplo, se o robô encontrar
-
se nas
pertinências longe para X
e
Y e zero para o erro angular serão ativadas as pertinências zero para
a velocidade angular e rápido para a velocidade linear. Em qualquer caso, o valor da função de
pertinência de saída será igual ao menor valor das funções de pertinências das variáveis de entrada
que ativaram a função de saída (valor mínimo). Pode também acontecer q
ue mais de uma pertinência
seja ativada para a mesma variável de saída. Neste caso serão usados os valores máximos das funções
de pertinência de saída que forem concorrentes.
Os erros em X e em Y possuem exatamente o mesmo conjunto de funções de pertinênci
a
apresentado na
Figura
48
. Na
Figura
49
estão as funções de pertinência para o erro de orientação.
Finalmente, na
Figura
50
e na
Figura
54
estão, respectivamente, as funções de pertinência para as
saídas do controlador que são os sinais de velocidade angular e linear.
74
Figura 48
Funções de pertinência para os erros em
X
e em
Y.
Para o processo de defuzzificação, que é o procedimento de quantificar numericamente os
valores das pertinências de saída, utilizou-se o centróide ou centro de gravidade (COG) (Mamdani e
Assilian, 1975).
Figura 49
Funções de pertinência pa
ra o erro de orientação.
Figura 50
Funções de pertinência para a velocidade angular.
75
Figura 51
Funções de pertinência para a velocidade linear.
3.3.6
Transformação de Coordenadas
Para que o robô estacione com uma orientação controlada, primeiramente a base de regras do
controlador foi implementada para aproximar o robô do ponto de destino sempre orientado para a
direção 90
o
. Em seguida, uma matriz de transformação homogênea é utilizada de forma a
figu
rativamente enganar o controlador , rotacionando a posição do robô ao redor do ponto de
destino, em função da orientação desejada, antes dos erros serem calculados. A matriz de
transformação utilizada pode ser vista na equação (3.2). Dessa forma, para todos os fins, o
controlador apenas controla a aproximação do robô em um ângulo de 90º, mas como todo o sistema
de coordenadas está rotacionado, o robô acaba estacionando no ângulo determinado.
YX
rotacionar
a
ponto
sin
YXo
rotacionadponto
,
100
0
cos
0
sencos
,
(3.2)
onde
é o ângulo em que se deseja estacionar o robô.
3.3.7
Transformação dos Sinais de Controle
Para controlar as três variáveis descritas na seção anterior, o sistema, que é um robô diferencial,
aceita como entrada os sinais para cada um dos seus dois motores. Apesar da configuração do
controlador poder ser realizada com o modelo dado pela equação (1.1), para facilitar o trabalho de
elaboração das funções de pertinência e tabelas de inferência, o modelo considerado é alterado, de
forma a to
rná
lo mais amigável ao projetista.
De forma a desacoplar as variáveis de entrada da equação (1.1), sem perda de poder de
modelagem, e adicionando informações sobre a geometria do robô, pode-se utilizar a equação (3.3)
.
Esta equação determina quais os valores dos sinais dos motores (V
r
e V
l
) são necessários para que o
robô atinja uma determinada velocidade linear e angular em regime permanente. Entende-se por
76
velocidade linear a derivada da distância euclidiana percorrida pelo robô, realizada obrigatoriamente
no sentido da sua orientação, e a velocidade angular, aquela que influi unicamente em sua orientação.
)(
)(
1
1
1
)(
)(
tQ
tQ
K
R
K
K
R
K
r
tV
tV
L
rr
ll
r
l
(3.3)
sendo:
Q
L
(t)
: veloci
dade linear em regime permanente [ m/s ];
Q
(t)
: velocidade angular do robô [ rad/s ].
Assim sendo, a equação (1.1) é modificada pela equação (3.3) de tornando as entradas do
modelo do robô a sua velocidade linear e angular desejadas em regime permanente, resultando na
equação
(3.4).
)(
),
()(
),
(
),
( tQtQHttYtX
L
(3.4)
onde:
H : função que descreve o comportamento do robô com relação às entradas de
velocidade angular e linear.
O projeto da base de regras do controlador baseado em lógica fuzzy
é mais intuitivo quando são
consideradas as velocidades ao invés dos sinais elétricos como entradas do modelo.
3.3.7.1
Aumento da Ponderação sobre a Corr
eção do Erro Angular
Considerando a estrutura de controle apresentada na sub-seção anterior, o controlador envia
para o sistema sinais referentes a velocidades angular e linear, que depois são convertidas em sinais
de tensão elétrica para que estes possam comandar os motores. Em sistemas reais, existem limitações
físicas sobre estes sinais elétricos. Assim sendo, existem algumas combinações de valores de
velocidade angular e linear que saturam os sinais elétricos em ambos os motores. Caso ambos os
motores sejam saturados com valores de mesmo sentido, isto é, ambos negativos ou ambos positivos,
a informação sobre a velocidade angular que deve ser impressa no robô é ignorada. Caso os motores
do robô sejam saturados com sinais de sentidos opostos, este gira sobre o seu eixo. Esta segunda
situação não é tão prejudicial quanto a primeira, pois ao girar o rocorrige o erro na sua orientação
cessando com a causa da saturação dos motores, sobrando somente a correção dos erros lineares.
Assim sendo, é inserida nas saídas dos controladores uma restrição que aumenta a ponderação
sobre a correção do erro angular. Tal ponderação é implementada obrigando que a informação sobre a
velocidade angular esteja sempre presente no sinal que é enviado aos motores. Como a velocidad
e
angular do robô é proporcional a diferença dos sinais dos motores, basta conservar esta diferença e
em seguida inserir a informação sobre a velocidade linear,
que é a média entre os sinais dos motores.
77
Seja o seguinte exemplo: caso o controlador imprima os valores de 12V e 15V para os motores
esquerdo e direito respectivamente, e o valor máximo esteja limitado em 10V, o que será
efetivamente aplicado é 7V e 10V. A equação
(3.5)
descreve como esse processo é implementado.
111
111
11
111
111
11
11
111
111
11
111
111
11
11
22
,
,)(
,
)(,
0
2
,
,)(
,
)(,
0
2
],[
rl
MÁX
r
MÁX
rl
MÁXMÁX
r
rl
rl
MÁX
l
rl
MÁXMÁXMÁX
l
rl
rl
rl
MÁX
r
MÁX
rl
MÁXMÁX
r
rl
rl
MÁX
l
rl
MÁXMÁXMÁX
l
rl
rl
rl
VVVV
se
VVVVVV
se
VV
se
VVVV
se
VVVVVV
se
VV
se
VV
se
VVVV
se
VVVVVV
se
VV
se
VVVV
se
VVVVVV
se
VV
se
VV
se
VV
(3.5)
considerando:
V
l1
: valor calculado pelo controlador para o motor esquerdo [ Volts ];
V
r1
: valor calculado pelo controlador para o motor direito [ Volts ];
V
l2
: valor que será e
fetivamente enviado para o motor esquerdo [ Volts ];
V
r2
: valor que será efetivamente enviado para o motor direito [ Volts ];
V
MÀX
: tensão máxima suportada pelos motores [ Volts ].
3.3.8
Sistema
É o sistema, real ou simulado, a ser controlado, composto por um romóvel não holonômico
que comporta
-
se de forma igual ou semelhante a equação
(1.6).
Na implementação prática, assim que os sinais de controle são calculados pelo controlador, a
equação
(3.3) é aplicada, convertendo os sinais referentes às velocidades para as tensões elétricas que
devem ser enviadas aos motores.
3.3.9
Reconhecimento de imagens
São algoritmos que identificam o robô e o separam do ambiente, resultando em sua posição
global instantânea sobre os eixos X e Y e a sua orientação instantânea. Este tópico será abordado com
mais detalhes no Capítulo 5 que descreve o funcionamento do sistema em tempo real.
3.3.10
Câmera
Uma câmera CCD aérea, montada acima do ambiente, provê uma imagem a cada 33ms
contendo
tanto os obstáculos quanto o rodurante a sua navegação. Esse é o sensor que amostra a
posição do robô. No presente trabalho, nenhuma outra forma de medição, tais como, odometria e
sistemas de medição inerciais, é utilizada.
78
3.4
Formulação de um Controlador PID para Comparação
com o Controlador
Fuzzy
Para avaliar o desempenho do controlador fuzzy e ter um ponto de comparação, um controlador
PID é utilizado. Sabe-se que o PID não é capaz de controlar o ângulo de aproximação do rosem
um planejamento realiz
ado
a priori, pois para isto são necessárias ações de controle não lineares.
Entretanto, o controle PID representa um ponto de partida para avaliar o controlador fuzzy frente a
uma metodologia clássica de controle.
Partindo da equação (3.4), que descreve o modelo sistema, uma nova alteração foi
implementada. Da mesma forma que as entradas do modelo foram alteradas para refletirem os
setpoints
de velocidade linear e angular do robô, um processo similar será aplicado as suas entrada
s,
levando em consideração a geometria do mesmo. O processo de cálculo dos erros para o controlador
PID será em função das variáveis de erro linear e erro angular. O erro angular será calculado da
mesma forma que para o controle fuzzy
, mas o erro linear ir
á incorporar os erros
X
e
Y
em uma mesma
variável, refletindo o quanto o robô está longe do ponto de destino. Com base nas variáveis da
Figura
42
, a equação
(3.6)
descreve o processo do cálculo do erro li
near (
E
L
).
90
90
22
22
E
se
EE
E
se
EE
E
YX
YX
L
(3.6)
Deste modo tem-se um modelo com duas entradas e duas saídas independentes, sendo possível
projetar dois controladores PID SISO (
Single
Input
Single
Output
) paralelos para
controlar o robô, o
que é mais simples do que implementar um controlador MIMO (
Multiple
Input
Multiple
Output
).
Um controlando a velocidade linear em função do erro linear e outro controlando a velocidade
angular em função do erro angular. Os equivalentes discretos dos controladores são mostrados nas
equações
(3.7)
e
(3.8)
a seguir, onde os ganhos
Kp
l,
, Ki
l,
e
Kd
l,
ponderam as parcelas proporcionais,
integrais e derivativas dos erros linear e angular (
Ogata, 2004).
tiE
Ki
t
kEkE
Kd
kE
Kp
kQ
k
i
Ll
LL
lLlL
0
)(
)1()(
)()(
(3.7)
tiE
Ki
t
kEkE
Kd
kE
Kp
kQ
k
i 0
)(
)1()(
)()(
(3.8)
Onde:
Q
L
: velocidade linear [ m/s ];
Q
: velocidade angular do robô [ rad/s ];
E
L
:
erro linear [ m ];
E
: erro angular [ rad ];
t
: intervalo de amostragem [ s ];
79
k
: tempo discreto.
O diagrama do sistema de controle PID está ilustrado na
Figura
52
.
Figura 52
Diagrama em
blocos do sistema realimentado utilizando controle PID.
3.5
Resultados em Simulação
Para formulação e sintonia dos controladores apresentados, tanto no caso do controlador PID
quanto no controlador baseado em lógica fuzzy, é necessário apenas uma modelagem conceitual do
modelo do robô, sendo suficiente a equação (3.4). Um processo empírico pode ser empregado para
sintonizar os controladores confiando apenas na experiência do operador. Entretanto, para a
codificação de um programa de simulação, faz-se necessário um equacionamento mais detalhado do
sistema a ser simulado. A equação (1.6) é suficiente para elaborar um modelo computacional
adequado para testar os controladores, uma vez que inclui tanto a informação cinemática quanto
dinâmica do robô.
3.5.1
A Interface de Simulação
Através dos modelos matemáticos do robô, pode-se criar uma interface que possibilite testar os
controladores sob diferentes condições de ambiente e dinâmica do robô. Esta interface é constituíd
a
de uma representação do robô em um ambiente com obstáculos e disponibiliza para o usuário as
opções de customizar os controladores, modelos, obstáculos, algoritmos de planejamento de trajetória
e pontos de origem e destino. Toda a programação está implementada em LabVIEW
TM
da
National
Instruments
. A
Figura
53
mostra o painel frontal do aplicativo.
Para a configuração do controlador fuzzy um outro ambiente faz-se necessário, estando este
incorporado ao simulador. Neste ambiente o usuário deve definir os termos lingüísticos necessários,
80
configurar as tabelas com as memórias associativas fuzzy, as funções de pertinência e testar o
controlador.
Figura 53
Painel frontal do simulador.
A
Figura
54
mostra as funções de pertinência fuzzy que foram implementadas no programa de
configuração do controlador e que estão disponíveis para o usuário. A
Figura
55
(a) mostra a janela
para inserir os term
os lingüísticos. A
Figura
55
(b) mostra a janela para edição da tabela das memórias
associativas fuzzy. A
Figura
55
(c) mostra a janela para a configuração das funções de pertinência de
cada termo lingüístico e por último a
Figura
55
(d) mostra a janela de testes. Esta última serve para
que, a qualquer momento da simulação, os valores das funções de pertinência do FLC possam ser
analisados.
Figura 54
Funç
ões de pertinência fuzzy
. Fonte: (Nguyen e Walker, 2000).
Um computador pessoal com um processador Athon 64 de 2400MHz com 512Mb de memória
RAM é utilizado para executar todos os ensaios em simulação descritos neste capítulo. Para a
implementação dos algoritmos é utilizado o compilador LabVIEW
TM
. O tempo gasto no
81
processamento de cada instante de amostragem é desprezível quando comparado com o intervalo de
amostragem, assim, as simulações computacionais podem mimetizar a execução em tempo real.
(a)
Ter
mos lingüísticos
(b)
Tabelas associativas
(c)
Funções de pertinência
(d)
Teste do funcionamento
Figura 55
Ambiente de configuração do controlador fuzzy
.
3.5.2
Trajetórias Percorridas pelo Robô em simulação
O
ambiente 3 (vide Capítulo 2) é usado para validar os controladores. Em todos os casos o robô
iniciou o movimento com o ângulo inicial de 90
o
com relação ao eixo X. Os parâmetros utilizados
para os ensaios em simulação foram:
Para o modelo do robô, segundo
a equação
(1.5
), adota
-
se:
T
r
e
T
l
: 0,5 segundos;
K
r
e
K
l
: 1,5 Volts x segundo;
R
: 0,07 metros;
r
: 0,025 metros;
comprimento do carro
: 0,13 metros;
tensão elétrica máxima
: 10 volts;
intervalo de a
mostragem
: 0,1 segundos.
Para o planejamento da trajetória considerou
-
se:
algoritmo
:
K
Bug
;
dimensões do ambiente
: 4x4 metros;
distância de offset
: 0,14 metros.
82
3.5.2.1
Controlador PID
Para o controle PID, o ângulo de estacionamento não é levado
em consideração. Os parâmetros
ajustados para o controlador PID, segundo as equações
(3.7
) e
(3.8
), são apresentados na
Tabela
5.
Tabela
5
Ganhos utili
zados para o controlador PID em simulação.
Kp
Ki
Kd
Linear
Kp
l
: 0,40
Ki
l
: 0,02
Kd
l
: 0,10
Angular
Kp
: 5,00
Ki
: 0,10
Kd
: 1,00
Tais parâmetros foram determinados através de um algoritmo genético chamado de evolução
diferencial. O
fitness
(vide seção
2.2
) para a evolução foi calculado de acordo com a integral do erro
entre a trajetória percorrida e planejada, mais um fator que leva em consideração o tempo gasto, de
forma que, para dois caminhos idênticos, o valor do
fitness
será melhor para aquele em que o robô
percorrer em menor tempo. Maiores informações sobre a evolução diferencial podem ser obtidas em
Storn e Price (1997) e Lampinen e Zelinka (2000).
Quando o critério de tempo para a comutação dos
waypoints
é utilizado, deve-se ajustar a
velocidade que a referência se desloca. Para este ensaio é utilizado 0,12m/s. Como o intervalo de
amostragem é fixo em 100ms, cada
waypoint
está afastado de 0,012m do seu antecessor, o que
garante a velocidade desejada. Dessa forma, para todos os fins, o controlador comporta-se como se
estivesse seguindo um pont
o de referência móvel.
Um ponto intermediário foi inserido em X=3,5 e Y=2,3 no planejamento da trajetória com o
intuito de aumentar a sua complexidade. Como o algoritmo K
Bug
recursivamente insere novos
wayponts
na trajetória até conseguir um caminho válid
o, para inserir um ponto intermediário inicia
-
se
a lista dos
waypoints
contendo tais pontos. Dessa forma, o K
Bug
interpreta estes pontos já
existentes da mesma forma que os demais pontos inseridos na trajetória no decorrer do planejamento.
A
Figura
56
mostra a trajetória planejada (amarelo) e percorrida (azul).
Figura 56
Trajetória percorrida e planejada para o controlador PID com comutação de
waypoints
por tempo.
83
A
Figura
57
mostra a trajetória do robô em função do tempo segundo as suas coordenadas X e
Y. Em preto está o sinal de referência enviado para o controlador e em verde a posição instantânea do
robô. Através desta figura pode-se ver que o percurso é realizado pelo robô em aproximadamente 82
segundos.
Figura 57
Referências e posições instantâneas do robô para o controlador PID com comutação de
waypoints
por tempo.
Para quantificar a qualidade da trajetória é utilizado o critério
RMS
(
R
oot
Mean Square
) do erro
entre a referência da trajetória e a trajetória percorrida, descrito pela equação
(3.9).
M
kE
RMS
M
k
YX
YX
0
2
,
,
)(
(3.9)
onde
M
: número de instantes de amostra
gem considerados no ensaio;
Para o experimento da
Figura
57 o
RMS
X
é igual a 0,1317e o
RMS
Y
é igual a 0,1031.
A
Figura
58
(a) mostra as referências e ângulos instantâneos do robô. A
Figura
58
(b) mostra os
sinais de controle gerados pelo controlador.
O desvio padrão calculado para os sinais esquerdo e direito são 4,2 e 4,0 respectivamente.
Os picos de amplitude destes sinais de ocorrem devido às curvas abruptas na trajetória
planej
ada. Para diminuir o esforço do controlador pode-se diminuir os valores dos ganhos
proporcionais, porém isto pode aumentar os erros no segmento da trajetória. Diminuir os valores dos
ganhos derivativos tende a diminuir a amplitude dos picos dos sinais de controle durante as curvas,
mas limita a capacidade do controlador seguir a referência ao longo do movimento. Caso, durante o
movimento, a referência afaste-se demasiadamente do robô, esta realiza as curvas antes do robô
atingir a posição correta para poder também realizá las, o que pode levar o robô a chocar-se com
algum obstáculo. Por esse motivo, velocidades de referência maiores podem causar colisões e
problemas de convergência.
84
Figura 58
Referências, orientações do robô e s
inais de controle gerados pelo controlador PID com comutação de
waypoints
por tempo.
O próximo ensaio mostra como o controlador se comporta quando o critério de distância é
utilizado para comutar os
waypoints
. Este critério não exige que seja ajustada uma velocidade para a
referência, pois sempre que o robô se aproxima de um
waypoint
a referência é comutada para o
próximo
waypoint
e assim sucessivamente até que seja atingido o ponto de destino.
Figura 59
Trajetória percorrida e
planejada para o controlador PID com comutação de
waypoints
por distância.
Pode
-se ver que a trajetória percorrida aproximou-se mais da trajetória planejada quando
comparada com o ensaio anterior. No ponto intermediário, onde o robô deve retornar sobre o
caminho
por onde veio, como agora a referência deve aguardar o robô atingir o ponto para que então seja
comutada, a trajetória é percorrida com maior definição.
A
Figura
60
mostra a evolução do robô em função do tempo segundo as suas coordenadas X e
Y. Em preto está o sinal de referência enviado para o controlador e em verde a posição instantânea do
robô. É interessante destacar que neste ensaio o percurso é realizado pelo robô em aproximadamente
85
43 segundos. Isto se deve ao fato do robô percorrer os segmentos na sua máxima velocidade, e não
mais com uma velocidade controlada. Para este ensaio, o
RMS
X
é igual a 0,4152 e o
RMS
Y
é igual a
0,2831. Estes valores são maiores do que os obtidos no ensaio anterior devido a forma dos sinais de
referência. Apesar de visualmente ambos os ensaios percorreram a trajetória planejada de forma
muito similar, os degraus ocasionados pelas referências mais agressivas aumentam o valor do critério
RMS.
Figura 60
Referências
e posições instantâneas do robô para o controlador PID com comutação de
waypoints
por distância.
A
Figura
61
(a) mostra as referências angulares enviadas para o controlador bem como os
ângulos resultantes. É interessante ressaltar que, mesmo com a comutação dos
waypoints
sendo feita
por distância, como o cálculo da referência leva em consideração a posição atual do robô, não são
observados os degraus na referência angular.
Figura 61
Referências, orient
ações e sinais de controle gerados pelo controlador PID com comutação de
waypoints
por
distância.
86
A
Figura
61
(b) mostra, a título de comparação com o ensaio anterior, os sinais de controle
gerados pelo controlador, mostrando um aumento significativo no esforço de controle. O desvio
padrão calculado para os sinais esquerdo e direito são 5,2 e 4,9, respectivamente. Além dos picos de
alta magnitude tornarem-se mais freqüentes, a derivada em função do tempo dos sinais de controle
tamb
ém tornou-se de maior intensidade. Este é um exemplo clássico de um experimento onde um
maior esforço de controle corresponde a uma maior velocidade de convergência.
3.5.2.2
Controlador Baseado em Lógica
Fuzzy
Com um controlador fuzzy configurado de acordo com a s
eção
3.3
, algumas trajetórias são
testadas sem obstáculos para verificar a capacidade de estacionar o robô com uma determinada
orientação. A
Figura
62
mostra estes testes considerando um ambiente sem obstáculos. Em todos os
casos, apesar de serem trajetórias de aproximação com grande complexidade, o FLC conseguiu
estacionar com a posição e orientação desejadas. Por outro lado, sua capacidade de manobrar e
estacionar quando o robô se aproxima do ponto de destino limita a capacidade de realizar o
seguimento de uma referência móvel, pois, assim que o robô se aproxima da referência, o controlador
inicia o estacionamento afastando
-
se da trajetória planejada.
Y
Y
X
X
Figura 62
Trajetória de estacionamento com o controlador fuzzy
.
A
Figura
63
mostra a trajetória percorrida e planejada segundo o critério de tempo para a
comutação de
waypoints
, com uma velocidade da referência de 0,12m/s e um ângulo de
estacionamento de
90
o
.
87
Figura 63
Trajetória percorrida e planejada para o FLC com comutação de
waypoints
por tempo.
Percebe
-se na
Figura
63
que, imediatamente antes de todas as curvas, o controlador inicia o
procedimento de estacionamento, o que atrasa o robô. Assim sendo, quando a referência se afasta, o
robô volta a dirigir-se diretamente para a referência, abortando a manobra de estacionamento. Caso o
robô ultrapasse demasiadamente a referência, a base de regras também comanda um procedimento de
reaproximação que afasta o da trajetória planejada. Este comportamento provoca uma defasagem
entre o robô e os sinais de referência. Apesar deste fato não necessariamente aumentar o erro entre a
trajetória planejada e percorrida, mostra a limitação do controlador em seguir uma referência móvel.
A evolução do robô em função do tempo segundo as suas coordenadas X e Y está apresentada na
Figura
64
. Para este ensaio, o
RMS
X
é igual a 0,2262 e o
RMS
Y
é igual a 0,1661. A orientação
instantânea e as referências angulares estão apresentadas na A
Figura
65
(a).
Figura 64
Referências e posições instantâneas do robô para o FLC com comutação de
waypoints
por tempo.
O percurso é realizado pelo robô em aproximadamente 82 segundos, o mesmo tempo que o
controlador PID levou para percorrer a sob as mesmas condições. Isto é devido a referência de
velocidade utilizada de 0,12m/s para ambos os controladores.
88
A
Figura
65
(b) mostra, os sinais de controle gerados pelo controlador. Quando comparados
com o ensaio equivalente para o controle PID, percebe-se um aumento no esforço de controle, porem
uma diminuição nos valores máximos absolutos de sua amplitude. O desvio padrão calculado para os
sinais esquerdo e direito são 3,0 e 2,5 respectivamente.
Figura 65
Referências, orientação
e sinais de controle gerados pelo FLC com comutação de
waypoints
por tempo.
Assim como no caso do controlador PID, quando o critério de distância é utilizado para
comutar os
waypoints
, a trajetória percorrida pelo robô torna-se mais fiel à trajetória planejada. A
Figura
66
mostra a trajetória percorrida e planejada assumindo este novo critério. Neste ensaio o robô
leva 114 segundos para percorrer a trajetória. O aumento do tempo com relação ao ensaio anterior é
devido a manobra de aproximação que o robô realiza em cada novo
waypoint
da trajetória. Como
agora o robô deve atingir os
wayponts
para que a referência seja comutada, o tempo total da trajetória
é maior.
Figura 66
Trajetória percorrida e planeja
da para o FLC com comutação de
waypoints
por distância.
89
A
Figura
67
mostra a evolução do robô em função do tempo segundo as suas coordenadas X e
Y. Em preto está o sinal de referência enviado para o controlador e em verde a posição instantânea do
robô. Para este ensaio, o
RMS
X
é igual a 0,3410 e o
RMS
Y
é igual a 0,2161. A
Figura
68
(a) mostra a
evolução do robô em termos da referência angular e da orientação instantânea do robô.
Figura 67
Referências e posições instantâneas do robô para o FLC com comutação de
waypoints
por distância.
A
Figura
68
(b) mostra, os sinais de controle gerados pelo controlador. Para o controle baseado
em lógica fuzzy não ocorre uma alteração significativa do esforço de controle quando o critério de
comutação dos
waypoints
é trocado. O desvio padrão calculado para os sinais esquerdo e direito são
3.1 e 3.1 respectivamente.
Figura 68
Referências, ori
entação e sinais de controle gerados pelo FLC com comutação de
waypoints
por distância.
90
3.6
Considerações Finais
Os ensaios em simulação mostraram ser factível a utilização de um controlador baseado em
lógica fuzzy
em uma aplicação de robótica móvel. Tanto o controlador baseado em lógica
fuzzy
quanto o controlador PID atendem aos requisitos do sistema conseguindo controlar a trajetória do
robô móvel não holonômico.
O FLC é capaz de controlar o ângulo de estacionamento do robô quando este se aproxima de
uma curva ou do ponto de destino. Isto é particularmente útil no caso de empilhadeiras e AGVs, que
necessitem manusear cargas em locais específicos, onde, para alcançar tais locais, devem executar
alguma manobra de estacionamento. o controle PID é conceitualmente incapaz de estacionar o
robô por si só, necessitando de algum processamento
a priori
.
Apesar do grande número de parâmetros a serem sintonizados, o projeto do FLC é intuitivo e
pode ser facilmente alterado para atender sistemas de características similares. Por outro lado, este
elevado número de parâmetros dificulta a otimização do controlador. Algoritmos capazes de
determinar parâmetros ótimos, segundo um dado critério de custo, como por exemplo os algoritmos
genéticos, possuem o custo computacional dependente do número de variáveis consideradas na
otimização. Enquanto apenas 6 variáveis precisam ser consideradas no controlador PID apresentado,
no FLC são, no melhor dos casos, duas a três dezenas de variáveis.
Outras desvantagens do FLC com relação ao controle PID são a complexidade da
implementação computacional e o tempo computacional maiores que o PID.
Também devido a sua capacidade de estacionar o robô limita a sua capacidade de seguir um
ponto de destino móvel. Nos ensaios apresentados, todos os pontos de destino estavam fixos. Porém,
quando é usado o critério de tempo para a comutação dos
waypoints
, o sinal de referência comporta-
se exatamente como se o ponto de destino estivesse movimentando-se ao longo da trajetória
planejada. Com isso constatado, percebe-se que a qualidade da trajetória percorrida, quando
comparada com a trajetória planejada, fica dependente da velocidade da referência e do ângulo das
curvas.
A
Tabela
6 mostra um comparativo resumindo os principais pontos de comparação entre os
dois controladores expostos neste capítulo.
Tabela
6
Comparação entre os controladores PID e fuzzy
implementados.
Controle PID
Controle
Fuzzy
Não estaciona
Consegue estacionar o robô
Cons
egue seguir um destino móvel
Seguimento de um destino móvel é limitado
Atinge um destino fixo mais rapidamente
Mais demorado para atingir um destino fixo
Possível de ser otimizado mais facilmente
Otimização complexa
Menor custo computacional
Maior custo
computacional
91
Capítulo 4
Controle de Trajetória através de
Controle Preditivo
Controle preditivo baseado em modelo (MPC
Model Predictive Control) é uma área de
pesquisa que se desenvolveu consideravelmente nas últimas duas décadas, tanto no meio acadêmico
quant
o na indústria (Mayne et al,. 2000; Alamir et al,. 2007; Grimble e Ordys, 2001). Este sucesso
deve
-se ao fato de que o MPC integra abordagens de controle ótimo, controle estocástico, controle de
processos com atraso de transporte, controle multivariável e ainda leva em consideração as
referências futuras quando estas estão disponíveis.
4.1
Introdução
Os controladores que utilizam a abordagem MPC confiam em modelos dinâmicos dos
processos, geralmente lineares e obtidos por sistemas de identificação. Estes modelo
s são usados para
prever o comportamento das variáveis controladas de um sistema dinâmico segundo as mudanças nos
valores das variáveis manipuladas. Assim sendo, o controlador usa as saídas dos modelos e os valores
medidos na planta para estimar os valores futuros das variáveis manipuladas da planta. Dessa forma,
pode
-se calcular o conjunto de sinais que, além de controlar as variáveis de saída, pode manter todas
as variáveis da planta dentro de faixas pré
estabalecidas.
Devido ao fato de que a maior parte dos processos pode ser considerada linear dentro de uma
determinada região de operação, abordagens lineares de MPCs são usadas na maioria das aplicações.
Em MPCs que utilizam apenas modelos lineares, o princípio da superposição da álgebra linear
permite que os efeitos de múltiplas variáveis manipuladas sejam somadas para prever o
comportamento das variáveis controladas. Isto torna a resolução do problema de controle uma série
de cálculos matriciais, que, embora de resolução simples, podem tornar-se bastante caros
computacionalmente. Por esse motivo, a aplicação de controladores preditivos em sistemas de
dinâmicas rápidas ou de dimensões elevadas ficou condicionado à evolução dos computadores e de
algoritmos numéricos de otimização (
Camacho e Bordons, 2004)
.
92
Apesar de, a princípio, o alto custo computacional do MPC inviabilizar a sua implementação
prática em sistemas com dinâmica rápida, esta técnica de controle mostrou-se bastante promissora em
algumas aplicações com longos tempos de amostragem, como em indústrias de processos químicos e
refinarias de petróleo. Nestes casos, considerações econômicas também impulsionaram o
desenvolvimento do MPC em uma tentativa de aproximar os pontos de operação das plantas de seus
limites, sem que estes fossem ultrapassados. As primeiras aplicações industriais disponíveis
comercialmente surgiram nas décadas de 70 e 80, com, por exemplo, o Model Algorithmic Control
,
MAC (Richalet et al., 1976), o Dynamic Matrix Control, DMC (Cutler e Ramacker, 1980), o
Extended Prediction Self Adaptive Control, QDMC (Garcia, 1986) e o Generalized Predictive
Control
, GPC (Clarke et al., 1987), todos para plantas lineares. Cabe ressaltar que, com exceção do
GPC, todas as outras são aplicáveis somente em plantas estáveis em malha aberta.
Em aplicações industriais para processos não lineares existem, por exemplo, o NOVA
(Dynamic Optimisation Technology Products, 1996) e o Process Perfector (Martin, 1997), mas por
serem tecnologias proprietárias, detalhes dos algoritmos não são apresentados na litera
tura.
Várias
outras referências sobre o MPC quanto a teoria e aplicações industriais podem ser vistos em Garcia e
Morshedi (1989), Qin e Badgwell (1997) e Camacho e Bordons (2004).
Atualmente, o controle preditivo baseado em modelo é uma forma de controle que pode ser
usada em sistemas complexos, multivariáveis e com restrições nas entradas, saídas e estados. Uma
seqüência de sinais de controle que minimiza uma função de custo é calculada
on
line
, a cada
instante de amostragem, através da resolução de um problema de otimização com um horizonte finito
de predição, usando o estado atual da planta como condição inicial. Após a seqüência ótima de
controle ser obtida, apenas o primeiro elemento é aplicado no processo (
Camacho e Bordons, 2004)
.
Alguns pontos fortes do MPC com relação a outras técnicas de controle podem ser citadas
(
Camacho e Bordons, 2004)
:
Os conceitos são intuitivos;
Restrições e limites do sistema podem ser levados em consideração durante o cálculo da lei
de controle de uma forma direta;
Pode ser usado em uma ampla gama de processos, incluindo, por exemplo, sistemas
multivariáveis, sistemas de fase não mínima, com grandes atrasos de tempo ou que são instáveis em
malha aberta;
Aplicável a processos onde se conhece os valores futuros de referência;
Vários tipos de modelos podem ser utilizados, como por exemplo: espaço de estados,
função de transferência, resposta ao impulso.
Entretanto, o MPC possui algumas limitações:
Necessita de um modelo preciso do sistema para o cálculo dos valores futuros das
variáveis
de estados;
93
Alto custo computacional, pois em cada instante de amostragem um problema de
otimização deve ser resolvido.
Neste capítulo é apresentada uma aplicação do MPC em robótica móvel para fazer com que um
robô percorra uma trajetória pré
est
abalecida. Este capítulo está estruturado da seguinte forma:
Na seção
4.2
são apresentadas as vantagens e desvantagens do uso do MPC no problema do
controle da trajetória de um romóvel. Na seção
4.3
é descrito o controlador preditivo baseado em
modelo implementado. Também é apresentada uma linearização no modelo matemático do robô para
que este se adequasse à estrutura de controle preditivo linear. Na seção
4.4
são apresentados os
resultados conseguidos em simulação, comparando o desempenho do controlador preditivo com o
desempenho do controlador PID formulador no capítulo anterior. As conclusões e considerações
finais são apresentadas na seção
4.5
.
4.2
Motivação
Segundo Normey
Rico
et al. (1999), a utilização de uma técnica de controle preditivo para o
controle da trajetória de um robô móvel com tração diferencial, de acordo com uma trajetória definida
como uma série de pontos consecutivos,
mostra
-
se promissora devido aos seguintes motivos:
A trajetória de referência é conhecida em todos os instantes, o que possibilita gerar o
conjunto de referências futuras para o controlador;
A suavização da trajetória e uma melhoria da autonomia do robô podem ser melhoradas
quando comparadas com um controlador clássico, pois o esforço do sinal de controle pode ser
penalizado diretamente na função custo;
A técnica pode ser facilmente aplicada a sistemas MIMO, que é o caso do modelo utilizado
para o robô móvel neste trabalho;
Restrições podem ser consideradas tanto para os valores de saída quanto para os sinais de
controle para que estes não ultrapassem as limitações físicas do robô;
Os fundamentos do controle preditivo são usados pelas pessoas ao dirigir um a
utomóvel.
Para contornar ou amenizar as limitações do controle preditivo, apresentadas na seção anterior,
algumas estratégias são empregadas. Para os ensaios em simulação, o modelo do robô móvel utilizado
é conhecido e idêntico ao utilizado pelo modelo do controlador. Para o experimento em tempo real,
apresentado no próximo capítulo, o modelo do robô é identificado usando parâmetros obtidos a partir
da resposta ao degrau. O alto custo computacional será processado por um computador tipo PC
(Personal Computer), geralmente mais poderoso que um controlador dedicado utilizado na maioria
das aplicações. Os algoritmos são implementados em uma linguagem compilada e com rápida
interface
com os periféricos necessários.
94
4.2.1
Controle Preditivo Aplicado a Robótica Móvel
Con
trole preditivo aplicado a robótica móvel é um tema que vem sendo estudado a alguns
anos. Várias abordagens diferentes foram utilizadas para resolver o problema do seguimento da
trajetória planejada. A seguir são apresentados alguns trabalhos que ilustram algumas destas
abordagens.
Em Ollero e Amidi (1991) o GPC é aplicado ao problema de seguimento de trajetórias do robô
CMU Navab. Um modelo CARIMA (Controlled Autoregressive and Moving Average) é utilizado
para o cálculo da distância do robô a uma trajetória de referência. Neste trabalho o controle é
realizado apenas através da velocidade angular, considerando que a velocidade linear permanece
constante.
Algoritmos genéticos são utilizados para a otimização não linear em Gómez Ortega e
Camacho (1996) para diminuir o esforço computacional e tornar possível a aplicação em tempo real.
Um robô LABMATE com acionamento diferencial é utilizado como estudo de caso para comprovar o
funcionamento de uma função de custo que penaliza a proximidade entre o robô e os obstáculos.
Neste trabalho são feitos experimentos considerando tanto obstáculos conhecidos, evitados através de
um planejamento global da trajetória, quanto para obstáculos inesperados, evitados por um
comportamento reativo auxiliado por sensores locais.
Em Yang et al. (1998) e Seyr et al. (2005) são usados modelos cinemáticos construídos com
redes neurais para a predição dos estados, onde as entradas do sistema são as velocidades linear e
angular. A função de custo considera o erro entre a postura atual e a postura de referência e o esforço
de controle. Experimentos em tempo real são apresentados utilizando os robôs THMR III e
Tinyphoon respectivamente.
Normey
Rico
et al. (1999) destacam algumas vantagens da utilização do MPC para o
seguimento da trajetória de robôs móveis. Neste trabalho, um preditor de Smith é utilizado para
aumentar a robustez do sistema de controle em malha fechada e um experimento em tempo real é
apresentado com o robô LABMATE.
Um algoritmo MPC não linear em espaço de estados é desenvolvido em Essen e Nijmeijer
(2001) e aplicado para o segmento da trajetória de um robô móvel com acionamento diferencial.
Segundo afirmam os autores, os resultados em simulação mostram que, utilizando os recursos da
época, não é possível aplicar esta metodologia em robôs móveis devido ao seu auto custo
computacional.
O artigo de Gu e Hu (2005) apresenta um controlador GPC para a trajetória de um robô não
holonômico. Neste artigo é discutido, além do problema da estabilidade do controlador, o alto custo
com
putacional em aplicar esta tipo de controlador em tempo real.
Em Seyr e Jakubek (2005) é apresentado um controlador preditivo para a trajetória de um robô
diferencial. Este controlador é composto por duas malhas de controle: um controlador preditivo não
linear e um controlador linear em espaço de estados. Os autores afirmam que a metodologia de
95
controle apresentada consegue tolerar erros de modelagem com margens mais largas do que os
controladores de mesma funcionalidade encontrados na literatura. O problema de otimização não
contém nenhum parâmetro da dinâmica do modelo, apenas as equações da cinemática do robô, o que
supostamente torna o controlador mais robusto com relação a incertezas de modelagem.
Modelos de previsão também podem ser usados para prever a trajetória de obstáculos móveis,
como apresentado por Foka e Trahanias (2003). Neste trabalho, o movimento do robô é controlado
por um processo de decisão baseado em cadeias de Markov que seleciona a velocidade a ser
empregada pelo robô. A tomada de decisão leva em consideração a previsão do movimento de todos
os obstáculos móveis presentes no ambiente.
No presente trabalho de mestrado, um controlador preditivo similar ao proposto por Klan ar e
krjanc (2007) é utilizado para controlar a trajetória do robô móvel. A principal diferença entre os
trabalhos está no modelo de previsão, que no artigo é não linear, utilizado em conjunto com um
sistema para correção de erros de dinâmica linearizada para prever o comportamento futuro do robô.
A lei de controle é derivada de uma função custo que penaliza o erro da trajetória e o esforço de
controle. No trabalho de Klan ar e krjanc (2007) também são utilizadas restrições para as
velocidades e acelerações do rode forma a evitar que este derrape, recursos que não são utilizados
na implementação deste capítulo. Outros controladores semelhantes ao apresentado neste capítulo
podem ser encontrados em de Oliveira e Carvalho (1999 e 2003). Nestes últimos experimentos em
simulação e em tempo real são apresentados para um
robô
Khepera
. Em Oliveira e Carvalho (2003)
são comparadas duas abordagens, uma utilizando um controlador baseado em um modelo linear e
outra utilizando um controlador que considera um modelo não linear. Ensaios experimentais
apresentados neste artigo mostram que adaptações lineares de controladores não lineares podem
produzir resultados satisfatórios no controle da trajetória de um robô móvel não holonômico.
Na maioria dos trabalhos citados anteriormente, são utilizados modelos não lineares para
representar o robô móvel, mas estes modelos são considerados lineares dentro de um horizonte de
predição. Esta escolha é vantajosa pois permite o uso de algoritmos de otimização de problemas
lineares diminuindo consideravelmente o esforço computacional necessário. Entretanto, segundo
Normey
Rico
et al. (1999), para que o modelo linear seja válido, é necessário assumir que o
incremento de orientação seja mantido pequeno a cada instante de amostragem. Sendo assim,
trajetórias de aproximação precisam ser usadas quando o robô encontra-se com uma orientação muito
diferente da orientação de referência.
96
4.3
Implementação do controlador MPC
Segundo Camacho e Bordons (2004), as versões do MPC possuem elementos comuns que
podem ser escolhidos de diferentes formas, conforme as necessidades e aplicação. Estes elementos
são:
Modelo de previsão. O seu uso é devido à necessidade de prever os estados ou saídas do
sistema;
Função de custo
. É o critério de desempenho com relação ao qual será feita a otimização da
lei de controle;
Obte
nção da lei de controle. Para se obter uma seqüência de valores ótimos das variáveis
de decisão dentro do horizonte de predição, realiza-se a minimização da função de custo, ou seja, o
cálculo do valor mínimo desta função através da manipulação das variáveis de decisão. Para fazer
isso, usa-se o modelo do sistema para calcular valores futuros dos estados ou das saídas. Se existirem
restrições, a minimização da função de custo deve respeitá-las. A lei de controle é então dada
implicitamente pelo primeiro ter
mo da seqüência calculada.
Horizonte deslizante de predição. Até a obtenção da lei de controle, o MPC funciona
essencialmente como um método de controle em malha aberta. Entretanto, em sua totalidade, a
estratégia funciona em malha fechada, pois através da aplicação do controle calculado em cada
instante de amostragem, os estados do sistema são atualizados e o processo de otimização e do
cálculo da lei de controle se repetem, agora com o instante de amostragem deslocado em uma unidade
para o futuro, o que d
á a característica de horizonte móvel ou deslizante.
4.3.1
Modelo de Previsão
Como a própria definição diz, o controle preditivo baseado em modelo leva em consideração
um modelo do sistema para prever os seus estados futuros. Assim sendo, faz-se necessário que a
informação sobre uma representação do sistema que se está tentando controlar seja inserida no
controlador.
O modelo usado para simular o robô, mostrado na equação (1.6) é suficiente para conduzir os
ensaios computacionais, porém esta equação não é linear, pois é baseada em funções trigonométricas
e possui coeficientes que variam no tempo. Segundo Camacho e Bordons (2004), existem formas de
considerar modelos não lineares em controle preditivo, mas com o objetivo de não aumentar a
complexidade do controlador e ainda manter a qualidade do controle, é utilizada neste trabalho uma
linearização do modelo do robô.
O que torna o modelo descrito na equação (1.6) não linear está no fato dos valores das saídas
para
X e Y estarem em função da orientação atual do robô, . É impossível simplesmente eliminar as
variáveis dependentes do modelo e ainda conseguir identificar a posição do robô no plano, mas elas
97
podem ser substituídas por uma única variável que independe de , neste caso chamada de
L
. Esta
nova variável representa o deslocamento do robô, isto é, distância euclidiana entre a posição atual do
robô e a sua posição anterior. A derivada de
L
representa a velocidade linear do robô da mesma
forma que Q
L
, definida na equação (3.4). O modelo do robô nesta nova configuração é apresentado
em
(4.1)
. A
tV
T
K
tq
T
tq
tV
T
K
tq
T
tq
tq
R
r
tq
R
r
t
tq
r
tq
r
t
r
r
r
r
r
r
l
l
l
l
l
l
lr
lrL
ºº
ºº
ººº
ººº
1
1
22
22
(4.1)
A
Fi
gura
69
mostra ilustra as novas variáveis de controle do robô.
Fi
gura 69
Desenho esquemático do robô móvel considerando a nova variável de controle.
Usando a notação de espaço de estados, obtém
-
se:
tq
tq
t
t
t
t
tV
tV
T
K
T
K
tq
tq
t
t
T
T
R
r
R
r
rr
tq
tq
t
t
r
l
L
L
r
l
r
r
l
l
r
l
L
r
l
r
l
L
)(
0010
0001
)(
)(
)(
)(
0
0
00
00
)(
1
000
0
1
00
22
00
22
00
)(
º
º
º
º
(4.2)
O equivalente discreto do modelo (4.2) é apresentado na equação (4.3), considerando um
amostrador de ordem zero. Este é o modelo inserido no controlador preditivo como uma forma
linearizada do modelo completo, sendo que a notação de cada uma das variáveis segue o mesmo
padrão apresentado para a equação
(1.6)
, tal que
98
kq
kq
k
k
c
t
k
kV
kV
b
kq
kq
k
k
A
kq
kq
k
k
r
l
L
T
L
r
l
r
l
L
r
l
L
)(
)(
)(
1
1
1
1
(4.3)
sendo:
0010
0001
000
000
1
2
1
2
10
1
2
1
2
00
T
T
t
T
t
T
t
r
T
t
l
T
t
r
T
t
l
c
e
e
e
R
rT
e
R
rT
e
rT
e
rT
A
r
l
r
l
r
l
r
l
r
l
r
l
T
t
r
T
t
l
r
T
t
r
r
l
T
t
l
l
r
T
t
r
r
l
T
t
l
l
eK
eK
TeTt
R
rK
TeTt
R
rK
TeTt
rK
TeTt
rK
b
10
01
22
22
As variáveis de saída do modelo descrito pela equação (4.3) não dependem da orientação do
robô. A variável de posição representa a distância percorrida pelo robô desde o último instante
amostrado. Assim sendo, para que seja determinada a posição do rocom relação aos eixos X e Y
,
uma transformação ainda deve ser efetuada nas saídas do modelo, como mostra a equação
(4.4).
t
L
t
L
dt
ttY
dt
ttX
0
º
0
º
))(
sen(
))(
cos(
(4.4)
Esta transformação é apenas utilizada para fins de simulação e geração das referências futuras,
pois o modelo não mais considera a posição atual do robô, apenas o seu deslocamento. Esse
deslocamento é exclusivamente dependente da dinâmica dos motores e dos sinais de entrada, o que
torna o modelo linear do ponto de vista do controlador. Para que o roatinja o ponto de destino, as
referências futuras são fornecidas de modo a eliminar a distância entre a posição atual do robô e o
ponto de destino, como será explicado na seçã
o 4.3.2.1
.
99
4.3.2
Função de Custo
O objetivo do GPC é obter a seqüência de ações de controle ( u(
k
), u(
k
+ 1|
k
), ..., u(
k
+
Nu
1|
k
))
de forma que as saídas previstas para o sistema ( (
k
+
j|k) ) sejam o mais próximo o possível das
r
eferências desejadas (
w(t
+
j
) ) dentro do horizonte de previsão (
Ny
). Isto é conseguido minimizando
uma função de custo J em função da norma (diferença ao quadrado) entre a referência e saída,
ponderada pelo esforço de controle, na seguinte forma:
1
0
2
1
2
^
||
Nu
j
Ny
j
k
kjkujkwkjkyJ
(4.5)
sendo
w(
k
+
j|k)
: referências futuras;
(
k
+
j|k)
: previsões das saídas do sistema;
u(
k
+
j|k)
: incrementos do sinal de controle;
: ponderação sobre os esforços de controle;
Ny
: horizonte de previsão da saída;
Nu
: quantidade de incrementos do sinal de controle considerados
na otimização.
4.3.2.1
Referências Futuras
A maior parte dos métodos de controle de trajetórias é baseada em encontrar o erro entre a
postura atual do veículo e uma postura de referência sobre uma trajetória previamente planejada.
diversas abordagens que podem ser usadas para selecionar a postura de referência. Uma destas
abordagens é escolher um ponto sobre a trajetória planejada com uma determinada distância da
posição atual do ro(Amidi, 1990). Esta distância, chamada pelo autor de
lookahead
, pode ser fixa
ou variar de acordo com diversos parâmetros dinâmicos, tais como a velocidade do robô ou a
curvatura da trajetória de referência. Em Ollero et al. (1994), a evolução no tempo do ponto da
postura de referencia é governada por uma equação diferencial que contém o erro de posição. Ambos
o ponto de referência e a equação diferencial são chamados de carro virtual . Outra abordagem é
utilizar um conjunto de pontos de referência consecutivos, todos sobre a trajetória planejada, ao invés
de um ponto isolado (Góme
z
Ortega, 1994).
Para este trabalho, as referências para o controlador, considerando o modelo linearizado,
devem representar o conjunto de deslocamentos consecutivos (w
L
(
k
+
j|k) ) e posições angulares
(w (
k
+
j|k) ) que levam o robô até o ponto de destino. As referências de orientação são geradas de
forma absoluta, sendo o ângulo da reta que passa pelo centro do robô e pelo próximo
waypoint
, com
relação ao eixo X, e não com relação á orientação do próprio robô, como é feito para o PID. O
problema com esta abordagem está quando a referência encontra-se muito próxima do robô. Quando
isto acontece, o ângulo calculado para a referência tende a oscilar, pois no caso limite, quando o robô
encontra
-se exatamente sobre a referência, o ângulo não pode ser determinado. Assim sendo, uma
100
condição é inserida para que seja utilizada a referência futura mais afastada do robô quando a
referência atual encontra
-
se muito próxima do mesmo.
As referências de deslocamento são calculadas da mesma forma que para o controlador PI
D,
dada pela equação (3.6), considerando apenas a distância até o ponto de destino. Para que o robô
possa também se deslocar com velocidade linear menor que zero, um critério foi adicionado para
alterar o sinal da referência de de
slocamento.
A
Figura
70
ilustra as variáveis utilizadas no processo do cálculo das referências futuras
apresentado na equação
(4.6).
Figura 70
Erros considerados para o cálc
ulo das referências futuras do controlador preditivo.
Como a posição real do robô é desconhecida para instantes futuros, para as referências de
orientação é considerada apenas a posição atual do robô. Para as referências futuras de deslocamento
( L) é considerado o deslocamento da referência. A equação (4.6) descreve o processo de
determinação das referências futuras.
kXNkX
kYNkY
atg
R
kkw
se
kXkX
kYkY
atg
R
kkw
se
kjkw
jkYjkYjkXjkXw
se
jkYjkYjkXjkXw
se
j
se
kYkYkXkXw
se
kYkYkXkXw
se
j
se
kjkw
yd
yd
L
d
d
L
dddd
dddd
dd
dd
L
2
|
2
|
|
11
90
11
90
)1(
90
90
)1(
|
22
22
22
22
(4.6)
onde
w
L
(
k
+
j|k)
: referências futuras de deslocamento [m];
w(
k
+
j|k)
: referências futuras de orientação [ rad ];
[X
d
(k
),
Y
d
(k
)]
:
waypoint
atual com relação aos eixos
X
e
Y
[ m ];
[X(k
),
Y(k
)]
: posição atual do robô com relação aos
eixos
X
e
Y
[ m ];
k
: tempo discreto.
101
4.3.3
Obtenção da Lei de Controle
O problema de minimização pode ser escrito da seguinte forma (Oliveira, 1997):
Nu
jkjku
a
sujeito
k
Nu
kukkukku
J
k
0|
.
|1
,...,
|1,|
min
(4.7)
Reescrevendo este problema em for
ma matricial obtém
-
se:
u
ufuQu
TT
min
(4.8)
onde
HwyfIHHQ
T
l
TT
^
2
(4.9)
j
i
i
j
T
Ny
T
Ny
T
TT
T
AS
bScbScbSc
bScbSc
bSc
H
0
021
01
0
0
00
(4.10)
Ny
kw
kw
kw
w
k
Ny
ky
kky
kky
y
l
l
l
l
1
1
|
|2
|1
^
^
^
^
(4.11)
klASckykjky
j
T
l 1
^
|
(4.12)
1klklkl
(4.13)
e assumindo que o modelo do sistema
a ser controlador é descrito pela equação:
klcky
kubklAkl
T
11
(4.14)
A solução da equação (4.7) pode ser obtida analiticamente derivando a função de custo e
igualando o resultado a
zero (Oliveira, 1997).
kl
ASc
ASc
ASc
ky
ky
ky
wmku
y
N
T
T
T
T
1
1
0
)(
)(
)(
(4.15)
considerando
kubklAkl 1
(4.16)
102
TT
jii
j
j
T
HIHH
aaa
aaa
aaa
m
1
,1,11,
,22,21,1
,12,11,1
(4.17)
onde
Nu
EjEiji
Nu
EjEiji
a
ji
1;1;0
1;1;1
,
(4.18)
sendo:
E
: número de entradas do sistema;
l(k)
: vetor de estados.
4.4
Resultados em Simulação
Seguindo a mesma estrutura do capítulo anterior, o ambiente 3 é utilizado para testar em
simulação o controle preditivo. Os dados do modelo do robô e os parâmetros do planejamento de
trajetórias são os mesmos que os usados para o controle baseado em lógica fuzzy e PID apresentados
no capítulo anterior. Entretanto, utiliza
-
se ap
enas o critério de comutação dos
waypoints
por tempo. O
procedimento adotado para o cálculo das referências futuras não é compatível com o critério de
comutação dos
waypoints
por distância. Uma vez que, neste critério, como não é conhecido o número
de instantes de amostragem que o robô irá levar para atingir um
waypoint
, não se pode estimar os
valores para as referências futuras de orientação. Para as referências de distância linear não há
problemas, uma vez que apenas o primeiro valor é diferente de zero, porém as referências futuras de
orientação dependem da trajetória planejada. O que pode ser feito é simplesmente igualar todas as
referências futuras ao próximo
waypoint
. Entretanto, fazendo isto, o robô estaciona em todos os
waypoints
, o que não é o objetivo do controlador. Assim sendo, ao invés de apresentar dois ensaios
com diferentes critérios de comutação de
waypoints
, são apresentados dois ensaios com diferentes
parâmetros de controle. Em todos os casos, o ângulo inicial do robô é de 90
o
com relação ao eixo X e
a referência de velocidade é de 0,12m/s.
No primeiro ensaio os parâmetros utilizados para o controlador preditivo são:
Ny
: 6;
Nu
: 2;
: 0.
A
Figura
71
mostra a trajetória planejada (amarelo) e percorrida (azul). A
Fi
gura
72
mostra a
trajetória do robô em função do tempo segundo as suas coordenadas X e Y. Apesar de, na prática, o
co
ntrolador receber sinais de referência em função apenas de uma distância linear, as coordenadas
X
e
103
Y foram separadas nesta figura para facilitar a comparação com os controladores apresentados no
capítulo anterior. Para este ensaio, o
RMS
X
é igual a 0,0221
e o
RMS
Y
é igual a 0,0193.
Figura 71
Trajetória percorrida e planejada para o controlador preditivo no ensaio 1.
Com estes parâmetros e robô leva aproximadamente 76 segundos para atingir o destino, o que é
alguns segundos a menos que o mesmo ensaio para os controladores do capítulo anterior. Apesar da
mesma referência de velocidade ser aplicada, como neste caso o robô segue a referência com um erro
menor, quase não há defasagem entre o
waypoint final e a posição do robô.
Fi
gura 72
Referências e posições instantâneas do robô para o controlador preditivo no ensaio 1.
A
Figura
73
(a) mostra as referências angulares (em preto) e a orientação instantânea (em verde)
do robô móvel. Como o roestá em movimento e é utilizada a sua posição instantânea para calcular
as referências do controlador, pode
-
se visualizar oscilações nesta referência.
A
Figura
73
(b) mostra os sinais de controle gerados pelo controlador. Pode-se visualizar nesta
figura que este controlador provoca um grande esforço nos atuadores. Há valores elevados na
104
derivada dos sinais de controle e a sua também elevada amplitude é freqüentemente saturada pelos
limites de tensão elétrica adotados para os motores. O desvio padrão calculado para os sinais de
controle dos motores esquerdo e direito são 5,8 e 5,7 respectivamente.
Figura 73
Referências angulares, orientação e sinais de controle gerados pelo controlador pred
itivo no ensaio 1.
Para o segundo ensaio, apenas o parâmetro da ponderação do sinal de controle é alterado, os
demais parâmetros têm os seus valores mantidos:
Ny
: 6
Nu
: 2
: 1
x
10
4
A
Figura
74
mostra a trajetória planejada (amarelo) e percorrida (azul). Percebe-se que a
trajetória percorrida ainda é muito semelhante à planejada.
Figura 74
Trajetória percorrida e pla
nejada para o controlador preditivo no ensaio 2.
105
Se forma semelhante ao ensaio 1, a
Figura
75
mostra a trajetória do robô em função do tempo
segundo as suas coordenadas X e Y. Para este ensaio, o
RMS
X
é igual a 0,0235 e o
RMS
Y
é igual a
0,0276.
Figura 75
Referências e posições instantâneas do robô para o controlador preditivo no ensaio 2.
Através da
Figura
76
pode-se verificar que um acréscimo de 1x10
-4
no parâmetro
alterou o a
medida do desvio padrão do sinal de controle em aproximadamente 13%. Neste caso, o sinal de
controle possui uma derivada em função do tempo de menor intensidade e valores de amplitude
menores quando comparados com o primeiro ensaio. Por outro lado, os erros de trajetória
aumentaram. O desvio padrão calculado para os sinais de controle dos motores esquerdo e direito são
5,1 e 4,9 respectivamente.
Figura 76
Referências angulares, orientações e sinais de controle ger
ados pelo controlador preditivo no ensaio 2.
106
4.5
Considerações Finais sobre o Controlador Preditivo
Na literatura é possível encontrar grande diversidade de aplicações de controladores preditivos
tanto em robótica móvel quanto em aplicações industriais. As variações são percebidas
principalmente no tipo de modelo utilizado (DMC, QDMC, MPC, entre outras), no emprego ou não
de estruturas linearizadas e na consideração de características não lineares na lei de controle.
Os resultados obtidos neste capítulo demonstram que o MPC aplicado a robôs móveis é
factível. Entretanto, não foi estabelecida aqui nenhuma prova formal da estabilidade assintótica do
sistema para tal estratégia de controle. Técnicas que exploram o comportamento monotônicamente
decrescente da função de custo (Mayne, 2000) podem ser utilizados para provar a estabilidade do
sistema em malha fechada.
Contudo, mesmo considerando um modelo linear para um robô de modelagem conceitualmente
não linear, este sistema mostrou-se estável para qualquer posição e orientação inicial, não
necessitando de quaisquer trajetórias de aproximação para controlar a trajetória do robô.
Durante todo este capítulo, foi considerado que os parâmetros dinâmicos do robô são idênticos
aos do sistema sendo controlado. Este pressuposto não é válido para implementações em tempo real,
uma vez que o modelo exato nunca é conhecido e sempre uma quantidade de incertezas tanto no
modelo quanto nos sensores físicos que medem os estados do robô. Os parâmetros dinâmicos são
variantes com a carga útil do robô e com a superfície na qual ele se desloca, assim não podem ser
determinados por calibração. Pode-se, entretanto, empregar estimadores de estados, como por
exemplo o filtro de Kalman (Kalman, 1960), para diminuir estas incertezas.
A lei de controle utilizada minimiza uma função de custo quadrática que penaliza erros nas
saídas e o esforço de controle. A solução do sistema de otimização é derivada analiticamente, o que
permite uma implementação com baixo custo computacional. O tempo computacional gasto foi
desprezível quando comparado com o intervalo de amostragem, o que torna este controlador bastante
promissor para implementações em tempo real.
Comparando o controlador preditivo com o controlador PID do capítulo anterior, apesar de
ambos
cumprirem o objetivo de controlar a trajetória do robô móvel em simulação, o controlador
MPC teve uma performance melhor. Isto se deve principalmente devido a sua estrutura de controle
mais complexa levar em consideração o comportamento futuro do robô e as referências futuras de
trajetória. Outra propriedade importante é a sua estrutura ser de fácil sintonia com poucos parâmetros
a serem ajustados. O esforço do controlador pode ser modificado através da configuração do
parâmetro
. Sinais de controle mais agressivos tentem a diminuir os erros entre a refer
ência e o robô,
porem consomem mais energia das baterias, diminuindo autonomia do robô. Outro ponto importante
é que, na implementação em tempo real, como o modelo considerado é diferente do modelo real, um
controlador mais agressivo pode desestabilizar o sistema.
107
Capítulo 5
Experimento em Tempo Real
Conforme descrito nos capítulos 3 e 4, os controladores implementados em simulação atendem
às expectativas e realizam, através de diferentes abordagens, o seguimento da trajetória planejada.
Mas modelos teóricos dificilmente representam com perfeição detalhes de um processo real. Diversas
simplific
ações são usadas nos modelos em simulação, tais como, as considerações de linearidade e
baixa ordem (1
a
ordem) para os motores, sensores perfeitos e lineares e câmeras de vídeo com lente
plana. ainda algumas características existentes, em maior ou menor quantidade, que são
normalmente desprezadas em modelos computacionais de robôs móveis, tais como deslizamento nas
rodas, histerese, zona morta e ruído. Assim sendo, para a validação dos algoritmos estudados, neste
capítulo são descritos os detalhes constituintes de um ambiente para a análise de algoritmos de
controle em tempo real de robôs móveis e os testes realizados com o modelo construído. Por
conseguinte, uma gama de problemas que não são considerados em ambientes de simulação, mas
podem impactar o desempenho do sistema, são analisados. Dessa forma, pode-se testar os sistemas
desenvolvidos e comprovar a sua viabilidade prática.
Duas concepções são estudadas para o robô móvel. A primeira está baseada em um
kit
LEGO
Mindstorms
TM
, composta por uma câmera com conexão USB (Universal Serial Bus), uma central
processadora baseada em um microcontrolador Motorola 68HC11 e
drivers
de acionamento PWM
(Pulse Width Modulation). Dentre as vantagens da utilização do kit LEGO são a sua disponibilidade
na Universidade P
UC
-PR e a facilidade de operação. Dentre as desvantagens desta concepção
destacam
-se: inexistência de
drivers
para LabVIEW
TM
que operassem a câmera, baixa qualidade das
imagens capturadas, baixa freqüência da portadora PWM e escassez de recursos para a pro
gramação
do microcontrolador. A central processadora está conectada à alimentação de 110V através de um
transformador e ao computador através da porta serial. Portanto, os sinais de controle dos motores
chegam ao robô através de cabos, o que limita a sua mobilidade. A freqüência portadora dos
controladores PWM embutidos na central processadora é de aproximadamente 2kHz, assim sendo,
quando são comandados sinais com baixas amplitudes, são constatadas oscilações nas velocidades
dos motores. Estas desvantagens tornaram inviável a utilização do
kit
LEGO Mindstorms
TM
nos
experimentos em tempo real.
108
A segunda concepção utiliza apenas os motores DC (Direct Current) e a estrutura do veículo
do
kit
LEGO Mindstorms
TM
. Os demais componentes físicos (
hardware
) e computacionais (
software
)
são substituídos e projetados de forma a atender os experimentos a serem realizados.
Em termos de componentes de
hardware
, um robô móvel pode ser considerado como um
conjunto de sub
sistemas para (Dudek e Jenkin, 2000):
Locomoção
(movim
entação do robô móvel pelo ambiente): Para este protótipo são usados os
motores do kit LEGO. Para os
drivers
de acionamento elétrico são utilizados circuitos
embarcados no robô.
Sensoriamento
(medição das propriedades do robô móvel e do ambiente): Uma câmera para
capturar as imagens aéreas do ambiente e do robô móvel é utilizada para este fim. A digitalização
das imagens é obtida através de uma placa de aquisição de imagens da
National Instruments
que é
conectada a um computador pelo barramento PCI.
Tomada
de decisões (mapeamento de propriedades em ações pelo robô móvel): Neste trabalho,
todo o processo de tomada de decisão é realizado pelo computador.
Comunicação
(comunicação entre o robô móvel e o operador): A conecção entre o robô e o
computador é realiza
da por rádio freqüência através do protocolo de comunicação serial RS
-
232.
O restante deste capítulo está estruturado da seguinte forma:
Na seção
5.1
é apresentado uma descrição do ambiente experimental construído, detalhando
cada uma das suas partes. A estimação dos parâmetros do modelo do robô é apresentada na seção
5.2
. Na seção
5.3
são apresentados os resultados obtidos em tempo real utilizando o algoritmo K-
Bug
,
descrito no Capítulo 2, para o planejamento de trajetórias e os controladores PID, FLC e Preditivo,
descritos nos capítulos 3 e 4, para o controle da trajetória.
5.1
Descrição Geral do Sistema
Um esquema do
hardware
construído é apresentado na
Figura
77.
Figura 77
Esquema do
hardware
utilizado
.
Um computador pessoal com processador Athon 64 de 2400MHz com 512Mb de memória
RAM (Random Access Memory) é utilizado para processar as imagens da câmera e os algoritmos de
10
9
planejamento e controle de trajetórias. Este computador recebe os sinais de vídeo da câmera contendo
as imagens do ambiente e do robô, identifica a postura do robô, planeja a sua trajetória no ambiente, e
também controla em tempo r
eal a trajetória executada.
A cada instante de amostragem o computador envia sinais de controle para cada um dos
motores do robô através da porta serial utilizando o protocolo RS-232. A porta serial é conectada a
um transmissor de rádio sintonizado na mesma freqüência que o receptor no robô. O
microcontrolador PIC16F74, instalado no robô, é responsável por receber os sinais do computador,
interpretá
los e acionar os motores através de circuitos PWM, um para cada motor. Mais informações
sobre a programação e utilização dos microcontroladores da família PIC podem ser encontradas em
Souza (2003).
A
Figura
78
mostra uma foto da placa de acionamento que se encontra no robô e a
Figura
79
mostra duas fotos do
robô construído com LEGO.
Um memorial descritivo do projeto eletrônico é detalhado no Anexo B. As dimensões
relevantes para o modelo matemático considerado e apresentado na equação
(3.3)
são:
Figura 78
Foto da placa de acionamento do robô.
(a)
(b)
Figura 79
Fotos do robô construído com
LEGO
.
110
R
= 0,07
: metade da distância entre as rodas ou raio do carro [ metros ];
r
= 0,0125
: metade do diâmetro das rodas ou raio da roda [ metros ];
L
= 0,13 : comprimento do carro, usado para a comutação da referência (vide
3.3.4
) [metros].
Para facilitar a integração com a plataforma de programação utilizada, o L
abVIEW
TM
, é
utilizada uma placa de aquisição da National Instruments modelo NI-1407, uma câmera CCD
Toshiba e uma lente de 8mm com 1:1,3 de abertura. Com esta lente, a câmera, que foi suspensa a uma
altura de dois metros, visualiza uma área de aproximadame
nte 6m
2
.
Outro aspecto relevante é a alimentação do robô que não é efetivada através de cabos, mas sim
por duas baterias alcalinas de 9V. Ensaios mostraram que a duração média das baterias é de
aproximadamente 20 minutos com ambos os motores a plena carga.
Nas seções seguintes são descritas cada uma das partes constituintes do sistema em tempo real
construído. Na seção
5.1.1
é descrito o processo de acionamento dos motores. Na seção
5.1.2
o
sistema de comunicação via rádio é apresentado, juntamente com o protocolo de comunicação
utilizado. Finalmente, o processo de reconhecimento de imagens é descrito na seção
5.1.3
.
5.1.1
Sistema de Acionamento dos Motores
É comum encontrar motores de corrente contínua nos projetos de robôs móveis. Tais motores
são escolhidos principalmente devido a sua pequena dimensão física e facilidade de acionamento.
Para acionar este tipo de motor deve-se aplicar uma tensão elétrica em seus terminais. A po
laridade
da tensão elétrica aplicada é responsável pelo sentido de rotação do motor. a velocidade de rotação
do eixo é diretamente proporcional à tensão eficaz aplicada, dada pela integral no tempo do valor
instantâneo da tensão. Dessa forma, pode-se usar a modulação por largura de pulso, ou PWM, para
facilitar o acionamento dos motores, uma vez que tal técnica não requer circuitos conversores
digitais
-
analógicos para gerar as tensões de alimentação dos motores (Rashid, 1999).
Um sinal PWM é basicamente um sinal com a forma de onda quadrada, também conhecida
como trem de pulsos , onde o comprimento de cada pulso é controlado em função de um dado valor.
A
Figura
80
mostra um exemplo de um sinal PWM. Este sinal possui um período total P
,
permanecendo em nível alto (amplitude
U
) pelo tempo
d.
Figura 80
Forma de onda pulsada.
A razão entre o tempo d e o período P é conhecida por Duty Cycle. Pela variação desta relação
pode
-se conseguir formas de onda com valores eficazes variando entre 0 e U volts, conforme o
Duty
111
Cycle
varie de 0% a 100% respectivamente. Na
Figura
81
é exemplificado este processo, onde é
usada uma forma de onda senoidal para modular um trem de pulsos, onde a amplitude do sinal
modulador altera a largura do trem de pulsos, resultando em um sinal PWM.
Figura 81
Modulação por largura de pulso.
A freqüência do trem de pulsos, chamada de freqüência portadora, utilizada nos controladores
PWM é de 19,43 KHZ. Esta freqüência está próxima do limiar auditivo do ser humano, o que torna o
ruído dos controladores quase imperceptível. Como a dinâmica esperada para os sinais de controle é
na ordem de 100Hz, a freqüê
ncia portadora pode ser facilmente filtrada por um filtro tipo RC (Sedra e
Smith, 1998).
5.1.2
Sistema de Comunicação Serial Via Rádio
Os componentes da Telecontrolli RT4 433.92 e RR3 433.92 (juntamente com duas antenas de
comprimento igual a 20cm) são responsáveis pela transmissão e recepção dos sinais de comunicação
via radiofreqüência. Os diagramas esquemáticos de todos os circuitos construídos podem ser vistos no
Anexo A. A transmissão dos dados respeita o protocolo serial RS-232 com velocidade de 1.2Kbps ou
2.4Kbps, 8 bits, 1
stop
bit, sem paridade e controle de fluxo por
software
(caracteres XON/XOFF).
Para que os comandos enviados pelo computado possam ser interpretados pelo
microcontrolador instalado no robô, faz-se necessário utilizar um protocolo de transmissão de
comandos, isto é, um padrão em que os comandos são enviados e recebidos. Este protocolo opera em
um nível acima do padrão RS
232, segundo a divisão de camadas OSI (Gasparini, 2004).
O protocolo de comunicação é composto por uma palavra morta, uma palavra de
login
, uma
palavra de
logoff
e os sinais dos dois motores. Todas estas palavras são codificados usando oito bits
segundo a
Tabela
7
.
A palavra morta é desconsiderada pelo robô. Ela existe apenas para solucionar uma limitação
existente nos componentes de transmissão e recepção. Caso a porta serial fique ociosa por mais do
que alguns segundos, o receptor de radiofreqüência perde o sincronismo com o transmissor,
112
resultando no envio de ruído para o robô. Quando o sistema é iniciado, ou caso o sincronismo seja
perdido, para que este seja estabelecido, são necessárias duas palavras mortas. Assim sendo, durante o
funcionamento do sistema, o programa que controla a comunicação deve constantemente enviar os
dados
ao receptor a fim de manter a comunicação ativa.
Tabela
7
Comandos dados ao robô.
Ação
Valor ou faixa de valores
decimais
Valor ou faixa de valores
binários
Velocidade de
100% a 0
228 a 128
11100100 a 10000000
Velocidade de 0
a 100%
27 a 127
00011011 a 01111111
Palavra morta
240 11110000
Login
250 11111010
Logoff
255 11111111
Para iniciar o robô é utilizada a palavra de
login
. Esta palavra ativa os comandos do robô de
forma que este permita que os sinais recebidos do computador sejam aplicados aos motores. São
necessárias duas palavras mortas e uma palavra de
login
para efetivamente realizar o
login
do robô e
ativar o canal de comunicação. A partir desta comunicação ser realizada com sucesso, o robô está
pronto para receber
os sinais para os motores.
Para desligar o robô é utilizada a palavra de
logoff.
Há, na placa de circuito impresso, um LED
(Light Emitting Diode) verde indicando o estado do sistema. O estado aceso significa ativo, isto é, o
robô está pronto para receber sinais de controle para os motores, e apagado significa inativo, situação
em que o robô ignora qualquer comando enviado até que uma nova palavra de
login
seja recebida.
Depois de recebida a palavra de
login
, o robô está pronto para receber comandos do
com
putador. Em cada instante de amostragem são enviados dois
bytes
para o robô, um para cada
motor, primeiro para o motor direito e depois para o motor esquerdo. Os valores para os sinais dos
motores, provenientes do controlador, são escalados de acordo com a máxima tensão permitida para
cada motor. Como o protocolo RS-232 escolhido transmite pacotes de 10bits (contando com 1
start
bit, 8 bits de dados e um
stop
bit) a 2,4Kbps e são necessários 2 pacotes para atualizar ambos os
motores, o período mínimo de atualização é 8,3ms. O programa completo utilizado no
microcontrolador está descrito no Anexo C.
5.1.3
Sistema de Reconhecimento de Imagens
Esta parte do sistema está relacionada ao tratamento e análise das imagens recebidas pela
câmera. O processamento de imagens visa a manipulação e exibição de imagens prontas, envolvendo
diversos processos de tratamento da imagem, como por exemplo filtragem de ruídos. Ao contrário da
computação gráfica, o processamento de imagens não possui como fim a geração de uma imagem a
par
tir de dados, mas sim a manipulação de uma imagem previamente gerada e até possivelmente a
extração de informações a partir desta imagem (Casacurta
et al.
, 1998).
113
Uma imagem é composta por um conjunto de pontos, denominados
pixels
(Picture Elements
)
ou "Dots". Estes
pixels
estão dispostos na tela do computador formando uma matriz de pontos que é
denominada de
Bit
Map
ou "Mapa de Bits". Este mapa de bits é um reticulado, onde cada elemento
da matriz possui uma informação referente à cor associada àquele ponto específico. A resolução de
uma imagem é dada pelo número de
pixels
que esta imagem possui na horizontal e na vertical. Cada
elemento da imagem possui uma localização, que é definida pela suas coordenadas na matriz da
imagem (Parker, 1997).
O processamento de imagens irá manipular as imagens modificando as ou identificando os
seus elementos componentes. Segundo Casacurta et al. (1998), o processamento de imagens possui
inúmeras aplicações, tais como:
Tratamento e melhoria de imagens a fim de permitir a visualização de algum detalhe
específico de interesse do usuário. É aplicado junto à medicina (tomografia), controle de qualidade,
biologia, sistemas de monitoração (segurança), sistemas de controle, geologia, sensoriamento remoto
(imagens de satélites), meteorologia, entre outros. A
Figura
82
mostra um exemplo da utilização do
processamento de imagens na filtragem de ruídos.
Figura 82
Imagem com ruídos e depois de filtrada. Fonte: (Cas
acurta
et al.
, 1998).
Reconhecimento e classificação de objetos presentes em uma imagem. Aplicável em sistemas
de segurança (impressões digitais), interpretação automática de textos, visão artificial, robótica,
exploração automatizada (sistemas anti
bom
bas, exploração submarina, mísseis teleguiados), etc. A
Figura
83
mostra um exemplo de reconhecimento de padrões de imagem.
Figura 83
Padrões sendo d
estacados em uma imagem. Fonte: (Casacurta
et al.
, 1998).
114
Resumindo, o processamento de imagens tem o seguinte objetivo: a partir de uma imagem,
realizar uma transformação sobre esta, que leve a uma nova imagem. As operações de tratamento de
imagens mais
comuns são:
Halftoning
(geração de meios
tons);
Dithering
(mistura de cores);
Quantização (alteração de cores);
Equalização de histograma;
Limiarização ou binarização da imagem;
Alteração de contraste;
Alteração de brilho;
Smoothing
(Suavização da imagem)
;
Sharpening
(Destaque de contornos);
Aplicação de filtros (convolução, transformadas);
Ampliação, redução, rotação, recorte e translação;
Morph
(Deformação da imagem).
Neste trabalho, o processamento de imagens é usado para realçar a informação relevante
nas
imagens captadas pela câmera. Também são usados algoritmos de visão computacional para
identificar o robô móvel e o separá
-
lo do ambiente, determinando a sua postura no plano.
Dentre as ferramentas conhecidas na literatura de processamento de imagens, são utilizadas
para auxiliar na tarefa de reconhecer o robô técnicas com filtros passa baixa, detectores de bordas,
filtros Canny, binarização, etc (Parker, 1997). Todas essas ferramentas estão presentes no pacote de
processamento de imagens do LabVIEW
TM
c
hamado
IMAQ
. Este mesmo pacote também possui
algoritmos de reconhecimento de padrões de imagens que foram utilizados.
A câmera utilizada fornece imagens monocromáticas em tonalidades de cinza (Gray Scale
)
com resolução de 640x480 em 8
bits
. Neste tipo de imagem, cada ponto possui um valor associado
que indica uma intensidade de luminosidade, entre o preto e o branco, sendo o valor numérico zero
para o preto e 255 para o branco.
Partindo destas imagens é imperativo reconhecer a posição e orientação do robô
necessária
para os algoritmos de planejamento e controle de trajetórias. Nesta aplicação, os obstáculos são
selecionados manualmente pelo operador. Por outro lado, a postura do robô é identificada
continuamente e de forma automática durante o percurso da t
rajetória.
A seguir, duas abordagens possíveis para realizar o reconhecimento do rono ambiente são
comentadas. Ao fim destes, apresenta-se o procedimento adotado neste trabalho. Estas abordagens
utilizam bibliotecas prontas de reconhecimento de padrões de imagens disponíveis no
IMAQ
e
algoritmos que buscam na imagem alguns aspectos geométricos do robô.
115
A primeira abordagem compara uma imagem menor com partes de uma outra imagem,
buscando por semelhanças. Dessa forma, tendo-se uma imagem padrão, pode-
se
realizar uma procura
na imagem vinda da câmera por essa imagem padrão.
Com este objetivo, uma imagem do robô visto de cima é manualmente selecionada e separada
do ambiente para formar a imagem padrão. As imagens subseqüentes adquiridas pela câmera, após
passarem por um processo de filtragem para remoção de ruídos, são pesquisadas em busca da imagem
padrão. O resultado, apesar de conseguir reconhecer o robô em aproximadamente 80% das vezes,
precisa ser refinado para atender próximo de 100% dos casos para que possa ser usado dentro de um
laço de controle. Os ensaios experimentais mostraram que as falhas ocorrem principalmente devido
ao pouco contraste entre o chão (fundo) e o robô (imagem padrão). Para corrigir este problema pode-
se utilizar três recursos: (i) anexar fisicamente sobre o robô uma imagem contendo uma figura
destoante dos demais obstáculos do ambiente, (ii) subtrair uma imagem de fundo e (iii) ajustar a íris
da câmera para controlar a iluminação captada.
Assim sendo, uma figura simétrica apenas longitudinalmente é fixada sobre o carro, de forma a
ser captada nitidamente pela câmera. A imagem usada é mostrada na
Figura
84
.
Figura 84
Figura padrão para
o reconhecimento do robô.
Uma imagem contendo somente o fundo, sem o robô, é adquirida e armazenada antes do início
do sistema de controle. Esta imagem é então subtraída das imagens em que se deseja identificar o
robô. Dessa forma aparecem manchas facilmente identificáveis na imagem que são regiões onde
ocorrem diferenças entre a imagem de fundo e a imagem atual. A informação contida em tais
manchas não é importante e sim a sua posição e limites. Sabe
-
se, então, que o robô encontra
-
se dentro
da área de alguma das manchas. O histograma da imagem é analisado para determinar um limiar em
função da iluminação do ambiente. De posse desse limiar pode-se destacar as áreas suspeitas em
conter o robô. Tais áreas são comparadas com o tamanho esperado para o robô, sendo descartadas as
áreas muito grandes ou muito pequenas, o que resulta em, geralmente, uma ou duas áreas candidatas.
Finalmente recupera-se a imagem original da câmera e aplicam-se os algoritmos de reconhecimento
em áreas muito mais restritas. A
Figura
85
(a) mostra um segmento da imagem original captada pela
câmera e a
Figura
85
(b), o algoritmo reconhecendo o robô móvel e o separando do fundo.
Apesar deste processo ter sucess
o em reconhecer o robô em praticamente 100% dos casos, todo
o processamento de imagens consome aproximadamente 100ms. Se esta metodologia for utilizada
dentro da malha de controle, o intervalo de amostragem mínimo seria em torno de 200ms, pois ainda
devem
ser considerados os tempos de comunicação, processamento dos controladores e captura das
imagens. Com o intuito de diminuir este tempo, a segunda abordagem é apresentada para reconhecer
a posição e orientação do robô no plano, baseada inteiramente no reconhecimento de aspectos
116
geométricos do robô na imagem. Esta é a abordagem utilizada para o reconhecimento do robô neste
trabalho.
(a) (b)
Figura 85
Robô sendo reconhecido
na imagem.
Nesta abordagem, o padrão de imagem complexo (
Figura
84
) é trocado por uma figura
contendo apenas dois círculos com tamanhos diferentes. Reconhecer círculos em uma imagem é
relativamente mais simples, pois não a necessidade de diferenciar a orientação dos mesmos. O
centro círculo maior coincide com o centro de giro do carro e o centro do círculo menor é usado para
identificar a orientação do robô. A
Figura
86
mostra uma imagem capturada pela
câmera aérea.
Figura 86
Imagem capturada pela câmera aérea.
Para encontrar os centros dos círculos inicia-se binarizando a imagem em função de um limiar.
Todos os
pixels
com valores abaixo deste limiar são descartados pelos processos posteriores. Para a
determinação deste limiar o histograma da imagem é avaliado. Como os padrões circulares são
conhecidos, as suas áreas aproximadas (em número de
pixels
) podem ser determinadas. Assim sendo,
o limiar é estabelecido de forma seja preservada na imagem uma quantidade suficiente de pontos de
forma a conter os padrões circulares. O único requisito deste passo é que os padrões circulares devem
estar contidos dentre as áreas de intensidade máxima na imagem, isto é, aparecer em cores pr
óximas
da cor branca saturada.
Com a imagem binarizada, um processo de clusterização (Hammouda, 2000) é aplicado
identificando os agrupamentos de cor branca. Este processo de identificar os objetos claros em uma
imagem faz parte do pacote de processamento
de imagens do LabVIEW
TM
. A
Figura
87
(a) mostra em
destaque os objetos encontrados.
117
(a)
(b)
Figura 87
Objetos claros destacados da imagem.
Um filtro de partículas é então utilizado para eliminar os objetos muito grandes ou muito
pequenos com relação às dimensões aproximadas dos padrões circulares. Também são excluídos os
objetos cuja razão entre largura e altura esteja muito diferente da unidade. A
Figura
87
(b) mostra em
des
taque os objetos resultantes.
Para cada um dos objetos encontrados, partindo do seus respectivos centros, são traçadas
linhas de busca como mostra a
Figura
88
(a) em intervalos de 18°, totalizando 20 linhas por objeto. O
perfil da intensidade dos
pixels
sob cada uma destas linhas é analisado para a identificação das
bordas. Para identificar uma borda, deve-se primeiramente definir um limiar de contraste, neste caso
ajustado para 40. Assim sendo, quando sob uma dada linha de busca, ocorre uma variação de
intensidade de mais de 40 unidades, contida dentro de 4
pixels
, é detectada uma borda. Para aumentar
a imunidade a ruídos é aplicado um filtro mediano a cada 2
pixels
sob as linhas de busca. As bordas
reconhecidas estão destacadas e
m azul claro na
Figura
88
(b).
(a)
(b)
Figura 88
Reconhecimento de padrões circulares.
A média das posições de todas as bordas encontradas estabelece o centro do círculo que
interpola as bordas, par
a um dado objeto. Um fator de forma
F
que pondera o quão circular é um dado
objeto está definido nas equações
(5.1)
e
(5.2)
, tal que
118
N
CB
Rc
N
i
i
1
(5.1)
N
i
i
Rc
CBF
1
2
(5.2)
considerando
B
i
: posição no plano da i ésima borda encontrada com relação ao canto superior
esquerdo da imagem (
Top
,
Left
) [ pixels];
N
: quantidade de bordas encontradas n
o objeto;
C
: posição no plano para o centro estimado do círculo que interpola as bordas;
Rc
: raio estimado do círculo que interpola as bordas.
Os dois objetos com fator de forma mais próximo de zero são os padrões circulares buscados.
Também pode-se casar as informações de raio e distância dos círculos para aumentar a robustez do
sistema ou no caso de existir mais de um robô na imagem. Todo este processo de reconhecimento do
robô baseado em características geométricas leva 8ms para ser concluído (±1ms a 95% de confiança).
A
Figura
89
mostra em azul os padrões circulares reconhecidos pelo processo.
Figura 89
Padrões circulares reconhecidos.
5.2
Estimação do Modelo Real do Robô
O primeiro passo para conduzir os ensaios é determinar a taxa de amostragem do sistema.
Analisando o tempo gasto por cada um dos processos que são executados dentro do laço de controle
tem
-se: 10ms para a atualização interna do PWM, 8,3ms para a comunicação serial, 33ms para a
aquisição de cada imagem pela câmera, 8ms para o processamento da imagem e aproximadamente
10ms para processar o controlador. Considerando estes valores, percebe-se que, mesmo com alguns
119
destes processos sendo executados em paralelo, é impossível, com estes recursos, obter um intervalo
de amostragem inferior a 50ms. Adotando 100ms como intervalo de amostragem percebe-se que o
atraso que ocorre entre a aquisição da imagem e a chegada dos sinais de controle no roaproxima-
se de 50% do período de amostragem. Utilizando um intervalo de amostragem maior, pode-
se
aumentar a margem de fase do sistema, pois, como o tempo de resposta da câmera mantém-
se
constante, o atraso relativo ao período de amostragem diminui. Entretanto, como todos os
controladores mostram-se estáveis em simulação, manteve-se 100ms nos experimentos em tempo
real.
Para o processo de identificação dos modelos, o controle pode ser realizado em malha aberta e
o processamento das imagens pode ser feito
offline
. Dessa forma, o único gargalo do sistema é a taxa
de aquisição das imagens. Assim sendo, todos os experimentos desta seção são conduzidos à taxa de
33Hz.
Um processo de identificação é utilizado para determinar os parâmetros de ganho e constante
de tempo dos motores do robô segundo a equação (1.6). Para isso, um sinal em forma de degrau é
aplicado em ambos os motores e o deslocamento do robô é capturado pela câmera. A partir das
posições e orientações atingidas pelo robô ao longo do tempo pode
-
se estimar as velocidad
es em cada
uma das suas rodas. Um filtro digital tipo Butterworth de segunda ordem com 15Hz de freqüência de
corte é utilizado para eliminar os ruídos da taxa de aquisição.
Uma interpolação circular é utilizada para, partindo das posturas consecutivas do robô, estimar
as velocidades das suas rodas. O ponto geométrico onde as retas perpendiculares à orientação do robô
se cruzam é o centro do círculo que interpola a trajetória. Quando o robô acelera ou desacelera, os
raios de curvatura mudam de um instante para o próximo, assim sendo, a média aritmética dos raios
de curvatura é utilizada para aproximar o valor real. A metade da distância entre as rodas é então
somada e subtraída do raio de curvatura da trajetória do robô para determinar as velocidades das
roda
s esquerda e direita respectivamente. A
Figura
90
ilustra o procedimento.
Figura 90
Procedimento para estimar as velocidade
dos motores.
O equacionamento para estimar as velocidades pode ser visto a seguir em um pseudo
código.
Caso o robô esteja movendo
-
se em linha reta, usa
-
se a equação
(5.3)
, caso contrário, a equação
(5.4)
é
adotada.
120
Assumindo:
kXk
Ca
kYkCl
k
atg
k
Ca
1
se
Ca
(k
) =
Ca
(k
1)
então
tr
kYkYkXkX
qq
rl
2
11
22
(5.3)
senão
tr
k
Ca
k
Ca
k
Ca
k
Ca
atg
RC
qq
rl
11
1
,
(5.4)
fim
se
onde
2
11
2222
PykYPxkXPykYPxkX
C
sendo
11
1
1
kClk
Ca
PxPy
k
Ca
k
Ca
kClkCl
Px
Ca
(k)
: coeficiente angular da
reta normal à orientação ro robô no instante
k;
Cl
(k)
: coeficiente linear da reta normal à orientação ro robô no instante
k;
Aplicando um degrau de valor igual a 10V em ambos os motores, são medidos 14,5rad/s como
valor médio de amplitude em regime da resposta do sistema. O ganho dos motores é dado como
sendo a razão entre o valor da amplitude do degrau e o valor da amplitude em regime da velocidade
dos motores (Ogata, 2004). A
Figura
91
mostra as curvas consideradas.
Figura 91
Resposta ao degrau dos motores do robô.
O cursor azul destaca o ponto de 63% da amplitude em regime dos sinais de saída. Este ponto é
usado para identificar a constante de tempo dos motores (Ogata, 2004). Os valores obtidos n
a
identificação foram:
121
T
r
,
T
l
: 0,12 [ segundos ];
K
r
,
K
l
: 1,45 [ radianos / ( Volts x segundo ) ].
A
Figura
92
mostra uma comparação entre o sistema real e o modelo de primeira ordem
estimado quanto a respo
sta à um degrau de 6V de amplitude.
Figura 92
Comparação entre o sistema real e o modelo estimado.
Este processo é repetido com sinais de diversas amplitudes, porém sempre na forma de degrau,
para verificar a linearidade do sistema. Com estas informações podem ser traçadas as curvas da
amplitude da resposta do sistema e do ganho em função da amplitude do degrau aplicado. A
Figura
93
mostra as curvas obtidas.
(a)
(b)
Figura 93
Linearidade do sistema.
Percebe
-se através desta figura a existência de uma região de zona morta no intervalo [ 0,5V e
0,5V]. Esta região pode prejudicar o correto funcionamento do controlador baseado em gica fuzzy
,
uma vez que, durante as manobras de estacionamento, são usados pequenos valores nos sinais de
controle. Ainda na
Figura
93
(b) nota
-
se que a resposta dos motores não é exat
amente igual para sinais
122
positivos e negativos. Com amplitudes próximas de 2V, também são verificados sobre-sinais nas
velocidades dos motores, o que é um comportamento desprezado pelo modelo de primeira ordem
considerado para o robô móvel. Isto se deve ao atrito dinâmico do conjunto ser menor em baixas
velocidades, caracterizando o início do efeito
stick
slip
.
5.3
Resultados Experimentais
Considerando os parâmetros identificados na seção anterior, cada um dos controladores foi
testado em um ambiente real com obstáculos. O planejamento da trajetória foi realizado pelo
algoritmo
K
Bug
. Da mesma forma que para os resultados em simulação dos capítulos anteriores,
também são apresentados os critérios
RMS
do erro de trajetória e desvio padrão dos sinais de controle.
O ângulo inicial para o ambiente 1 é de 30
o
e para o ambiente 2 é de
90
o
. A posição de origem da
trajetória é demarcada com um ponto verde, a de destino com um ponto vermelho. O primeiro
ambiente é composto por apenas um obstáculo. Neste ambiente um
waypo
int
intermediário é inserido
na posição X = 0,55 e Y = 0,0 de forma a obrigar o robô a contornar o obstáculo. O segundo ambiente
é composto por três obstáculos de tamanhos e formas diferentes demarcados pelas linhas azuis. Em
todos os casos, o centro do sistema de coordenadas, isto é, o ponto X = 0,0 e Y = 0,0 encontra-se no
centro da imagem.
5.3.1
Controlador PID
O critério para a comutação dos
waypoints
utilizado foi a distância devido ao seu melhor
desempenho nos ensaios em simulação.
Como demonstrado no Capítulo 3, para o controle PID o ângulo de estacionamento não é
levado em consideração. Os parâmetros ajustados, segundo as equações
(3.7
) e
(3.8
), foram:
Tabela
8
Ganhos utilizado
s para o controlador PID em simulação.
Kp
Ki
Kd
Linear
Kp
l
: 0,50
Ki
l
: 0,10
Kd
l
: 0,10
Angular
Kp
: 2,50
Ki
: 0,40
Kd
: 0,10
5.3.1.1
Ambiente 1
A trajetória planejada e percorrida é mostrada na
Figura
94
. O robô
parte da posição (
-
0,6 ; 0,0)
passa pelo
waypoint
(0,55 ; 0,0) e atinge o destino em (
-
0,45 ; 0,45).
123
Figura 94
Trajetória percorrida em tempo real pelo controlador PID para o ambiente 1.
Na
Figura
95
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são 0,221 e 0,158 respectivamente.
Figura 95
Posição atual e referências em função do tempo para o controlador PID em tempo real para o ambien
te 1.
Os sinais de controle aplicados nos motores são apresentados na
Figura
96
. O desvio padrão
calculado para estes sinais de controle foram 1,16 para o motor esquerdo e 1,08 para o motor direito.
Figura 96
Sinais de controle para o controlador PID em tempo real para o ambiente 1.
124
5.3.1.2
Ambiente 2
A trajetória percorrida e planejada é mostrada na
Figura
97.
Figura 97
Trajetória percorrida em tempo real pelo controlador PID para o ambiente 2.
Na
Figura
98
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são 0,070 e 0,096 respectivamente.
Figura 98
Posição atual e
referências em função do tempo para o controlador PID em tempo real para o ambiente 2.
Os sinais de controle aplicados nos motores são apresentados na
Figura
99.
Figura 99
Sinais de controle para o c
ontrolador PID em tempo real para o ambiente 2.
125
O desvio padrão calculado para estes sinais de controle foram 3,02 para o motor esquerdo e
3,25 para o motor direito.
5.3.2
Controlador Baseado em Lógica
Fuzzy
Nesta seção apresenta
-
se o desempenho em tempo real
do controlador baseado em lógica
Fuzzy
descrito no capítulo 3. Este controlador é o único, dentre os apresentados neste trabalho, que é capaz
de levar em consideração o ângulo de estacionamento do robô, atingindo o ponto de destino com uma
orientação contr
olada.
O critério para a comutação dos
waypoints
utilizado é por distância para que seja possível
visualizar as manobras de aproximação do robô em cada
waypoint
. De forma a diminuir o erro
angular e melhor adequar o controlador ao modelo do robô, as funções de pertinência foram alteradas
com relação ao controlador utilizado nos ensaios em simulação apresentados no capítulo 3. A
Figura
100
mostra as funções de pertinência para os erros em X e Y. A
Figura
101
mostra as funções de
pertinência para a velocidade angular e a
Figura
102
para a velocidade linear. As funções de
pertinência para os erros de orientação foram mantidas iguais às utilizadas em simulação.
Figura 100
-
Funções de pertinência para os erros em
X
e
Y
utilizadas no controlador em tempo real.
Figura 101
-
Funções de pertinência para a velocidade angular controlador em tempo real.
126
Figura 102
-
Funções de pertinência para os erros em
X
e
Y
utilizadas no controlador em tempo real.
5.3.2.1
Ambiente 1
A trajetória percorrida e planejada é mostrada na
Figura
103
. O ângulo de estacionamento
utilizado no experimento é de 90
o
c
om relação à horizontal.
Figura 103
Trajetória percorrida em tempo real pelo FLC para o ambiente 1.
Na
Figura
104
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são
0,349 e 0,188 respectivamente.
127
Figura 104
Posição atual e referências em função do tempo para o FLC em tempo real no o ambiente 1.
Os sinais de controle aplicados nos motores são apresentados na
Figura
105
. O desvio padrão
calculado para estes sinais de controle é 2,39 para o motor esquerdo e 2,13 para o motor direito.
Figura 105
Sinais de controle para o FLC em tempo real para o ambiente 1.
5.3.2.2
Ambiente 2
A trajetória percorrida e planejada é mostrada na
Figura
106
. O ângulo de estacionamento
utilizado neste experimento foi de 180
o
com relação à horizontal.
Figura 106
Trajetória percorrida em tempo real pelo FLC para
o ambiente 2.
128
Na
Figura
98
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são 0,207 e 0,204 respectivamente.
Figura 107
Posição atual e referências em função do tempo para o FLC em tempo real para o ambiente 2.
Os sinais de controle aplicados nos motores são apresentados na
Figura
108
. O desvio padrão
calculado para estes sinais de controle é 2,36 para o motor esquerdo e 2,41 para o motor d
ireito.
Figura 108
Sinais de controle para o pelo FLC em tempo real para o ambiente 2.
5.3.3
Controlador Preditivo
A seguir são apresentados os experimentos utilizando o controlador preditivo descrito no
capítulo 4. Este controlador utiliza uma lei de controle mais elaborada que o controlador PID, o que
resulta em erros menores entre a trajetória planejada e percorrida, porém, não leva em consideração o
ângulo de estacionamento do robô, como no controlador fuzzy
.
O critério para a
comutação dos
waypoints
utilizado foi por tempo, pois é o único possível para
este controlador.
5.3.3.1
Ambiente 1
A trajetória percorrida e planejada é mostrada na
Figura
109
.
129
Figura 109
Trajetória percorr
ida em tempo real pelo controlador preditivo para o ambiente 1.
Na
Figura
110
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são 0,118 e 0,055 respectivamente.
Figura 110
Posição atual e referências em função do tempo para o controlador preditivo em tempo real para o ambiente 1.
Os sinais de controle aplicados nos motores são apresentados na
Figura
111
. O desvio padrão
calculado para estes s
inais de controle foram 2,70 para o motor esquerdo e 2,95 para o motor direito.
Figura 111
Sinais de controle para o controlador preditivo em tempo real para o ambiente 1.
130
5.3.3.2
Ambiente 2
A trajetória percorrida e planejada é most
rada na
Figura
112
.
Figura 112
Trajetória percorrida em tempo real pelo controlador preditivo para o ambiente 2.
Na
Figura
113
estão as posições do robô com relação aos eixos X e Y. Os valores de
RMS
X
e
RMS
Y
são 0,051e 0,100 respectivamente.
Figura 113
Posição atual e referências em função do tempo para o controlador preditivo em tempo real para o ambiente 2.
Os sinais de controle aplicados nos motores são apresentados na
Figura
114
. O desvio padrão
calculado para estes sinais de controle foram 2,42 para o motor esquerdo e 2,77 para o motor direito.
Figura 114
Sinais de controle para o controla
dor preditivo em tempo real para o ambiente 2.
131
Capítulo 6
Conclusões e Trabalhos Futuros
6.1
Conclusões
O escopo deste trabalho encontra-se dentro de um ramo da robótica designado robótica móvel,
que enfoca os robôs capazes de se deslocar por conta própria. As aplicações práticas em robótica
móvel requerem a análise de diversos fatores, incluindo-se o conhecimento do modelo, técnicas de
sensoriamento, a representação espacial do robô e do seu ambiente, sistema de controle, navegação e
planejamento de trajetória. Com isso, os robôs móveis são uma promissora plataforma para aplicação
e validação de técnicas de controle novas ou consolidadas em diferentes áreas da engenharia, tais
como programação em tempo real e visão computacional. Para atender a estes objetivos, a
multidisciplinaridade se faz necessária. Os conceitos de mecânica, elétrica/eletrônica e computação
são integrados para dar suporte à esta área.
O segundo capítulo da dissertação apresentou um estudo sobre métodos de planejamento de
trajetórias que podem ser usados em robôs móveis. Ao final deste capítulo é proposto um método
novo, que une vantagens dos métodos tradicionais e tenta explorar ao máximo as informações a
respeito da geometria dos obstáculos quando estas estão disponíveis. Tal algoritmo, denominado d
e
K-
Bug
, pode ser utilizado tanto para melhorar o desempenho de m
é
todos de busca locais quanto como
uma técnica de planejamento global de trajetórias. Quando comparado com métodos consagrados da
lit
eratura, o K-
Bug
mostrou-se eficiente, pois foi o algoritmo de menor esforço computacional
implementado. Levando em consideração a informação global do ambiente, o algoritmo proposto
mostrou
-se robusto o suficiente para gerar trajetórias viáveis mesmo para ambientes que geralmente
apresentam problemas de mínimos locais para os métodos clássicos, a citar por exemplo os campos
potenciais e os algoritmos genéticos.
O algoritmo K
Bug
se mostrou promissor principalmente para ambientes estáticos. Apesar de
não ter sido fornecida nenhuma prova matemática da otimização dos resultados, todos os testes
realizados geraram trajetórias muito próximas das geradas pelo A*. Além disso, o K
Bug
não
necessita decompor o ambiente, como é necessário nos métodos de busca enumerativos como o A*.
132
As operações de decomposição em células, grafos de visibilidade e diagramas de Voronoi, estas
ferramentas bastante usadas para tal fim, são tão custosas computacionalmente que, em alguns casos,
superam o processamento do próprio algoritmo de busca. O tempo computacional gasto para
processar os ambientes pelo algoritmo K
Bug
foi inferior a todos os demais métodos estudados. Este
baixo tempo computacional permitiu a sua implementação com sucesso em tempo real.
Nos capítulos 3 e 4 foram apresentados três controladores diferentes para realizar o segu
imento
da trajetória planejada, um controlador PID, um controlador baseado em lógica fuzzy e um
controlador preditivo baseado em modelo. O controlador PID foi o de concepção mais simples, menor
custo computacional e menor complexidade de implementação. O c
ontrolador fuzzy
foi o que
apresentou o maior número de parâmetros a serem sintonizados, porém a sua sintonia é feita através
de termos lingüísticos amigáveis. A base de regras proposta mostrou-se adequada para controlar o
seguimento da trajetória do robô móvel e também o seu ângulo de aproximação em cada
waypoint
. O
controlador preditivo apresentou o melhor desempenho, porém possui o maior custo computacional.
O modelo linear do robô móvel mostrou-se suficientemente adequado para que o controlador
preditiv
o fosse capaz de controlar a sua trajetória tanto em simulação quanto em tempo real. Alguns
ensaios foram conduzidos com o intuito de inserir restrições, em amplitude e variação, nas variáveis
de controle, porém o seu alto custo computacional tornou impeditiva a sua utilização em tempo real e
esta opção não foi considerada nesta dissertação.
O controlador fuzzy apresenta uma característica diferente dos demais controladores
apresentados, pois este consegue produzir trajetórias de estacionamento afastando
-
se
da referência em
determinadas situações. Para que o ro executasse trajetórias de estacionamento utilizando os
controladores PID ou preditivo é necessário um planejamento executado a priori, podendo estas
referências de aproximação serem inseridas como
w
aypoints
intermediários
Através da configuração adequada da sua base de regras do controlador baseado em lógica
Fuzzy
foi possível fazer com que o robô se aproximasse do ponto de destino com uma orientação
controlada sem ser necessário qualquer alteração nas trajetórias planejadas. Neste trabalho, foram
considerados valores constantes para o raio das curvas de aproximação. Entretanto, nada impede que
os valores dos erros de posição sejam escalados em função do tamanho do robô, o que torna o
controle invariante com as dimensões do robô ou do ambiente. Para modelos com diferentes
parâmetros dinâmicos faz-se necessário reconfigurar apenas as funções de pertinência, mantendo as
tabelas de inferência.
A plataforma de simulação apresentada no capítulo 3 e 4 foi capaz de simular o modelo do
robô móvel utilizado e, através de diferentes algoritmos de planejamento e controle de trajetórias,
também simulou a contento o controle do robô. Os experimentos com diferentes combinações de
algoritmos de planejamento e controle
e cada um dos algoritmos foram customizados com relação aos
seus parâmetros. Mesmo no controlador fuzzy, que possui mais de 50 parâmetros, todos podem ser
escolhidos pelo usuário.
133
Assim sendo, a plataforma de simulação pode ser utilizada também para fins didáticos, pois
além de permitir uma grande diversidade de combinações de controladores, planejadores e modelos, a
sua interface gráfica e os recursos visuais são amigáveis mesmo para alunos de engenharia que
estejam iniciando o aprendizado relativo a sist
emas controle.
A implementação em tempo real apresentada no capitulo 5 averiguou a viabilidade dos
algoritmos estudados. O sistema de controle do robô móvel proposto alcançou os objetivos desejados
pois, com maior ou menor grau de otimização, atendeu aos requisitos de planejar e controlar a
trajetória de um robô móvel com uma câmera aérea, comprovando ser viável a utilização de sistemas
de visão computacional para determinar a posição de robôs móveis. O fato de existir apenas um laço
na malha de controle facilitou a implementação prática tanto quanto ao
software
quanto ao
hardware
.
Nesta abordagem não sensores que provoquem um aumento acumulativo de erros de medição, tais
como giroscópios, acelerômetros ou
encoders
. Como a câmera fornece a posição absoluta do robô, o
desempenho do sistema apresentado não é alterado com o passar do tempo, como acontece em
sistemas que utilizam sensores inerciais.
Todo o sistema foi implementado com uma concepção modular, portanto, qualquer uma das
suas partes pode ser facilmente substituída. A câmera e o sistema de transmissão e recepção via rádio
são padrões comuns encontrados no mercado nacional, podendo serem substituídos sem quaisquer
alteração de
software
ou
hardware
. Até o robô pode ser substituído, desde que seja mantida a sua
tração diferencial, apenas é necessária a sintonia dos controladores para os novos parâmetros
cinemáticos e dinâmicos.
6.2
Trabalhos Futuros
O funcionamento do algoritmo de planejamento de trajetórias proposto neste trabalho, o K
Bug,
é diretamente influenciado pelo método que é usado para determinar o lado que será usado para
contornar um dado obstáculo. Em futuras pesquisas propõe-se experimentar configurações de outros
parâmetros ao invés do perímetro na determinação do lado a ser escolhido. Um e
xe
mplo seria
verificar o centro de massa de cada uma das metades do obstáculo. A metade cujo centro de mas
sa
possui a menor distância até a reta or
i
gem
destino e do ponto de origem será levada em cons
i
deração.
Uma nova linha para futuras pesquisas está no estudo da convergência do algoritmo. Espera-
se
comprovar que o K
Bug
gera caminhos válidos para quaisquer ambientes, desde que um caminho até
o destino exista. Também propõe-se estudar a viabilidade do K-
Bug
em ambientes dinâmicos, porém,
sabe
-se que a geração de trajetórias para estes ambientes envolve também o controlador empregado,
pois de nada adianta determinar trajetórias válidas sem um controlador capaz de percorrê las no
momento correto, de forma a evitar os obstáculos que se deslocam.
134
Em trabalhos futuros espera-se verificar a estabilidade dos controladores apresentados nesta
dissertação e, caso esta não se aplique em todos os casos, determinar quais são as situações limites e
quais as condições para a sua ocorrência.
Também pode-se utilizar estratégias de controle híbridas, alternando comportamentos do
controle PID, fuzzy e preditivo, ou ainda de forma integrada em um mesmo controlador. Para os
controladores com maior custo computacional, existem estudos (Camacho e Bordons, 2004; Lages
et al., 2001; Seyr et al., 2005) sobre a utilização de redes neurais para agilizar o processo do cálculo
da lei de controle. Uma rede neural pode ser treinada para reproduzir o comportamento de um dado
controlador e então ser aplicada no sistema real substituindo o m
esmo.
Neste trabalho, apenas os parâmetros do controlador PID foram determinados através de um
algoritmo de otimização, a Evolução Diferencial. As trajetórias de estacionamento do controlador
fuzzy, que afastam o robô da referência, tornam a determinação de uma função de custo que avalie a
trajetória percorrida pelo robô uma tarefa nada trivial. A grande quantidade de parâmetros do
controlador também dificultam a sua sintonia por métodos numéricos que não levam em consideração
a experiência do operador. Para trabalhos futuros propõe-se o estudo de técnicas de otimização com
múltiplos objetivos para sintonizar o controlador fuzzy de forma automática, baseada nos modelos de
simulação.
No sistema de controle em tempo real podem ser adicionados mais robôs móveis, desde que
todos estejam visíveis para a câmera. Pode-se, como é comum neste tipo de aplicação, utilizar
câmeras coloridas ou diferenças geométricas para identificar os robôs. Esta abordagem abre frentes de
trabalho novas para o estudo de técnicas de coop
eração de robôs.
Outra área a ser estudada seria o desenvolvimento de algoritmos para a determinação
automática dos obstáculos do ambiente. Neste trabalho, os obstáculos são pre-
selecionados
manualmente sobre a imagem da câmera. Isto impede de considerar ambientes dinâmicos nos
algoritmos de planejamento e controle. Com um sistema que seja capaz de determinar
online
a
posição e forma dos obstáculos seria possível, por exemplo, desviar de uma pessoa que estivesse
passando pelo caminho do robô móvel.
O fato d
e existir apenas um laço na malha de controle facilitou a construção do sistema, porém,
para aumentar a precisão da movimentação e melhorar o desempenho dos controladores quanto a
perturbações externas, pode-se adicionar outras formas de sensoriamento, conectadas a laços mais
internos de controle. Pode-se utilizar sistemas de medição inercial, odometria, sensores ultra
sônicos,
células de carga, entre outros. Sistemas de medição que utilizam sensores inerciais e encoders
possuem incertezas características, como escorregamento e
bias
. Porém, estes sensores podem
contribuir fechando um laço de controle de velocidade local no robô, de forma transparente para o
controlador de alto nível, que terá a sua topologia simplificada. Os sensores ultra-sônicos podem
ajud
ar a evitar obstáculos dinâmicos e células de carga podem informar alterações na dinâmica do
robô, como por exemplo uma alteração na sua massa devido ao aumento da sua carga transportada.
135
Bibliografia
Abidi, M. A.; Gonzales, R. C. (1992) Data Fusion in Robotics and Machine Intelligence. Academic
Press Professional, Inc.
San Diego, CA, USA.
Agirrebeitia, J.; Avile s R.; Bustos, I. F.; Ajuria, G. (2005) A New APF Strategy for Path Planning in
Environments with Obstacles, Mechanical Engineering Department, University of the Basque
Country, Alameda de Urquijo, Bilbao, Spain.
Ahn, C.W.; Ramakrishna, R. S. (2003) Elitism-Based Compact Genetic Algorithms. IEEE
Transactions on Evolutionary Computation, vol. 7, no. 4, pp. 367
385.
Alamir, M.; Sheibat Othman, N.; Othman, S. (2007) Constrained Nonlinear Predictive Control for
Maximizing Production in Polymerization Processes. IEEE Transactions on Control Systems
Technology, vol. 15, no. 2, pp. 315
323.
Almeida, A. D. V. de (2005) B Spline: CEAP
Algoritmos Culturais para a Geração de Trajetórias
B Spline de Robôs veis. Dissertação de Mestrado do Programa de Pós Graduação em
Engenharia de Produção e Sistemas. PUC
PR, Curitiba, PR.
Amidi, O. (1990) Integrated Mobile Robot Control. Carnegie Mellon University, Robotic I
nstitute.
Technical Report. Pittsburgh, USA.
Antonelli, G.; Chiaverini, S.; Fusco, G. (2007) A Fuzzy
Logic
Based Approach for Mobile Robot
Path Tracking. IEEE Transactions on Fuzzy Systems, vol. 15, no. 2, pp. 211
-
221.
Aracil, R.; Garcia, N.; Perez, C.; Sabater, J.M.; Azorn, J.M.; Reinoso, O.; Saltaren, R. (2005)
Perfermance Analysis of a Continuous Vision Based Control System for the Navigation of a
Mobile Robot. 16
o
IFAC World Congress. Prague, Czech Republic.
Asami, S. (1994) Robots in Japan: Present and Future. IEEE Robotics and Automation Magazine,
vol. 1, no. 2, pp. 22
26.
Åström, K.J. (1970) Introduction to Stochastic Control Theory, New York: Academic Press.
Åström, K.J.; Wittenmark, B. (1997) Computer-Controlled Systems: Theory and Design. 3
rd
ed.
Prentice
-
Hall, Inc. Upper Saddle River, NJ, USA.
Bäck, T.; Hammel, U.; Schwefel, H.P. (1997) Evolutionary Computation: Comments on the History
and Current State, IEEE Transactions on Evolutionary Computation, vol. 1, no. 1, pp. 3
17.
Bäck, T.; Schwefel, H.
; (1993) An Overview of Evolutionary Algorithms for Parameter Optimization.
Journal of Evolutionary Computation, vol. 1, no. 1, pp. 1
23.
Bender, E. A. (1996) Mathematical Methods in Artificial Intelligence. IEEE Computer Society Press.
Berardinis, L. A. (
1992) Clear Thinking On Fuzzy Logic. Machine Design. pp. 46
-
52.
Bishop, R. H. (2003) Learning With LabVIEW 7 Express, Prentice Hall.
136
Brand, V.C.; Paulis, C.W.; da Silva, M.V.G.; van Kaick, O.M.; Schwartz, W.R.; Pedrini, H. (2002)
Um Algoritmo Eficiente para Rastreamento de Objetos em Futebol de Robôs. EVINCI
UFPR,
Curitiba, PR.
Buckland, M.; Collins, M. (2002) AI Techniques for Game Programming. Premier Press. Portland,
OR, USA.
Camacho, E. F.; Bordons, C. A. (2004) Model Predictive Control. Springer-
Ver
lag New York, Inc.
Secaucus, NJ, USA.
Casacurta, A; Osório, F; Figueroa, F; Musse, S: (1998) Apostila de Computação Gráfica. UNISINOS
Centro de Ciências Exatas e Tecnológicas
Informática. São Leopoldo, RS.
Chang, Shih Jie; Li, Tzuu Hseng; (2002) Design and Implementation of Fuzzy Parallel
Parking
Control for a Car Type Mobile Robot. Journal of Intelligent and Robotic Systems. vol. 34, no. 2,
pp. 175 194.
Chenney, S. (2005) Computer Game Technology. Acesso em 04/2005:
http://www.cs.wisc.edu/~schenney/cou
rses/cs638
f2001/
Clarke, D. W.; Mohtadi, C.; Tuffs, P. S. (1987) Generalized Predictive Control
Part I. The Base
Algorithm.
Automatica. vol. 23, no. 2, pp. 137
-
148.
Comitê de Promoção da Indústria de Desenvolvimento de Jogos Eletrônicos no Brasil. (2006). Plano
Diretor da Promoção da Indústria de Desenvolvimento de Jogos Eletrônicos no Brasil. Associação
Brasileira de Desenvolvedores de Jogos Eletrônicos.
Cuesta, F.; Ollero, A.; Arrue, B.C.; Braunstingl, R.(2003) Intelligent Control of Nonholonomic
Mobil
e Robots with Fuzzy Perception. Fuzzy Sets and Systems, vol. 134, no. 1, pp. 47
-
64.
Curie, A. (1999) Acesso em março de 2007. http://www.faculty.ucr.edu/~currie/roboadam.htm
Cutler, C. R.; Ramacker, B. L. (1980) Dynamic Matrix Control: a Computer Control A
lgorithm.
IEEE Joint Automatic Control Conferente, San Francisco, CA, USA.
Dubois, D.; Prade, H. (1980). Fuzzy Sets and Systems
Theory and Applications. Academic Press,
USA.
Dudek, G.; Jenkin, M. (2000) Computational Principles of Mobile Robotics. New York: Cambridge
University Press.
Dynamic Optimization Technologi Products (1996) Technical Description of NOVA Nonlinear
Controller. Hydrocarbon Processing, Issue on Advanced Control and Information Systems,
Houston, TX, USA.
Essen, H. V.; Nijmeijer, H. (2001) Non-linear Model Predictive Control of Constrained Mobile
Robots. Proceedings of the European Control Conference, pp. 1157
1162, Porto, Portugal.
Feng, G. (2006) A Survey on Analysis and Design of Model Based Fuzzy Control Systems IEEE
Transactions on
Fuzzy Systems, vol. 14, no. 5, pp. 676
697.
Ferentinos, K.P.; Arvanitis, K.G.; Sigrimis, N. (2002) Heuristic Optimization Methods for Motion
Planning of Autonomous Agricultural Vehicles. Journal of Global Optimization, vol. 23, no. 2, pp.
155
-
170.
Foka, A. F.; Trahanias, P. E. (2003) Predictive Control of Robot Velocity to Avoid Obstacles in
Dynamic Environments. Proceedings of the 2003 IEEE/RSJ. International Conference on
Intelligent Robots and Systems, vol. 55, no. 7, pp. 561
-
571.
Franklin, G. F.; Powell, J. D.; Workman, M. L. (1990) Digital Control of Dynamic Systems. 2
nd
ed,
Massachussets: Addison
Wesley, USA.
Fu, K. S.; Gonzalez, R. C.; Lee, C. S. G. (1987) Robotcs: Control, Sensing, Vision and Intelligence.
Ed. McGraw
Hill, New York
NY, USA.
137
Fuller
, A.T. (1976) The Early Development of Control Theory. ASME
Dynamic Systems,
Measurement & Control. vol. 98G, no. 2, pp. 109
118.
Garcia, C. E.; Morshedi, A. M. (1986) Quadratic Programming Solution of Dynamic Matrix Control
(QDMC). Chemical Engineering
Communications, New York, NY, USA, pp. 73
87.
Garcia, C. E.; Prett, D. M.; Morari, M. (1989) Model Predictive Control: Theory and Practice
a
Survey.
Automatica, New York, NY, USA, vol. 25, no. 3, pp. 335
348.
Gasparini, A. F. L. (2004) Infra Estrutura, Protocolos e Sistemas Operacionais de LANs
Redes
Locais, Ed. Érica, São Paulo, SP.
Goldberg, D.E. (1989). Genetic Algorithms in Search Optimization and Machine Learning, Reading,
MA: Addison
-
Wesley.
Goldberg, D.E. (1994) Genetic and Evolutionary Algorithms Come of Age, Communications of the
ACM, vol. 37, no. 3, pp. 113
-
119.
Gómez
-Ortega, J. (1994) Navegación en Móviles Basada en Técnicas de Control Predicitvo
Neuronal. PhD thesis. Escuela Superior de Ingenieros, Universidad de Sevilla, Spain.
Gómez
-
Ortega,
J.; Camacho, E. F. (1996) Mobile Robot Navigation in a Partially Structured Static
Environment, Using Neural Predictive Control. 4th Control Engineering Practice, vol. 12, no. 12,
pp. 1669
-
1679.
Gomide, F. A. C.; Rodrigues, C. C. (1994) Guiagem de Veículos Autônomos Utilizando Sensor de
Visão. Anais do 10° Congresso Brasileiro de Automática, Rio de Janeiro, RJ, pp. 873
878.
Grimble, M. J.; Ordys, A. W. (2001) Predictive Control for Industrial Applications. Annual Reviews
in Control. vol. 25, no. 5, pp. 13
24.
Gu , D.; Hu, H. (2005) A Stabilizing Receding Horizon Regulator for Nonholonomic Mobile Robots.
IEEE Transactions on Robotics, vol. 21, no. 5, pp. 1022
1028.
Hammouda, K. (2000) A Comparative Study of Data Clustering Techniques. SYDE 625: Tools of
Int
elligent Systems Design. Course Project. University of Waterloo, Ontario, Canada.
Harden, T.A. (1997) The Implementation of Artificial Potential Field Based Obstacle Avoidance for a
Redundant Manipulator. Ph.D. Thesis, University of Texas, Austin, USA.
Har
t, P. E.; Nilsson, N. J.; and Raphael, B. (1968). A Formal Basic for the Heuristic Determination of
Minimum Cost Paths. IEEE Transactions Systems, Man, and Cybernetics. vol. 4, no. 5, pp. 100-
107.
Heinen, F. J. (2000). Robótica Autônoma: A Integração entre
Planificação e Comportamento Reativo.
Editora Unisinos, São Leopoldo, RS.
Honda (2000) Acesso em março de 2007. http://world.honda.com/ASIMO/
Horn, B. K. P. (1986). Robot Vision. MIT Press, Cambridge, USA.
Howard, A.; Tunstel, E.; Edwards, D.; Carlson, A. (2001) Enhancing Fuzzy Robot Navigation
Systems by Mimicking Human Visual Perception of Natural Terrain Traversability. Joint 9th
IFSA World Congress, Vancouver, BC, Canada, pp. 7
-
12.
Jain, A. K.; (1989) Fundamentals of Digital Image Processing. Prentice Hall, Inc. Upper Saddle
River, NJ, USA.
Kalman, R. E. (1960) A New Approach to Linear Filtering and Prediction Problems. Transaction of
the ASME
-
Journal of Basic Engineering, vol. 82D, no. 1, pp. 35
-
45.
Kambhampati, S.; Davis, L. (1986) Multiresolution Path Planning for Mobile Robots. IEEE Journal
of Robotics and Automation, vol. RA
-
2, no.3, pp. 135
-
145.
Kamon, I.; Rivlin, E. (1997) Sensory Based Motion Planning with Global Proofs. IEEE Transactions
on Robotics and Automation. vol. 13, no. 6, pp. 814
-
822.
138
Kathib, O. (1986). Real time Obstacle Avoidance for Manipulators and Mobile Robots. International
Journal of Robotics Research. vol. 5, no. 1, pp. 90
-
98.
Keramas, J. G. (1999) Robot Technology Fundamentals. Delmar Publisher. Albany, USA.
Khosla, P.; Volpe, R. (1988) Superquadratic Artificial Potentials for Obstacle Avoidance and
Approach, Proceedings of the IEEE Conference on Robotics and Automation, pp.1178
-
1784.
Klan ar, G.; krjanc I.(2007) Tracking Error Model Based Predictive Control for Mobile Robots in
Real Time. Proceedings of Robotics and Autonomous Systems vol. 55, no. 6, pp. 460
-
469.
Krogh, B. H. (1984) A Generalized Potential Field Approach to Obstacle Avoidance Control,
Proceedings of International Robotics Research Conference, Bethlehem, Pen
nsylvania, PA, USA.
Lages, W. F.; Oliveira, V. M.; de Pieri, E. R. (2001) Controle em Malha Fechada de Robôs Móveis
Utilizando Redes Neurais e Transformação Descontínua. V Simpósio Brasileiro de Automação
Inteligente.
Canela, RS.
Lampinen, J.; Zelinka, I. (2000) On Stagnation of the Differential Evolution Algorithm. Proceedings
of 6
th
International Mendel Conference on Soft Computing. Brno, Czech Republic. Institute of
Automation and Computer Science. vol. 1, pp. 76
-
83.
Landau, E. (1909) Handbuch der Lehre von der Verteilung der Primzahlen. 2 vols. Leipzig: B. G.
Teubner.
Latombe, J.C. (1991) Robot Motion Planning, Kluwer Academic Publishers, Norwell, MA, USA.
Lee, D.T.; Schachter, B.J. (1980) Two Algorithms for Constructing the Delaunay Triangulation.
Inter
national Journal of Computer and Information Sciences, vol. 9, no. 3, pp. 219
-
242.
Lin Cai., Chen C.K., Chen, C.L. (1999) Path Planning and Dynamic Control of a Redundant Robot
Manipulator for Conveyor Tracking, International Journal of Systems Science, vol. 30, no. 5, pp.
491
-
503.
Lin Cai; Rad, A. B.; Chan, Wai Lok (2007) A Genetic Fuzzy Controller for Vehicle Automatic
Steering Control. IEEE Transactions on Vehicular Technology, vol. 56, no. 2, pp. 529
-
543.
Littman, M. L., Dean, T., Kaelbling, L. P. (1994) Markov Games as a Framework for Multi
Agent
Reinforcement Learning, Proceedings of the 9
th
International. Conference on Machine Learning,
San Francisco, CA, pp. 157
163.
Lumelsky V. J.; Skewis T. (1990) Incorporating Range Sensing in the Robot Navigation Function,
IEEE Transactions on Systems, Man and Cybernetics, vol. 20, no. 7, pp. 1058
-
1068.
Lumelsky V. J.; Stepanov, A. A. (1987) Path Planning Strategies for a Point Mobile Automaton
Moving Amidst Obstacles of Arbitrary Shape, Algorithmica, vol. 2, pp.
403
-
430.
Lyapunov, M.A. (1907) Problème général de la stabilité du mouvement. Annales de la faculté des
sciences de Toulouse, vol. 9, no. 2, pp. 203
-
474.
Ma, Y.; Kosecká, J.; Sastry, S. S. (1999) Vision Guided Navigation for a Nonholonomic Mobile
Robot. IE
EE Transactions on Robotics and Automation, vol. 3, no. 15, pp. 521
-
536.
Mahjoubi, H.; Bahrami, F.; Lucas, C. (2006) Path Planning in an Environment with Static and
Dynamic Obstacles Using Genetic Algorithm: A Simplified Search Space Approach. 2006 IEEE
Co
ngress on Evolutionary Computation. Vancouver, BC, Canada, pp. 8853
8860.
Mamdani, E.; Assilian, S. (1975) An Experiment in Linguistic Synthesis with a Fuzzy Logic
Controller, International Journal of Man
Machine Studies, vol. 7, no. 1, pp. 1
-
13.
Mandow, A
.; Gomes
de
Gabriel, J. M.; Martinéz, J. L.; Muñoz, V. F.; Ollero, A.; Garcia
Cerezo, A.
(1996) The Autonomous Mobile Robot AURORA for Greenhouse Operation. IEEE Robotics and
Automation Magazine, vol. 1, no. 4, pp. 18
-
28.
139
Martin, G. (1997) Nonlinear Model Predictive Control with Integrated Steady State Model
Based
Optimization. Proceedings of the Alche National Meeting, Houston, TX.
Martínez
Alfaro, H.; Gómez García, S. (1998) Mobile Robot Path Planning and Tracking Using
Simulated Annealing and Fuzzy Logic Control. Expert Systems with Applications, vol. 15, no. 1,
pp. 421
-
429.
Maxwell, J.C. (1868) On Governors. Proceedings of the Royal Society of London, vol. 16, pp. 270-
283.
Mayne, D. Q.; Rawlings, C. V. R.; Scokaert, P. O. M. (2000) Constrained Model Predictive Control:
Stability and Optimality.
Automatica, vol. 36, no. 6, pp. 789
-
814.
Mclurkin, J. (1995) Using Cooperative Robots for Explosive Ordnance Disposal. Artificial
Intelligence Laboratory, Massachussets Institute of Technology, Cambridge, MA, USA.
Mendel, J. M. (1995). Fuzzy Logic Systems for Engineering: A Tutorial. Processing for a Self
Navigation Veicle. IEEE Transactions Industrial Eletronics. vol. 40, no. 1, pp. 145
-
154.
Minorsky, N. (1922) Directional Stability and Automatically Steered Bodies. Journal American
Society Navigation Engineering, vol. 34, no. 2, pp. 280
-
309.
Mucientes
, M.; Iglesias, R.; Regueiro, C.V.; Bugar, A.; Barro, S.
(2003)
A F
uzzy
T
emporal
R
ule
B
ased
V
elocity
C
ontroller for
M
obile
R
obotics
.
Fuzzy Sets and Systems
,
vol. 134
, n. 1, pp.
83
-
99
.
N.A.S.A. (1997) Mars Pathfinder. Jet Propulsion Laboratory, California Institute of Technology,
Pasadena, CA, USA.
Nareyek, A. (2004) AI in Computer Games.
ACM Queue, vol. 1, no. 10.
Carnegie Mellon University.
Nehmzow, U. (2000) Mobile
Robotics: A Practical Introduction. Springer. Londres.
Nguyen, H. T.; Walker, E. A. (2000) A first course in fuzzy logic. 2nd ed Boca Raton: Chapman &
Hall.
Nilsson, N.J. (1969) A Mobile Automaton: an Application of Artificial Intelligence Techniques.
Pro
ceedings of the 1st International Joint Conference on Artificial Intelligence, pp. 509
520.
Washington, DC, USA.
Normey
Rico, J. E.; Gómez Ortega, J.; Camacho, E. F. (1999) A Smith-
Predictor
-
Based Generalised
Predictive Controller for Mobile Robot Path-
tra
cking. Control Engineering Practice, vol. 7, no. 6,
pp. 729
-
740.
Pittsburgh, PA, USA.
Ogata, K. (2004) Engenharia de Controle Moderno. Prentice Hall. Quarta Edição.
Oliveira, G. H. C. (1997) Controle Preditivo para Processos com Incertezas Estruturadas baseado em
Séries de Funções Ortonormais. Tese de Doutorado. Universite de Nice Sophia Antipolis, UNSA,
França.
Oliveira, G. H. C.; Carvalho, J. R. H. (1999) Trajectory Tracking For Nonholonomic Mobile Robots
using Predictive Methods. In: European Control Conference (ECC). Proceedings of the 5th
Europen Control Conference.
Karlshue, Germany.
Oliveira, G. H. C.; Carvalho, J. R. H. (2003) A non-linear predictive control scheme for
nonholonomic mobile robots. Proceedings of the 7
th
IFAC on Symposium on Robot Co
ntrol.
Wroclaw, Polónia.
Ollero, A.; Amidi, O. (1991) Predictive Path Tracking of Mobile Robots. Applications to the CMU
Navlab. Proceedings of the IEEE 5th International Conference on Advanced Robotics, p. 1081-
1086, Pisa, Italy.
Ollero, A.; Garcia
Cerezo
, A.; Martinez, J. L. (1994) Fuzzy Supervisory Path Tracking of
Autonomous Vehicles. Control Engineering Practice, vol. 2, no. 2, pp. 313
-
319.
140
Parker, J. R. (1997) Algorithms for Image Processing and Computer Vision. New York, NY, USA:
Wiley Computer Pub.
Paula, B. C. De, (2004) Pesquisa Sobre Pathfinding e Path Planning, dissertação de mestrado,
Programa de Pós
-
Graduação em Informática, PUC
PR. Curitiba, PR.
Pazos, F. (2002).Automação de Sistemas e Robótica. Editora Axcel, Rio de Janeiro, RJ.
Qin, S. J.; Badgwell, T. A. (1997) An Overview of Industrial Model Predictive Control Technology.
Proceedings of the 5th International Conference on Chemical Process Control, vol. 93, no. 316,
pp. 232
256, Tahoe City, CA.
Ragazzini, J.R.; Franklin, G.F. (1958) Sampled Data Control Systems,: McGraw Hill, New York,
NY, USA.
Ragazzini, J.R.; Zadeh, L.A. (1952) The Analysis of Sampled Data Systems, Trans. AIEE, vol. 71,
no. 2, pp. 225
-
234.
Rashid, M. H. (1999) Eletrônica de Potência: Circuitos, Dispositivos e Aplicações. Makron Books,
São Paulo, SP.
Rich, E. (1988) Inteligência Artificial.
Ed. McGraw
Hill, São Paulo, SP.
Richalet, J.; Rault, A.; Testud, J.L.; Papon, J. (1976) Algorithmic Control of Industrial Processes. 4th
IFAC Symposium on Identification and System Parameter Estimation. pp. 1119
1167.
Tbilisi,
URSS.
Righes, E. R. (2004) Processamento de Imagens para Navegação de Robôs Autônomos. Monografia,
Universidade do Vale do Rio dos Sinos, São Leopoldo, RS.
Routh, E.J. (1888) A Treatise on the Stability of a Given State of Motion. Macmillan & Co. London,
UK.
Routledge, R. (1900) Discoveries & Inventions of the Nineteenth Century. 13ª edição.
Samsom, C.; AIT-Aberrahim, K.; (1990) Mobile Robot Control Part 1: Feedback control of a
Nonholonomic Wheeled Cart in Cartesian Space. Institut National de Recherche en Informatique
et en Automatic, France.
Sandi, F. S.; Hemerly, E. M.; Lages, W. F. (1998) Sistema para Navegação e Guiagem de Robôs
Móveis Autônomos. SBA Controle & Automação. vol. 9, no. 3, pp. 107
-
110.
Santos, V.
M. F.; (2001) Apostila de Robótica Industrial. Universidade de Aveiro, Portugal.
Schraff, R. D. (1994) Mechatronics and Robotics for Service Applications. IEEE Robotics and
Automation Magazine. vol. 1, no. 4, pp. 31
35
Schwartz, D. G.; Klir, G. J. (1992) Fuzzy Logic Flowers In Japan. IEEE Spectrum, vol. 29, no. 7, pp.
32
-
35.
Sedra, A. S.; Smith, K. C. (1998) Microelectronic Circuits. 4th ed. Oxford University Press, New
York, NY, USA.
Seyr, M.; Jakubek, S. (2005) Mobile Robot Predictive Trajectory Tracking. Proceedings of the
Second International Conference on Informatics in Control, Automation and Robotics, pp. 112
119. Barcelona, Spain.
Seyr, M.; Jakubek, S.; Novak, G. (2005) Neural Network Predictive Trajectory Tracking of an
Autonomous Two
-
Wheeled Mobile
Robot. Proceedings of the 16
th
IFAC World Congress, Prague,
Czech Republic.
Preparata, F. P.; Shamos, M. I. (1985) Computational Geometry: an Introduction. Springer-
Verlag
New York, Inc. New York, NY, USA
Shaw, I. S.; Simões, M. G. (1999) Controle e Model
agem Fuzzy. E. Blücher, São Paulo, SP.
141
Siegwart, R; Nourbakhsh, I. (2004) Introduction to Autonomous Mobile Robots. MIT Press,
Cambridge, Massachusetts, USA.
Sierakowski, C.A. Costa, A.C.P.L.; Coelho L. S.; (2004) Uma Comparação de Algoritmos Genéticos,
Pr
ogramação Evolucionária e Evolução Diferencial para Otimização de Trajetórias de Robôs
Móveis. 2nd Encontro de Robótica Inteligente, Congresso da SBC, Salvador, BA.
Silva, C. A. S. (2001) Representations for Visual Perception and the Interpretation of Occl
usions.
Tese de Doutorado, Universidade Técnica de Lisboa, Departamento de Engenharia Eletrotécnica e
de Computadores. Lisboa, Portugal.
Silveira, J.; Aude, E.; Martins, M. (1997) Trajectory Planning with Obstacle Avoidance within
CONTROLAB. Workshop em Ro
bótica Inteligente, Brasília
DF.
Souza, D. J. (2003) Desbravando o PIC. 1
a
ed. São Paulo, SP: Erica.
Storn, R.; Price, K. (1997) Differential Evolution
A Simple and Efficient Heuristic for Global
Optimization over Continuous Spaces. Journal of Global O
ptimization. vol. 11, no.4, pp. 341
359.
Sujan, V. A.; Meggiolaro, M. A.; Belo, F. A. W. (2006) A New Technique in Mobile Robot
Simultaneous Localization and Mapping. Revista Controle & Automação, vol. 17, n. 2, pp. 189
203.
Takahashi, Y.; Komeda, T.; Koyama, H. (2004) Development of Assistive Mobile Robot System:
AMOS. Advanced Robotics, vol. 18, no. 5, pp. 473
-
496.
Tsuji, T.; Tanaka, Y.; Morasso, P.G.; Sanguineti, V.; Kaneko, M. (2002) Bio mimetic trajectory
generation of robots via artificial potential field with time base generator. IEEE Transactions on
Systems, Man and Cybernetics
Part C, vol. 32, no. 4, pp. 426
-
439.
Tu, J.; Yang, S. X. (2003) Genetic algorithm based path planning for a mobile robot. Proceedings of
the IEEE International Conference on Robotics & Automation, Taipei, Taiwan, no. 3, pp. 1221-
1226.
Vadakkepat P., Tan, C. K..
Ming
Liang W. (2000). Evolutionary Artificial Potential Fields and their
Application in Real Time Robot Path Planning, Proceedings of Congress of Evolutionary
Comput
ation, pp. 256
263, San Diego, CA, USA.
Vaneck, T. W. (1997) Fuzzy Guidance Controller for an Autonomous Boat. IEEE Control Systems.
Prentice Hall, Englewood Cliffs, USA.
Xiao, J., Z. M., Zhang, L.; Krzysztof, T. (1997). Adaptive Evolutionary Planner/Navig
ator for Mobile
Robots. IEEE Transactions on Evolutionary Computation, vol. 1, no. 1, pp. 18
-
28.
Yager, R. R.; Filev, D. P. (1994) Essentials of Fuzzy Modeling and Control. New York, NY, USA:
John Wiley & Sons.
Yang, X.; He, K.; Guo, M.; Zhang, B. (1998) An Intelligent Predictive Control Approach to Path
Tracking Problem of Autonomous Mobile Robot. Proceedings of the IEEE International
Conference on Systems, Man and Cybernetics, San Diego, CA, USA.
Yao, X.; Liu, Y. Lin, G. (1999) Evolutionary programming made faster. IEEE Transactions on
Evolutionary Computation, vol. 3, no. 2, pp. 82
-
102.
Zadeh, L. A (1965) Fuzzy Sets. Information and Control, vol. 8, pp. 338
-
353.
Zavlangas, P. G.; Tzafestas, S. G. (2003) Motion Control for Mobile Robot Obstacle Avoidance
and
Navigation: A Fuzzy Logic Based Approach. Systems Analysis Modeling Simulation. vol. 43,
no. 12, pp. 1625
-
1637.
Zhang, H.; Ostrowski, J. P. (1999). Visual Servoing with Dynamics: Control of an Unmanned Blimp.
In Proceedings of the IEEE International Conference on Robotics & Automation, vol. 1, pp. 618-
623, Detroit, Michigan, USA.
142
Lista de Anexos
ANEXO A
Diagrama elétrico do transmissor e receptor para o robô
ANEXO B
Memorial descritivo do projeto do hardware
ANEXO C
Código do micro
-
controlador
do robô
143
ANEXO A -
Diagrama elétrico do transmissor e receptor para o robô
144
ANEXO B
-
Memorial descritivo do projeto do hardware
1) Especificações Gerais
Módulo de controle de velocidade de dois motores DC de 9V/5.4W, com resolução de 100
níveis am
ambos os sentidos de rotação;
Controle dos motores através de sinal PWM com freqüência de 20kHz;
Sinal de referência dos motores vindo do computador pela interface serial;
Comunicação entre o computador e o robô via rádio;
Atualização do sinal de referênci
a dos controladores PWM a cada 10ms;
Alimentação com duas baterias de 9V;
2) Módulo Transmissor
a) Par Transmissor / Receptor
Conforme especificação do projeto deveria ser utilizado um par transmissor-receptor de dados
sem fio para a comunicação entre o robô e o computador controlador. Após uma pesquisa por
diversos componentes, optou-se por utilizar um par Rx/Tx comercial fabricado pela Telecontrolli, o
RR3 433.93 como receptor e o RT4 433.92 como transmissor. Tal escolha foi baseada em critérios de
cust
o, dimensões físicas, facilidade de compra e reposição, taxa de transmissão de dados, facilidade
de utilização, alcance e imunidade a ruídos.
A máxima taxa de transmissão conseguida foi de 2.4Kbps. Assim o projeto disponibilizou duas
taxas diferentes, 2.4K
bps e 1.2Kbps.
A alimentação do módulo transmissor é feita por uma bateria de 9V, uma vez que o
componente permite tensões de até 14V.
b) Conversor RS232
-
TTL
Para a conecção do transmissor a porta serial do computador, faz-se necessário um conversor
de níveis de tensão RS232 ( 9V) para TTL (0V a 5V). O componente da MAXIN tipo MAX-232 foi
usado para tal fim
3) Módulo Receptor/Controlador
a) Alimentação
A placa de circuito que é presa ao ro e alimentada com duas baterias de 9V em série,
resultando em uma tensão de entrada de 18V. A fonte de alimentação do robô prevê dois níveis de
145
tensão diferentes para atender aos requisitos dos componentes da placa receptora. A alimentação
principal é de 5V, que é obtida através do componente LM7805 diretamente das bat
erias.
A alimentação do circuito de potência e feita com um regulador série sem realimentação. A
tensão de entrada do regulador vinda diretamente das baterias poderia variar entre 18V e 14V sem
problema algum para o circuito de potência. A saída do regulador é uma tensão de 10.7V com uma
corrente máxima de 2A.
b) Microcontrolador e controle PWM
O microcontrolador escolhido foi o PIC16F74 da Microchip, pois inclui a comunicação serial,
dois módulos de controle PWM, módulos de temporização e memória tipo
FL
ASH
que permite escrita
e leitura de programa através de gravadores simples, facilitando o desenvolvimento do
firmware
.
Para a seleção da taxa de comunicação foi ligada uma chave diretamente na entrada RA0 do
microcontrolador. Um nível de tensão de 0V na inicialização do sistema provoca uma comunicação
em 1.2Kbps. Caso contrário a velocidade é de 2.4Kbps.
O circuito conta com um
led
indicador na cor verde para sinalizar o status da comunicação.
Quando o
led
estiver aceso, a conexão entre o robô e o computador foi estabelecida (depois do
Login
), caso contrário o ronão atenderá aos comandos enviados pelo computador. O
led
é apagado
na inicialização ou quando o
Logoff
é recebido.
As saídas dos controladores PWM estão disponíveis nos pinos RC1/CCP2 e RC2/CCP1
. Como
o sentido de rotação dos motores é bidirecional, foi necessário a adição de uma lógica multiplicadora
para poder comutar os sinais de controle entre as entradas do componente de acionamento. O
multiplicador CD4053 seleciona quais entradas da ponte H
receberão os sinais do PWM.
c) Circuito de Potência
Para o acionamento dos motores foi usado o L298. Tal componente possui duas pontes H
embutidas funcionando de maneira independente. Sua capacidade de corrente máxima é de 2A por
motor e a tensão de alimentação é de até 37V. Os diodos que compõe as pontes H provocam uma
queda de no mínimo 1.7V. Dessa forma, para uma alimentação de 9V nos motores é necessário a
alimentação de no mínimo 10.7V.
146
ANEXO C
-
Código do micro
-
controlador do robô
ESTE FIRMWARE IMPLEMENTA O CONTROLE DE VELOCIDADE DE DOIS MOTORES DE UM ROBO ATRAVÉS DE DUAS SAÍDAS
PWM. O CONTROLE DOS MOTORES É FEITO BASEADO EM PALAVRAS DE CONTROLE PROVENIENTES DE UMA INTERFACE SERIAL
WIRELESS.
;
O ROBO ESPERA POR UM LOGIN INICIAL QUE DEVER
Á SER ENVIADO PELO PC. ESTE LOGIN EQUIVALE À
;RECEPÇÃO DE PELO MENOS TRÊS PALAVRAS MORTAS (F0 H) E EM SEGUIDA UMA PALAVRA DE LOGIN (FA H). O
;LOGOFF SERÁ EFETUADO COM A RECEPÇÃO DE DUAS VEZES A PALAVRA DE LOGOFF (FF H).
;
A VELOCIDADE DOS MOTORES VA
RIA EM 100 VALORES DIFERENTES EM AMBAS AS DIREÇÕES
; FRENTE: 27D = 0% 127D = 100%,
TRÁS: 128D = 0%
228D = 100%
;************************************************************************************
;
ANTES DE GERAR ARQUIVO CÓDIGO, CONFIGURAR OS BI
TS DE CONFIGURAÇÃO DO PIC16F74 NO
;
COMPILADOR CONFORME DESCRIÇÃO ABAIXO:
;
OSCILLATOR: HS WDT: OFF PWR UP: OFF BOD: OFF CODE: OFF
;************************************************************************************
#INCLUDE <P16F74.INC>
;************************************************************************************
;
DECLARAÇÃO DAS VARIÁVEIS UTILIZADAS NO PROGRAMA.
;************************************************************************************
T1
EQU 0X
20
T2
EQU 0X21
T3
EQU 0X23
DADO
EQU 0X24
COUNTER
EQU 0X25
VARI
EQU 0X26
RES1
EQU 0X27
RES2
EQU 0X28
PWM1H
EQU 0X29
PWM1L
EQU 0X2A
PWM2H
EQU 0X2B
PWM2L
EQU 0X2C
W_TEMP
EQU 0X2E
STATUS_TEMP
EQU 0X2F
PCLATH_TEMP
EQU 0X30
FLAGS
EQU 0X31
DA
DO1
EQU 0X32
ORG 0X00
; ENDEREÇO DE RESET.
NOP
GOTO INIC
; DESVIA PARA INICIO DO PROGRAMA
;************************************************************************************
;
INTERRUPÇÃO, OCORRE A CADA 10MS GRACAS AO TIMER 1.
;**********
**************************************************************************
ORG 0X04
BANKSEL PORTA
; SALVA VARIÁVEIS ANTES DE TRATAR INTERRUPÇÃO
MOVWF W_TEMP
SWAPF STATUS,W
CLRF STATUS
MOVWF STATUS_TEMP
MOVF PCLATH, W
MOVWF PCLATH_TEMP
C
LRF PCLATH
BANKSEL PIR1
; LIMPA FLAG DE INTERRUPÇÃO
CLRF PIR1
BANKSEL T1CON
; REINICIALIZA TIMER 1
BCF T1CON, 0
BANKSEL TMR1H
MOVLW 0X3C
MOVWF TMR1H
MOVLW 0XCA
MOVWF TMR1L
BANKSEL T1CON
BSF T1CON, 0
ATM1:
BANKSEL PORTA
; ATUAL
IZA MOTOR 1 COM ULTIMOS VALORES RECEBIDOS
MOVF PWM2H, W
BANKSEL CCPR2L
MOVWF CCPR2L
BANKSEL CCP2CON
MOVLW 0XCF
ANDWF CCP2CON, F
BANKSEL PORTA
MOVF PWM2L, W
BANKSEL CCP2CON
IORWF CCP2CON, F
BANKSEL PORTA
BTFSC FLAGS, 2
; TESTA FLA
G DE DIREÇÃO DO MOTOR 1
GOTO FRN2
BCF PORTA, 2
; DIREÇÃO = TRÁS
GOTO ATM2
FRN2:
BSF PORTA, 2
; DIREÇÃO = FRENTE
ATM2:
BANKSEL PORTA
; ATUALIZA MOTOR 2 COM ULTIMOS VALORES RECEBIDOS
MOVF PWM1H, W
147
BANKSEL CCPR1L
MOVWF CCPR1L
BANKSEL CCP1
CON
MOVLW 0XCF
ANDWF CCP1CON, F
BANKSEL PORTA
MOVF PWM1L, W
BANKSEL CCP1CON
IORWF CCP1CON, F
BANKSEL PORTA
BTFSC FLAGS, 3
; TESTA FLAG DE DIREÇÃO DO MOTOR 2
GOTO FRN3
BCF PORTA, 3
; DIREÇÃO = TRÁS
GOTO VOLTAR
FRN3:
BSF PORTA, 3
;
DIREÇÃO = FRENTE
VOLTAR:
BANKSEL PORTA
; RETORNA VARIÁVEIS ANTES DE TRATAR INTERRUPÇÃO
MOVF PCLATH_TEMP, W
MOVWF PCLATH
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
;************************************************************************************
;
INÍCIO DO PROGRAMA E CONFIGURAÇÃO DAS INTERRUPÇÕES.
;************************************************************************************
ORG 0X60
INIC:
NOP
BANKSEL PORTA
CLRF PWM1H
; LIMPA
VARIÁVEIS
CLRF PWM1L
CLRF PWM2H
CLRF PWM2L
CLRF FLAGS
BANKSEL PIR1
; HABILITA INTERRUPÇÃO DO TIMER 1.
CLRF PIR1
BANKSEL INTCON
MOVLW 0XC0
MOVWF INTCON
BANKSEL PIE1
MOVLW 0X01
MOVWF PIE1
BANKSEL T1CON
; INICIALIZA TIMER 1 PARA
GERAR UM INTERRUPÇÃO
MOVLW 0X00
; A CADA 10 MS
MOVWF T1CON
BANKSEL TMR1H
MOVLW 0X40
MOVWF TMR1H
MOVLW 0X2E
MOVWF TMR1L
;************************************************************************************
;
INÍCIALIZAÇÃO DAS PORTAS DE ENTR
ADA E SAÍDA.
;************************************************************************************
BANKSEL PORTA
CLRF PORTA
CLRF PORTC
BANKSEL ADCON1
; CONFIGURA PORTA RA COMO I/O DIGITAL
MOVLW 0x06
MOVWF ADCON1
BANKSEL TRISA
MOVLW 0XF1
; CONFIGURA RC1, RC2 E RC3 COMO SAÍDAS DIGITAIS.
MOVWF TRISC
MOVLW 0XE1
; CONFIGURA RA1
-
RA4 COMO SAÍDAS DIGITAIS
MOVWF TRISA
BANKSEL PORTC
; E RA0 E RA5 COMO ENTRADAS DIGITAIS.
CLRF PORTC
; ZERA SAÍDAS DA PORTA RC
CLRF POR
TA
; HABILITA 4053, DIREÇÃO = FRENTE
BSF PORTA, 1
; HABILITA L298D
CALL TEMP
;************************************************************************************
;
CONFIGURAÇÃO DA USART.
;************************************************************************************
MOVF PORTA, W
; LÊ PORTA RA0 PARA DETERMINAR QUAL
BTFSC PORTA, 0
; A VELOCIDADE DE COMUNICAÇÃO A SER
GOTO HSPD
; UTILIZADA. SE RA0 = 1, A VELOCIDADE
MOVLW 0XFF
; SERÁ DE 2.4 KBPS, CASO CONTRÁRIO SERÁ
GOT
O VELOC
; 1.2 KBPS
HSPD:
MOVLW 0X81
VELOC:
BANKSEL SPBRG
; SETA A VELOCIDADE DE COMUNICAÇÃO E
MOVWF SPBRG
; CONFIGURA A USART
BANKSEL TXSTA
BCF TXSTA, SYNC
BANKSEL RCSTA
148
BSF RCSTA, SPEN
;************************************************************************************
;
CONFIGURAÇÃO DOS MÓDULOS PWM.
;************************************************************************************
PWM:
BANKSEL PR2
; CONFIGURA OS MÓDULO DE PWM PARA FUNCIONAMENTO
MOVLW 0XFF
; COM
O PWM, COM FREQUÊNCIA = 19,43 KHZ
MOVWF PR2
BANKSEL CCPR1L
; INICIALIZA OS MOTORES COM VELOCIDADE = 0%
MOVLW 0X00
MOVWF CCPR1L
BANKSEL CCPR2L
MOVLW 0X00
BANKSEL CCP1CON
BCF CCP1CON, 4
BCF CCP1CON, 5
BANKSEL CCP2CON
BCF CCP2CON, 4
B
CF CCP2CON, 5
MOVWF CCPR2L
BANKSEL T2CON
MOVLW 0X04
MOVWF T2CON
BANKSEL CCP1CON
MOVLW 0X0C
MOVWF CCP1CON
BANKSEL CCP2CON
MOVWF CCP2CON
;************************************************************************************
;
LOGIN
;************************************************************************************
LOGIN:
BANKSEL RCSTA
BSF RCSTA, CREN
; HABILITA RECEPÇÃO SERIAL
LOG0:
CALL LESER1
; ESPERA ENVIO PELA USART
BANKSEL PORTA
MOVF DADO, W
XORLW 0XF0
BTFSS ST
ATUS, Z
; PALAVRA MORTA?
GOTO LOG1
; NÃO
INCF COUNTER, F
; INCREMENTA CONTADOR DE PALAVRAS MORTAS
MOVF COUNTER, W
XORLW 0X03
BTFSS STATUS, Z
; 3 PALAVRAS MORTAS?
GOTO LOG0
; NÃO
GOTO LOG2
LOG1:
CLRF COUNTER
; ZERA CONTADOR DE PALAVRAS
MORTAS
GOTO LOG0
LOG2:
CALL LESER1
; ESPERA ENVIO PELA USART
BANKSEL PORTA
MOVF DADO, W
XORLW 0XF0
BTFSC STATUS, Z
; PALAVRA MORTA?
GOTO LOG2
; SIM, AGUARDA NOVA PALAVRA
MOVF DADO, W
XORLW 0XFA
BTFSS STATUS, Z
; LOGIN?
GOTO
LOG3
; NÃO
BSF PORTC, 3
; LIGA LED DE "READY"
CLRF COUNTER
BANKSEL T1CON
BSF T1CON, 0
BSF INTCON, 7
BSF INTCON, 6
GOTO PROX
; INICIA CONTROLE DOS MOTORES
LOG3:
CLRF COUNTER
; ZERA CONTADOR DE PALAVRAS MORTAS
GOTO LOG0
; REINICIA L
OGIN
;************************************************************************************
;
LOGOFF
;************************************************************************************
LOGOFF:
BCF INTCON, 7
; DESABILITA INTERRUPÇÕES
BCF IN
TCON, 6
BANKSEL PORTA
CLRF PWM1H
; PÁRA OS MOTORES
CLRF PWM1L
CLRF PWM2H
CLRF PWM2L
CLRF FLAGS
BANKSEL T1CON
BCF T1CON, 0
MOVLW 0X00
BANKSEL PORTC
; DESLIGA LED DE 'READY'
MOVWF PORTC
BANKSEL CCP1CON
; PÁRA OS MOTORES
149
MOVLW 0
X0C
MOVWF CCP1CON
BANKSEL CCP2CON
MOVLW CCP2CON
BANKSEL CCPR2L
MOVLW 0X00
MOVWF CCPR2L
BANKSEL CCPR1L
MOVLW 0X00
MOVWF CCPR1L
GOTO LOGIN
; ESPERA UM NOVO LOGIN
;************************************************************************************
;
CICLO PRINCIPAL DO PROGRAMA.
;************************************************************************************
PROX:
CALL LESER1
; ESPERA ENVIO PELA USART
BANKSEL PORTA
MOVF DADO, W
XORLW 0XF0
BTFSC STATUS, Z
; PA
LAVRA MORTA?
GOTO PROX1
; SIM, IGNORA
MOVF DADO, W
BCF STATUS, Z
XORLW 0XFF
BTFSS STATUS, Z
; LOGOFF?
GOTO M1
; NÃO
INCF COUNTER, F
MOVF COUNTER, W
XORLW 0X02
BTFSS STATUS, Z
; 2 LOGOFF'S?
GOTO PROX
; NÃO
GOTO LOGOFF
P
ROX1:
CLRF COUNTER
GOTO PROX
M1:
MOVF DADO, W
; SETA VELOCIDADE DO MOTOR 1
MOVWF DADO1
BCF STATUS, Z
ANDLW 0X80
BTFSC STATUS, Z
; TESTA DIREÇÃO PARA O MOTOR 1
GOTO SUB281
; DIREÇÃO = TRÁS
MOVLW 0X80
; DIREÇÃO = FRENTE
SUBWF DADO1, F
GOTO M11
SUB281:
MOVLW 0X1B
SUBWF DADO1, F
M11:
CALL MULT
; NORMALIZA VALOR PARA RESOLUÇÃO DE 10 BITS
BCF INTCON, 7
; DESABILITA TEMPORARIAMENTE INTERRUPÇÕES
BCF INTCON, 6
MOVF RES2, W
MOVWF PWM2H
; SALVA VELOCIDADE DO MOTOR 1
MOV
F RES1, W
MOVWF PWM2L
MOVF DADO, W
BCF STATUS, Z
ANDLW 0X80
BTFSC STATUS, Z
; TESTA DIREÇÃO DO MOTOR 1
GOTO TR1
BSF FLAGS, 2
; DIREÇÃO = FRENTE
BSF INTCON,7
; REHABILITA INTERRUPÇÕES
BSF INTCON, 6
GOTO M2
TR1:
BCF FLAGS, 2
;
DIREÇÃO = TRÁS
BSF INTCON,7
; REHABILITA INTERRUPÇÕES
BSF INTCON, 6
M2:
CALL LESER1
; SETA VELOCIDADE DO MOTOR 2
BANKSEL PORTA
MOVF DADO, W
MOVWF DADO1
BCF STATUS, Z
ANDLW 0X80
BTFSC STATUS, Z
; TESTA DIREÇÃO PARA O MOTOR 2
GOTO SUB
282
; DIREÇÃO = TRÁS
MOVLW 0X80
; DIREÇÃO = FRENTE
SUBWF DADO1, F
GOTO M22
SUB282:
MOVLW 0X1B
SUBWF DADO1, F
M22:
CALL MULT
; NORMALIZA VALOR PARA RESOLUÇÃO DE 10 BITS
BCF INTCON, 7
; DESABILITA TEMPORARIAMENTE INTERRUPÇÕES
BCF INTCO
N, 6
MOVF RES2, W
MOVWF PWM1H
; SALVA VELOCIDADE DO MOTOR 2
MOVF RES1, W
MOVWF PWM1L
150
MOVF DADO, W
BCF STATUS, Z
ANDLW 0X80
BTFSC STATUS, Z
; TESTA DIREÇÃO DO MOTOR 2
GOTO TR2
BSF FLAGS, 3
; DIREÇÃO = FRENTE
BSF INTCON,7
; REHABI
LITA INTERRUPÇÕES
BSF INTCON, 6
GOTO M3
TR2:
BCF FLAGS, 3
; DIREÇÃO = TRÁS
BSF INTCON,7
; REHABILITA INTERRUPÇÕES
BSF INTCON, 6
M3:
GOTO PROX
PARAR:
GOTO PARAR
;************************************************************************************
;
SUBROTINAS UTILIZADAS NO PROGRAMA.
;************************************************************************************
LESER1:
; SUBROTINA PARA LEITURA DA PORTA SERIAL
BANKSEL PIR1
BTFSS PIR1, RCIF
; TESTA SE RECEPÇÃO SERIAL TERMINO
U
GOTO LESER1
BANKSEL RCREG
MOVF RCSTA, W
MOVF RCREG, W
BANKSEL PORTA
MOVWF DADO
; SALVA A PALAVRA RECEBIDA
BANKSEL RCSTA
BTFSS RCSTA, OERR
; TESTA SE HOUVE ERRO
GOTO LES1
BCF RCSTA, CREN
BSF RCSTA, CREN
LES1:
BANKSEL PIR1
B
CF PIR1, RCIF
; RESETA FLAG DE RECEPÇÃO TERMINADA
RETURN
MULT:
; NORMALIZA VALOR ENVIADO PELA SERIAL PARA UMA ESCALA DE 0
A 1023
BANKSEL PORTA
; OS VALORES SÃO SALVOS NAS REGISTRADORES RES1 E RES2
CLRF RES2
CLRF RES1
CLRF VARI
MOVF DADO1
, W
MOVWF VARI
BCF STATUS, C
RLF VARI, F
; MULTIPLICA VALOR POR 8
RLF RES2, F
RLF VARI, F
RLF RES2, F
RLF VARI, F
RLF RES2, F
MOVF VARI, W
MOVWF RES1
MOVF DADO1, W
MOVWF VARI
RLF VARI, F
; MULTIPLICA VALOR POR 2
BTFSC STAT
US, C
INCF RES2, F
MOVF VARI, W
ADDWF RES1, F
; SOMA
BTFSC STATUS, C
INCF RES2, F
MOVF DADO1, W
MOVWF VARI
BCF STATUS, C
MOVLW 0X02
ADDWF VARI, F
RRF VARI, F
; DIVIDE POR 4
BCF STATUS, C
RRF VARI, F
BCF STATUS, C
MOVF VARI,
W
ADDWF RES1, F
; SOMA
BTFSC STATUS, C
INCF RES2, F
BCF STATUS, C
MOVF DADO1, W
MOVWF VARI
MOVLW 0X20
ADDWF VARI, F
RRF VARI, F
; DIVIDE POR 64
RRF VARI, F
RRF VARI, F
RRF VARI, F
RRF VARI, F
151
RRF VARI, F
MOVLW 0X03
AND
WF VARI, F
BCF STATUS, C
MOVF VARI, W
SUBWF RES1, F
; SUBTRAI
BTFSC STATUS, C
GOTO MULT1
DECF RES2, F
MULT1:
BCF STATUS, C
; AJUSTA REGISTRADORES PARA QUE RES2 = MSB
RLF RES1, F
; E RES1 = 2 BITS LSB (BIT 5 E BIT 4)
RLF RES2, F
RLF R
ES1, F
RLF RES2, F
RLF RES1, F
RLF RES2, F
RLF RES1, F
RLF RES2, F
RLF RES1, F
RLF RES2, F
RLF RES1, F
RLF RES2, F
RRF RES1, F
RRF RES1, F
RETURN
TEMP:
; SUBROTINA DE TEMPORIZAÇÃO
BANKSEL PORTA
MOVLW 0XFF
MOVWF T1
TEMP1:
DECFSZ T1, F
GOTO TEMP1
RETURN
END
; FIM
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo