Download PDF
ads:
UNIVERSIDADE FEDERAL DO ESP
´
IRITO SANTO
CENTRO TECNOL
´
OGICO
PROGRAMA DE P
´
OS-GRADUAC¸
˜
AO EM ENGENHARIA EL
´
ETRICA
Controle de Formac¸
˜
ao de Rob
ˆ
os M
´
oveis Baseado
em Vis
˜
ao Omnidirecional
Christiano Couto Gava
Vit´oria
Agosto de 2007
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Christiano Couto Gava
Controle de Formac¸
˜
ao de Rob
ˆ
os M
´
oveis Baseado
em Vis
˜
ao Omnidirecional
Universidade Federal do Esp´ırito Santo
Centro Tecnol´ogico
Programa de P´os-Graduac¸˜ao em Engenharia El´etrica
Vit´oria
Agosto de 2007
ads:
.
Dados Internacionais de Catalogac¸˜ao-na-publicac¸˜ao (CIP)
(Biblioteca Central da Universidade Federal do Esp´ırito Santo, ES, Brasil)
Gava, Christiano Couto, 1979-
G279c Controle de Formac¸˜ao de Robˆos M´oveis Baseado em Vis˜ao
Omnidirecional / Christiano Couto Gava. - 2007.
104 f. : il.
Orientadora: Raquel Frizera Vassallo.
Co-Orientador: Teodiano Freire Bastos Filho.
Dissertac¸˜ao (mestrado) - Universidade Federal do Esp´ırito
Santo, Centro Tecnol´ogico.
1. Rob´otica. 2. Processamento de imagens. I. Vassallo, Raquel
Frizera. II. Bastos Filho, Teodiano Freire. III. Universidade Federal
do Esp´ırito Santo. Centro Tecnol´ogico. IV. T´ıtulo.
CDU: 621.3
.
Christiano Couto Gava
Controle de Formac¸
˜
ao de Rob
ˆ
os M
´
oveis Baseado em Vis
˜
ao
Omnidirecional
Dissertac¸˜ao submetida ao Programa de P´os-Graduac¸˜ao em Engenharia El´etrica da Universidade Federal
do Esp´ırito Santo como requisito parcial para a obtenc¸˜ao do grau de Mestre em Engenharia El´etrica
Automac¸˜ao.
Aprovada em 10 de agosto de 2007.
Comiss
˜
ao Examinadora:
Prof
a
. Dr
a
.Raquel Frizera Vassallo
Universidade Federal do Esp´ırito Santo, Orientadora
Prof. Dr. Teodiano Freire Bastos Filho
Universidade Federal do Esp´ırito Santo, Co-orientador
Prof. Dr. Carlos Henrique Costa Ribeiro
Instituto Tecnol´ogico de Aeron´autica
Prof. Dr. Ricardo Carelli
Instituto de Autom´atica - Universidade Nacional de San Juan - Argentina
Vit´oria, agosto de 2007.
Dedicat
´
oria
Aos meus av
´
os, Waldemiro e Nasc
´
ıpio, homens de bem e
exemplos de forc¸a e determinac¸
˜
ao.
Agradecimentos
Eu preciso escrever um texto de Agradecimentos.
Prefiro sair por a´ı e agradecer pessoalmente a cada um, mas eu tenho que escrever um texto.
Escrever ´e dif´ıcil. Pelo menos para mim.
Gostaria de ter o dom da escrita, como o tˆem Ver´ıssimo, Jabor e outros. Assim, poderia
expressar de forma clara (e, quem sabe, divertida) a minha gratid˜ao. Mas n˜ao tenho esse dom.
Portanto, vou me contentar em escrever um texto simples e direto.
Agradec¸o, em primeiro lugar, aos meus pais, Alcemir e Anacir, minha irm˜a, Juliana, e
minha namorada, Patr´ıcia, pelo apoio e pela compreens˜ao desde a ´epoca da Graduac¸˜ao. Sem
vocˆes, esse trabalho sequer teria comec¸ado.
`
A Prof
a
. Dr
a
. Raquel Frizera Vassallo que, como todos sabem, ´e muito mais que uma
orientadora.
´
E orientadora, amiga, conselheira, coordenadora do LAI Expedition, jogadora de
vˆolei (excelente qualidade!), puxadora de orelha (!) e detentora de v´arias outras func¸˜oes legais.
Sem d´uvida, Raquel, vocˆe ´e uma pessoa iluminada. Nem vou tentar escrever um par´agrafo
grande para te agradecer... N˜ao seria o suficiente mesmo!
Ao Prof. Dr. Teodiano Freire Bastos Filho, co-orientador, por toda boa vontade e atenc¸˜ao
dispensadas. Suas dicas e sugest˜oes, recheados de sabedoria e experiˆencia, ajudaram bastante!
Aos professores do Programa de P´os-Graduac¸˜ao da Engenharia El´etrica, pelos ensinamen-
tos e conselhos que, sem d´uvida, foram fundamentais na realizac¸˜ao desse trabalho.
Aos professores, estudantes e funcion´arios do Instituto de Autom´atica (INAUT) da Uni-
versidade Nacional de San Juan, Argentina, pelo excelente tratamento dado a n´os, brasileiros.
Agradec¸o em especial ao Prof. Dr. Ing. Ricardo Carelli e ao doutorando Flavio Roberti, pelos
ensinamentos em Controle N˜ao Linear e por permitirem a utilizac¸˜ao e adaptac¸˜ao do controlador
de formac¸˜ao por eles idealizado neste trabalho. N˜ao posso deixar de agradecer tamb´em em es-
pecial ao Prof. Dr. Ing. Carlos Soria (Carlitos), por compartilhar sua casa com Andr´e Ferreira
e eu durante nossa estadia em San Juan.
Aos amigos do LAI, como Fl´avio, sempre disposto a ajudar, fazer bagunc¸a e jogar vˆolei; e
Rodrigo Rosenfeld, com dicas importantes sobre programac¸˜ao. A Fabr´ıcio (Frodo) e Marino,
que, al´em de todo o suporte na montagem dos robˆos, desempenharam com excelˆencia os pap´eis
de camera-man e cable-man durante a realizac¸˜ao dos experimentos finais. Muito obrigado
pela ajuda naquele s´abado. Muito obrigado tamb´em a Wanderley, Daniel, Alexandre Konzen,
Alexandre (Tim´otiu), Andr´e Ferreira, Mariana, Rafael Leal (PS!), Luismar e todos aqueles que
n˜ao s´o compreenderam, mas tamb´em ajudaram na realizac¸˜ao dos experimentos preliminares.
Roger, Tia Sandra, Andrezinho, Lorena, Lester e Franco, n˜ao esqueci de vocˆes. E ´e claro,
Felipe Martins, que surpreendeu a todos com seu senso de humor “apurado”, na est´oria do
“Grande Monstro Verde Comedor de Pedra”. Essa foi ´otima!
Obrigado tamb´em ao Dr. Ing. Celso De La Cruz Casa˜no, pela grande cooperac¸˜ao no
trabalho realizado em San Juan.
Obrigado ao Prof. Dr. Paulo Faria Santos Amaral, que, atrav´es da Autom´atica, ajudou na
montagem dos robˆos.
`
A CAPES, pela bolsa de estudo e pelo financiamento do meu est´agio em San Juan.
Sandro, L´eo e Valmor: agora sim vocˆes podem me chamar de Mestre!
Posso mandar um abrac¸o no texto de Agradecimentos? Sei l´a! De qualquer forma, um
grande abrac¸o a todos vocˆes e MUITO OBRIGADO!
Christiano Couto Gava
“Aprendi que um homem s
´
o tem o direito de olhar um outro de cima para baixo para
ajud
´
a-lo a levantar-se.
Gabriel Garcia Marquez
Lista de Tabelas
4.1 M´edia e erro quadr´atico m´edio relativos `a simulac¸˜ao 2. . . . . . . . . . . . . . 87
4.2 M´edia e erro quadr´atico m´edio relativos ao experimento 3. . . . . . . . . . . . 87
Lista de Figuras
1.1 (a) Robˆo-jipe Spirit, que iniciou sua explorac¸˜ao em Marte no in´ıcio de 2004; (b)
AIBO, capaz de aprender com o dono e com o ambiente, al´em de desenvolver
personalidade ao longo do tempo. Infelizmente, aSony encerrou a sua produc¸˜ao
no in´ıcio de 2006; e (c) RMAX, com 3, 63 m de comprimento e 1, 08 m de
altura, possui autonomia de vˆoo de uma hora transportando uma carga de at´e 30
kg [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Evoluc¸˜ao: sistema de vis˜ao maximiza campo visual de v´arias esp´ecies de inse-
tos [2]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3 Exemplo de sistema de vis˜ao omnidirecional. P(x, y, z) representa um ponto no
mundo, f ´e a distˆancia focal da cˆamara e z ´e a distˆancia entre o foco do espelho
e o plano da imagem. Adaptado de [2]. . . . . . . . . . . . . . . . . . . . . . . 24
2.1 Representac¸˜ao da postura de dois seguidores no sistema de coordenadas do l´ıder. 30
2.2 Sistema omnidirecional respons´avel pela realimentac¸˜ao do controlador. . . . . 31
2.3 (a) Formato da func¸˜ao f
˜
ρ
(
˜
ρ
) para k
f
= 0.14 e a = 0.1 e (b) Zoom para observar
o comportamento de f
˜
ρ
(
˜
ρ
) para erros de formac¸˜ao menores que 15 cm. . . . . 34
2.4 (a) Formato da func¸˜ao f
˜
ρ
(
˜
ρ
) para k
f1
= 0.08, k
f2
= 0.06 e a = 0.1 e (b) Zoom
para observar o comportamento de f
˜
ρ
(
˜
ρ
) para erros de posic¸˜ao menores que 15
cm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5 Resultado da aplicac¸˜ao do Controlador de Formac¸˜ao quando os parˆametros de-
sejados do seguidor est˜ao variando. . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6 Resultado da aplicac¸˜ao do Controlador de Formac¸˜ao quando os parˆametros de-
sejados do seguidor n˜ao variam. . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7 Efeito da compensac¸˜ao da velocidade linear do ıder na determinac¸˜ao da velo-
cidade de referˆencia do seguidor. . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8 Geometria para a compensac¸˜ao simultˆanea das velocidades linear e angular do
l´ıder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9 Geometria para compensac¸˜ao da velocidade angular do l´ıder. . . . . . . . . . . 39
2.10
ˆ
Angulos relacionados `a determinac¸˜ao das velocidades linear e angular de co-
mando de um seguidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.11 Aparˆencia da func¸˜ao f
˜
α
(
˜
α
i
) para k
ω
= 0.5. . . . . . . . . . . . . . . . . . . . 40
2.12 Aparˆencia da nova func¸˜ao f
˜
α
(
˜
α
i
) para k
ω
1
= 0.5 e k
ω
2
= 1. . . . . . . . . . . 41
2.13 Diagrama de blocos do controlador n˜ao-linear utilizado. . . . . . . . . . . . . . 42
3.1 Divis˜ao em setores circulares da ´area de trabalho para a obtenc¸˜ao das func¸˜oes
polinomiais que definem a transformac¸˜ao Γ. . . . . . . . . . . . . . . . . . . . 49
3.2 Gr´aficos exibindo o comportamentode cada func¸˜ao polinomialobtida. (a) Setor
1 (b) Setor 2 (c) Setor 3 e (d) Setor 4. . . . . . . . . . . . . . . . . . . . . . . 50
3.3 Imagem capturada pelo sistema de vis˜ao utilizado: a forma do espelho n˜ao ´e a
mais indicada para este trabalho. . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4 (a) M´ascara bin´aria aplicada `a imagem omnidirecional – imagem invertida para
melhor visualizac¸˜ao – e (b) resultado da aplicac¸˜ao da m´ascara, definindo a ´area
de interesse para a detecc¸˜ao das posic¸˜oes iniciais dos seguidores. . . . . . . . . 51
3.5 (a) Background base (b) Background discriminante (c) resultado da binarizac¸˜ao
ap´os subtrac¸˜ao entre os backgrounds (d) vers˜ao dilatada da imagem anterior
(e) detecc¸˜ao da borda do blob e (f) resultado da aplicac¸˜ao do algoritmo que
encontra o retˆangulo circunscrito. . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6 (a) Imagem com mais de um blob detectado (b) resultado da detecc¸˜ao dos
retˆangulos circunscritos e (c) imagem filtrada. . . . . . . . . . . . . . . . . . . 53
3.7 Histograma correspondente a um blob de cor vermelha. . . . . . . . . . . . . . 54
3.8 Fluxograma simplificado da etapa de detecc¸˜ao das posic¸˜oes iniciais dos segui-
dores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.9 (a) Quando duas cores s˜ao usadas para determinar a orientac¸˜ao de um robˆo. (b)
Quando apenas uma cor ´e utilizada, a detecc¸˜ao e segmentac¸˜ao dessa cor ´e mais
simples e mais r´apida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.10 Processo de captura das posic¸˜oes de um seguidor para determinac¸˜ao de sua
orientac¸˜ao inicial, ou
α
0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.11 Exemplo de aplicac¸˜ao dos algoritmos RANSAC e M´ınimos Quadrados. . . . . 58
3.12 Algoritmo de rastreamento em operac¸˜ao e histogramas dos seguidores. . . . . . 59
3.13 Fluxograma simplificado da etapa de detecc¸˜ao das orientac¸˜oes iniciais. . . . . . 60
3.14 Geometria da trajet´oria descrita pelo seguidor enquanto sua postura n˜ao ´e atua-
lizada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.15 Teste sem filtragem. (a) Estimativa da orientac¸˜ao. (b) Trajet´oria descrita pelo
seguidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.16 Teste com filtragem. (a) Estimativa da orientac¸˜ao. (b) Trajet´oria descrita pelo
seguidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.17 Efeito da composic¸˜ao de uma rotac¸˜ao e de uma translac¸˜ao de um sistema de
referˆencia nas coordenadas de um ponto. . . . . . . . . . . . . . . . . . . . . . 67
3.18 Efeito da rotac¸˜ao do robˆo ıder na orientac¸˜ao relativa de um seguidor. . . . . . . 68
3.19 Fluxograma simplificado da etapa de Rastreamento para Controle de Formac¸˜ao. 69
4.1 Robˆo PIONEER 2-DX usado como l´ıder da equipe. . . . . . . . . . . . . . . . 71
4.2 Sistema omnidirecional montado sobre o robˆo l´ıder. . . . . . . . . . . . . . . . 72
4.3 Robˆo seguidor - (a) Cart˜ao colorido usado para estimar sua posic¸˜ao e (b) Hard-
ware embarcado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4 Hardware embarcado nos robˆos seguidores e respons´avel pelo acionamento dos
motores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.5 Primeira simulac¸˜ao: trajet´oria retil´ınea com velocidade de 80 mm/s. . . . . . . 74
4.6 Primeira simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de posic¸˜ao do
seguidor 2 e (c) Orientac¸˜oes dos seguidores. . . . . . . . . . . . . . . . . . . . 75
4.7 Segunda simulac¸˜ao: trajet´oria circular com velocidade linear de 60 mm/s e an-
gular de 1,5
o
/s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.8 Geometria da formac¸˜ao desejada para a segunda simulac¸˜ao. . . . . . . . . . . . 76
4.9 Segunda simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de posic¸˜ao do
seguidor 2 e (c) Orientac¸˜oes dos seguidores. . . . . . . . . . . . . . . . . . . . 77
4.10 Terceira simulac¸˜ao: trajet´oria sinuosa com velocidade linear de 60 mm/s. . . . 78
4.11 Terceira simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de posic¸˜ao do
seguidor 2 e (c) Orientac¸˜oes dos seguidores. . . . . . . . . . . . . . . . . . . . 79
4.12 Experimento 1: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1. . . . . . . 81
4.13 Experimento 1: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2. . . . . . . 82
4.14 Experimento 1: trajet´oria descrita pela equipe. . . . . . . . . . . . . . . . . . . 83
4.15 Experimento 2: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1. . . . . . . 84
4.16 Experimento 2: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2. . . . . . . 84
4.17 Experimento 2: trajet´oria descrita pela equipe. . . . . . . . . . . . . . . . . . . 85
4.18 Experimento 3: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1. . . . . . . 86
4.19 Experimento 3: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2. . . . . . . 87
4.20 Experimento 3: trajet´oria descrita pela equipe. . . . . . . . . . . . . . . . . . . 88
4.21 Experimento 4: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1. . . . . . . 89
4.22 Experimento 4: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2. . . . . . . 90
4.23 Experimento 4: trajet´oria descrita pela equipe. . . . . . . . . . . . . . . . . . . 91
4.24 Experimento 5: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1. . . . . . . 92
4.25 Experimento 5: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2. . . . . . . 92
4.26 Experimento 5: trajet´oria descrita pela equipe. . . . . . . . . . . . . . . . . . . 93
Sum
´
ario
Resumo
Abstract
1 Introduc¸
˜
ao 17
1.1 Motivac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 Controle Centralizado x Controle Descentralizado . . . . . . . . . . . . . . . . 23
1.3 Cooperac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.4 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6 Estrutura da Dissertac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 O Controlador 29
2.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 O Controlador de Formac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 O Controlador de Compensac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4 Prova de Estabilidade do Controlador . . . . . . . . . . . . . . . . . . . . . . 42
2.4.1 Prova para o controlador de formac¸˜ao . . . . . . . . . . . . . . . . . . 42
2.4.2 Prova para as leis de controle (comandos) para os robˆos seguidores . . 44
2.5 Conclus˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 O Processamento de Imagens 46
3.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 O Processamento das Imagens Omnidirecionais . . . . . . . . . . . . . . . . . 47
3.2.1 Detecc¸˜ao da Posic¸˜ao Inicial . . . . . . . . . . . . . . . . . . . . . . . 49
3.2.2 Rastreamento para Determinac¸˜ao da Orientac¸˜ao Inicial . . . . . . . . . 56
3.2.3 Rastreamento para Controle de Formac¸˜ao . . . . . . . . . . . . . . . . 59
3.3 Conclus˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4 Resultados Experimentais 71
4.1 Introduc¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Simulac¸˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3 Os Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.3.1 O Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3.2 O Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.3 O Experimento 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3.4 O Experimento 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.3.5 O Experimento 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4 Conclus˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5 Conclus
˜
oes 95
5.1 Contribuic¸˜oes deste Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.2 Dificuldades Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.3 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Refer
ˆ
encias Bibliogr
´
aficas 100
Resumo
Este trabalho aborda o problema do controle de formac¸˜ao de uma equipe de robˆos m´oveis.
O controle adotado ´e do tipo centralizado e foi projetado segundo a teoria de controle n˜ao linear.
A equipe de robˆos ´e formada por um ıder, que possui maior capacidade de processamento, e
de outros robˆos mais simples e baratos, chamados de seguidores. O ıder ´e o respons´avel por
conduzir toda a equipe `a formac¸˜ao desejada durante a navegac¸˜ao. Para isso, ´e equipado com
um sistema de vis˜ao omnidirecional, que permite estimar a posic¸˜ao e a orientac¸˜ao de todos os
seguidores capturando apenas uma imagem. A realimentac¸˜ao do controlador, totalmente base-
ada em vis˜ao, ´e obtida atrav´es de t´ecnicas de processamento digital de imagens. Os algoritmos
utilizados para processar as imagens omnidirecionais contribuem para o aumento da robustez e
do desempenho do sistema.
Simulac¸˜oes foram feitas para estudar o comportamento do controlador diante de v´arias
formac¸˜oes diferentes. Os resultados obtidos nos experimentos com robˆos reais comprovaram o
bom desempenho do sistema de controle proposto.
Abstract
This work addresses the problem of controlling the formation of a group of mobile robots.
A centralized control was chosen and projected according to nonlinear control theory. The
team is composed by a leader with major processing capacity, and other simple and cheap ro-
bots, called followers. The leader is responsible for driving the group to the desired formation
during navigation and is equiped with an omnidirectional vision system in order to estimate
the followers position and orientation by capturing just one image. The feedback of the con-
troller is totally based on vision and is obtained through digital image processing techniques.
The algorithms used to process the omnidirectional images improve the system robustness and
performance.
Simulations were carried out in order to study the controller behaviour facing different
group formations. The results obtained through the experiments with real robots show that the
proposed control system has achieved a good performance.
17
1 Introduc¸
˜
ao
O crescimento tecnol´ogico dos ´ultimos anos tem possibilitado grandes avanc¸os no campo
da rob´otica. Ano ap´os ano, ´e disponibilizada no mercado uma variedade de processadores cada
vez mais r´apidos, menores, econˆomicos e com mais mem´oria. Al´em disso, a tecnologia de ma-
teriais exerceum importantepapel, possibilitandoa construc¸˜ao de pec¸as mais leves e resistentes.
Esse avanc¸o da rob´otica se deve principalmente aos resultados obtidos pelos pesquisadores nas
´ultimas d´ecadas, pois o estudo da rob´otica n˜ao est´a mais associado apenas aos aspectos com-
putacionais e construtivos, mas abrange v´arias outras ´areas do conhecimento, como teoria de
controle (linear e n˜ao linear), identificac¸˜ao de sistemas, modelamento cinem´atico e dinˆamico,
engenharia de software, biologia (anatomia e comportamento social dos animais), ciˆencias so-
ciais (teoria da organizac¸˜ao, psicologia cognitiva e at´e mesmo economia), entre outras [1, 3].
Apesar da tendˆencia da maioria das ciˆencias em se subdividir `a medida em que avanc¸am,
a rob´otica continua a ser dividida em rob´otica de manipulac¸˜ao, ou industrial, e rob´otica m´ovel.
No primeiro caso, o maior n´umero de aplicac¸˜oes est´a nas ind´ustrias, onde os robˆos execu-
tam trabalhos como montagem, pintura e soldagem. Poucos s˜ao equipados com algum tipo de
sensor que permite uma percepc¸˜ao detalhada do ambiente para a tomada de decis˜oes, como
vis˜ao computacional. J´a o campo da rob´otica m´ovel ´e a ´area que vem apresentando os maio-
res avanc¸os e expandindo sua ´area de atuac¸˜ao. Um exemplo disso s˜ao os robˆos exploradores
Spirit e Opportunity [4], constru´ıdos pela NASA, que recolhendo amostras do solo marciano
em lados opostos do planeta confirmaram que um dia houve ´agua na superf´ıcie de Marte. A
Figura 1.1 - (a) mostra um desses robˆos, o Spirit. Outros exemplos podem ser citados, como o
AIBO (Artificial Intelligence roBOt), da Sony, e o RMAX, da Yamaha, tamb´em mostrados na
Figura 1.1. O primeiro, embora projetado para ser um robˆo de estimac¸˜ao, tamb´em foi usado
em competic¸˜oes de futebol de robˆos; o segundo ´e um helic´optero capaz voar horizontalmente
segundo uma trajet´oria pr´e-determinada, mas que pode ser modificada durante o vˆoo. No Jap˜ao,
foi utilizado para observar as redondezas de vulc˜oes atrav´es de cˆamaras e sensores embarcados
para detec¸˜ao de gases [1].
1 Introduc¸
˜
ao 18
(a) (b)
(c)
Figura 1.1: (a) Robˆo-jipe Spirit, que iniciou sua explorac¸˜ao em Marte no in´ıcio de
2004; (b) AIBO, capaz de aprender com o dono e com o ambiente, al´em
de desenvolver personalidade ao longo do tempo. Infelizmente, a Sony en-
cerrou a sua produc¸˜ao no in´ıcio de 2006; e (c) RMAX, com 3, 63 m de
comprimento e 1, 08 m de altura, possui autonomia de vˆoo de uma hora
transportando uma carga de at´e 30 kg [1].
Entretanto, por mais avanc¸ado que seja um determinado robˆo, existem tarefas nas quais
´e conveniente a utilizac¸˜ao de mais de um robˆo, como mapeamento, o combate a incˆendios, o
resgate de sobreviventes ap´os um acidente ou desastre natural, a vigilˆancia de instalac¸˜oes indus-
triais ou militares, monitoramento (e vigilˆancia) de regi˜oes de fronteiras para inibir a entrada
ilegal de imigrantes, o contrabando e o tr´afico de drogas, a limpeza de grandes ´areas como,
por exemplo, campos minados abandonados ap´os uma guerra, o transporte de objetos grandes
e pesados. Al´em disso, um robˆo equipado com toda a capacidade de processamento e sensores
necess´arios para realizar, sozinho, diferentes tarefas do mundo real, apresenta um custo muito
elevado.
Tudo isso motivou, a partir da d´ecada de 1980, os estudos dos chamados Sistemas Multi-
robˆos. At´e ent˜ao, os esforc¸os eram concentrados em pesquisas de sistemas distribıdos para
soluc¸˜ao de problemas [5] ou formados por apenas um robˆo. Os primeiros deram origem ao que
hoje ´e conhecido como Sistemas Multi-agentes. Em [6], o autor afirma que um agente deve
ser capaz de perceber sozinho tanto do que precisa quanto de realizar as ac¸˜oes necess´arias para
atingir os seus objetivos, sem a necessidade de ser instru´ıdo a todo momento. Al´em disso, um
1 Introduc¸
˜
ao 19
sistema multi-agente ´e formado por um certo n´umero de agentes que interagem uns com os
outros, normalmente atrav´es de uma rede computacional de apoio.
Sem d´uvida, essa id´eia est´a intimamente relacionada com sistemas multi-robˆos. Entretanto,
a teoria de sistemas multi-agentes est´a mais focada em agentes puramente computacionais. Em
outras palavras, robˆos reais s˜ao capazes de interagir com o ambiente no qual est˜ao inseridos
atrav´es da aplicac¸˜ao de forc¸as, da recepc¸˜ao de sinais, como na vis˜ao, ou mesmo atrav´es da
emiss˜ao de um sinal e recepc¸˜ao do respectivo eco, como no caso dos sensores de ultra-som e
laser. Agentes computacionais, por´em, n˜ao possuem essas propriedades. Em sistemas multi-
robˆos, por exemplo, o controle de formac¸˜ao ´e essencial para um bom desempenho da equipe,
preocupac¸˜ao que n˜ao existe em sistemas cujos agentes s˜ao puramente virtuais. Mesmo as-
sim, fica claro que as teorias de sistemas multi-agentes e multi-robˆos se sobrep˜oem em v´arias
quest˜oes, permitindo que uma aproveite os avanc¸os alcanc¸ados pela outra.
Dentre os primeiros esforc¸os nas pesquisas em sistemas multi-robˆos, podem ser citados os
trabalhos realizados em [7, 8, 9, 10, 11, 12]. Desde ent˜ao, muitos avanc¸os foram conquistados
nesta ´area, abordando novos temas, expandindo e criando novos conceitos. Em [5], os autores
apontam boas fontes de informac¸˜ao, como as colec¸˜oes [13, 14], os anais [15, 16, 17], al´em das
publicac¸˜oes [18] sobre colˆonias de robˆos e [19] sobre sistemas multi-robˆos heterogˆeneos. Todas
essas fontes, juntas, fornecem um bom panorama das pesquisas mais recentes na ´area bem como
algumas tendˆencias.
Atualmente, as pesquisas em sistemas multi-robˆos podem ser divididas nos seguintes ra-
mos:
1. Inspirac¸˜oes biol´ogicas
2. Comunicac¸˜ao
3. Arquiteturas, alocac¸˜ao de tarefas e controle
4. Localizac¸˜ao, mapeamento e explorac¸˜ao
5. Manipulac¸˜ao e transporte de objetos
6. Coordenac¸˜ao de movimento
7. Robˆos reconfigur´aveis
8. Aprendizado
1.1 Motivac¸
˜
ao 20
Em [5] e [20], os principais trabalhos relativos a cada um destes t´opicos s˜ao apresentados
e discutidos. Chama-se a atenc¸˜ao, aqui, para trˆes t´opicos: inspirac¸˜oes biol´ogicas, aprendizado
e coordenac¸˜ao de movimento. O primeiro merece destaque por ter impulsionado grande parte
dos trabalhos em rob´otica m´ovel cooperativa at´e hoje realizados atrav´es do conceito de controle
baseado em comportamento [21, 22]. O segundo t´opico, por ser uma ´area que tem muito a
contribuir e que ainda n˜ao foi bem explorada. Trabalhos abordando o aprendizado por imitac¸˜ao
[23] e explorac¸˜ao em busca de recursos [24] podem ser citados.
O terceiro ponto de destaque ´e coordenac¸˜ao de movimento, tema abordado em [25], que
utiliza estruturas virtuais para obter boa precis˜ao na formac¸˜ao, e [26], cujo framework desen-
volvido permite a realizac¸˜ao de diversas tarefas em cooperac¸˜ao e a estabilidade da aborda-
gem ´e provada. Al´em disso, [27] descreve como a teoria de controle descentralizado pode ser
usada para analisar o desempenho do controle da formac¸˜ao de m´ultiplos robˆos cooperativos;
[28] prop˜oe um cen´ario onde os robˆos entram e mantˆem uma formac¸˜ao sem a necessidade de
comunicac¸˜ao; [29] apresenta uma abordagem probabil´ıstica para a coordenac¸˜ao de m´ultiplos
robˆos em tarefas de explorac¸˜ao e [30] aborda o problema conhecido como CMOMMT (Co-
operative Multirobot Observation of Multiple Moving Targets) em ambientes como escrit´orio
com v´arios corredores, usando robˆos m´oveis em conjunto com sensores fixos. Outros traba-
lhos interessantes podem ser encontrados em [31, 32, 33, 34, 35, 36, 37]. Todos os estudos
citados relativos a este ´ultimo t´opico deixam claro que coordenar o movimento e, mais especifi-
camente, controlar a formac¸˜ao, ´e fundamental para a realizac¸˜ao de tarefas em conjunto. Alguns
deles ser˜ao abordados em mais detalhes ao longo deste texto. Outros assuntos pertinentes e in-
teressantes s˜ao encontrados em [3], como as vantagens de um robˆo ser capaz de modelar outros
membros do grupo e uma discuss˜ao a respeito de como o comportamento cooperativo surge
(ou deve surgir) sem a intervenc¸˜ao humana, como ocorre em sociedades de insetos, onde tal
comportamento ´e vital para a sobrevivˆencia da colˆonia.
1.1 Motivac¸
˜
ao
Como mencionado anteriormente, a limitac¸˜ao espacial de um ´unico robˆo e a necessidade
da realizac¸˜ao de tarefas cada vez mais complexas motivaram o estudo dos sistemas multi-robˆos.
A id´eia ´e que um time de robˆos mais simples possa realizar uma tarefa, atrav´es de redundˆancia
e cooperac¸˜ao, de forma mais confi´avel, r´apida ou barata do que seria poss´ıvel com apenas um
[5]. De fato, al´em das tarefas j´a mencionadas, esses sistemas tendem a apresentar desempenho
superior `aquele demonstrado por um ´unico robˆo em outras tarefas do mundo real, como [1]:
1.1 Motivac¸
˜
ao 21
Explorac¸˜ao em ambientes perigosos para os seres humanos. Por exemplo, no estudo do
interior de crateras de vulc˜oes em atividade e das formas de vida existentes em altas
profundidades marinhas, no mapeamento e an´alise da superıcie de outros planetas, na
manutenc¸˜ao em sat´elites artificiais em ´orbita, entre outros.
Criac¸˜ao de uma rede de comunicac¸˜ao dinˆamica com o objetivo ´e fornecer infraestrutura
para cobrir uma determinada ´area da melhor maneira poss´ıvel, onde os n´os da rede seriam
robˆos especializados em comunicac¸˜ao, que mudariam sua configurac¸˜ao espacial automa-
ticamente, adaptando a rede `as variac¸˜oes do ambiente e reduzindo a probabilidade de
interrupc¸˜ao no tr´afego de informac¸˜ao.
Rede de sensores altamente distribu´ıda, onde grandes colˆonias de robˆos simples e baratos
cobririam grandes ´areas para o monitoramento, por exemplo, da temperatura da ´agua nos
oceanos ou de abalos s´ısmicos ao redor da Terra, o que permitiria prever a formac¸˜ao de
tsunamis e a conseq¨uente evacuac¸˜ao das regi˜oes a serem atingidas.
Construc¸˜ao/montagem de bases cient´ıficas na superf´ıcie ou no subsolo de planetas e
sat´elites naturais do sistema solar para o estudo destes astros ou de outras gal´axias.
Existem, ainda, as competic¸˜oes entre times de robˆos, como RoboCup e MIROSOT, cujo
objetivo maior ´e promover o avanc¸o da rob´otica m´ovel. Os resultados dessas competic¸˜oes e as
publicac¸˜oes que delas surgem tˆem mostrado que o objetivo vem sendo alcanc¸ado.
Na grande maioria sen˜ao na totalidade dos exemplos de cooperac¸˜ao citados, o con-
trole da formac¸˜ao do grupo ´e fundamental para que a tarefa seja cumprida de forma eficiente.
No final da sec¸˜ao anterior foram citados v´arios trabalhos j´a realizados nesta ´area que mos-
tram a importˆancia do controle de formac¸˜ao para a cooperac¸˜ao rob´otica.
´
E f´acil encontrar
tamb´em na atividade humana ou mesmo na natureza exemplos da importˆancia da manutenc¸˜ao
de uma formac¸˜ao desejada. Tarefas como busca e salvamento, transporte de cargas, vigilˆancia
de per´ımetros, entre outras, quando realizadas por humanos, requerem uma formac¸˜ao adequada.
P´assaros migrat´orios mantˆem uma formac¸˜ao em V porque isso reduz o gasto de energia durante
o vˆoo. Em 2001 [38], foi demonstrado que pelicanos brancos treinados para voar em formac¸˜ao
tiveram seus batimentos card´ıacos (e, portanto, a energia dispendida) reduzidos em cerca de
30% [1].
Por outro lado, controlar a formac¸˜ao de grupos de robˆos ´e mais dif´ıcil do que controlar
apenas um. Em um grupo de robˆos m´oveis, cada membro pode interferir ou operar dentro
da ´area de atuac¸˜ao ou raio de alcance de um outro membro do grupo, tornando-se, uns para os
outros, obst´aculos m´oveis. Com isso, ´e mais dif´ıcil resolver o problema do desvio de obst´aculos.
1.1 Motivac¸
˜
ao 22
Outro problema t´ıpico de sistemas multi-robˆos ´e como a equipe deve agir diante da falha de
um de seus integrantes de modo a garantir que a tarefa seja conclu´ıda com sucesso. Em muitos
casos, a falha de um dos robˆos compromete seriamente ou mesmo impedea conclus˜ao da tarefa,
como ´e o caso de dois robˆos transportando uma carga grande e pesada. Tarefas deste tipo s˜ao
conhecidas como Tarefas Fortemente Acopladas (Tightly Coupled Tasks) [39, 40].
Um ponto importante e que deve ser considerado em sistemas multi-robˆos ´e a escalabili-
dade da abordagem adotada, ou seja, ´e necess´ario discutir se uma mesma abordagem pode ser
aplicada em grupos com dezenas, centenas ou milhares de robˆos. Muitas abordagens se mos-
tram atrativas para equipes com poucos integrantes, mas n˜ao s˜ao adequadas para grupos com,
por exemplo, mais de dez robˆos.
Como pode ser visto, sistemas multi-robˆos apresentam muitas vantagens sobre aqueles que
utilizam apenas um. Entretanto, alguns inconvenientes podem ser observados, como o aumento
na complexidade do controlee, dependendo do tipo de tarefa, a dependˆencia de outros membros
do grupo. Claramente, h´a muito para ser feito no campo de sistemas multi-robˆos.
Assim como ocorre com os animais, osrobˆos podem ser dotados de v´arios tipos de sensores.
O tipo, a sensibilidade, a precis˜ao e a quantidade depende de sua utilidade: servem tanto para
medir o estado interno – como press˜ao sang¨ınea ou temperatura, por exmplo como para obter
informac¸˜oes do meio externo. Os sensores desempenham papel fundamental tanto na natureza
quanto em rob´otica. Em ambos os casos, s˜ao usados ainda para fechar malhas de controle de
posic¸˜ao, velocidade, acelerac¸˜ao, temperatura, press˜ao, etc.
V´arios sensores constru´ıdos pelo homem tentam imitar aqueles existentes na natureza,
como ´e o caso das cˆamaras de ıdeo, que aproximam o sentido da vis˜ao, um dos mais co-
muns e importantes. O seu sucesso se deve `a grande quantidade de informac¸˜ao que ´e capaz de
fornecer. Alguns animais utilizam a vis˜ao para navegar mantendo uma determinada formac¸˜ao,
como ´e o caso das aves migrat´orias e de algumas esp´ecies de peixes, que, nadando pr´oximos uns
dos outros, fazem o cardume parecer um ´unico e grande animal, confundindo e intimidando o
predador. Em sistemas multi-robˆos, a vis˜ao computacional tamb´em representa umaboa maneira
de navegar mantendo uma formac¸˜ao desejada. Para um bom controle de formac¸˜ao ´e necess´ario
ter uma boa estimativa da postura (posic¸˜ao e orientac¸˜ao) dos outros membros do grupo. Al´em
disso, sistemas de vis˜ao que fornecem um amplo campo visual aumentam a percepc¸˜ao do ambi-
ente, de outros robˆos e objetos, tornando-se atrativos para o controle de formac¸˜ao, cooperac¸˜ao
e execuc¸˜ao de tarefas em rob´otica.
Uma maneira de ampliar o campo de vis˜ao ´e atrav´es do uso de imagens omnidirecionais
(360
o
de campo visual horizontal) [41]. Mais uma vez, a inspirac¸˜ao veio da natureza. V´arias
1.2 Controle Centralizado x Controle Descentralizado 23
esp´ecies de insetos s˜ao dotadas de vis˜ao omnidirecional. Um exemplo ´e mostrado na Figura
1.2, onde ´e poss´ıvel observar que o sistema de vis˜ao maximiza o campo visual.
Figura 1.2: Evoluc¸˜ao: sistema de vis˜ao maximiza campo visual de v´arias esp´ecies de
insetos [2].
Imagens omnidirecionais podem ser obtidas atrav´es de sistemas catadi´optricos, formados a
partir do acoplamento de espelhos (hiperb´olicos, el´ıpticos ou parab´olicos) e lentes (cˆamaras de
v´ıdeo) [42]. A Figura 1.3 mostraum exemplo de um sistemade vis˜ao omnidirecional constru´ıdo
pelo homem.
Em sistemas multi-robˆos, imagens omnidirecionais s˜ao usadas de duas maneiras: na pri-
meira delas, todos os membros da equipe possuem seu pr´oprio sistema omnidirecional. Na
segunda, apenas um robˆo, geralmente denominado ıder da equipe, transporta um sistema desse
tipo. Neste caso, a estrutura de controle adotada ´e, normalmente, do tipo centralizado. A
pr´oxima sec¸˜ao traz informac¸˜oes mais detalhadas sobre os tipos de estruturas de controle adota-
das em sistemas multi-robˆos.
1.2 Controle Centralizado x Controle Descentralizado
O controle de um grupo de robˆos pode ser feito, basicamente, de trˆes maneiras: controle
centralizado, descentralizado ou controle misto [1].
Controle centralizado
´
E o controle hier´arquico onde um ıder ´e o respons´avel por tomar as decis˜oes a fim de
atingir o objetivo. Isso n˜ao quer dizer que deve haver apenas um ıder. Assim como
acontece dentro de empresas e nas forc¸as armadas, um membro pode ser respons´avel por
1.2 Controle Centralizado x Controle Descentralizado 24
Figura 1.3: Exemplo de sistema de vis˜ao omnidirecional. P(x, y, z) representa um ponto
no mundo, f ´e a distˆancia focal da cˆamara e z ´e a distˆancia entre o foco do
espelho e o plano da imagem. Adaptado de [2].
um grupo, estabelecendo diferentes ıveis de controle. Normalmente, quanto mais alta
for sua hierarquia, maior deve ser sua capacidade de processamento e conhecimento dos
objetivos a serem alcanc¸ados. Esta ´e umaopc¸˜ao eficiente e barata para grupos com um pe-
queno n´umero de integrantes [1]. Entretanto, uma falha do l´ıder pode representar a falha
de todo o sistema. Neste ponto, vale ressaltar a importˆancia do aprendizado em rob´otica:
no caso de uma falha do l´ıder, algum membro do grupo, j´a tendo observado e aprendido
suas principais func¸˜oes, pode assumir o seu lugar, permitindo a continuidade do traba-
lho. Alguns exemplos de sistemas que utilizam controle centralizado s˜ao encontrados em
[33, 34, 35, 36, 37].
Controle descentralizado
Quando se trata de um grupo com um grande n´umero de robˆos, normalmente ´e adotado
um controle do tipo distribıdo. Entretanto, nada impede que seja usado em grupos com
poucos integrantes. Este tipo de controle foi inspirado nas colˆonias de insetos, onde cada
membro opera usando apenas informac¸˜ao local, atrav´es de regras baseadas em compor-
tamentos. Este tipo de controle se mostra mais robusto que o anterior, mas, geralmente,
exige que todos os robˆos possuam sensores e capacidade de processamento suficientes,
aumentando o custo da equipe. Ultimamente, os pesquisadores tˆem mostrado maior inte-
1.3 Cooperac¸
˜
ao 25
resse neste tipo de controle, com vistas a um futuro onde grandes grupos de robˆos reali-
zar˜ao tarefas complexas. Os trabalhos [26, 27, 28, 31] s˜ao bons exemplos de aplicac¸˜oes
que utilizam o controle descentralizado.
Controle Misto
Menos comum na literatura, o controle misto ´e uma estrat´egia bastante interessante [43]:
grandes grupos de robˆos podem ser divididos em equipes menores que, internamente, s˜ao
controladas por um ıder (controle centralizado). A cooperac¸˜ao entre elas e a coordenac¸˜ao
das tarefas s˜ao feitas pelos l´ıderes de cada equipe, implementando, assim, um controle
descentralizado, configurando um controle misto. Espera-se que, nos pr´oximos anos,
arquiteturas deste tipo se tornem mais comuns.
1.3 Cooperac¸
˜
ao
Muitas vezes, para que tarefas sejam cumpridas por uma equipe de robˆos ´e necess´ario
haver cooperac¸˜ao. De acordo com [20], o campo da rob´otica m´ovel cooperativa ´e t˜ao novo que
nenhum t´opico desse assunto pode ser considerado suficientemente maduro. Prova disso ´e que
ainda n˜ao existe uma definic¸˜ao formal para “cooperac¸˜ao rob´otica”.
´
E poss´ıvel encontrar, na
literatura, diferentes definic¸˜oes para cooperac¸˜ao, como [3, 44]:
comportamento colaborativo conjunto direcionado a um objetivo no qual existe um inte-
resse comum ou recompensa [45];
uma forma de interac¸˜ao, geralmente baseada em comunicac¸˜ao [24];
trabalho em conjunto para fazer algo que cria um resultado progressivo, como aumento
no desempenho ou ganho de tempo [9];
A terceira definic¸˜ao, al´em de mais intuitiva, deixa clara uma importante vantagem da mai-
oria dos sistemas cooperativos: o aumento no desempenho. A partir deste ponto, o termo
“cooperac¸˜ao rob´otica”, ou apenas “cooperac¸˜ao”, ser´a usado de acordo com essa definic¸˜ao.
Mesmo n˜ao havendo, ainda, uma definic¸˜ao formal, os avanc¸os na teoria da organizac¸˜ao, na
psicologia cognitiva e no ramo da biologia que estuda o comportamento social dos animais
podem fornecer ind´ıcios para a formalizac¸˜ao do conceito de cooperac¸˜ao rob´otica.
1.4 Objetivo 26
1.4 Objetivo
O objetivo desta Dissertac¸˜ao de Mestrado ´e o controle de formac¸˜ao de uma equipe de robˆos
m´oveis de baixo custo para a realizac¸˜ao de tarefas em cooperac¸˜ao.
´
E proposta uma estrat´egia
de controle centralizado baseada no processamento de imagens omnidirecionais e em t´ecnicas
de controle n˜ao linear.
A equipe ´e composta por um l´ıder dotado de maior capacidade de processamento que trans-
porta o sistema de vis˜ao omnidirecional, enquanto os outros componentes s˜ao robˆos mais sim-
ples e baratos, que possuem apenas um microcontrolador e os dispositivos necess´arios para o
acionamento dos motores. Essa restric¸˜ao no custo ´e a respons´avel pela adoc¸˜ao do controle cen-
tralizado, uma vez que somente o l´ıder ´e capaz de processar as informac¸˜oes necess´arias para o
controle de formac¸˜ao.
O uso da teoria de controle n˜ao linear permite o projeto de um controlador de postura
robusto e est´avel, que garante a convergˆencia dos robˆos para a formac¸˜ao desejada. Essa teoria
permite, ainda, que a estabilidade do controlador seja matematicamente provada atrav´es do
m´etodo de Lyapunov.
O controlador utilizado neste trabalho possui realimentac¸˜ao puramente visual. Assim, um
amplo campo de vis˜ao ´e fundamental para um bom desempenho, da´ı a opc¸˜ao por um sistema de
vis˜ao omnidirecional. O fato deste sistema de vis˜ao estar embarcado no l´ıder e mover-se junto
com a equipe torna a ´area de trabalho ilimitada, uma importante caracter´ıstica desta abordagem.
Algumas considerac¸˜oes a respeito desta equipe precisam ser feitas. Com excec¸˜ao do l´ıder,
os outros robˆos s˜ao conhecidos como robˆos celulares, dada a sua simplicidade e tamanho.
´
E
importante notar que esta nomenclatura n˜ao tem relac¸˜ao direta com um Sistema Rob
´
otico Ce-
lular [8], onde cada robˆo ´e respons´avel por uma ´area de atuac¸˜ao ou c´elula de trabalho. Al´em
disso, esta equipe ´e, por natureza, heterogˆenea, j´a que o l´ıder ´e diferente dos robˆos celulares em
v´arios aspectos. Na verdade, os pr´oprios robˆos celulares s˜ao, entre si, heterogˆeneos, pois suas
caracter´ısticas s˜ao pr´oximas, mas n˜ao idˆenticas.
1.5 Metodologia
Inicialmente, o ´unico robˆo dispon´ıvel era o l´ıder. Para completar a equipe, dois robˆos
celulares foram constru´ıdos com recursos do Laborat´orio de Automac¸˜ao Inteligente (LAI), per-
tencente ao Programa de P´os-Graduac¸˜ao em Engenharia El´etrica da Universidade Federal do
Esp´ırito Santo (UFES). Paralelamente `a construc¸˜ao dos robˆos celulares, o controlador foi imple-
1.6 Estrutura da Dissertac¸
˜
ao 27
mentado usando a linguagem de programac¸˜ao C++ para que as primeiras simulac¸˜oes pudessem
ser feitas.
A determinac¸˜ao das posturas dos robˆos celulares conta com a utilizac¸˜ao de imagens om-
nidirecionais, que permitem a visualizac¸˜ao de toda a equipe capturando apenas uma imagem,
juntamente com t´ecnicas de processamento digital de imagens. A posic¸˜ao ´e estimada com um
algoritmo de segmentac¸˜ao de cores, que identifica os robˆos celulares por meio de cart˜oes co-
loridos colocados sobre eles. J´a a orientac¸˜ao ´e estimada por um algoritmo que se baseia na
trajet´oria descrita.
As posturas dos robˆos celulares, assim que determinadas pelo processamento das imagens
omnidirecionais, s˜ao repassadas a um controlador n˜ao linear est´avel, que gera novos sinais
de comando, conduzindo a equipe `a formac¸˜ao desejada. A estabilidade desse controlador foi
provada com o m´etodo de Lyapunov.
V´arias simulac¸˜oes foram realizadas para verificar o comportamento do controlador e fa-
zer um primeiro ajuste dos seus ganhos. Os experimentos feitos em seguida, onde diferentes
formac¸˜oes foram impostas, confirmaram a validade deste trabalho.
1.6 Estrutura da Dissertac¸
˜
ao
Este trabalho est´a organizado em cinco cap´ıtulos. Segue-se uma breve descric¸˜ao do que ´e
apresentado e discutido em cada um desses cap´ıtulos.
Cap´ıtulo 1: Introduc¸˜ao
´
E o presente cap´ıtulo, que traz, no in´ıcio, um panorama com algumas das pesquisas consi-
deradas mais relevantes em sistemas multi-robˆos. Em seguida, ´e apresentada a motivac¸˜ao
deste trabalho, bem como de v´arios outros relativos ao mesmo assunto. Ap´os uma dis-
cuss˜ao sobre as principais estruturas de controle usadas e algumas definic¸˜oes existentes
para cooperac¸˜ao rob´otica, o objetivo desta Dissertac¸˜ao ´e apresentado.
Cap´ıtulo 2: O Controlador
Este cap´ıtulo ´e dedicado ao controlador n˜ao linear utilizado neste trabalho. Ap´os a
motivac¸˜ao, s˜ao derivadas as leis de controle que o compˆoem. Em seguida, essas leis
s˜ao discutidas em detalhes atrav´es da an´alise de suas equac¸˜oes e de diferentes situac¸˜oes
ou configurac¸˜oes nas quais a equipe pode se encontrar. Por fim, ´e apresentada a prova de
estabilidade deste controlador.
1.6 Estrutura da Dissertac¸
˜
ao 28
Cap´ıtulo 3: O Processamento de Imagens
O objetivo deste cap´ıtulo ´e apresentar as v´arias t´ecnicas de processamento de imagens
que foram empregadas, bem como a filtragem e o refinamento de dados empregados a
fim de melhorar as estimativas de postura de cada robˆo seguidor. Tamb´em s˜ao abordados
e discutidos os algoritmos desenvolvidos para complementar as t´ecnicas utilizadas.
Cap´ıtulo 4: Resultados Experimentais
Neste cap´ıtulo, os resultadosdas simulac¸˜oes e dos experimentos com uma equipe de robˆos
reais s˜ao apresentados e analisados, comprovando a estabilidade e bom desempenho do
controlador empregado.
Cap´ıtulo 5: Conclus˜oes
Este cap´ıtulo encerra esta Dissertac¸˜ao com uma discuss˜ao geral do trabalho realizado, as
principais contribuic¸˜oes, as dificuldades encontradas e sugest˜oes para os trabalhos futu-
ros.
29
2 O Controlador
2.1 Introduc¸
˜
ao
Para que uma equipe de robˆos m´oveis seja capaz de navegar em um ambiente mantendo
uma determinada formac¸˜ao geom´etrica de forma est´avel ´e necess´aria a existˆencia de um con-
trole. Este, como discutido no cap´ıtulo anterior, pode ser do tipo centralizado ou descentrali-
zado. Neste trabalho foi utilizado um controle centralizado, uma vez que uma das propostas ´e
a construc¸˜ao de uma equipe de robˆos de baixo custo, o que limita, al´em da qualidade e quanti-
dade de sensores, a capacidade computacional que se pode embarcar em cada componente do
grupo. Portanto, a maioria dos robˆos n˜ao possui os sensores e a capacidade de processamento
necess´arios para a implementac¸˜ao de uma arquitetura de controle descentralizado.
Desta forma, apenas um membro da equipe ´e dotado de capacidade de processamento sufi-
ciente para a implementac¸˜ao do controlador. Este ´e designado como o l´ıder e ser´a respons´avel
pela navegac¸˜ao e controle de formac¸˜ao do grupo. O restante da equipe ´e formado por robˆos ce-
lulares, chamados aqui de seguidores, pois apenas executam os comandos enviados pelo l´ıder.
Para que o l´ıder possa controlar a formac¸˜ao da equipe, ele precisa conhecer o estado de
cada um dos outros robˆos. Neste trabalho, o estado de um seguidor ´e definido como sua postura
relativa ao ıder, ou seja, sua posic¸˜ao e sua orientac¸˜ao relativas ao robˆo ıder. A Figura 2.1 ilustra
a representac¸˜ao da postura de dois seguidores no sistema de coordenadas do l´ıder.
De acordo com a Figura 2.1, a posic¸˜ao do i-´esimo seguidor pode ser representada como na
Equac¸˜ao 2.1.
ξ
i
=
x
i
y
i
=
x
i
= r
i
cos(
γ
i
)
y
i
= r
i
sen(
γ
i
)
(2.1)
2.1 Introduc¸
˜
ao 30
Figura 2.1: Representac¸˜ao da postura de dois seguidores no sistema de coordenadas do
l´ıder.
Assim, a postura do i-´esimo seguidor ´e dada pelo vetor
χ
i
, de acordo com a Equac¸˜ao 2.2.
χ
i
=
x
i
y
i
α
i
=
r
i
cos(
γ
i
)
r
i
sen(
γ
i
)
α
i
(2.2)
Controlar a formac¸˜ao de uma equipe de robˆos significa, em outras palavras, assegurar que
cada um possuauma determinadapostura em relac¸˜ao aos outros integrantesda equipe. Portanto,
o objetivo principal deste trabalho ´e controlar a postura de cada seguidor relativa ao l´ıder.
De acordo com a teoria de controle [46], para um sistema descrito por equac¸˜oes n˜ao li-
neares, a adoc¸˜ao de um controlador linear requer a linearizac¸˜ao deste sistema nas vizinhanc¸as
do ponto de operac¸˜ao. Dependendo da n˜ao linearidade da regi˜ao onde este ponto se encontra,
a estabilidade do controlador fica limitada a uma vizinhanc¸a muito restrita, comprometendo a
eficiˆencia do controle adotado. Em outras palavras, o desempenho do controlador pode se tor-
nar extremamente dependente das condic¸˜oes iniciais do sistema e o controlador pode apresentar
alta sensibilidade a ru´ıdos, pois, se uma perturbac¸˜ao qualquer retirar o sistema desta vizinhanc¸a
onde o controle ´e est´avel, n˜ao h´a garantia de que o controlador conduzir´a o sistema novamente
ao ponto de operac¸˜ao. Al´em disso, determinar com precis˜ao qual ´e esta vizinhanc¸a n˜ao ´e, em
geral, uma tarefa f´acil.
Claramente, como pode ser visto na Equac¸˜ao 2.2, a postura dos seguidores ´e descrita por
equac¸˜oes n˜ao lineares. Isso motivou a adoc¸˜ao de um controlador n˜ao linear, uma vez que se
deseja controlar a formac¸˜ao da equipe independentemente de sua forma geom´etrica, dos erros
iniciais de posic¸˜ao e orientac¸˜ao e do ru´ıdo presente nas estimativas de postura dos seguidores.
2.2 O Controlador de Formac¸
˜
ao 31
Para controlar as posturas dos seguidores ´e necess´ario estim´a-las, ou seja, realimentar o
controlador. O ´unico sensor do qual o robˆo l´ıder disp˜oe para estimar as posturas dos seguido-
res ´e o sistema de vis˜ao omnidirecional montado sobre sua plataforma, exibido na Figura 2.2.
Portanto, trata-se de um controle n˜ao linear com realimentac¸˜ao puramente visual.
Figura 2.2: Sistema omnidirecional respons´avel pela realimentac¸˜ao do controlador.
Assim, o controlador proposto baseia-se nas estimativas da postura de cada seguidor, obti-
das atrav´es do processamento das imagens omnidirecionais, para gerar os respectivos sinais de
controle. Estes sinais nada mais s˜ao do que as velocidades linear e angular que cada seguidor
deve ter para entrar e permanecer na formac¸˜ao desejada.
O controlador utilizado neste trabalho pode ser subdivididoem dois controladores menores.
O primeiro deles, chamado Controlador de Formac¸˜ao, considera apenas o erro de formac¸˜ao de
um seguidor enquanto o segundo, chamado Controlador de Compensac¸˜ao, incorpora o movi-
mento do robˆo l´ıder na determinac¸˜ao dos sinais de controle.
2.2 O Controlador de Formac¸
˜
ao
O processamento das imagens omnidirecionais capturadas pelo sistema de vis˜ao fornece
uma estimativa da posic¸˜ao de cada seguidor no referencial do l´ıder, como na Equac¸˜ao 2.1. Um
2.2 O Controlador de Formac¸
˜
ao 32
´unico vetor que contenha todas as coordenadas das posic¸˜oes dos seguidores pode ser escrito
como na Equac¸˜ao 2.3.
ξ
=
ξ
1
ξ
2
.
.
.
ξ
n
(2.3)
Embora a estimativa de posic¸˜ao seja conseguida com o aux´ılio das imagens omnidire-
cionais, o desempenho do controlador deve ser independente do sensor utilizado para obter
esta informac¸˜ao. De acordo com a aplicac¸˜ao em quest˜ao, pode ser necess´ario algum tipo de
transformac¸˜ao nas coordenadas obtidas pelo sensor usado. Por exemplo, uma transformac¸˜ao
pode ser usada para corrigir as disparidades de um sistema de vis˜ao perspectiva ou para traba-
lhar com parˆametros de formac¸˜ao diferentes das posic¸˜oes mas associados `a formac¸˜ao desejada,
como a distˆancia entre os robˆos da equipe, o baricentro da formac¸˜ao, etc. Al´em disso, se o
controlador for dependente de medic¸˜oes feitas diretamente na imagem, caso o sistema de vis˜ao
sofra alguma modificac¸˜ao ou seja trocado por outro, os parˆametros do controlador teriam que
ser sintonizados novamente. Assim, para abordar o problema de uma forma gen´erica, pode-se
considerar o vetor de par
ˆ
ametros de formac¸
˜
ao como
ρ
(
ξ
). Da´ı o cuidado tomado em chamar
este controlador de Controlador de Formac¸
˜
ao, e n˜ao de Posic¸
˜
ao.
Neste trabalho, para tornar o controlador independente das medic¸˜oes e caracter´ısticas do
sistema de vis˜ao, todas as posic¸˜oes dos seguidores fornecidas pelas imagens omnidirecionais
s˜ao convertidas para posic¸˜oes no mundo real, de acordo com a Figura 2.1. Em outras palavras,
uma transformac¸˜ao Γ : Z
2
2
, definida atrav´es de um conjunto de equac¸˜oes polinomiais,
converte as posic¸˜oes (dadas em pixels) do plano da imagem para posic¸˜oes (dadas em metros)
no plano de trabalho da equipe. O resultado desta transformac¸˜ao ´e o vetor
ξ
, ou seja, o vetor
que representa as coordenadas dos seguidores no mundo real e relativas ao ıder.
´
E importante
ressaltar que Γ n˜ao faz parte do grupo de transformac¸˜oes respons´aveis pela adoc¸˜ao da notac¸˜ao
ρ
(
ξ
), j´a que estas ´ultimas s˜ao aplicadas ao vetor
ξ
, enquanto Γ fornece
ξ
. O motivo para
esta distinc¸˜ao est´a no fato de que o controlador foi definido no referencial do l´ıder, ou seja, no
mundo, e n˜ao na imagem. Caso fosse definido no referencial da imagem, o controlador seria do
tipo servo-visual.
Uma conseq¨uˆencia importante da definic¸˜ao do controlador no referencial do l´ıder e de usar
diretamente as posic¸˜oes dos robˆos ´e que n˜ao ´e necess´ario realizar nenhuma transformac¸˜ao nas
coordenadas dos seguidores para controlar a formac¸˜ao, neste caso,
ρ
(
ξ
) =
ξ
. Contudo, a
notac¸˜ao
ρ
(
ξ
) ser´a mantida por quest˜oes de generalidade.
2.2 O Controlador de Formac¸
˜
ao 33
Sendo
ρ
(
ξ
) um vetor de parˆametros de formac¸˜ao, o vetor de velocidades de formac¸˜ao ´e
obtido derivando-se
ρ
(
ξ
) em relac¸˜ao ao tempo, como na Equac¸˜ao 2.4.
˙
ρ
= J(
ξ
)
˙
ξ
(2.4)
onde J(
ξ
) ´e o jacobiano de
ξ
.
A partir da Equac¸˜ao 2.4 pode-se projetar um controlador para que a equipe entre em
formac¸˜ao. A lei de formac¸˜ao ´e dada pela Equac¸˜ao 2.5.
˙
ξ
fr
= J
1
(
ξ
)
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
)
com
˜
ρ
=
ρ
d
ρ
(2.5)
onde
˜
ρ
´e o vetor de erros de formac¸˜ao [36],
ρ
d
´e o vetor com os parˆametros de formac¸˜ao
desejados e
ρ
o vetor com os valores atuais dos parˆametros de formac¸˜ao. O vetor
˙
ρ
d
representa
a taxa de variac¸˜ao temporal dos parˆametros desejados e ser´a n˜ao nulo quando os parˆametros
desejados de pelo menos um seguidor estiverem variando no tempo. Caso contr´ario,
˙
ρ
d
ser´a
sempre um vetor nulo.
O vetor
˙
ξ
fr
representa as velocidades de formac¸˜ao de referˆencia, ou seja, as velocidades
no sistema de coordenadas do ıder que os seguidores devem ter para alcanc¸ar a formac¸˜ao.
Nota-se, ainda na Equac¸˜ao 2.5, que para obter
˙
ξ
fr
´e necess´ario determinar primeiro o jacobiano
inverso J
1
(
ξ
). Como se sabe, o c´alculo de invers˜ao matricial ´e, em geral, computacionalmente
custoso. Entretanto, como neste trabalho nenhuma transformac¸˜ao precisa ser aplicada a
ξ
, J(
ξ
)
e J
1
(
ξ
) s˜ao matrizes identidade. Logo, o custo computacional da determinac¸˜ao de
˙
ξ
fr
n˜ao ´e
significativo.
A func¸˜ao f
˜
ρ
(
˜
ρ
) ´e uma func¸˜ao de saturac¸˜ao sobre o erro de formac¸˜ao. Em [35], f
˜
ρ
(
˜
ρ
) ´e
dada pela Equac¸˜ao 2.6.
f
˜
ρ
(
˜
ρ
) = diag
k
f
a+ |
˜
ρ
j
|
˜
ρ
(2.6)
onde k
f
representa o valor de saturac¸˜ao e a ´e tal que
k
f
a
representa o ganho para erros pequenos.
A forma de f
˜
ρ
(
˜
ρ
) assim definida pode ser vista na Figura 2.3. Vale ressaltar que, na Figura
2.3 - (a), as escalas para os eixos x e y s˜ao diferentes. A Figura 2.3 - (b) exibe, na mesma
escala, o comportamento de f
˜
ρ
(
˜
ρ
) para erros de formac¸˜ao menores do que 15 cm, mostrando a
verdadeira inclinac¸˜ao desta func¸˜ao para estes erros.
O objetivo de se usar f
˜
ρ
(
˜
ρ
) ´e evitar que erros grandes de formac¸˜ao causem velocidades de
formac¸˜ao tamb´em elevadas, submetendo os motores a tens˜oes acima dos valores nominais ou
mesmo causando um mal funcionamento do robˆo.
2.2 O Controlador de Formac¸
˜
ao 34
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
Erro de Posição [m]
(a)
−0.1 −0.05 0 0.05 0.1 0.15
−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
(b)
Figura 2.3: (a) Formato da func¸˜ao f
˜
ρ
(
˜
ρ
) para k
f
= 0.14 e a = 0.1 e (b) Zoom para
observar o comportamento de f
˜
ρ
(
˜
ρ
) para erros de formac¸˜ao menores que
15 cm.
Entretanto, o ganho
k
f
a
provoca oscilac¸˜oes na velocidade linear dos seguidores quando estes
est˜ao pr´oximos das posic¸˜oes desejadas. Esse fato, acompanhado de um erro angular o que ´e
freq¨uente pode fazer com que o seguidor se afaste da posic¸˜ao desejada, causando oscilac¸˜oes
tamb´em na trajet´oria. Isso ocorre porque
k
f
a
´e grande para erros de formac¸˜ao pequenos (ver
Figura 2.3). Reduzir o valor de k
f
implica em limitar a velocidade dos seguidores em um valor
mais baixo, o que n˜ao ´e interessante. Uma soluc¸˜ao intuitiva seria aumentar o valor de a. Como
resultado, os seguidores podem n˜ao alcanc¸ar as posic¸˜oes desejadas quando toda a equipe estiver
navegando, uma vez que o ganho do controlador de formac¸˜ao foi reduzido.
Assim, neste trabalho, prop˜oe-se uma forma ligeiramente diferente para a func¸˜ao f
˜
ρ
(
˜
ρ
),
mostrada na Equac¸˜ao 2.7.
f
˜
ρ
(
˜
ρ
) = diag
k
f
˜
ρ
j
a+
˜
ρ
j
˜
ρ
com (2.7)
k
f
˜
ρ
j
= k
f1
+ k
f2
tanh
˜
ρ
j
.
A Equac¸˜ao 2.7 permite maior controle sobre os parˆametros que definem o comportamento
de f
˜
ρ
(
˜
ρ
). Agora, k
f1
+ k
f2
representa o valor de saturac¸˜ao e o ganho para erros pequenos ´e
dado por
k
f1
a
. Desta forma, ´e poss´ıvel manter o valor de saturac¸˜ao e o parˆametro a inalterados
e, ao mesmo tempo, obter um ganho pequeno para erros de formac¸˜ao pequenos, eliminando as
oscilac¸˜oes na velocidade linear dos seguidores. A forma de f
˜
ρ
(
˜
ρ
) definida segundo a Equac¸˜ao
2.7 encontra-se na Figura 2.4.
2.2 O Controlador de Formac¸
˜
ao 35
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
−0.2
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
Erro de Posição [m]
(a)
−0.1 −0.05 0 0.05 0.1 0.15
−0.1
−0.08
−0.06
−0.04
−0.02
0
0.02
0.04
0.06
0.08
0.1
(b)
Figura 2.4: (a) Formato da func¸˜ao f
˜
ρ
(
˜
ρ
) para k
f1
= 0.08, k
f2
= 0.06 e a = 0.1 e (b)
Zoom para observar o comportamento de f
˜
ρ
(
˜
ρ
) para erros de posic¸˜ao me-
nores que 15 cm.
Comparando as Figuras 2.3-(b) e 2.4-(b), nota-se que a func¸˜ao f
˜
ρ
(
˜
ρ
) proposta neste traba-
lho apresenta um ganho menor para erros pequenos, proporcionando uma transic¸˜ao mais suave
entre os valores positivos e negativos do erro de formac¸˜ao.
A Figura 2.5 ilustra o vetor de velocidades de referˆencia
˙
ξ
fr
gerado ap´os a aplicac¸˜ao deste
controlador. Neste caso, para um completo entendimento da ac¸˜ao do controlador, considerou-se
uma variac¸˜ao nos parˆametros de formac¸˜ao desejados para o seguidor, ou seja, o vetor
˙
ρ
d
´e n˜ao
nulo.
Figura 2.5: Resultado da aplicac¸˜ao do Controlador de Formac¸˜ao quando os parˆametros
desejados do seguidor est˜ao variando.
Nota-se claramente que o vetor
˙
ξ
fr
possui uma orientac¸˜ao diferente daquela que teria se
a func¸˜ao f
˜
ρ
(
˜
ρ
) n˜ao fosse aplicada. Isso ocorre devido `a saturac¸˜ao imposta por f
˜
ρ
(
˜
ρ
) sobre o
2.3 O Controlador de Compensac¸
˜
ao 36
erro de formac¸˜ao,
˜
ρ
. Como
˙
ρ
d
n˜ao sofre nenhum tipo de saturac¸˜ao, a soma
˙
ρ
d
+
˜
ρ
, representada
por
˙
ξ
fr
, ´e diferente da soma
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
) =
˙
ξ
fr
em m´odulo e orientac¸˜ao. Entretanto, este desvio
de orientac¸˜ao de
˙
ξ
fr
n˜ao afeta a estabilidade do controlador, pois `a medida que o seguidor se
aproxima da postura desejada,
˜
ρ
0 e, portanto,
˙
ξ
fr
˙
ρ
d
. Esse efeito, por sua vez, ocorrer´a
independente do uso da func¸˜ao f
˜
ρ
(
˜
ρ
).
Na verdade, na maioria dos casos, durante uma navegac¸˜ao normal, a formac¸˜ao desejada
n˜ao varia. Isso ´e mais comum durante, por exemplo, uma manobra de desvio de obst´aculos.
Assim,
˙
ρ
d
´e, na maior parte do tempo, um vetor nulo, o que elimina o desvio de orientac¸˜ao de
˙
ξ
fr
durante uma navegac¸˜ao normal. Isto est´a ilustrado na Figura 2.6.
Figura 2.6: Resultado da aplicac¸˜ao do Controlador de Formac¸˜ao quando os parˆametros
desejados do seguidor n˜ao variam.
Dessa forma, a func¸˜ao deste controlador ´e, ent˜ao, gerar os sinais de velocidade que cada se-
guidor deve ter apenas para entrar em formac¸˜ao, ou seja, considera apenas os erros de formac¸˜ao,
n˜ao levando em conta a orientac¸˜ao dos seguidores ou o movimento do l´ıder. Em outras pala-
vras, gera sinais de velocidade que conduzem os seguidores `a formac¸˜ao desejada considerando
estes robˆos como holonˆomicos e supondo que o l´ıder est´a parado. Embora n˜ao estejam de
acordo com a realidade, estas considerac¸˜oes n˜ao s˜ao arriscadas, pois a ac¸˜ao do Controlador de
Compensac¸˜ao, que ocorre em paralelo, as corrige, como ser´a visto na pr´oxima sec¸˜ao.
2.3 O Controlador de Compensac¸
˜
ao
Para que a equipe possa navegar por um ambiente, o ıder deve possuir movimento. Este
movimento ´e caracterizado por velocidades linear e angular. Logo, para alcanc¸ar e manter uma
determinada formac¸˜ao, estas velocidades precisam ser compensadas pelos seguidores. Isso ´e
feito somando-se ao vetor
˙
ξ
fr
os vetores
˙
ξ
l
e
˙
ξ
ω
que s˜ao, respectivamente, as compensac¸˜oes
2.3 O Controlador de Compensac¸
˜
ao 37
das velocidades linear e angular do ıder. Obt´em-se, assim, o vetor velocidade de referˆencia
˙
ξ
r
, dado pela Equac¸˜ao 2.8, o qual traduz as velocidades que devem ter os seguidores para ao
mesmo tempo entrar em formac¸˜ao e compensar a translac¸˜ao e rotac¸˜ao do l´ıder.
˙
ξ
r
=
˙
ξ
fr
+
˙
ξ
l
+
˙
ξ
ω
(2.8)
Caso o ıder possua apenas velocidade linear, o termo
˙
ξ
ω
pode ser desprezado. Assim, a
compensac¸˜ao ´e conseguida simplesmente somando a velocidade do l´ıder `a componente de
˙
ξ
fr
na direc¸˜ao y do seu referencial, como na Equac¸˜ao 2.9. Este ´e o efeito compensador de
˙
ξ
l
.
˙
ξ
r
=
˙
ξ
fr
+
0
v
l
.
.
.
0
v
l
(2.9)
onde v
l
´e a velocidade linear do l´ıder.
Este efeito ´e ilustrado pela Figura 2.7, onde
˙
ξ
frx
e
˙
ξ
fry
s˜ao as componentes de
˙
ξ
fr
nas
direc¸˜oes x e y. Neste caso, a compensac¸˜ao ´e alcanc¸ada assintoticamente, desde que a velocidade
imposta pelo ıder seja menor que a m´axima velocidade linear que os seguidores podem ter.
Uma vez alcanc¸ada a postura desejada, o seguidor precisa apenas manter sua velocidade igual
`a do l´ıder.
Figura 2.7: Efeito da compensac¸˜ao da velocidade linear do l´ıder na determinac¸˜ao da
velocidade de referˆencia do seguidor.
Entretanto, normalmente o ıder possui tanto velocidade linear quanto angular. Devido `a
sua rotac¸˜ao, esta compensac¸˜ao est´a diretamente ligada `a geometria que descreve a trajet´oria dos
2.3 O Controlador de Compensac¸
˜
ao 38
robˆos da equipe. De acordo com a Figura 2.8, o l´ıder e o seguidor descrevem raios iguais a,
respectivamente, r e r
i
. Considera-se aqui, por simplicidade, que o seguidor j´a se encontra na
postura desejada. Sendo
ω
l
a velocidade angular do ıder, para manter a formac¸˜ao, os seguidores
devem ajustarsuas velocidadesde tal forma a descrever ırculos concˆentricos (se
ω
l
´e constante)
ou instantaneamente concˆentricos (se
ω
l
est´a variando) com aquele descrito pelo l´ıder.
Figura 2.8: Geometria para a compensac¸˜ao simultˆanea das velocidades linear e angular
do l´ıder.
Assim, como v
l
e
ω
l
s˜ao conhecidos, r e r
i
s˜ao dados pelas Equac¸˜oes 2.10 e 2.11. Os
vetores v
ix
e v
iy
, dados pelas Equac¸˜oes 2.14 e 2.15, s˜ao as componentes da velocidade linear
de compensac¸˜ao do i-´esimo seguidor representadas no referencial do l´ıder e expressam a soma
˙
ξ
l
+
˙
ξ
ω
, ou seja, j´a incluem as contribuic¸˜oes de v
l
e
ω
l
.
r =
v
l
ω
l
(2.10)
r
i
=
(r+ x
i
)
2
+ (y
i
)
2
(2.11)
ϕ
i
= arctan
y
i
r+ x
i
(2.12)
v
i
=
ω
l
r
i
(2.13)
v
ix
= v
i
cos
ϕ
i
+
π
2
(2.14)
v
iy
= v
i
sin
ϕ
i
+
π
2
(2.15)
Uma outra situac¸˜ao ´e quando o l´ıder apresenta apenas rotac¸˜ao, isto ´e, possui apenas veloci-
dade angular. Neste caso, ´e o termo
˙
ξ
l
que ´e desprezado. Esta situac¸˜ao ´e exibida na Figura 2.9.
2.3 O Controlador de Compensac¸
˜
ao 39
Figura 2.9: Geometria para compensac¸˜ao da velocidade angular do l´ıder.
Neste caso, as Equac¸˜oes 2.10, 2.11 e 2.12 se reduzem a
r = 0 (2.16)
r
i
=
(x
i
)
2
+ (y
i
)
2
(2.17)
ϕ
i
= arctan
y
i
x
i
(2.18)
e, portanto, a direc¸˜ao de v
i
´e perpendicular `a r
i
e v
ix
e v
iy
s˜ao obtidos conforme 2.14 e 2.15.
Uma vez conhecidas as compensac¸˜oes a serem feitas para alcanc¸ar a formac¸˜ao e o segui-
mento do l´ıder, os comandos de velocidade linear e angular que devem ser enviados ao i-´esimo
robˆo seguidor s˜ao dados pelas Equac¸˜oes 2.19 e 2.20, j´a que estes robˆos s˜ao n˜ao-holonˆomicos e
n˜ao podem realizar
˙
ξ
ri
diretamente.
˙
ξ
ci
=
˙
ξ
ri
cos(
˜
α
i
) (2.19)
ω
ci
=
˙
α
ri
+ f
˜
α
(
˜
α
i
) +
ω
l
(2.20)
onde
˙
ξ
ri
´e a norma da velocidade de referˆencia para o i-´esimo robˆo seguidor e
˙
α
ri
´e a variac¸˜ao,
no tempo, de sua orientac¸˜ao,
α
ri
. Portanto,
α
ri
´e a orientac¸˜ao desejada para o i-´esimo seguidor,
que tem sua orientac¸˜ao atual representada por
α
i
. Logo, o termo
˜
α
i
=
α
ri
α
i
´e o erro angular
do i-´esimo seguidor. Todos esses ˆangulos est˜ao ilustrados na Figura 2.10, onde o subscrito foi
omitido por raz˜oes de clareza.
2.3 O Controlador de Compensac¸
˜
ao 40
Figura 2.10:
ˆ
Angulos relacionados `a determinac¸˜ao das velocidades linear e angular de
comando de um seguidor.
A func¸˜ao f
˜
α
(
˜
α
i
), assim como no caso do controlador de formac¸˜ao, ´e uma func¸˜ao de
saturac¸˜ao sobre o erro. Em [35], esta func¸˜ao ´e definida segundo a Equac¸˜ao 2.21.
f
˜
α
(
˜
α
i
) = k
ω
tanh(
˜
α
i
) (2.21)
onde k
ω
representa o valor de saturac¸˜ao sobre erro de orientac¸˜ao. A func¸˜ao f
˜
α
(
˜
α
i
) tem a
finalidade de evitar que erros grandes de orientac¸˜ao (geralmente iniciais) gerem velocidades
angulares de comando muito altas. Isto poderia comprometer a estabilidade e submeter os
motores dos robˆos a variac¸˜oes abruptas de tens˜ao. A forma de f
˜
α
(
˜
α
i
) est´a ilustrada na Figura
2.11.
−400 −300 −200 −100 0 100 200 300 400
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Erro de Orientação [graus]
Figura 2.11: Aparˆencia da func¸˜ao f
˜
α
(
˜
α
i
) para k
ω
= 0.5.
2.3 O Controlador de Compensac¸
˜
ao 41
Entretanto, devido `a sua forma, f
˜
α
(
˜
α
i
) pode causar oscilac¸˜oes na velocidade angular dos
seguidores quando os erros de orientac¸˜ao s˜ao pequenos. Assim, mesmo que um determinado
seguidor esteja em sua posic¸˜ao desejada, sua trajet´oria pode ser oscilat´oria. Logo, prop˜oe-se
aqui uma pequena modificac¸˜ao nesta func¸˜ao, a fim de tornar a transic¸˜ao entre valores positivos
e negativos do erro de orientac¸˜ao mais suave. Neste caso, a nova func¸˜ao exibe uma inclinac¸˜ao
que tende a zero `a medida que o m´odulo do erro diminui. A nova f
˜
α
(
˜
α
i
) est´a definida na
Equac¸˜ao 2.22 e sua forma pode ser vista na Figura 2.12.
f
˜
α
(
˜
α
i
) = k
ω
1
tanh
3
(k
ω
2
˜
α
i
) (2.22)
Desta vez, o valor de saturac¸˜ao ´e determinado por k
ω
1
, enquanto k
ω
2
controla a inclinac¸˜ao
da func¸˜ao, ou seja, o qu˜ao r´apido f
˜
α
(
˜
α
i
) atinge a saturac¸˜ao. Assim, mais uma vez, a func¸˜ao
f
˜
α
(
˜
α
i
) permite maior controle sobre os parˆametros que influenciam seu comportamento e, por-
tanto, o comportamento do controlador.
−400 −300 −200 −100 0 100 200 300 400
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Erro de Orientação [graus]
Figura 2.12: Aparˆencia da nova func¸˜ao f
˜
α
(
˜
α
i
) para k
ω
1
= 0.5 e k
ω
2
= 1.
Vale lembrar que as modificac¸˜oes feitas nas equac¸˜oes do controlador, embora melhorem seu
desempenho, aumentam o custo computacional envolvido. Por outro lado, este aumento n˜ao ´e
significativo se comparado ao custo do processamento das imagens omnidirecionais. Portanto,
as modificac¸˜oes realizadas n˜ao afetam o desempenho do sistema como um todo.
O diagrama de blocos da Figura 2.13 ajuda a compreender o funcionamento do controlador
empregado. Nesse diagrama, o grande retˆangulo cinza representa o controlador. Percebe-se que
as vari´aveis de entrada s˜ao o vetor com os parˆametros de formac¸˜ao desejados e as velocidades
linear e angular do l´ıder. O diagrama tamb´em deixa claro que os controladores de Formac¸˜ao e
Compensac¸˜ao trabalham em paralelo e que a combinac¸˜ao das suasrespostasfornece o vetor com
as velocidades de referˆencia para os seguidores,
˙
ξ
r
. Este, juntamente com a velocidade angular
2.4 Prova de Estabilidade do Controlador 42
do ıder e os vetores
˙
α
r
e
˜
α
s˜ao usados para gerar as velocidades linear e angular que cada
seguidor deve ter para alcanc¸ar e manter a formac¸˜ao desejada, ou seja, s˜ao usados para gerar os
sinais de controle. O vetor
˙
α
r
representa a derivada temporal das orientac¸˜oes das velocidades
de referˆencia de cada seguidor, enquanto o vetor
˜
α
re´une os erros angulares de cada um dos
seguidores. O sistema de vis˜ao captura imagens da cena formada pelos robˆos da equipe. O
processamento dessas imagens fornece as posturas de todos os seguidores, representadas pelo
vetores
ρ
e
α
, que fazem a realimentac¸˜ao do controlador.
Figura 2.13: Diagrama de blocos do controlador n˜ao-linear utilizado.
2.4 Prova de Estabilidade do Controlador
2.4.1 Prova para o controlador de formac¸
˜
ao
Os robˆos seguidores, devido `as suas dinˆamicas, n˜ao podem alcanc¸ar instantaneamente as
velocidades de formac¸˜ao desejadas. No entanto, este processo ocorre assintoticamente desde
que a velocidade do l´ıder seja menor que a m´axima velocidade que podem desenvolver. Isso
est´a representado pela Equac¸˜ao 2.23.
˙
ξ
˙
ξ
fr
(2.23)
onde
˙
ξ
´e o vetor atual de velocidades e
˙
ξ
fr
´e o vetor de velocidades de referˆencia para a
formac¸˜ao. A Equac¸˜ao 2.23 tamb´em pode ser escrita como na Equac¸˜ao 2.24.
˙
ξ
fr
=
˙
ξ
+
η
com
η
0 (2.24)
2.4 Prova de Estabilidade do Controlador 43
onde
η
traduz os erros nas velocidades de formac¸˜ao. A lei de formac¸˜ao ´e dada pela Equac¸˜ao
2.25, como discutido no in´ıcio deste cap´ıtulo.
˙
ξ
fr
= J
1
(
ξ
)
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
)
(2.25)
Substituindo 2.24 em 2.25 obt´em-se a Equac¸˜ao 2.26.
˙
ξ
+
η
= J
1
(
ξ
)
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
)
(2.26)
A multiplicac¸˜ao de ambos os lados da Equac¸˜ao 2.26 por J(
ξ
) leva `a Equac¸˜ao 2.27.
J(
ξ
)
˙
ξ
+
η
1
=
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
) onde
η
1
= J(
ξ
)
η
(2.27)
Como se sabe,
˙
ρ
= J(
ξ
)
˙
ξ
(Equac¸˜ao 2.4), o que conduz `a Equac¸˜ao 2.28.
˙
ρ
+
η
1
=
˙
ρ
d
+ f
˜
ρ
(
˜
ρ
) (2.28)
A derivada de
˜
ρ
produz a Equac¸˜ao 2.29.
˙
˜
ρ
=
˙
ρ
d
˙
ρ
˙
ρ
d
=
˙
˜
ρ
+
˙
ρ
(2.29)
A substituic¸˜ao da Equac¸˜ao 2.29 na Equac¸˜ao 2.28 resulta em
˙
˜
ρ
=
η
1
f
˜
ρ
(
˜
ρ
). (2.30)
Em seguida, prop˜oe-se a seguinte func¸˜ao candidata de Lyapunov:
V =
1
2
˜
ρ
T
˜
ρ
, (2.31)
cuja derivada temporal ´e
˙
V =
˜
ρ
T
˙
˜
ρ
. (2.32)
Substituindo a Equac¸˜ao 2.30 na Equac¸˜ao 2.32, obt´em-se
˙
V =
˜
ρ
T
η
1
˜
ρ
T
f
˜
ρ
(
˜
ρ
). (2.33)
Para que
˙
V seja definida negativa ´e necess´ario que
k
f
(
˜
ρ
)
a+
˜
ρ
˜
ρ
2
>
η
1

˜
ρ
, (2.34)
onde k
f
(
˜
ρ
) ´e definida como
k
f
(
˜
ρ
) = k
f1
+ k
f2
tanh(
˜
ρ
) (2.35)
2.4 Prova de Estabilidade do Controlador 44
e, portanto,
˜
ρ
>
a
η
1
k
f1
+ k
f2
tanh(
˜
ρ
)
η
1
. (2.36)
Como os seguidores atingem as velocidades de formac¸˜ao,
η
0. Assim,
η
1
0 e a
condic¸˜ao imposta pela Equac¸˜ao 2.36 ser´a verdadeira para algum tempo finito. T˜ao logo esta
condic¸˜ao se torne verdadeira,
˙
V ser´a definida negativa, o que significa que
˜
ρ
(t) 0 com
t .
2.4.2 Prova para as leis de controle (comandos) para os rob
ˆ
os seguidores
A variac¸˜ao temporal da orientac¸˜ao relativa dos seguidores ´e expressa pela Equac¸˜ao 2.37.
˙
α
=
ω
c
ω
l
(2.37)
onde a velocidade angular de comando,
ω
c
, ´e dada por
ω
c
=
˙
α
r
+ f
˜
α
(
˜
α
) +
ω
l
. (2.38)
Substituindo a Equac¸˜ao 2.38 na Equac¸˜ao 2.37, tem-se
˙
α
=
˙
α
r
+ f
˜
α
(
˜
α
) (2.39)
A derivada do erro angular,
˜
α
, em relac¸˜ao ao tempo, resulta em
˙
˜
α
=
˙
α
r
˙
α
˙
α
r
=
˙
˜
α
+
˙
α
. (2.40)
Com isso, a Equac¸˜ao 2.39 pode ser reescrita como
˙
˜
α
+ f
˜
α
(
˜
α
) = 0. (2.41)
Assim, prop˜oe-se a seguinte func¸˜ao candidata de Lyapunov:
V =
1
2
˜
α
T
˜
α
, (2.42)
cuja derivada temporal ´e
˙
V =
˜
α
T
˙
˜
α
=
˜
α
T
f
˜
α
(
˜
α
). (2.43)
Como f
˜
α
(
˜
α
) ´e uma func¸˜ao ´ımpar, tem-se que
˜
α
T
f
˜
α
(
˜
α
) > 0 para
˜
α
= 0, conclui-se que
˙
V ´e
definida negativa (
˙
V < 0). Portanto
˜
α
(t) 0 para t .
Aproveitando este resultado, conclui-se tamb´em que
˙
ξ
ci
˙
ξ
ri
, pois cos(
˜
α
i
) 1.
Com isso, fica demonstrado que os erros de formac¸˜ao e seguimento tendem assintotica-
mente a zero, justificando a adoc¸˜ao destas leis de controle.
2.5 Conclus
˜
oes 45
2.5 Conclus
˜
oes
Este cap´ıtulo apresentou o controlador utilizado neste trabalho, seu funcionamento e suas
caracter´ısticas. Trata-se de um controlador de postura, que aproveita a n˜ao linearidade das
equac¸˜oes que descrevem o sistema para gerar sinais de controle que conduzem a equipe `a
formac¸˜ao desejada de forma est´avel. Para tanto, divide-se em dois controladores menores,
onde o primeiro, chamado Controlador de Formac¸˜ao, tem a tarefa de produzir os sinais de con-
trole referentes ao sistema de coordenadas do ıder que levam os robˆos seguidores `as posturas
esperadas. Por´em, como toda a equipe est´a em movimento, inclusive o ıder, o sistema de co-
ordenadas deste tamb´em se move. Considerar e compensar este movimento ´e responsabilidade
do segundo controlador, o Controlador de Compensac¸˜ao, que leva em conta a geometria da
trajet´oria de cada robˆo da equipe em suas equac¸˜oes.
Para controlar as posturas dos seguidores, o l´ıder precisa estimar cada uma delas, o que ´e
feito atrav´es de realimentac¸˜ao visual, usando o sistema omnidirecional que possui. Este ´e o as-
sunto do pr´oximo cap´ıtulo, que descreve as t´ecnicas de processamento de imagens empregadas
neste trabalho.
46
3 O Processamento de Imagens
3.1 Introduc¸
˜
ao
O processamento de imagens vem sendo usado h´a alguns anos nos mais variados tipos de
aplicac¸˜ao. A utilizac¸˜ao de imagens representa, hoje, um papel fundamental em sistemas de
comunicac¸˜ao, seguranc¸a, medicina, tecnologias de apoio a pessoas com deficiˆencia [47, 48],
entretenimento, controle de qualidade e processos, aplicac¸˜oes militares e, ´e claro, rob´otica.
A utilizac¸˜ao de imagens na rob´otica vem se tornando cada vez mais marcante. Isto se
deve ao fato de que imagens s˜ao capazes de fornecer, de uma s´o vez, grande quantidade de
informac¸˜ao a respeito do ambiente de trabalho, comoa localizac¸˜ao de outros agentes, obst´aculos
ou pessoas. Com o avanc¸o da tecnologia, a miniaturizac¸˜ao, a eficiˆencia e a qualidade dos siste-
mas de vis˜ao aumentam a cada ano. Al´em disso, o surgimento de ferramentas computacionais
e o aumento da capacidade de processamento impulsionam ainda mais a expans˜ao da vis˜ao
artificial em aplicac¸˜oes da rob´otica.
Alguns trabalhos que utilizam a vis˜ao articial em cooperac¸˜ao rob´otica podem ser citados,
como [25, 26, 28, 33, 36, 49]. Em [25], os autores introduzem o conceito de estruturas virtuais
e utilizam controle bidirecional para controlar a formac¸˜ao de um grupo de robˆos m´oveis. A
localizac¸˜ao e a deteminac¸˜ao da orientac¸˜ao destes s˜ao feitas atrav´es de vis˜ao. Simulac¸˜oes e
experimentos com robˆos reais foram realizados. Por´em, o sistema de vis˜ao est´a fixo em um
ponto acima dos robˆos, limitando sua ´area de trabalho. Da mesma forma, os trabalhos [33, 36,
49] utilizam cˆamaras fixas para controlar os robˆos.
Em [28], imagens omnidirecionais s˜ao usadas para se obter cooperac¸˜ao entre os integrantes
de um grupo de robˆos m´oveis. Os autores desenvolveram um cen´ario no qual cada seguidor
utiliza fluxo ´otico para estimar as posic¸˜oes relativas dos outros robˆos, permitindo que o grupo
mantenha, visualmente, a formac¸˜ao desejada sem a necessidade de segmentac¸˜ao por cores ou
comunicac¸˜ao entre eles. Por outro lado, o custo computacional envolvido no c´alculo do fluxo
´otico ´e alto e os resultados s˜ao mostrados apenas atrav´es de simulac¸˜oes.
3.2 O Processamento das Imagens Omnidirecionais 47
Outro trabalho que utiliza imagens omnidirecionais em benef´ıcio da cooperac¸˜ao ´e [26],
onde cada robˆo possui seu pr´oprio sistema catadi´optrico de vis˜ao, permitindo a adoc¸˜ao de uma
estrat´egia de controle descentralizado e eliminando a necessidade de comunicac¸˜ao entre os
robˆos. Entretanto, todo o processamento das imagens ´e feito em um computador central e
externo aos robˆos. Al´em disso, assim como em [28], o uso de v´arios sistemas omnidirecionais
eleva o custo da equipe.
Diferentemente de [26, 28] e como j´a exposto anteriormente, este trabalho prop˜oe uma
arquitetura de controle centralizado, no qual o sistema de vis˜ao est´a embarcado apenas no robˆo
l´ıder. Com isso, o sistema se move junto com a equipe e, portanto, a ´area de trabalho n˜ao ´e
limitada, como acontece em [25, 33, 36, 49]. Assim, para fornecer ao controlador proposto
neste trabalho as posturas dos seguidores de forma adequada, ´e necess´ario processar as imagens
omnidirecionais capturadas pelo sistema de vis˜ao. Para isso, t´ecnicas de processamento de
imagens dispon´ıveis na literatura foram utilizadas.
Este cap´ıtulo dedica-se, portanto, a descrever as t´ecnicas de processamento de imagens
aplicadas `as imagens omnidirecionais para garantir a realimentac¸˜ao visual para o controlador,
fornecendo a postura de cada seguidor.
3.2 O Processamento das Imagens Omnidirecionais
Como exposto no Cap´ıtulo 1, imagens omnidirecionais, cuja finalidade ´e ampliar o campo
de vis˜ao, podem ser conseguidas de v´arias formas; uma delas ´e atrav´es da combinac¸˜ao de es-
pelhos convexos e cˆamaras de v´ıdeo. Por outro lado, esta ampliac¸˜ao traz consigo efeitos inde-
sejados, a saber, a perda de resoluc¸˜ao das imagens e a distorc¸˜ao n˜ao linear. O primeiro destes
efeitos ocorre porque toda cˆamara de v´ıdeo tem um n´umero limitado de pixels em seu CCD
1
.
Quando, atrav´es da reflex˜ao no espelho, toda a ´area em torno do sistema de vis˜ao ´e mapeada
neste CCD, cada pixel deve corresponder a uma ´area relativamente grande no mundo, causando
a perda de resoluc¸˜ao. Em outras palavras, com o uso do espelho, mapeia-se uma ´area muito
maior na mesma quantidade de pixels.
O segundo efeito, a distorc¸˜ao, acontece porque a projec¸˜ao de um ponto qualquer do mundo
no plano da imagem obedece a uma equac¸˜ao n˜ao linear que depende da curvatura do espelho.
Assim, `a medida que um objeto se afasta do sistema de vis˜ao, a distorc¸˜ao aumenta rapidamente.
Dependendo do tamanho do objeto de interesse, sua detecc¸˜ao pode se tornar impratic´avel a
poucos metros do sistema.
1
Do inglˆes Charge Coupled Device, ou Dispositivo de Carga Acoplada, ´e o sensor fotossens´ıvel presente nas
cˆamaras de v´ıdeo, m´aquinas fotogr´aficas digitais e scanners, respons´avel pela captura da imagem.
3.2 O Processamento das Imagens Omnidirecionais 48
Entretanto, estes efeitos s˜ao superados pela vantagem de se obter um campo visual hori-
zontal de 360
o
. Com este campo, o ıder ´e capaz de localizar todos os integrantes da equipe
capturando apenas uma imagem, que tamb´em pode ser usada para desvio de obst´aculos e ma-
peamento do ambiente sem a necessidade de rotacionar a cˆamara em torno de um eixo vertical.
Para que a equipe possa navegar por um ambiente em determinada formac¸˜ao, o l´ıder deve
conhecer a postura de cada robˆo celular pertencente ao grupo. Entretanto, quando o sistema
´e inicializado, o ıder n˜ao conhece as posturas e cores de seus seguidores. Deste modo, ´e
necess´ario, antes de iniciar a navegac¸˜ao, detectar a posic¸˜ao inicial, a cor e a orientac¸˜ao inicial
de cada robˆo celular integrante da equipe. Uma vez encerrada esta etapa, o l´ıder inicia, ent˜ao, a
navegac¸˜ao.
Assim, o processamento das imagens pode ser dividido em trˆes etapas, que s˜ao:
1. Detecc¸˜ao da posic¸˜ao inicial;
2. Rastreamento (Tracking) para determinac¸˜ao da orientac¸˜ao inicial;
3. Rastreamento para controle de formac¸˜ao.
A implementac¸˜ao destas etapas contou com a utilizac¸˜ao da biblioteca de processamento de
imagens OpenCV (Open Source Computer Vision Library) [50]. Trata-se de uma biblioteca
gratuita disponibilizada pela Intel, com c´odigo aberto, bem documentada e testada.
Como j´a foi dito no cap´ıtulo anterior, o controlador deve ser independente do sistema de
vis˜ao empregado. Uma maneira de fazer isto e ao mesmo tempo eliminar a distorc¸˜ao das ima-
gens ´e remape´a-las para imagens do tipo bird’s eye view [51, 52], cuja aparˆencia imita uma
projec¸˜ao ortogr´afica do ambiente visto de cima. Infelizmente, este remapeamento depende de
uma calibrac¸˜ao do sistema e representa maior custo no processamento das imagens.
Isso motivou a definic¸˜ao da transformac¸˜ao Γ, que n˜ao depende de calibrac¸˜ao do sistema,
possui baixo custo computacional e cujas func¸˜oes que a comp˜oem s˜ao f´aceis de ser obtidas. As
informac¸˜oes necess´arias para sua construc¸˜ao s˜ao as coordenadas do centro da imagem omnidi-
recional e as tabelas que relacionam as posic¸˜oes na imagem e no mundo. Embora o n´umero de
func¸˜oes que comp˜oem esta transformac¸˜ao possa ser elevado, aumentando sua precis˜ao, neste
trabalho, Γ foi definida usando-se um conjunto de quatro func¸˜oes polinomiais. Quatro tabelas
relacionando as distˆancias no plano da imagem com as distˆancias no mundo real foram cons-
tru´ıdas e em seguida cada uma delas foi usada para interpolar uma func¸˜ao polinomial. A ´area
de trabalho ao redor do l´ıder foi dividida em quatro setores circulares, como na Figura 3.1, e a
cada setor est˜ao associadas uma tabela e uma func¸˜ao.
3.2 O Processamento das Imagens Omnidirecionais 49
Figura 3.1: Divis˜ao em setores circulares da ´area de trabalho para a obtenc¸˜ao das
func¸˜oes polinomiais que definem a transformac¸˜ao Γ.
As func¸˜oes assim obtidas s˜ao mostradas na Figura 3.2. Dessa forma, um determinado
seguidor ter´a sua posic¸˜ao convertida do plano da imagem para o mundo (plano do ch˜ao) de
acordo com o setor onde se encontra.
Vale ressaltar que esta abordagem ´e significativamente mais r´apida que o remapeamento
bird’s eye view.
3.2.1 Detecc¸
˜
ao da Posic¸
˜
ao Inicial
A forma do espelho hiperb´olico utilizado neste trabalho para formar as imagens omnidi-
recionais ´e adequada para aplicac¸˜oes onde se deseja visualizar todo o ambiente ao redor do
sistema, como pode ser visto na Figura 3.3. Entretanto, neste trabalho, a ´area de interesse est´a
restrita a cerca de 2 metros em torno do robˆo l´ıder. Isso ocorre devido `a forma do espelho, que
imp˜oe forte distorc¸˜ao, e da cˆamara utilizada, incapaz de foc´a-lo se seu zoom for aumentado ou
se colocada mais pr´oxima. Qualquer objeto com dimens˜oes pr´oximas das dos robˆos celulares,
se situado a mais de 2 metros do sistema de vis˜ao, torna-se muito pequeno na imagem, com-
prometendo sua detecc¸˜ao. Logo, uma das considerac¸˜oes feitas neste trabalho ´e que todos os
seguidores estar˜ao sempre a uma distˆancia de, no m´aximo, 2 metros do l´ıder. Para detectar as
posic¸˜oes iniciais dos seguidores, o l´ıder deve ser capaz de focar sua atenc¸˜ao na ´area de interesse,
tamb´em chamada, aqui, de ´area de trabalho. Para isso, foi utilizada uma m´ascara circular, que
consiste em uma imagem bin´aria onde um c´ırculo branco, cujo centro tem as mesmas coorde-
nadas do centro da imagem omnidirecional, define a regi˜ao de interesse. Alterando-se o raio
3.2 O Processamento das Imagens Omnidirecionais 50
0 50 100 150
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Distância na imagem [pixels]
Distância no mundo [metros]
Setor 1
(a)
0 20 40 60 80 100 120 140
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Distância na imagem [pixels]
Distância no mundo [metros]
Setor 2
(b)
0 20 40 60 80 100 120 140
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Distância na imagem [pixels]
Distância no mundo [metros]
Setor 3
(c)
0 20 40 60 80 100 120 140
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Distância na imagem [pixels]
Distância no mundo [metros]
Setor 4
(d)
Figura 3.2: Gr´aficos exibindo o comportamento de cada func¸˜ao polinomial obtida. (a)
Setor 1 (b) Setor 2 (c) Setor 3 e (d) Setor 4.
do ırculo, altera-se a regi˜ao de interesse. A m´ascara, que pode ser vista na Figura 3.4-(a), ´e
aplicada `a imagem atrav´es da operac¸˜ao E l´ogico, ou seja, ser˜ao mantidos apenas aqueles pixels
que s˜ao diferentes de zero. O resultado pode ser visto na Figura 3.4-(b).
Cabe, aqui, uma observac¸˜ao importante: a limitac¸˜ao da ´area de trabalho ´e necess´aria, como
foi dito, devido `a forma do espelho e cˆamara usada. Juntamente com a exclus˜ao da parte mais
central das imagens (ocupada pela cˆamara e pelo ıder), essa limitac¸˜ao faz da ´area ´util para
o processamento das imagens uma coroa circular que representa apenas 12, 26% da ´area total
dispon´ıvel. Sem d´uvida, isso reduz a precis˜ao da estimativa de postura dos seguidores, afetando
o desempenho do controlador. Por´em, deve-se ressaltar que esse inconveniente n˜ao ocorre
devido ao emprego de imagens omnidirecionais, mais sim devido `a cˆamara utilizada e `a forma
do espelho, que n˜ao ´e a mais indicada para a aplicac¸˜ao em quest˜ao.
Uma vez definida a ´area de trabalho, o passo seguinte ´e a detecc¸˜ao da posic¸˜ao inicialde cada
seguidor. Para isso, foi utilizadaa t´ecnica de segmentac¸˜ao de movimentoconhecida como back-
ground subtraction. Em linhas gerais, esta t´ecnica consiste em, primeiramente, construir uma
3.2 O Processamento das Imagens Omnidirecionais 51
Figura 3.3: Imagem capturada pelo sistema de vis˜ao utilizado: a forma do espelho n˜ao
´e a mais indicada para este trabalho.
(a) (b)
Figura 3.4: (a) M´ascara bin´aria aplicada `a imagem omnidirecional imagem inver-
tida para melhor visualizac¸˜ao e (b) resultado da aplicac¸˜ao da m´ascara,
definindo a ´area de interesse para a detecc¸˜ao das posic¸˜oes iniciais dos se-
guidores.
imagem de fundo, ou background, que nada mais ´e do que a m´edia de uma seq¨uˆencia de ima-
gens de uma cena est´atica. As imagens capturadas em seguida s˜ao, ent˜ao, comparadas (atrav´es
de subtrac¸˜ao) com a imagem de fundo e as regi˜oes que apresentarem diferenc¸as significativas
s˜ao segmentadas como regi˜oes onde houve movimento.
3.2 O Processamento das Imagens Omnidirecionais 52
Embora seja poss´ıvel o uso de imagens coloridas, esta t´ecnica ´e normalmente implemen-
tada utilizando-se apenas imagens em tons de cinza, o que ´e suficiente para detectar movi-
mento. Ent˜ao, neste trabalho, cada imagem capturada, pertencente ao espac¸o de cores RGB
(Red, Green, Blue), ´e convertida para o espac¸o HSV (Hue, Saturation, Value) [53]. Como o
canal Value ´e a vers˜ao em tons de cinza da imagem capturada, somente este ´e utilizado para
implementar o background subtraction.
Entretanto, devido `a baixa resoluc¸˜ao ıpica de imagens omnidirecionais e da presenc¸a de
ru´ıdos provenientes da iluminac¸˜ao e qualidade da cˆamara utilizada, foi implementada, neste
trabalho, uma vers˜ao mais robusta deste m´etodo. Neste caso, ´e feita uma subtrac¸˜ao entre dois
backgrounds.
Dessa forma, a primeira tarefa do ıder ´e a construc¸˜ao do primeiro background, chamado
background base (Figura 3.5-(a)), que ´e feita durante 2 segundos. Durante este tempo, todos os
robˆos, inclusive o l´ıder, permanecem parados. Em seguida, o l´ıder ordena a um dos seguidores
que se mova para frente, em linha reta, durante 1,5 segundos. T˜ao logo o seguidor termina seu
movimento, um novo background, chamado background discriminante, ´e constru´ıdo (Figura
3.5-(b)) e comparado com o primeiro. A diferenc¸a entre eles passa, ent˜ao, por um processo de
binarizac¸˜ao, ou thresholding, mostrado na Figura 3.5-(c). O resultado ´e uma imagem bin´aria
que indica o movimento realizado pelo seguidor. A regi˜ao segmentada, correspondente ao
movimento, ´e comumente conhecida como blob.
O passo seguinte ´e a aplicac¸˜ao de uma operac¸˜ao morfol´ogica, a dilatac¸˜ao, cujo elemento
estruturante possui apenas 1 pixel. O resultado ´e colocado em uma nova imagem bin´aria, mos-
trada na Figura 3.5-(d). Subtraindo a imagem na Figura 3.5-(c) da imagem na Figura 3.5-(d),
´e poss´ıvel extrair a borda do blob, que aparece na Figura 3.5-(e). Por fim, determina-se o
retˆangulo que circunscreve esta borda. Este ´e necess´ario por dois motivos: primeiro, assume-se
que a posic¸˜ao do seguidor ´e aquela dada pelas coordenadas do centr´oide do retˆangulo; segundo,
o algoritmo que realiza o rastreamento (ou tracking) baseado na segmentac¸˜ao por cores e
usado nas etapas seguintes do processamento das imagens omnidirecionais depende deste
retˆangulo para funcionar. Assim, foi desenvolvido um algoritmo para determinar tal retˆangulo,
e o resultado de sua aplicac¸˜ao pode ser visto na Figura 3.5-(f).
Entretanto, devido `a presenc¸a dos ru´ıdos j´a citados, nem sempre todo este processamento
resulta em uma imagem como na Figura 3.5-(f).
`
As vezes, mais de um blob pode aparecer,
como na Figura 3.6-(a). O processamento acima descrito resulta na imagem mostrada na Figura
3.6-(b), que confundiria o l´ıder a respeito da localizac¸˜ao do seguidor.
3.2 O Processamento das Imagens Omnidirecionais 53
(a) (b) (c)
(d) (e) (f)
Figura 3.5: (a) Background base (b) Background discriminante (c) resultado da
binarizac¸˜ao ap´os subtrac¸˜ao entre os backgrounds (d) vers˜ao dilatada da ima-
gem anterior (e) detecc¸˜ao da borda do blob e (f) resultado da aplicac¸˜ao do
algoritmo que encontra o retˆangulo circunscrito.
(a) (b) (c)
Figura 3.6: (a) Imagem com mais de um blob detectado (b) resultado da detecc¸˜ao dos
retˆangulos circunscritos e (c) imagem filtrada.
Faz-se necess´ario, ent˜ao, um processo de filtragem que funciona da seguinte forma: pri-
meiro, o canal Hue, que responde pelas informac¸˜oes de cor da imagem capturada ´e inicializado.
Ent˜ao, a cor predominante de cada blob ´e determinada. Isso ´e feito calculando-se o histograma
de cada blob e, em seguida, identificando a cor que corresponde ao m´aximovalordo histograma.
A Figura 3.7 exibe um histograma cuja cor predominante ´e a vermelha.
3.2 O Processamento das Imagens Omnidirecionais 54
Figura 3.7: Histograma correspondente a um blob de cor vermelha.
Caso a distˆancia entre os centr´oides dos retˆangulos circunscritos a cada blob seja menor que
20 cm (no plano do ch˜ao) e a cor predominante for a mesma, os retˆangulos s˜ao fundidos. Caso
contr´ario, aquele que possuir a menor ´area ser´a eliminado. O resultado pode ser visto na Figura
3.6-(c).
O procedimento descrito acima ´e usado para detectar a posic¸˜ao inicial de um seguidor. O
mesmo processo deve ser repetido com os demais robˆos. Entretanto, a criac¸˜ao de dois novos
backgrounds n˜ao ´e necessaria, pois o background discriminante relativo a um seguidor pode ser
usado como background base para o pr´oximo seguidor a ser detectado. Assim, para o caso de
n seguidores, ao inv´es de calcular 2n backgrounds, apenas n+ 1 ser˜ao necess´arios, reduzindo o
tempo dispendido na detecc¸˜ao das posic¸˜oes iniciais.
A aplicac¸˜ao das t´ecnicas de processamento de imagens (como background subtraction,
binarizac¸˜ao, dilatac¸˜ao) e dos algoritmos desenvolvidos (determinac¸˜ao do retˆangulo circunscrito
e filtragem dos blobs)conferiu robustez `a etapa de detecc¸˜ao das posic¸˜oes iniciais dosseguidores.
O fluxograma da Figura 3.8 ajuda a compreender melhor os passos e respectivos resultados desta
etapa.
Antes de passar para a pr´oxima fase, denominada “Rastreamento para Determinac¸˜ao da
Orientac¸˜ao Inicial”, ´e necess´ario identificar a cor de cada seguidor, pois um algoritmo baseado
em segmentac¸˜ao por cores ser´a usado n˜ao s´o na pr´oxima, mas tamb´em na ´ultima etapa, para
estimar as posturas dos seguidores, objetivo maior do processamento de imagens deste trabalho.
A detecc¸˜ao de cor j´a foi utilizada pelo algoritmo de filtragem de blobs, uma vez que iden-
tifica a cor predominante de cada blob. Por outro lado, esta informac¸˜ao ´e usada apenas para
eliminar blobs indesejados, n˜ao sendo associada ao seguidor em quest˜ao.
3.2 O Processamento das Imagens Omnidirecionais 55
i = 1
tempo = 0
Captura imagem
Inicialização
Conversão
RGB HSV
Aplica máscara
N
S
i = n ?
tempo >= 2s ?
Acumula imagem
N
Background
Base?
S
Armazena
background
S
Ordena i-ésimo seguidor
deslocar-se para frente
tempo = 0
tempo >= 1,5s ?
Ordena i-ésimo seguidor
parar
Subtrai
backgrounds
N
Thresholding
Dilatação
Detecção de
bordas
Determinação dos
retângulos
circunscritos
Filtragem dos
blobs
Posição do i-ésimo
seguidor = centróide
do retângulo
i = i + 1
Determinação da
orientação inicial
S
N
Figura 3.8: Fluxograma simplificado da etapa de detecc¸˜ao das posic¸˜oes iniciais dos
seguidores.
Agora, usando a regi˜ao de interesse definida pelo retˆangulo circunscrito ao blob, um novo
histograma ´e constru´ıdo para cada seguidor, sendo, em seguida, associado a ele. Vale notar que a
partir desse momento cada seguidor possui n˜ao apenas uma cor predominante que o caracteriza,
mas tamb´em todo um histograma, permitindo uma melhor segmentac¸˜ao de cores.
3.2 O Processamento das Imagens Omnidirecionais 56
3.2.2 Rastreamento para Determinac¸
˜
ao da Orientac¸
˜
ao Inicial
Uma vez conhecidas as posic¸˜oes iniciais dos seguidores, o passo seguinte ´e estimar suas
orientac¸˜oes iniciais. Normalmente, duas cores s˜ao usadas nos robˆos, e assim a orientac¸˜ao pode
ser facilmente determinada tomando-se o centr´oide de cada regi˜ao colorida [33, 54], como
mostrado na Figura 3.9 - (a). Obviamente, quando duas cores s˜ao usadas, cada uma das partes
coloridas representa apenas metade da ´area total que pode ser vista na imagem, Figura 3.9 - (b).
Assim, devido `a distorc¸˜ao t´ıpica das imagens omnidirecionais, que reduz a imagem do seguidor
`a medida que este se afasta do ıder, ´areas coloridas pequenas, como as da Figura 3.9 - (a),
tornam dif´ıceis os processos de detecc¸˜ao e segmentac¸˜ao de cores. Claramente, isto prejudica
as estimativas de postura do robˆo, caso uma pequena ou mesmo nenhuma ´area colorida seja
percebida pelo l´ıder.
(a) (b)
Figura 3.9: (a) Quando duas cores s˜ao usadas para determinar a orientac¸˜ao de um robˆo.
(b) Quando apenas uma cor ´e utilizada, a detecc¸˜ao e segmentac¸˜ao dessa cor
´e mais simples e mais r´apida.
Logo, optou-se pela utilizac¸˜ao de apenas uma cor para cada seguidor. Dessa forma, o
m´etodo usado para determinar a orientac¸˜ao inicial consiste em obter, para cada seguidor, uma
seq¨uˆencia de pontos que descrevem, de forma geral, uma reta. Em seguida, um processo de
refinamento de dados ´e aplicado. Seu objetivo ´e excluir aqueles pontos que, devido aos erros
de medic¸˜ao, prejudicariam a determinac¸˜ao dos parˆametros da reta. Neste trabalho, o refina-
mento de dados ´e obtido aplicando-se o algoritmo conhecido como RANSAC (Random Sample
Consensus) [55]. Trata-se de um algoritmo gen´erico e muito interessante que identifica, dado
um modelo qualquer e um conjunto de pontos, quais os melhores pontos deste conjunto para a
determinac¸˜ao dos parˆametros ou coeficientes do modelo fornecido. Todavia, n˜ao ´e sua func¸˜ao
fornecer tais parˆametros. Para isso, diferentes t´ecnicas de minimizac¸˜ao podem ser usadas. Uma
delas ´e a t´ecnica de M´ınimos Quadrados, que foi tamb´em adotada neste trabalho. Desta forma,
3.2 O Processamento das Imagens Omnidirecionais 57
o modelo fornecido ´e a equac¸˜ao de uma reta e, dos dois parˆametros que caracterizam esta reta,
apenas o coeficiente angular ´e interessante para esta etapa, pois traduz a orientac¸˜ao do seguidor.
Logo, ´e o ´unico parˆametro a ser minimizado.
Para formar o conjunto de pontos (ou posic¸˜oes) a ser refinado, o l´ıder mais uma vez envia
a todos os seguidores comandos de deslocamento para frente e em linha reta. Por´em, desta
vez, o deslocamento ´e lento e de forma simultˆanea, ou seja, os seguidores se movem ao mesmo
tempo. O motivo pelo qual os seguidores devem se mover lentamente est´a no fato de que assim
mais pontos ser˜ao capturados e, portanto, melhor ser´a a estimativa de orientac¸˜ao. A Figura 3.10
exibe o processo descrito acima para um seguidor.
Figura 3.10: Processo de captura das posic¸˜oes de um seguidor para determinac¸˜ao de
sua orientac¸˜ao inicial, ou
α
0
.
A captura das posic¸˜oes de um seguidor continua at´e que este tenha se deslocado por, pelo
menos, 20 cm. Assim que o ıder detecta que um determinado seguidor atingiu esta marca,
submete o conjunto de pontos deste seguidor ao algoritmo de refinamento. Em seguida, aplica
a minimizac¸˜ao aos pontos selecionados e obt´em uma estimativa da orientac¸˜ao deste seguidor.
O ıder continua monitorando os outros robˆos at´e que todos tenham sua orientac¸˜ao inicial es-
timada. A Figura 3.11 mostra um exemplo da aplicac¸˜ao dos algoritmos RANSAC e ınimos
Quadrados a um conjunto de pontos do qual se deseja extrair uma reta.
Como pode ser percebido, `a medida em que os seguidores se movem, suas posic¸˜oes v˜ao
sendo armazenadas. Para isso, o ıder deve ser capar de, a cada imagem capturada, estimar,
com boa precis˜ao, a posic¸˜ao de cada seguidor. Portanto, faz-se necess´ario um algoritmo de
rastreamento. Neste momento, entra em ac¸˜ao o principal algoritmo usado no processamento
das imagens omnidirecionais deste trabalho. Trata-se de um algoritmo de segmentac¸˜ao por
3.2 O Processamento das Imagens Omnidirecionais 58
Figura 3.11: Exemplo de aplicac¸˜ao dos algoritmos RANSAC e M´ınimos Quadrados.
cores dispon´ıvel na biblioteca OpenCV e conhecido como CAMSHIFT (Continuously Adaptive
Mean-SHIFT), que funciona da seguinteforma: o canal Hue de cada imagem capturada ´e usado,
juntamente com o histograma da cor de interesse, para gerar uma imagem de distribuic¸˜ao de
probabilidade de cor. Da´ı a importˆancia de associar a cada seguidor o seu histograma de cores,
que servir´a de modelo para o algoritmo.
Dada uma janela de busca inicial, que ´e o retˆangulo circunscrito ao blob determinado na
etapa anterior, o algoritmo encontra, no interior e nas proximidades desta janela, os pixels que
apresentam cor suficientemente pr´oxima daquela caracterizada pelo histograma. Esta regi˜ao ´e,
ent˜ao, segmentada. O centro e o tamanho dessa regi˜ao s˜ao encontrados e utilizados pelo algo-
ritmo para gerar uma janela de busca inicial na pr´oxima imagem a ser processada. Isto significa
que n˜ao ´e necess´ario varrer toda a imagem para encontrar o objeto de interesse, mas apenas
buscar nas proximidades da janela de busca inicial. Isso confere ao rastreamento a rapidez e
a robustez necess´arias para garantir um bom desempenho do sistema. A Figura 3.12 exibe o
algoritmo de rastreamento em ac¸˜ao: os contornos retangulares indicam as regi˜oes coloridas seg-
mentadas que identificam os seguidores. Os histogramas de cada um tamb´em podem ser vistos
nesta figura.
A Figura 3.13 exibe o fluxograma simplificado do processo de determinac¸˜ao da orientac¸˜ao
inicial dos seguidores.
A pr´oxima sec¸˜ao descreve como o l´ıder utiliza o processamento das imagens omnidirecio-
nais para fornecer a realimentac¸˜ao do controlador.
3.2 O Processamento das Imagens Omnidirecionais 59
Figura 3.12: Algoritmo de rastreamento em operac¸˜ao e histogramas dos seguidores.
3.2.3 Rastreamento para Controle de Formac¸
˜
ao
Uma vez conhecidas as posturas iniciais dos seguidores, o passo seguinteseria o ıder iniciar
a navegac¸˜ao e o controle de formac¸˜ao, enviando para os demais robˆos da equipe os comandos
que os conduzem `a formac¸˜ao desejada. Entretanto, antes disso, a seguinte pergunta deve ser
respondida: dada uma posic¸˜ao desejada, qual dos seguidores deve se dirigir a ela? Isso ´e ne-
cess´ario para evitarque dois ou mais seguidores sedirijam `a mesmaposic¸˜ao, o que, obviamente,
n˜ao conduz `a formac¸˜ao de interesse.
Deve-se fazer, aqui, uma observac¸˜ao importante: o fato de todos os robˆos da equipe serem
n˜ao-holonˆomicos imp˜oe a restric¸˜ao de que, uma vez atingida a formac¸˜ao desejada, a orientac¸˜ao
dos seguidores ser´a a mesma do ıder. Para isso, a orientac¸˜ao em relac¸˜ao ao ıder deve ser
(sempre) de 90
o
. Por outro lado, a posic¸˜ao desejada varia de acordo com a formac¸˜ao escolhida.
Por isso que na pergunta acima usou-se o termo posic¸
˜
ao desejada e n˜ao postura desejada.
Para determinar qual dos seguidores deve ser direcionado para uma dada posic¸˜ao, define-se
a matriz de custo C, como na Equac¸˜ao 3.1.
C =
c
11
c
12
. . . c
1n
c
21
c
22
. . . c
2n
.
.
.
.
.
.
.
.
.
c
n1
c
n2
. . . c
nn
, (3.1)
onde n ´e o n´umero de seguidores e c
ij
representa o custo para o i-´esimo seguidor alcanc¸ar a
j-´esima posic¸˜ao desejada. Logo, a i-´esima linha da matriz C ´e o vetor com os custos do i-´esimo
seguidor em relac¸˜ao a todas as posic¸˜oes desejadas. Nota-se tamb´em que C ser´a sempre uma
matriz quadrada, pois para n seguidores devem existir n posic¸˜oes.
3.2 O Processamento das Imagens Omnidirecionais 60
Ordena seguidores
deslocarem-se para
frente com v = 50%
Captura nova
imagem
Detecção das posições
iniciais
Conversão
RGB HSV
Armazena posições
N
S
N
Determinação da
orientação inicial
i = 0
i = n ?
CAMSHIFT
(estimativa das posições
relativas)
Algum
s >= 20 cm?
RANSAC
Estima orientação inicial com
Mínimos Quadrados
i = i + 1
S
Figura 3.13: Fluxograma simplificado da etapa de detecc¸˜ao das orientac¸˜oes iniciais.
Dentre as maneiras de se definir como calcular os custos c
ij
, optou-se, neste trabalho, pelo
quadrado da distˆancia euclidiana entre as coordenadas do i-´esimo seguidor e da j-´esima posic¸˜ao
desejada. O motivo pelo qual se trabalha com o quadrado das distˆancias ´e evitar o c´alculo
da raiz quadrada, procedimento computacionalmente custoso e totalmente desnecess´ario neste
caso.
3.2 O Processamento das Imagens Omnidirecionais 61
O pr´oximo passo consiste em definir uma func¸˜ao que indique qual a melhor configurac¸˜ao,
ou seja, dentre todas as poss´ıveis combinac¸˜oes seguidor-posic¸˜ao, qual deve ser adotada. Assim,
define-se a func¸˜ao de custo F
c
como o somat´orio de n custos, cada um tomado em uma linha e
uma colunadeC diferentes de todos os demais. Cada combinac¸˜ao seguidor-posic¸˜ao possui uma,
e apenas uma, func¸˜ao de custo associada. Logo, para n seguidores, existem n! combinac¸˜oes e,
portanto, s˜ao necess´arias n! func¸˜oes de custo.
Al´em disso, pode-se aproveitar a analogia com a energia despendida no deslocamento que
cada seguidor faria para alcanc¸ar uma determinada posic¸˜ao e compreender que, dentre todas as
combinac¸˜oes poss´ıveis, a configurac¸˜ao ideal ´e a que apresenta a menor energia associada.
Assim que forem definidos os pares seguidor-posic¸˜ao desejada, o ıder inicia, finalmente,
a navegac¸˜ao. Para gerar os comandos necess´arios ao controle da formac¸˜ao, como j´a se sabe,
´e preciso estimar as posturas dos seguidores. Todavia, devido aos ru´ıdos presentes na imagem
e a distorc¸˜ao causada pelo espelho curvo, estimar as posturas a cada nova imagem capturada
´e impratic´avel. A soluc¸˜ao proposta consiste em atualizar a postura do seguidor assim que este
apresentar um deslocamento considerado m´ınimo, reduzindo a sensibilidade aos ru´ıdos.
Assim, o procedimento para estimar a postura de um seguidor ´e dividido em duas fases.
A primeira, estimativa de posic¸˜ao, ´e obtida diretamente do processamento de uma imagem,
enquanto que a segunda, estimativa de orientac¸˜ao, ´e conseguida de forma indireta, atrav´es de
um m´etodo que utiliza os resultados obtidos na primeira fase.
A estimativa de posic¸˜ao conta com o algoritmo de rastreamento (CAMSHIFT) que for-
nece, a cada imagem capturada, as posic¸˜oes relativas dos seguidores. Uma maneira de obter
a orientac¸˜ao pode ser encontrada em [34, 37]. Entretanto, optou-se pelo desenvolvimento de
um m´etodo mais simples, de menor custo computacional, baseado na geometria da trajet´oria
descrita pelo seguidor e suas velocidades linear e angular desejadas. Este m´etodo ´e aplicado
assim que o seguidor realiza o deslocamento m´ınimo (s
min
). A posic¸˜ao e a orientac¸˜ao rec´em
estimadas s˜ao usadas para atualizar a postura do seguidor.
Portanto, embora a posic¸˜ao seja estimada a cada nova imagem capturada, a postura s´o ´e
atualizada e repassada ao controlador ap´os o deslocamento m´ınimo. Com isso, enquanto a
postura n˜ao ´e atualizada, os comandos de velocidade linear e angular permanecem constantes,
fazendo o seguidor descrever, no caso geral, uma circunferˆencia. A geometria da trajet´oria, para
o caso geral, pode ser vista na Figura 3.14.
Na Figura 3.14, P
1
(x
1
, y
1
) e P
2
(x
2
, y
2
) s˜ao, respectivamente, as posic¸˜oes anterior e atual
do seguidor. O(x
0
, y
0
) ´e o centro da circunferˆencia descrita pelo robˆo, sendo r o seu raio. s
3.2 O Processamento das Imagens Omnidirecionais 62
O(x , y )
0 0
P (x , y )
1 1 1
P (x , y )
2 2 2
s
t
s
r
r
x
y
θ
θ
α
d
Figura 3.14: Geometria da trajet´oria descrita pelo seguidor enquanto sua postura n˜ao ´e
atualizada.
´e a distˆancia entre P
1
e P
2
, d ´e a distˆancia entre O e a reta s que cont´em P
1
e P
2
. t ´e a reta
que passa por P
2
e O,
θ
´e a metade do ˆangulo P
1
OP
2
e
α
´e a orientac¸˜ao atual do seguidor. O
objetivo ´e calcular
α
e, para isso, basta saber a inclinac¸˜ao da reta t. Isto, por sua vez, exige o
conhecimento das coordenadas x
0
e y
0
do ponto O. Assim, a distˆancia de O a P
1
´e dada pela
Equac¸˜ao 3.2.
(x
0
x
1
)
2
+ (y
0
y
1
)
2
= r
2
(3.2)
Da mesma forma, a distˆancia de O a P
2
´e dada pela Equac¸˜ao 3.3.
(x
0
x
2
)
2
+ (y
0
y
2
)
2
= r
2
(3.3)
Como O ´e equidistante de P
1
e P
2
, o resultado da manipulac¸˜ao alg´ebrica das Equac¸˜oes 3.2
e 3.3 ´e dado por:
x
0
= Ay
0
B, onde (3.4)
A =
y
1
y
2
x
2
x
1
para x
2
= x
1
e
B =
1
2
(y
1
+ y
2
)(y
1
y
2
)
x
2
x
1
x
1
x
2
.
A reta s pode ser descrita pela Equac¸˜ao 3.5.
y = m
s
x+ l
s
, (3.5)
3.2 O Processamento das Imagens Omnidirecionais 63
onde m
s
e l
s
s˜ao, respectivamente, os coeficientes angular e linear da reta, e podem ser determi-
nados por
m
s
=
y
2
y
1
x
2
x
1
e
l
s
= y
2
m
s
x
2
.
A distˆancia d pode ser determinada observando-se que
tan
θ
=
s
2
d
.
Logo,
d =
s
2tan
θ
.
O ˆangulo
θ
pode ser calculado atrav´es da relac¸˜ao
2
θ
=
ω
×t,
e, portanto,
θ
=
ω
×t
2
, (3.6)
onde
ω
´e a velocidade angular (constante) do seguidor e t ´e o tempo transcorrido para o
seguidor ir de P
1
a P
2
. O pr´oximo passo ´e relacionar x
0
e y
0
`a distˆancia d. Para isso, foi utilizada
a express˜ao para calcular a distˆancia entre um ponto e uma reta, obtendo-se
d =
|m
s
x
0
+ y
0
l
s
|
m
2
s
+ 1
. (3.7)
Substituindo 3.4 em 3.7 e isolando y
0
obt´em-se
y
0
=
|d|
m
2
s
+ 1+ l
s
m
s
B
1m
s
A
. (3.8)
Observando que m
s
= A, a Equac¸˜ao 3.8 pode ser reescrita como
y
0
=
|d|
A
2
+ 1+ l
s
+ AB
1+ A
2
, (3.9)
eliminando-se a necessidade de calcular m
s
. A inclinac¸˜ao da reta t (m
t
) ´e determinada por
m
t
=
y
2
y
0
x
2
x
0
.
Como a orientac¸˜ao do seguidor ´e perpendicular `a reta t, tem-se que
3.2 O Processamento das Imagens Omnidirecionais 64
tan
α
=
1
m
t
α
= tan
1
x
0
x
2
y
2
y
0
.
Como as Equac¸˜oes 3.4 e 3.9 fornecem, juntas, dois poss´ıveis pontos, O e O
, o procedimento
para encontrar O ´e
1 - Calcular d da seguinte forma: d = |
s
2tan
θ
|
2 - Se (
ω
< 0 e x
2
> x
1
) OU (
ω
> 0 e x
2
< x
1
), d deve ser considerado negativo na
Equac¸˜ao 3.7.
Para o caso em que x
2
= x
1
, basta verificar se y
1
> y
2
. Se verdadeiro,
α
=
π
2
; se falso,
α
=
π
2
.
Vale ressaltar que `a medida que
ω
0, d . Entretanto, esse caso foi tratado na
implementac¸˜ao do m´etodo, onde o valor de
ω
´e verificado antes de se aplicarem as equac¸˜oes
apresentadas acima.
Para validar o m´etodo proposto de estimativa de orientac¸˜ao, foram realizados testes com
valores de 15, 10 e 5 cm para o deslocamento ınimo. Os melhores resultados foram obtidos
com 5 cm e, por isso, este foi o valor adotado para o deslocamento ınimo. Por outro lado,
estes testes iniciais serviram tamb´em para mostrar a necessidade de se aplicar uma filtragem aos
valores estimados de orientac¸˜ao. Em outras palavras, mesmo com a adoc¸˜ao do deslocamento
m´ınimo, a estimativa de orientac¸˜ao ainda ´e excessivamente ruidosa, como pode ser visto na
Figura 3.15-(a). Pode-se notar, tamb´em, que at´e a trajet´oria descrita pelo seguidor ´e afetada,
tornando-se irregular (Figura 3.15-(b)). Isso acontece porque uma m´a estimativa da orientac¸˜ao
prejudica a estimativa da postura, gerando sinais de comando errˆoneos.
Este teste foi feito com apenas dois robˆos: o l´ıder, que permaneceu parado, e um seguidor.
As coordenadas da posic¸˜ao desejada para o seguidor s˜ao x
d
= 0.6 m e y
d
= 1.9 m.
Com o objetivo de reduzir o efeito desses ru´ıdos, alguns filtros foram estudados, como
filtros polinomiais,
α
β
, Kalman e filtros adaptativos. Dentre eles, foi escolhido o Filtro de
Kalman, devido ao seu bom desempenho e relativa simplicidade. Esta ´ultima caracter´ıstica
tem importante impacto no custo computacional, uma vez que a filtragem ´e executada a cada
atualizac¸˜ao de postura.
Assim, novos testes foram feitos utilizando a filtragem da orientac¸˜ao calculada. Os resul-
tados podem ser observados na Figura 3.16. Em azul s˜ao exibidos os valores calculados e em
vermelho, os valores filtrados. Nota-se que a filtragem melhora significativamente a estimativa
da orientac¸˜ao.
3.2 O Processamento das Imagens Omnidirecionais 65
10 20 30 40 50 60 70 80 90
−200
−150
−100
−50
0
50
100
150
200
Tempo [s]
Orientação [graus]
(a)
−0.4 −0.2 0 0.2 0.4 0.6 0.8 1
1
1.5
2
Posição x [m]
Posição y [m]
(b)
Figura 3.15: Teste sem filtragem. (a) Estimativa da orientac¸˜ao. (b) Trajet´oria descrita
pelo seguidor.
10 15 20 25 30 35 40 45
−100
−50
0
50
100
150
200
Tempo [s]
Orientação [graus]
(a)
−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Posição x [m]
Posição y [m]
(b)
Figura 3.16: Teste com filtragem. (a) Estimativa da orientac¸˜ao. (b) Trajet´oria descrita
pelo seguidor.
A Figura 3.16-(b) mostra a trajet´oria descrita pelo seguidor durante este ´ultimo teste. Com-
parando-a com a apresentada na Figura 3.15-(b), percebe-se que a filtragem, ao melhorar a
estimativa da orientac¸˜ao (e, portanto, da postura), contribui para a gerac¸˜ao de comandos mais
suaves, resultando em trajet´orias mais suaves.
Por fim, ´e importante esclarecer o que provoca a m´a estimativa de orientac¸˜ao, mesmo com
filtragem, no final dos testes: `a medida que o seguidor se aproxima da posic¸˜ao desejada, a sua
velocidade linear deve diminuir; ou seja, o comando de velocidade linear ´e proporcional ao erro
de posic¸˜ao. Entretanto, os motores utilizados nos robˆos seguidores possuem grande reduc¸˜ao,
o que lhes confere uma in´ercia relativamente alta. A velocidade linear de comando recebida
3.2 O Processamento das Imagens Omnidirecionais 66
pelo seguidor ´e convertida em um valor de PWM (Pulse Width Modulation) proporcional ao
m´odulo desta velocidade. A m´axima velocidade corresponde a um valor de 100% para o PWM.
Um valor de PWM abaixo de 20% n˜ao ´e suficiente para acionar os motores devido `a in´ercia.
Assim, o robˆo tende a parar antes de alcanc¸ar a posic¸˜ao desejada. Quando o valor do PWM
cai abaixo de 30%, o movimento do robˆo comec¸a a se tornar irregular, n˜ao executando as
velocidades linear e angular corretamente. Por outro lado, o c´alculo da orientac¸˜ao ´e baseado
no conhecimento da velocidade angular de comando
ω
(Equac¸˜ao 3.6), e n˜ao na velocidade
angular que est´a realmente sendo executada, fazendo com que o l´ıder “se engane” a respeito
da verdadeira postura do seguidor e gere comandos indesejados. Entretanto, quando toda a
equipe estiver navegando, este problema ir´a desaparecer, pois o robˆo seguidor dever´a estar em
movimento.
O fato do sistema de vis˜ao estar embarcado no l´ıder tem a grande vantagem de tornar a ´area
de navegac¸˜ao ilimitada, ou seja, o sistema de referˆencia navega junto com a equipe. Por´em, para
que a estimativade orientac¸˜ao ocorra, ´e imprescind´ıvel calcular o s de cada seguidor. Supondo
que um determinado seguidor j´a se encontre na postura desejada, seu deslocamento na imagem
´e nulo. Por outro lado, suas velocidades linear e angular n˜ao s˜ao necessariamente nulas. Fica
claro, ent˜ao, que ´e preciso um meio de obter o s de cada seguidor com o l´ıder em movimento.
Para determinar o deslocamento de um robˆo deve-se conhecer as suas posic¸˜oes anterior e atual.
Como o sistema de coordenadas freq¨uentemente sofre translac¸˜ao e rotac¸˜ao, uma transformac¸˜ao
precisa ser aplicada `a ´ultima postura, para que esta seja corretamente representada no novo
sistema de referˆencia. Desta forma, ´e poss´ıvel determinar o s de cada seguidor.
A transformac¸˜ao a ser aplicada `a posic¸
˜
ao de um seguidor ´e nada mais que uma transforma-
c¸˜ao geom´etrica 2D. Como o ıder possui, de um modo geral, velocidades angular e linear, ela ´e
a composic¸˜ao de uma rotac¸˜ao e de uma translac¸˜ao, conforme ilustra a Figura 3.17.
De acordo com a Figura 3.17-(c),
γ
´e o ˆangulo de rotac¸˜ao, e dx e dy s˜ao as translac¸˜oes em x
e y, respectivamente. As coordenadas de P
0
no sistema S
0
s˜ao (x
0
y
0
)
T
, como na Figura 3.17-
(a). Para o sistema S
1
(Figura 3.17-(b)), este ponto, agora chamado de P
1
, possui coordenadas
(x
1
y
1
)
T
. Assim, para obter P
1
conhecendo P
0
, basta aplicar a transformac¸˜ao mostrada na
Equac¸˜ao 3.10.
P
1
= R(
γ
)T (dx, dy) P
0
(3.10)
A Equac¸˜ao 3.10 pode ser reescrita em sua forma matricial, como na Equac¸˜ao 3.11.
x
1
y
1
1
=
cos
γ
sen
γ
0
sen
γ
cos
γ
0
0 0 1
1 0 dx
0 1 dy
0 0 1
x
0
y
0
1
(3.11)
3.2 O Processamento das Imagens Omnidirecionais 67
y
0
x
0
S
0
P
0
x
y
(a)
x
1
y
1
S
1
P
1
x
y
(b)
x
1
y
1
y
0
x
0
S
0
S
1
P
dx
dy
x
y
x
y
γ
(c)
Figura 3.17: Efeito da composic¸˜ao de uma rotac¸˜ao e de uma translac¸˜ao de um sistema
de referˆencia nas coordenadas de um ponto.
Assim, realizando as operac¸˜oes mostradas na Equac¸˜ao 3.11, ´e poss´ıvel conhecer a posic¸˜ao
anterior de um seguidor no novo sistema de coordenadas e, portanto, calcular o respectivo
deslocamento. Devido `a geometria de projec¸˜ao de um sistema omnidirecional, uma translac¸˜ao
deste sistema n˜ao provoca alterac¸˜ao na orientac¸˜ao dos seguidores. Entretanto, uma rotac¸˜ao
causa esse problema em toda a equipe. Este efeito est´a ilustrado na Figura 3.18.
Uma an´alise simples da Figura 3.18 mostra que ap´os uma rotac¸˜ao do l´ıder de um ˆangulo
γ
,
a nova orientac¸˜ao relativa de um seguidor,
α
1
, ser´a dada por
α
1
=
α
0
γ
.
3.2 O Processamento das Imagens Omnidirecionais 68
y
1
y
0
x
1
x
0
α
1
α
0
γ
γ
γ
ω
Figura 3.18: Efeito da rotac¸˜ao do robˆo l´ıder na orientac¸˜ao relativa de um seguidor.
Assim, foi definida uma transformac¸˜ao Λ respons´avel pela atualizac¸˜ao da postura, ou seja,
atualiza tanto a posic¸˜ao quanto a orientac¸˜ao dos seguidores. Para isso, bastou uma pequena
alterac¸˜ao na Equac¸˜ao 3.11 que, ap´os a manipulac¸˜ao alg´ebrica, resulta na Equac¸˜ao 3.12. Para
tornar poss´ıveis as operac¸˜oes matriciais, as posturas no novo e no antigo sistema de coordena-
das,
χ
1
e
χ
0
, foram representadas em coodenadas homogˆeneas por
χ
1
e
χ
0
.
χ
1
= Λ
χ
0
,
γ
, dx, dy
x
1
y
1
1
α
1
=
cos
γ
sen
γ
dxcos
γ
dysen
γ
0
sen
γ
cos
γ
dxsen
γ
dycos
γ
0
0 0 1 0
0 0 0 1
x
0
y
0
1
α
0
0
0
0
γ
(3.12)
Desta forma, esta etapa ´e respons´avel por estimar as posturas dos seguidores mesmo com
toda a equipe em movimento, sendo, portanto, a etapa mais importante do processamento de
imagens. A Figura 3.19 apresenta o fluxograma simplificado relativo a esta etapa.
3.3 Conclus
˜
oes 69
Cálculo das
funções de custo
Escolha da
configuração de
menor custo
Início da
navegação
Captura nova
imagem
Determinação da orientação
inicial
Conversão
RGB HSV
CAMSHIFT
(estimativa das
posições relativas)
Algum
s >= s min?
Estima nova
orientação
Filtro de Kalman
Atualiza postura
CONTROLADOR
N
S
Figura 3.19: Fluxograma simplificado da etapa de Rastreamento para Controle de
Formac¸˜ao.
3.3 Conclus
˜
oes
Este cap´ıtulo foi dedicado ao processamento das imagens omnidirecionais, cuja func¸˜ao ´e
servir de realimentac¸˜ao para o controlador empregado. Para isso, foram utilizadas t´ecnicas
largamente conhecidas na literatura, como background subtraction, dilatac¸˜ao, operac¸˜oes mor-
fol´ogicas e segmentac¸˜ao por cores, al´em da biblioteca de processamento de imagens OpenCV.
3.3 Conclus
˜
oes 70
Ainda, novos algoritmos foram desenvolvidos, com o objetivode aumentar a precis˜ao e a robus-
tez das etapas envolvidas no referido processamento, tais como os algoritmos de determinac¸˜ao
das posic¸˜oes iniciais,filtragem dos blobs e atualizac¸˜ao das posturasdos seguidores com a equipe
navegando.
Al´em disso, t´ecnicas de filtragem de dados, como os algoritmos RANSAC e Filtro de Kal-
man tamb´em foram empregadas, contribuindo de forma decisiva para um bom desempenho do
processamento das imagens omnidirecionais.
No pr´oximo cap´ıtulo, ser˜ao mostrados e discutidos os experimentos realizados para validar
o controlador n˜ao linear. Tamb´em ser´a poss´ıvel avaliar o comportamento deste controlador
mediante os problemas encontrados, como os j´a citados ru´ıdos presentes na imagem, a distorc¸˜ao
causada pelo espelho e a m´a qualidade das leituras dos encoders do robˆo l´ıder.
71
4 Resultados Experimentais
4.1 Introduc¸
˜
ao
Para validar o controlador proposto, bem como os algoritmos de processamento de imagens
empregados, foram realizados experimentos com uma equipe formada por trˆes robˆos. O robˆo
com maior capacidade de processamento foi escolhido como ıder do grupo, enquantoos outros,
bem mais simples e baratos, ficaram como seguidores.
O robˆo utilizado como l´ıder ´e o PIONEER 2-DX, equipado com um processador PENTIUM
MMX, de 233 MHz, 128 MB de mem´oria RAM e fabricado pela ActivMedia Robotics. Al´em
de encoders nas rodas, este robˆo possui ainda uma cˆamara CCD Sony PTZ (Pan, Tilt, Zoom)
e oito sensores de ultra-som, como pode ser visto na Figura 4.1. Mais informac¸˜oes sobre o
PIONEER 2-DX podem ser encontradas em [56].
Figura 4.1: Robˆo PIONEER 2-DX usado como l´ıder da equipe.
Neste trabalho, os encoders foram utilizados apenas para a gerac¸˜ao das figuras com as
trajet´orias descritas pela equipe. A cˆamara Sony n˜ao foi usada, uma vez que o sistema de vis˜ao
foi constrıdo com uma cˆamara modelo CCS-212 da Samsung e um espelho hiperb´olico. Este
sistema j´a foi mostrado na Figura 2.2 e ´e, por conveniˆencia, exibido tamb´em na Figura 4.2.
Uma das motivac¸˜oes deste projeto ´e a construc¸˜ao de uma equipe de robˆos de baixo custo
para a realizac¸˜ao de tarefas em cooperac¸˜ao. Estes foram constru´ıdos no Laborat´orio de Automa-
c¸˜ao Inteligente (LAI), ligado ao Departamento de Engenharia El´etrica da Universidade Federal
4.1 Introduc¸
˜
ao 72
Figura 4.2: Sistema omnidirecional montado sobre o robˆo l´ıder.
do Esp´ırito Santo UFES. A Figura 4.3 exibe um destes robˆos. A Figura 4.3-(a) mostra, em
mais detalhes, o cart˜ao colorido usado pelo algoritmo de segmentac¸˜ao de cores para estimar a
posic¸˜ao de cada seguidor. Este cart˜ao ´e sustentado por uma estrutura de alum´ınio que serve
tamb´em para proteger o sistema embarcado (Figura 4.3-(b)). Trata-se de um sistema simples,
cuja finalidade ´e, atrav´es de um link de comunicac¸˜ao com o l´ıder, receber os comandos de
velocidades linear e angular desejadas e aplicar aos motores sinais de PWM para a execuc¸˜ao
destas velocidades.
(a) (b)
Figura 4.3: Robˆo seguidor - (a) Cart˜ao colorido usado para estimar sua posic¸˜ao e (b)
Hardware embarcado.
4.2 Simulac¸
˜
oes 73
Este sistema roda no microcontrolador MSP430F149 da Texas Instruments [57, 58], que
possui 2 kB de mem´oria RAM e 60 kB de mem´oria FLASH. Al´em disso, sua CPU de 16 bits oti-
mizada para o uso de linguagens de programac¸˜ao como C, sua arquitetura RISC
1
e o consumo
extremamente baixo de energia fazem deste dispositivo uma ferramenta muito interessante em
aplicac¸˜oes de rob´otica m´ovel. A Figura 4.4 exibe o hardware que comporta o microcontrolador
e toda a eletrˆonica necess´aria `a comunicac¸˜ao e acionamento dos motores. Ele foi desenvol-
vido em [59, 60], onde encontram-se a descric¸˜ao funcional e os diagramas esquem´aticos dos
m´odulos que o comp˜oem.
Microcontrolador
MSP430F149
Pontes H
Interface Serial
Figura 4.4: Hardware embarcado nos robˆos seguidores e respons´avel pelo acionamento
dos motores.
4.2 Simulac¸
˜
oes
Antes de dar in´ıcio aos experimentos com os robˆos, simulac¸˜oes foram realizadas com o
intuito de observar o comportamento do controlador mediante as v´arias formac¸˜oes e trajet´orias
que a equipe pode descrever. Para isso, atrav´es da linguagem de programac¸˜ao C, foi desen-
volvido um simulador. Como n˜ao se disp˜oe do modelo dinˆamico de cada robˆo seguidor, este
simulador considera apenas os efeitos do controlador na cinem´atica dos seguidores. Trata-se,
portanto, de um simulador simples, mas ´util para um bom entendimento do controlador.
V´arias simulac¸˜oes foram realizadas. Entretanto, ser˜ao mostradas e discutidas trˆes delas,
por representarem as trajet´orias mais comuns para navegac¸˜ao. S˜ao elas: trajet´oria retil´ınea,
circular e desvio de obst´aculo. O passo das simulac¸˜oes foi de 380 ms, que ´e o tempo m´edio
1
RISC significa Reduced Instruction Set Computer, ou Computador com Conjunto de Instruc¸˜oes Reduzido.
Neste tipo de arquitetura, a CPU gasta apenas um ciclo de m´aquina para instruc¸˜oes que n˜ao provocam desvio na
execuc¸˜ao do c´odigo, e dois ciclos para aquelas que provocam. Assim, mesmo programando em uma linguagem de
alto ıvel, como C ou C++, tendo acesso ao c´odigo de montagemgerado (c´odigo Assembly), ´e poss´ıvel estimar em
quanto tempo uma determinada rotina ´e executada. Isso ´e fundamental para sistemas de tempo real, que possuem
grande aplicac¸˜ao no campo da rob´otica m´ovel.
4.2 Simulac¸
˜
oes 74
para a execuc¸˜ao de um loop de controle, e os ganhos usados s˜ao os mesmos dos experimentos
realizados.
O resultado da primeira simulac¸˜ao ´e exibido na Figura 4.5. Como pode ser visto, a trajet´oria
descrita ´e retil´ınea. A velocidade escolhida para o l´ıder foi de 80 mm/s e esta simulac¸˜ao durou
100 segundos. A linha s´olida central indica a trajet´oria descrita pelo l´ıder, enquanto as outras
linhas s´olidas de cor azul representam as trajet´orias “reais” dos seguidores. As linhas tracejadas
mostram as trajet´orias desejadas para osseguidores. Por fim, os triˆangulosvermelhos descrevem
como a equipe entra e mant´em a formac¸˜ao desejada.
−1 0 1 2 3 4 5 6
0
1
2
3
4
5
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.5: Primeira simulac¸˜ao: trajet´oria retil´ınea com velocidade de 80 mm/s.
Nesta primeira simulac¸˜ao, as posic¸˜oes iniciais dos seguidores foram, em metros, x
01
=
1, 0, y
01
= 0, 8, x
02
= 0, 8 e y
02
= 0, 2 sempre em relac¸˜ao ao l´ıder. As posic¸˜oes deseja-
das eram x
d1
= 0, 25, y
d1
= 0, 25, x
d2
= 0, 25 e y
d2
= 0, 25, ou seja, a equipe forma um
triˆangulo is´oceles, como mostra a Figura 4.5. A orientac¸˜ao do ıder foi de 45
o
em relac¸˜ao ao
referencial absoluto, enquanto as orientac¸˜oes dos seguidores foram de 30
o
e 45
o
em relac¸˜ao
ao ıder. Nota-se que a equipe entra em formac¸˜ao, embora um pequeno erro na coordenada x
possa ser observado. Isso acontece porque a func¸˜ao de saturac¸˜ao relativa `a gerac¸˜ao da veloci-
dade angular de referˆencia, f
˜
α
(
˜
α
i
), tende a zero `a medida que os erros tendem a zero. Assim,
o seguidor possui uma velocidade angular que ´e reduzida `a medida que este se alinha com o
l´ıder. Logo, sua capacidade de girar fica afetada e o erro em x se aproxima de zero de forma
mais lenta. Isso n˜ao quer dizer que os seguidores n˜ao entrar˜ao em formac¸˜ao mas, como ficar´a
claro mais adiante, significa que o simulador, embora simples, retrata bem o comportamento
do controlador. Tudo isso pode ser visto na Figura 4.6. A Figura 4.6 - (a) mostra os erros de
4.2 Simulac¸
˜
oes 75
posic¸˜ao para o seguidor 1, onde o erro em x ´e representado pela linha azul e o erro em y pela
linha vermelha. A Figura 4.6 - (b) mostra os mesmos erros para o seguidor 2. A Figura 4.6
- (c) traz a evoluc¸˜ao das orientac¸˜oes dos seguidores, azul para o seguidor 1 e vermelho para o
seguidor 2.
0 20 40 60 80 100 120
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Tempo [s]
Erros de Posição [m]
(a)
0 20 40 60 80 100 120
−0.6
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
Tempo [s]
Erros de Posição [m]
(b)
0 20 40 60 80 100 120
20
40
60
80
100
120
140
Tempo [s]
Orientação[graus]
(c)
Figura 4.6: Primeira simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de
posic¸˜ao do seguidor 2 e (c) Orientac¸˜oes dos seguidores.
A segunda simulac¸˜ao objetivou verificar o comportamento do controlador para trajet´orias
circulares. Neste caso, as velocidades linear e angular do ıder foram 60 mm/s e 1,5
o
/s, respec-
tivamente. A Figura 4.7 traz o resultado desta segunda simulac¸˜ao para a trajet´oria. As posic¸˜oes
iniciais foram x
01
= 0, 7, y
01
= 0, 0, x
02
= 0, 5 e y
02
= 0, 9, enquanto as desejadas eram
x
d1
= 0, 0, y
d1
= 0, 7, x
d2
= 0, 0 e y
d2
= 0, 7, ou seja, a equipe deveria navegar em linha, com
um seguidor a frente do l´ıder e outro atr´as. A orientac¸˜ao inicial do l´ıder foi de 0
o
no referencial
absoluto, enquanto os seguidores partiram com orientac¸˜oes de 30
o
e 90
o
.
O triˆangulo vermelho torna-se praticamente uma linha reta, mostrando que a equipe entra
e mant´em a formac¸˜ao desejada. Esta simulac¸˜ao durou 245 segundos, o suficiente para que o
grupo descrevesse uma circunferˆencia completa.
4.2 Simulac¸
˜
oes 76
−3 −2 −1 0 1 2 3
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.7: Segunda simulac¸˜ao: trajet´oria circular com velocidade linear de 60 mm/s e
angular de 1,5
o
/s.
Nota-se, ainda na Figura 4.7, que o l´ıder descreve um c´ırculo de raio menor que aquele
descrito pelos seguidores. Isso j´a era esperado devido `a geometria tanto da formac¸˜ao escolhida
quanto da trajet´oria curva e fica claro observando-se a Figura 4.8 que mostra que, no caso desta
simulac¸˜ao, como os seguidores devem permanecer sobre o eixo y do referencial do l´ıder (x
d1
=
0, 0 e x
d2
= 0, 0), tem-se r
i
=
r
2
+ y
2
i
e, portanto, os raios que eles descrevem s˜ao maiores que
o do ıder. A Figura 4.9 traz os resultados para os erros de posic¸˜ao e para as orientac¸˜oes dos
Figura 4.8: Geometria da formac¸˜ao desejada para a segunda simulac¸˜ao.
4.2 Simulac¸
˜
oes 77
seguidores nesta segunda simulac¸˜ao. Comparando com os encontrados na primeira, percebe-
se que os erros de posic¸˜ao s˜ao, agora, maiores. Isso ocorre devido tanto ao movimento de
rotac¸˜ao do l´ıder quanto ao passo (380 ms) do simulador. O primeiro efeito pode ser visto da
seguinte forma: quando o l´ıder gira, as posic¸˜oes desejadas absolutas giram no sentido contr´ario,
inserindo erros em ambas as coordenadas dos seguidores no pr´oximo passo de simulac¸˜ao. Isso
afeta tamb´em a orientac¸˜ao de referˆencia: quanto maior o passo da simulac¸˜ao, maiores ser˜ao os
deslocamentos linear e angular do l´ıder e, portanto, maiores ser˜ao os erros inseridos.
0 50 100 150 200 250
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Tempo [s]
Erros de Posição [m]
(a)
0 50 100 150 200 250
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
Tempo [s]
Erros de Posição [m]
(b)
0 50 100 150 200 250
20
30
40
50
60
70
80
90
100
110
120
Tempo [s]
Orientação[graus]
(c)
Figura 4.9: Segunda simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de
posic¸˜ao do seguidor 2 e (c) Orientac¸˜oes dos seguidores.
Como mostra a Figura 4.9 - (c), as orientac¸˜oes dos seguidores n˜ao estabilizam, desta vez,
em 90
o
. O motivo ´e que, para a trajet´oria ser circular, o seguidor que se encontra a frente do
l´ıder deve ter orientac¸˜ao um pouco maior que 90
o
. Pela mesma raz˜ao, o seguidor que vai atr´as
precisa ter um pouco menos de 90
o
em relac¸˜ao ao l´ıder. Isso ´e justamente o que mostram as
Figuras 4.8 e 4.9 - (c).
4.2 Simulac¸
˜
oes 78
A terceira e ´ultima simulac¸˜ao aqui mostrada tratou de verificar o comportamento do con-
trolador para uma trajet´oria sinuosa, ou seja, onde h´a variac¸˜ao da velocidade angular, inclusive
com mudanc¸a de sinal. Essa trajet´oria aparece na Figura 4.10 e, como pode ser visto, simula a
situac¸˜ao onde a equipe deve desviar de um obst´aculo sem perder a formac¸˜ao. Esta simulac¸˜ao
mostra que, a princ´ıpio, o controlador apresentar´a um bom desempenho quando um algoritmo
de desvio for acrescentado. Na verdade, a equipe pode desviar de um certo obst´aculo ao mesmo
tempo que entra em formac¸˜ao. Esta simulac¸˜ao durou 150 segundos e os seguidores estavam ini-
cialmente nas posic¸˜oes x
01
= 0, 7, y
01
= 0, 8, x
02
= 0, 3 e y
02
= 0, 9. As posic¸˜oes desejadas
eram x
d1
= 0, 5, y
d1
= 0, 3, x
d2
= 0, 5 e y
d2
= 0, 3, mais uma vez um triˆangulo is´oceles. A
orientac¸˜ao inicial do l´ıder foi de 0
o
, enquanto os seguidores partiram com 135
o
e 120
o
.
−1 0 1 2 3 4 5 6 7 8
−1
−0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.10: Terceira simulac¸˜ao: trajet´oria sinuosa com velocidade linear de 60 mm/s.
Neste caso, entre os instantes t
1
= 10s e t
2
= 100s, a velocidade angular do l´ıder variou
obedecendo a uma func¸˜ao do tipo tangente hiperb´olica, passando por zero em t = 55s. Os
valores de saturac¸˜ao foram -1,5
o
/s e +1,5
o
/s. Esta func¸˜ao ´e apresentada na Equac¸˜ao 4.1, onde
0, 0262 rad/s = 1,5
o
/s.
f
ω
l
(t) = 0, 0262tanh(0, 2(55t)) (4.1)
A func¸˜ao f
ω
l
(t) ´e a mesma utilizada nos Experimentos 4 e 5, que ser˜ao apresentados e
discutidos mais adiante. Para os intervalos 0 t < 10s e 100 < t 150s, a velocidade angular
foi zero. Nota-se, na Figura 4.11, que ´e justamente logo ap´os os instantes t
1
= 10s, t = 55s
e t
2
= 100s que perturbac¸˜oes s˜ao causadas no sistema. Isso mostra que a troca de sinal ou
mesmo uma variac¸˜ao brusca da velocidade angular tem um efeito muito similar ao de uma
perturbac¸˜ao no sistema. Obviamente, a situac¸˜ao proposta nesta ´ultima simulac¸˜ao pode ocorrer
4.3 Os Experimentos 79
com freq¨uˆencia e o sistemadecontrole deveser capaz demanter a estabilidade nestas condic¸˜oes.
E ´e isto que mostram as Figuras 4.10 e 4.11. Portanto, embora os erros apresentados sejam um
pouco maiores que nas simulac¸˜oes anteriores, pode-se dizer que a equipe entra e permanece em
formac¸˜ao, mesmo sofrendo perturbac¸˜oes.
0 20 40 60 80 100 120 140 160
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Tempo [s]
Erros de Posição [m]
(a)
0 20 40 60 80 100 120 140 160
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tempo [s]
Erros de Posição [m]
(b)
0 20 40 60 80 100 120 140 160
40
50
60
70
80
90
100
110
120
130
140
Tempo [s]
Orientação[graus]
(c)
Figura 4.11: Terceira simulac¸˜ao: (a) Erros de posic¸˜ao do seguidor 1, (b) Erros de
posic¸˜ao do seguidor 2 e (c) Orientac¸˜oes dos seguidores.
4.3 Os Experimentos
Dentre os v´arios experimentos realizados, ser˜ao mostrados aqui aqueles que apresentaram
resultados que permitem uma melhor discuss˜ao do comportamento do controlador.
´
E impor-
tante dizer que as posic¸˜oes e orientac¸˜oes iniciais apresentadas nos experimentos a seguir cor-
respondem `aquelas determinadas ap´os as duas primeiras etapas do processamento de imagens.
Al´em disso, assim como nas simulac¸˜oes, nas figuras que apresentam os erros de posic¸˜ao, a linha
azul representa o erro na coordenada x, enquanto o erro na coordenada y ´e mostrado pela linha
vermelha. J´a nas figuras que mostram a evoluc¸˜ao das orientac¸˜oes dos seguidores, a linha azul
4.3 Os Experimentos 80
representa a orientac¸˜ao calculada com o algoritmo aqui desenvolvido e a linha vermelha o valor
filtrado desta orientac¸˜ao com o Filtro de Kalman. Ainda, tamb´em como nas simulac¸˜oes, todas
as coordenadas de posic¸˜ao e os valores dos erros s˜ao dados em metros.
Nos primeiros experimentos, cada seguidor era identicado por uma cor diferente, como
mostrado na Figura 3.12. Os objetivos destes primeiros experimentos foram:
1. Determinar os melhores ganhos para o controlador, ou seja, refinar o controle.
2. Encontrar as cores que resultam em uma melhor segmentac¸˜ao de cores, melhorando a
estimativa de postura.
Embora n˜ao exista restric¸˜ao te´orica quanto `as cores que podem ser usadas para identificar os
seguidores, a cor laranja apresentou os melhores resultados. Assim, ela foi utilizada em ambos
os seguidores em todos os experimentos subseq¨uentes. Como a detecc¸˜ao da cor do seguidor
´e feita de maneira autom´atica, nenhuma alterac¸˜ao no c´odigo foi necess´aria. Entretanto, como
a mesma cor foi usada nos dois seguidores, tomou-se o cuidado de evitar que um seguidor
passasse muito pr´oximo do outro, pois isto confundiria o algoritmo de segmentac¸˜ao de cores.
Como foi dito no in´ıcio desta sec¸˜ao, ser˜ao apresentados e discutidos os experimentos cu-
jos resultados permitem uma melhor discuss˜ao do comportamento do controlador. Estes est˜ao
numerados de 1 a 5 e ser˜ao detalhados a seguir.
4.3.1 O Experimento 1
Neste primeiro experimento, o l´ıder desenvolveu uma trajet´oria retil´ınea com velocidade
constante e igual a 60 mm/s. As posic¸˜oes iniciais foram estimadas em x
01
= 0, 5, y
01
= 0, 4,
x
02
= 0, 35 e y
02
= 0, 5. As posic¸˜oes desejadas escolhidas foram x
d1
= 0, 6, y
d1
= 0, 3,
x
d2
= 0, 6 e y
d2
= 0, 3, ou seja, um triˆangulo is´oceles, mas com os seguidores `a frente do l´ıder.
As orientac¸˜oes iniciais dos seguidores em relac¸˜ao ao l´ıder eram de aproximadamente 135
o
para
o seguidor 1 e 60
o
para o seguidor 2. A durac¸˜ao deste experimento foi de aproximadamente 150
segundos.
A Figura 4.12 mostra os resultados deste experimento para o seguidor 1. Nota-se que, ap´os
a oscilac¸˜ao inicial, o erro em x fica limitado a 10 cm. Esta oscilac¸˜ao ocorre principalmente
devido ao deslocamento m´ınimo necess´ario `a atualizac¸˜ao da postura, que se traduz como um
atraso inserido no controlador. Em outras palavras, at´e que a postura seja atualizada, os mesmos
comandos de velocidade continuam sendo gerados. Quando a postura finalmente ´e atualizada,
4.3 Os Experimentos 81
pode ser tarde para evitar que o seguidor passe pela posic¸˜ao desejada, uma vez que os robˆos
possuem in´ercia e n˜ao respondem instantaneamente aos comandos de velocidade de referˆencia.
A semelhanc¸a observada entre os gr´aficos da orientac¸˜ao e do erro em x n˜ao ´e coincidˆencia.
Isso acontece porque, quando seguidor e ıder se deslocam no mesmo sentido e a orientac¸˜ao
daquele ´e menor do que a de referˆencia, o controlador gera um sinal para que este robˆo gire no
sentido anti-hor´ario, aumentando sua orientac¸˜ao e reduzindo a componente x da sua velocidade.
Este processo pode ocorrer de forma inversa se a relac¸˜ao entre as orientac¸˜oes do seguidor e de
referˆencia forem contr´arias. Assim, a coordenada x tende a reduzir com o aumento da orientac¸˜ao
e a aumentar com a reduc¸˜ao desta. Estefato, aliado ao atraso na atualizac¸˜ao da postura, contribui
para a semelhanc¸a entre o erro em x e a orientac¸˜ao do seguidor.
Como a componente y da velocidade n˜ao sofre influˆencia direta da orientac¸˜ao do seguidor,
o erro em y, embora inicialmente grande, n˜ao sofre oscilac¸˜ao.
0 20 40 60 80 100 120 140
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120 140
40
60
80
100
120
140
160
Tempo [s]
Orientação [graus]
(b)
Figura 4.12: Experimento 1: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1.
Os resultados obtidos para o seguidor 2 s˜ao mostrados na Figura 4.13. Mais uma vez, os
erros de posic¸˜ao ficam limitados a 10 cm e a orientac¸˜ao em torno de 90
o
. Percebe-se, por´em,
que o erro em x do seguidor 2 sofre oscilac¸˜ao menor que para o seguidor 1. Por outro lado, o
erro em y apresenta uma variac¸˜ao maior, n˜ao ficando t˜ao pr´oximo de zero como ficou para o
seguidor 1.
Neste ponto, vale chamar a atenc¸˜ao para as Figuras 4.12 - (b) e 4.13 - (b) e notar a
contribuic¸˜ao do Filtro de Kalman: as orientac¸˜oes calculadas (azul), devido ao ru´ıdo nas ima-
gens, possuem variac¸˜ao m´edia de aproximadamente 20
o
. Ap´os a aplicac¸˜ao do filtro, ela caiu
para menos de 10
o
, ajudando o controlador a gerar comandos de referˆencia mais suaves.
4.3 Os Experimentos 82
0 20 40 60 80 100 120 140
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120 140
40
50
60
70
80
90
100
110
120
130
Tempo [s]
Orientação [graus]
(b)
Figura 4.13: Experimento 1: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2.
Observando as Figuras 4.12 - (a) e 4.13 - (a) pode-se ver que, embora os erros em x estejam
limitados em 10 cm, os erros em y n˜ao passam dos 5 cm, garantindo a formac¸˜ao desejada. Isso
pode ser comprovado atrav´es da Figura 4.14, que exibe a trajet´oria descrita pela equipe neste
primeiro experimento.
Embora a intenc¸˜ao fosse descrever uma trajet´oria retil´ınea, nota-se claramente que o ıder
realiza uma trajet´oria levemente curva. Isso n˜ao ´e devido ao erro ıpico de odometria, pois
o robˆo Pioneer 2-DX usado como l´ıder realmente executa uma trajet´oria curva mesmo se sua
velocidade angular for escolhida como zero. Trata-se de um defeito no eixo da roda esquerda
que afeta a leitura do respectivo encoder, provocando um pequeno erro no sinal de velocidade
que ´e aplicado a esta roda.
Outro detalhe importante: a leitura das velocidades linear e angular do Pioneer 2-DX, pro-
venientes dos seus encoders, ´e (bastante) ruidosa, desencorajando sua utilizac¸˜ao nas equac¸˜oes
do controlador. Dessa forma, optou-se por considerar que o ıder executa exatamente as velo-
cidades que lhe foram aplicadas. Esta simplificac¸˜ao afeta o controlador, pois ir´a gerar sinais
de comando usando valores de velocidades do l´ıder que n˜ao correspondem `a realidade. Mesmo
assim, a equipe entra e permanece na formac¸˜ao desejada, mostrando o bom desempenho do
controlador diante de uma situac¸˜ao n˜ao considerada no momento de sua concepc¸˜ao.
Estes inconvenientes estar˜ao presentes em todos os experimentos, embora fiquem mais evi-
dentes nos dois primeiros, onde a trajet´oria ´e retil´ınea.
Embora a leitura dos encoders do l´ıder n˜ao tenha sido usada para a gerac¸˜ao dos sinais de
controle, os valores de posic¸˜ao foram armazenados durante os experimentos para a produc¸˜ao
das figuras que exibem a trajet´oria descrita pela equipe. Uma vez conhecidas a posic¸˜ao absoluta
4.3 Os Experimentos 83
−4 −3 −2 −1 0 1 2 3 4 5 6
0
1
2
3
4
5
6
7
8
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.14: Experimento 1: trajet´oria descrita pela equipe.
do l´ıder e as posic¸˜oes relativas dos seguidores, ´e poss´ıvel reconstruir a trajet´oria de cada robˆo
do grupo, como mostra a Figura 4.14.
4.3.2 O Experimento 2
Como j´a foi adiantado, neste experimento o ıder tamb´em desenvolveu trajet´oria retil´ınea,
mas agora com velocidade de 80 mm/s e uma nova formac¸˜ao, com os seguidores indo atr´as
do ıder, assim como na primeira simulac¸˜ao. As posic¸˜oes iniciais foram aproximadamente
x
01
= 0, 45, y
01
= 0, 4, x
02
= 0, 4 e y
02
= 0, 1. As posic¸˜oes desejadas eram x
d1
= 0, 4,
y
d1
= 0, 5, x
d2
= 0, 4 e y
d2
= 0, 5 e os seguidores apresentaram orientac¸˜oes iniciais de 120
o
e 85
o
. O experimento durou em torno de 130 segundos.
Como as coordenadas y iniciais eram maiores do que as desejadas, ambos os seguidores
iniciam seus movimentos com velocidade linear negativa, ou seja, recuando. O seguidor 1 n˜ao
tarda em inverter seu movimento, pois sua posic¸˜ao desejada logo passa `a sua frente. O seguidor
2, por apresentar uma diferenc¸a maior entre os valores desejado e atual da coordenada y, p´ara
e assim permanece por alguns instantes. Isso ´e o reflexo da soma da velocidade de formac¸˜ao
de referˆencia,
˙
ξ
fr
, com a velocidade de compensac¸˜ao do movimento do l´ıder,
˙
ξ
l
(ver Equac¸˜ao
2.8
2
). Estas velocidades tˆem sentidos opostos e o tempo em que o seguidor permaneceu parado
2
Neste caso,
˙
ξ
ω
= 0, pois a velocidade angular do l´ıder ´e zero.
4.3 Os Experimentos 84
corresponde ao tempo onde a diferenc¸a entre elas n˜ao foi o bastante para que o controlador
gerasse um sinal de comando suciente para mover o seguidor. Este comportamento j´a era
esperado e ´e uma caracter´ıstica positiva do controlador.
A Figura 4.15 exibe os resultados para o seguidor 1 neste experimento.
´
E f´acil notar que os
erros de posic¸˜ao foram, desta vez, maiores que no primeiro experimento, ultrapassando os 10
cm em alguns momentos. Por outro lado, a estimativa de orientac¸˜ao se mostrou consideravel-
mente superior em relac¸˜ao ao caso anterior. Como a realimentac¸˜ao do controlador ´e visual, o
motivo destas diferenc¸as est´a na imagem. A regi˜ao do espelho onde os seguidores s˜ao refletidos
influencia a qualidade das estimativas de posic¸˜ao e orientac¸˜ao dos seguidores.
0 20 40 60 80 100 120
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120
50
60
70
80
90
100
110
120
130
Tempo [s]
Orientação [graus]
(b)
Figura 4.15: Experimento 2: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1.
Para o seguidor 2, os resultados s˜ao mostrados na Figura 4.16. Assim como para o seguidor
1, os erros de posic¸˜ao aumentaram, mas a estimativa de orientac¸˜ao foi melhorada.
0 20 40 60 80 100 120
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120
50
60
70
80
90
100
110
120
130
Tempo [s]
Orientação [graus]
(b)
Figura 4.16: Experimento 2: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2.
4.3 Os Experimentos 85
Outra diferenc¸a em relac¸˜ao ao primeiro experimento est´a na oscilac¸˜ao inicial do erro em
y, agora presente. Entretanto, o motivo ´e, mais uma vez, o atraso na atualizac¸˜ao da postura.
Como os seguidores partem com velocidade linear negativa e o l´ıder com velocidade linear po-
sitiva, as coordenadas y desejadas s˜ao rapidamente alcanc¸adas, tanto que os seguidores chegam
a parar. Devido ao atraso na atualizac¸˜ao das posturas, o erro j´a alcanc¸a um valor tal que resulta
na gerac¸˜ao de uma velocidade linear de referˆencia alta. Com isso, os seguidores aceleram at´e
pr´oximo de sua velocidade linear m´axima, assim permanecendo at´e que a postura seja nova-
mente atualizada. Este processo ocorre apenas no in´ıcio da navegac¸˜ao, onde os erros iniciais
s˜ao, em geral, grandes, provocando a gerac¸˜ao de velocidades de referˆencia com valores mais
altos.
A trajet´oria descrita pelo grupo ´e exibida na Figura 4.17. Mais uma vez, esta trajet´oria n˜ao
´e bem uma reta, mas ´e poss´ıvel ver que o grupo entra rapidamente em formac¸˜ao, mantendo-a
at´e o final do experimento.
−6 −4 −2 0 2 4
0
1
2
3
4
5
6
7
8
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.17: Experimento 2: trajet´oria descrita pela equipe.
4.3.3 O Experimento 3
Neste experimento, a trajet´oria descrita foi uma circunferˆencia, pois o ıder possu´ıa velo-
cidade linear de 60 mm/s e angular de 1,5
o
/s, ambas constantes. O raio previsto para esta
circunferˆencia foi de 2,3 m, embora o observado tenha ficado maior, cerca de 3,7 m. Isso
4.3 Os Experimentos 86
ocorre devido ao problema no eixo da roda esquerda citado anteriormente. Os seguidores fo-
ram inicialmente detectados nas posic¸˜oes dadas, aproximadamente, por x
01
= 0, 7, y
01
= 0, 0,
x
02
= 0, 0 e y
02
= 0, 9. Como posic¸˜oes desejadas, escolheu-se x
d1
= 0, 0, y
d1
= 0, 7, x
d2
= 0, 0
e y
d2
= 0, 7, ou seja, os mesmos valores usados na segunda simulac¸˜ao. Isso permite comparar
melhor os resultados te´oricos, obtidos na simulac¸˜ao, com os pr´aticos, obtidos no experimento.
Neste caso, os dois seguidores iniciaram a navegac¸˜ao com cerca de 85
o
em relac¸˜ao ao l´ıder.
Este experimento durou mais do que o esperado, cerca de 410 segundos (ou 6 minutos e 50
segundos), devido ao aumento no raio da trajet´oria descrita. Os resultados s˜ao compat´ıveis com
aqueles obtidos na segunda simulac¸˜ao. Isso pode ser visto observando-se as Figuras 4.18 - (a)
e 4.19 - (a) e comparando-as com as Figuras 4.9 - (a) e (b).
0 50 100 150 200 250 300 350 400
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Tempo [s]
Erro de Posição [m]
(a)
0 50 100 150 200 250 300 350 400
40
60
80
100
120
140
160
Tempo [s]
Orientação [graus]
(b)
Figura 4.18: Experimento 3: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1.
Para uma comparac¸˜ao mais criteriosa entre os resultados experimentais e os obtidos com
simulac¸˜ao, foram medidos a m´edia e o erro quadr´atico m´edio dos erros de posic¸˜ao de cada
seguidor, tanto na simulac¸˜ao quanto no experimento. Essas medidas foram feitas a partir do
momento em que o erro em x ou em y se torna menor do que 10 cm. Dessa forma, n˜ao s˜ao
considerados os erros iniciais de posic¸˜ao acima de 10 cm que, al´em de serem normalmente
grandes e prejudicarem a comparac¸˜ao desejada, s˜ao diferentes na simulac¸˜ao e no experimento.
As Tabelas 4.1 e 4.2 mostram os valores medidos. Nota-se que, para ambos os seguidores, a
m´edia obtida na primeira situac¸˜ao ´e maior, em m´odulo, do que a obtida no segundo caso. O erro
quadr´atico m´edio relativo ao erro em x tamb´em se mostrou maior na simulac¸˜ao, independente
do robˆo. Apenas o erro quadr´atico m´edio relativo ao erro em y foi maior no experimento e isso
ocorre devido ao ru´ıdo de medic¸˜ao, facilmente observado nas Figuras 4.18 - (a) e 4.19 - (a).
Vale a pena chamar a atenc¸˜ao para a escala da Figura 4.19 - (a), que ´e de 5 e n˜ao 10 cm.
4.3 Os Experimentos 87
0 50 100 150 200 250 300 350 400
−0.15
−0.1
−0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
Tempo [s]
Erro de Posição [m]
(a)
0 50 100 150 200 250 300 350 400
30
40
50
60
70
80
90
100
110
Tempo [s]
Orientação [graus]
(b)
Figura 4.19: Experimento 3: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2.
M´edia Erro Quadr´atico M´edio
(cm)
cm
2
Seguidor 1 erro x -3,98 17,15
erro y -0,9 1,18
Seguidor 2 erro x -7,42 114,1
erro y 0,9 1,06
Tabela 4.1: M´edia e erro quadr´atico m´edio relativos `a simulac¸˜ao 2.
M´edia Erro Quadr´atico M´edio
(cm)
cm
2
Seguidor 1 erro x -2,34 10,93
erro y -0,37 2,09
Seguidor 2 erro x 1,38 8,37
erro y -0,66 2,20
Tabela 4.2: M´edia e erro quadr´atico m´edio relativos ao experimento 3.
Neste ponto, ´e interessante fazer uma an´alise do pico negativo do erro em x do seguidor 2 –
Figura 4.19 - (a) – quando transcorridos cerca de 60 segundos de experimento. Isso aconteceu
porque o cabo de alimentac¸˜ao deste seguidor se prendeu momentaneamente, prejudicando seu
movimento. Por´em, t˜ao logo o cabo se soltou, o controlador conduziu este seguidor de volta
`a formac¸˜ao desejada. Esse fato mostra a robustez do controle adotado, pois mesmo sofrendo a
ac¸˜ao de perturbac¸˜oes mais fortes que os ru´ıdos de medic¸˜ao, foi capaz de alcanc¸ar a formac¸˜ao
desejada.
A trajet´oria descrita neste experimento ´e exibida na Figura 4.20. Como a velocidade an-
gular do ıder ´e positiva, o sentido do movimento da equipe ´e o anti-hor´ario. Nota-se que os
4.3 Os Experimentos 88
robˆos rapidamente entram em formac¸˜ao, pois o segundo triˆangulo desenhado (vermelho) mais
se assemelha a uma reta do que a um triˆangulo. O mesmo vale para os triˆangulos seguintes,
mostrando que a equipe mant´em a formac¸˜ao at´e o fim do experimento. Este resultado foi o
mesmo obtido na simulac¸˜ao 2.
−8 −7 −6 −5 −4 −3 −2 −1 0 1
−3
−2
−1
0
1
2
3
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.20: Experimento 3: trajet´oria descrita pela equipe.
Aproveitando as comparac¸˜oes entre os erros de posic¸˜ao, pode-se fazer o mesmo entre as
orientac¸˜oes obtidas neste experimento e na respectiva simulac¸˜ao: neste ´ultimo caso, elas s˜ao
facilmente determinadas por tornarem-se constantes assim que a equipe entra em formac¸˜ao,
da mesma forma que ocorre com os erros de posic¸˜ao. As orientac¸˜oes em regime estacion´ario
foram, aproximadamente, de 107
o
para o seguidor 1 e 73
o
para o seguidor 2, conforme Figura
4.9 - (c).
Os valores m´edios dos resultados experimentais ficaram em 99, 68
o
para o seguidor 1 e
80, 80
o
para o seguidor 2 (Figuras 4.18 - (b) e 4.19 - (b)). Percebe-se que, no experimento, as
orientac¸˜oes s˜ao mais pr´oximas de 90
o
e que as diferenc¸as entre os resultados experimentais e
simulados est˜ao em torno de 7
o
, independente do robˆo. Essa diferenc¸a ´e fruto do raio (maior)
descrito no experimento. Quanto maior o raio, menor ser´a a curvatura da trajet´oria, fazendo
com que os seguidores fiquem mais alinhados com o l´ıder.
4.3 Os Experimentos 89
4.3.4 O Experimento 4
Neste experimento, o objetivo foi vericar o comportamento do controlador quando a tra-
jet´oria ´e sinuosa, mesma situac¸˜ao da terceira simulac¸˜ao. Entretanto, h´a uma diferenc¸a na
formac¸˜ao escolhida. Neste caso, os seguidores devem ir `a frente do l´ıder, com posic¸˜oes de-
sejadas iguais a x
d1
= 0, 6, y
d1
= 0, 3, x
d2
= 0, 6 e y
d2
= 0, 3. As posic¸˜oes iniciais foram,
aproximadamente, iguais a x
01
= 0, 45, y
01
= 0, 45, x
02
= 0, 3 e y
02
= 0, 5. O seguidor 1
partiu com uma orientac¸˜ao pr´oxima de 105
o
, enquanto o seguidor 2 iniciou seu movimento com
cerca de 65
o
em relac¸˜ao ao l´ıder. O experimento completo durou pouco mais de 150 segundos,
sendo os primeiros 20 segundos destinados `a determinac¸˜ao das posturas iniciais dos seguidores.
Assim como na simulac¸˜ao 3, a velocidade angular do l´ıder foi zero nos primeiros 10 segundos
de navegac¸˜ao, igual a f
ω
l
(t) no intervalo 10 t 100s, voltando a zero nos segundos restantes.
A Figura 4.21 exibe os comportamentos dos erros de posic¸˜ao e da orientac¸˜ao do seguidor
1 durante este experimento. Nota-se que os maiores erros de posic¸˜ao acontecem pouco antes
dos 100 segundos de navegac¸˜ao, onde a velocidade angular do ıder est´a atingindo seu valor
m´aximo, +1,5
o
/s: como este seguidor est´a `a sua esquerda, precisa aumentar a velocidade linear
para manter a formac¸˜ao, dificultando o controle de sua postura. O mesmo n˜ao ´e observado
no trecho onde o ıder inicia o movimento de rotac¸˜ao, ou seja, logo ap´os os 10 segundos de
navegac¸˜ao, pois como o seguidor 1 est´a `a esquerda (por dentro da curva, neste trecho), sua
velocidade linear ´e menor, o que facilita seu controle.
0 20 40 60 80 100 120 140
−0.2
0
0.2
0.4
0.6
0.8
1
1.2
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120 140
40
50
60
70
80
90
100
110
120
130
140
Tempo [s]
Orientação [graus]
(b)
Figura 4.21: Experimento 4: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1.
A orientac¸˜ao do seguidor 1 apresentou, durante este experimento, mais oscilac¸˜ao do que
nos anteriores. Isso j´a foi previsto pela simulac¸˜ao 3 (Figura 4.11 - (c)) e ocorre devido ao tipo
de trajet´oria executada, onde as orientac¸˜oes tanto dos seguidores quanto do ıder est˜ao variando
no tempo.
4.3 Os Experimentos 90
A Figura 4.22 traz os resultados para o segundo robˆo seguidor. Nota-se que, como para o
primeiro seguidor, os erros de posic¸˜ao s˜ao maiores que nos casos anteriores.
0 20 40 60 80 100 120 140
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Tempo [s]
Erro de Posição [m]
(a)
0 20 40 60 80 100 120 140
30
40
50
60
70
80
90
100
110
120
130
Tempo [s]
Orientação [graus]
(b)
Figura 4.22: Experimento 4: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2.
Entretanto, neste caso, os maiores erros acontecem quando o l´ıder inicia o movimento ro-
tat´orio, girando `a esquerda. Como este seguidor se encontra `a sua direita, deve acelerar at´e
obter uma velocidade linear superior, o que diculta o controle de sua postura. Assim que a
velocidade angular do ıder troca de sinal e este passa a girar no sentido hor´ario, o seguidor 2
alcanc¸a a formac¸˜ao desejada, reduzindo seus erros de posic¸˜ao a valores aceit´aveis.
Da mesma forma que na orientac¸˜ao do seguidor 1, o seguidor 2 apresenta oscilac¸˜oes signi-
ficativas. Isso acontece pelo mesmo motivo, ou seja, devido `a trajet´oria descrita.
A Figura 4.23 exibe esta trajet´oria, onde ´e poss´ıvel perceber que o l´ıder gira mais `a direita
do que `a esquerda. Isso n˜ao corresponde ao desejado, uma vez que a func¸˜ao f
ω
l
(t) envia sinais
que variam desde +1,5
o
/s a -1,5
o
/s, passando por zero justamente no centro do intervalo onde
´e v´alida. A raz˜ao para a execuc¸˜ao desta trajet´oria, e n˜ao da desejada, est´a (mais uma vez) no
erro de leitura dos encoders da roda esquerda do ıder. Claramente, isso afeta o desempenho
do sistema, pois o valor da velocidade angular do ıder usado nas equac¸˜oes do controlador ´e
exatamente aquele determinado por f
ω
l
(t), e que n˜ao corresponde ao valor real executado. Por
outro lado, isso mostra que, mesmo assim, o controlador ´e capaz de conduzir os seguidores `a
formac¸˜ao desejada.
4.3.5 O Experimento 5
Os resultados apresentados pelo Experimento 4 foram considerados satisfat´orios. Por´em,
decidiu-se pela realizac¸˜ao de mais um experimento para verificar se os resultados seriam os
mesmos caso os seguidores navegassem atr´as do l´ıder, como na simulac¸˜ao 3.
4.3 Os Experimentos 91
−6 −5 −4 −3 −2 −1 0 1 2 3 4
0
1
2
3
4
5
6
7
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.23: Experimento 4: trajet´oria descrita pela equipe.
Assim, neste experimento, as posic¸˜oes desejadas foram x
d1
= 0, 5, y
d1
= 0, 3, x
d2
= 0, 5
e y
d2
= 0, 3. Os seguidores foram inicialmente detectados nas posic¸˜oes x
01
= 0, 4, y
01
=
0, 8, x
02
= 0, 25 e y
02
= 0, 85, aproximadamente. A orientac¸˜ao inicial do seguidor 1 foi
cerca de 105
o
, enquanto o seguidor 2 partiu com uma orientac¸˜ao de 80
o
. Este experimento
durou cerca de 160 segundos, pouco mais do que o experimento anterior.
Al´em de observar o comportamento do controlador para uma formac¸˜ao diferente, outro
teste tamb´em foi feito neste experimento, que consiste em verificar a robustez da detecc¸˜ao das
posic¸˜oes iniciais que, como se sabe, ´e baseada na segmentac¸˜ao de movimento. Para isso, duas
pessoas permaneceram caminhando pr´oximas ao l´ıder localizava os seguidores, com o cuidado
de n˜ao obstruir a vis˜ao de nenhum deles. O resultado obtido foi a detecc¸˜ao correta das posic¸˜oes
dos robˆos, sem nenhum ˆonus para o desempenho das etapas seguintes, mostrando que esta fase
do processamento de imagens ´e, como j´a foi afirmado, suficientemente robusta para o problema
abordado.
Os resultadosobtidos para o seguidor 1 neste experimento s˜ao ilustradospela Figura 4.24.
´
E
f´acil perceber que a mudanc¸a na formac¸˜ao desejada contribuiu para reduzir os erros de posic¸˜ao,
agora limitados em pouco mais de 10 cm. Por outro lado, a orientac¸˜ao do seguidor 1 n˜ao
apresentou reduc¸˜ao signicativa de oscilac¸˜ao se observada a obtida no experimento anterior,
como mostra a comparac¸˜ao entre as Figuras 4.21 - (b) e 4.24 - (b).
4.3 Os Experimentos 92
0 50 100 150
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tempo [s]
Erro de Posição [m]
(a)
0 50 100 150
20
30
40
50
60
70
80
90
100
110
120
130
140
Tempo [s]
Orientação [graus]
(b)
Figura 4.24: Experimento 5: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 1.
A Figura 4.25 traz os resultados obtidos para o seguidor 2. Como pode ser visto, os erros
de posic¸˜ao deste tamb´em foram reduzidos com a alterac¸˜ao na formac¸˜ao desejada, ficando igual-
mente limitados em pouco mais de 10 cm. Assim como no caso do primeiro seguidor, n˜ao se
observou reduc¸˜ao significativa na oscilac¸˜ao de sua orientac¸˜ao.
0 50 100 150
−0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tempo [s]
Erro de Posição [m]
(a)
0 50 100 150
50
60
70
80
90
100
110
120
130
Tempo [s]
Orientação [graus]
(b)
Figura 4.25: Experimento 5: (a) Erros de posic¸˜ao e (b) Orientac¸˜ao do seguidor 2.
Para comprovar a melhoria obtida no desempenho do controlador, basta comparar as Figu-
ras 4.23 e 4.26. Nota-se que neste ´ultimo experimento cada seguidor navega mais pr´oximo de
sua trajet´oria desejada, principalmente o segundo robˆo.
Nestes dois ´ultimos experimentos, a equipe entra rapidamente em formac¸˜ao e, mesmo com
as mudanc¸as na velocidadeangular do ıder, a mant´em at´e o fim. Entretanto, durante a realizac¸˜ao
destes, observou-se que no Experimento 5 os seguidores executaram movimentos mais suaves,
tornando a navegac¸˜ao mais segura e econˆomica. Assim, os dois ´ultimos resultados, juntamente
com aqueles obtidos nos Experimentos 1 e 2, sugerem que o controlador tem seu desempenho
levemente afetado pela formac¸˜ao escolhida, pricipalmente no que tange aos erros de posic¸˜ao.
4.4 Conclus
˜
oes 93
−6 −5 −4 −3 −2 −1 0 1 2 3 4
0
1
2
3
4
5
6
7
Posições absolutas − x [m]
Posições absolutas − y [m]
Figura 4.26: Experimento 5: trajet´oria descrita pela equipe.
4.4 Conclus
˜
oes
Este cap´ıtulo apresentou a equipe de robˆos utilizada neste trabalho, as simulac¸˜oes feitas e
principalmente os resultados obtidos em cada um dos 5 experimentos mostrados, que foram n˜ao
apenas apresentados, mas discutidos e justificados.
Como visto na simulac¸˜ao 3, mudanc¸as na velocidade angular do l´ıder tˆem um efeito se-
melhante a uma perturbac¸˜ao no sistema. Isso pˆode ser comprovado nos Experimentos 4 e 5.
Mesmo assim, a equipe entrou e manteve a formac¸˜ao desejada.
Os erros observados tˆem origem em uma s´erie de fatores, como:
imagem ruidosa;
baixa resoluc¸˜ao da cˆamara aliada `a pequena ´area ´util da imagem;
trepidac¸˜ao do robˆo l´ıder quando em movimento, que faz o sistema de vis˜ao balanc¸ar;
baixa qualidade dos encoders do PIONEER 2-DX, que resulta em velocidades reais dife-
rentes daquelas consideradas no controlador;
o alinhamento manual, portanto, impreciso, entre o espelho, a cˆamara e o PIONEER
2-DX.
4.4 Conclus
˜
oes 94
Como pode ser visto, a maioria destes fatores est´a associada ao hardware dispon´ıvel. A
aquisic¸˜ao de equipamentos de melhor qualidade pode reduzir significativamente estes efeitos
no desempenho do sistema de controle.
Outro ponto que merece atenc¸˜ao ´e o fato de que os erros em y foram significativamente
menores do que aqueles ocorridos em x, o que ´e mostrado em todos os gr´aficos apresentados.
Isso faz dos erros em x os respons´aveis pelos maiores erros registrados. A explicac¸˜ao para isso
est´a no m´etodo usado para estimar a postura dos seguidores. Como apenas uma cor foi utilizada
para identificar cada seguidor (devido `as limitac¸˜oes impostas pela cˆamara e pelo espelho), ´e ne-
cess´ario que este apresente um deslocamento m´ınimo antes de ter sua postura atualizada. Dado
que o movimento predominante ´e na direc¸˜ao y (para frente), a componente da velocidade de um
seguidor nesta direc¸˜ao sofre menos influˆencia da orientac¸˜ao `a medida que entra em formac¸˜ao.
Por outro lado, a componente x da velocidade de um seguidor ´e diretamente afetada pela sua
orientac¸˜ao. Como a postura (e, portanto, a orientac¸˜ao) s´o ´e atualizada ap´os o deslocamento
m´ınimo, esta componente da velocidade (e, logo, o erro em x) torna-se mais dif´ıcil de controlar.
Observando o comportamento dos erros em x e y obtidos do ponto de vista do controlador,
pode-se dizer que, devido `a imprecis˜ao das estimativas de postura dos seguidores, os sinais de
controle gerados n˜ao conseguem fazer com que
η
(t) e
˜
α
(t) tendam exatamente a zero,
como previsto na prova de estabilidade. Por´em, como os erros na estimativa de postura s˜ao
limitados, os erros nos sinais de controle tamb´em o s˜ao. Logo, os erros em x, y e
α
de cada
seguidor s˜ao, tamb´em, limitados.
Em todosos casos, a equipe alcanc¸ou e manteve a formac¸˜ao desejada at´e o fim do respectivo
experimento. Mesmo na presenc¸a de fatores que prejudicam o desempenho do controlador,
como os cabos de alimentac¸˜ao e comunicac¸˜ao, que afetam a dinˆamica dos robˆos, os ru´ıdos na
imagem, a baixa resoluc¸˜ao da cˆamara e a pequena ´area ´util da imagem, os maiores erros de
posic¸˜ao n˜ao chegaram a atingir 20 cm, ficando, na maior parte do tempo, limitados a 10 cm.
O pr´oximo cap´ıtulo encerra esta Dissertac¸˜ao apresentando uma discuss˜ao geral sobre o
trabalho aqui desenvolvido, assim como as principais contribuic¸˜oes, dificuldades e trabalhos
futuros.
95
5 Conclus
˜
oes
Neste trabalho, foi apresentada uma estrat´egia de controle de formac¸˜ao de um grupo de
robˆos m´oveis baseada em vis˜ao omnidirecional e controle n˜ao linear.
Uma das motivac¸˜oes deste projeto foi a construc¸˜ao de um grupo de robˆos de baixo custo
para a realizac¸˜ao de tarefas atrav´es de cooperac¸˜ao. Como se sabe, quanto maior a capacidade de
processamento e a quantidade de sensores embarcados, maior o custo associado. Isso motivou
a adoc¸˜ao da arquitetura de controle centralizado, pois permite que o processamento e a tomada
de decis˜ao sejam concentrados em apenas um robˆo da equipe, aumentando o custo deste, mas
reduzindo o do restante da equipe. Sem d´uvida, uma arquitetura de controle descentralizado
bem projetada ´e mais robusta que a arquitetura aqui adotada. Entretanto, isso exige que os
integrantesda equipe sejam equipados com sensores e capacidade de processamentoadequados,
aumentando seu custo.
Assim, a equipe de robˆos utilizada ´e composta por um l´ıder dotado de maior capacidade de
processamento e sensores. Os outros integrantes s˜ao robˆos celulares equipados apenas com um
microcontrolador e os dispositivos necess´arios para o acionamento dos motores.
O controle de formac¸˜ao ´e conseguido atrav´es da teoria de controle n˜ao linear e das t´ecnicas
de processamento digital de imagens. Para coordenar a formac¸˜ao do grupo, o ıder utiliza um
controlador n˜ao linear est´avel respons´avel por gerar os comandos necess´arios para que os se-
guidores entrem em formac¸˜ao e, ao mesmo tempo, acompanhem o movimento do ıder. Para
isso, este controlador ´e dividido em dois sub-controladores. O primeiro deles, chamado Contro-
lador de Formac¸˜ao, foi projetado com o objetivo de conduzir os seguidores `a postura desejada
considerando apenas o erro de formac¸˜ao, desprezando as velocidades linear e angular do l´ıder,
caso existam. O segundo sub-controlador, o Controlador de Compensac¸˜ao, visa adicionar `a
velocidade de referˆencia gerada pelo Controlador de Formac¸˜ao as compensac¸˜oes necess´arias
para os seguidores acompanharem o l´ıder. A estabilidade de cada um dos sub-controladores foi
provada usando o M´etodo de Lyapunov.
5 Conclus
˜
oes 96
A realimentac¸˜ao do controlador foi feita atrav´es do processamento das imagens captura-
das por um sistema de vis˜ao omnidirecional. A vantagem destas imagens ´e que elas fornecem
360
o
de campo visual horizontal e permitem que o l´ıder estime a posic¸˜ao de todos os seguido-
res com apenas uma imagem. Neste trabalho, estas imagens foram conseguidas por meio do
acoplamento de uma cˆamara de v´ıdeo convencional e um espelho hiperb´olico, ou seja, sem a
necessidade de usar cˆamaras ou lentes especiais.
O processamento das imagens foi dividido em trˆes etapas principais. A primeira delas ´e
respons´avel pela detecc¸˜ao das posic¸˜oes iniciais dos seguidores. Isso ´e necess´ario porque o
l´ıder n˜ao sabe, inicialmente, onde est˜ao os outros integrantes do grupo. A detecc¸˜ao da cor
de cada seguidor ´e feita de forma autom´atica. Logo, ´e poss´ıvel trocar a cor de um robˆo ou
mesmo substitui-lo por outro de cor diferente entre um experimento e outro sem a necessidade
de alterac¸˜ao no c´odigo fonte. T´ecnicas de processamento digital de imagens, como background
subtraction, operac¸˜oes l´ogicas e morfol´ogicas, juntamente com o algoritmo de filtragem de
blobs aqui desenvolvido, foram empregados para a implementac¸˜ao desta etapa.
A etapa seguinte tem a tarefa de estimar, atrav´es do uso dos algoritmos CAMSHIFT, RAN-
SAC e ınimos Quadrados, a orientac¸˜ao de cada robˆo seguidor para, enfim, determinar sua
postura inicial.
Uma vez iniciada a navegac¸˜ao, entra em cena a ´ultima e mais importante etapa do processa-
mento das imagens, que consiste no rastreamento cont´ınuo dos robˆos celulares e ´e respons´avel
por fornecer ao controlador as estimativasda postura de cada um dos seguidores, ou seja, realiza
a realimentac¸˜ao do controlador.
Para a validac¸˜ao do controlador proposto, simulac¸˜oes e experimentos com robˆos reais fo-
ram realizados com o objetivo de estudar o comportamento do controlador para diferentes
configurac¸˜oes, embora n˜ao levem em conta a dinˆamica de cada robˆo.
Os resultados obtidos nos experimentos realizados com os robˆos mostram um desempenho
satisfat´orio para o sistema controlador + processamento de imagens proposto. A etapa de
detecc¸˜ao das posic¸˜oes iniciais se mostrou confi´avel tamb´em em ambientes com iluminac¸˜ao
irregular, piso reflexivo e movimento de pessoas. O mesmo se pode afirmar das etapas de
detecc¸˜ao das orientac¸˜oes iniciais e de rastreamento para navegac¸˜ao. Assim como no caso das
simulac¸˜oes, diferentes configurac¸˜oes foram impostas. Em todos os casos, a equipe foi capaz
de entrar e manter a formac¸˜ao desejada. Os erros de posic¸˜ao ficaram, na maioria dos casos,
limitados a 10 cm. Entretanto, dependendo da formac¸˜ao e da trajet´oria descrita pelo grupo, foi
necess´ario ajustar os ganhos do controlador. Al´em disso, esses ganhos n˜ao s˜ao os mesmos para
os dois seguidores, uma vez que estes n˜ao s˜ao idˆenticos.
5.1 Contribuic¸
˜
oes deste Trabalho 97
O controlador e o processamento de imagens aqui propostos permitem que v´arios robˆos
seguidores sejam usados. A principal limitac¸˜ao est´a no campo visual do l´ıder, j´a que ´e dif´ıcil
estimar a postura de um robˆo muito distante. Obviamente, um n´umero excessivo de seguidores
complica o controle de formac¸˜ao, pois a possibilidade de colis˜ao aumenta consideravelmente.
Este sistema pode ainda ser utilizado em aplicac¸˜oes que exigem uma grande quantidade
(dezenas ou centenas) de robˆos. Para isso, os robˆos seriam divididos em v´arias equipes con-
tendo, cada uma delas, um ıder. Isso permite que os benef´ıcios das arquiteturas de controle
centralizado e descentralizado sejam aproveitados ao mesmo tempo. Enquanto cada equipe tra-
balha com controle centralizado, a coordenac¸˜ao entre as equipes pode ser feita atrav´es de uma
abordagem de controle descentralizado. Inclusive, no caso de uma falha de um dos ıderes, seus
seguidores podem ser “adotados” por uma equipe vizinha, garantindo mais robustez ao sistema
como um todo.
5.1 Contribuic¸
˜
oes deste Trabalho
Na sec¸˜ao anterior foi feita uma discuss˜ao geral sobre o desenvolvimento, a implementac¸˜ao e
os testes do trabalho realizado nesta Dissertac¸˜ao de Mestrado. Apenas com o intuito de ressaltar
as suas principais contribuic¸˜oes, as mesmas ser˜ao resumidas a seguir:
O controlador n˜ao linear de formac¸˜ao baseado em vis˜ao (principal contribuic¸˜ao);
As metodologias para as estimativas das posturas iniciais e das orientac¸˜oes de robˆos ce-
lulares identificados por apenas uma cor;
´
Area de trabalho ilimitada, j´a que o sistema de vis˜ao est´a embarcado no robˆo l´ıder e este
pode se deslocar com o grupo para diferentes locais;
´
E importante lembrar que, como mencionado no Cap´ıtulo 2, as primeiras equac¸˜oes do con-
trolador foram propostas em [35]. Neste trabalho, elas foram adaptadas para proporcionar tanto
maior controle sobre os parˆametros que influenciam o comportamento do controlador quanto a
gerac¸˜ao de sinais de comando mais suaves.
Vale ressaltar que, devido `as contribuic¸˜oes citadas acima e aos resultados obtidos, este
trabalho gerou trˆes publicac¸˜oes a n´ıvel internacional e uma a ıvel nacional, encontradas, res-
pectivamente, em [61, 62, 63] e [64].
5.2 Dificuldades Encontradas 98
5.2 Dificuldades Encontradas
Dentre todas as diculdades encontradas, a principal foi a baixa qualidade da cˆamara de
v´ıdeo utilizada. Inicialmente, o sistema era composto por uma outra cˆamara, de outro fabri-
cante (Gradiente, modelo SC-80), que permitia maior controle sobre os parˆametros da imagem
capturada. Com isso, atrav´es do ajuste do brilho e da saturac¸˜ao de cores, era poss´ıvel traba-
lhar com imagens mais escuras e cores bem saturadas. A reduc¸˜ao do brilho conferia menor
sensibilidade aos ru´ıdos de iluminac¸˜ao e reflexos no piso. A alta saturac¸˜ao tornava o processo
de segmentac¸˜ao de cores mais f´acil e bastante est´avel, ou seja, as coordenadas do centr´oide
da regi˜ao segmentada apresentavam variac¸˜ao de apenas um ou dois pixels. Infelizmente, os
dois modelos desta cˆamara dispon´ıveis no laborat´orio queimaram, e passou-se a utilizar um
equipamento Samsung, modelo CCS-212, que, entre outros incovenientes, varia muito pouco a
saturac¸˜ao de cores.
A resoluc¸˜ao da imagem capturada ´e de 640 x 480 pixels, valores modestos quando se consi-
dera que apenas uma frac¸˜ao do total de pixels ´e realmente utilizada para processamento. Como
discutido no cap´ıtulo referente ao processamento de imagens, a forma inadequada do espelho
dispon´ıvel e a cˆamara empregada exigem a determinac¸˜ao de uma ´area de interesse que limita
a vis˜ao do l´ıder num raio de 2 metros, descartando a maior parte da ´area total da imagem cap-
turada. Al´em disso, considerando que a regi˜ao mais central da imagem ´e ocupada pela cˆamara
e pelo robˆo l´ıder, a ´area ´util para processamento se torna pouco mais de 12% da ´area total dis-
pon´ıvel na imagem. Com isso, a estimativa de postura ´e penalizada, afetando o desempenho
do controlador. Mais uma vez, vale lembrar que isso acontece devido `a cˆamara e ao espelho
utilizados, e n˜ao ao uso de imagens omnidirecionais.
Embora de menor importˆancia, dois fatores associados ao robˆo Pioneer 2-DX (l´ıder da
equipe) tamb´em prejudicaram o desempenho do grupo. O primeiro deles ´e a m´a qualidade da
leitura dos seus encoders, o que impossibilitoumedir suas velocidades linear e angular e utilizar
estas medidas nas equac¸˜oes do controlador. O segundo fator ´e um empeno no eixo da roda
esquerda, fazendo o l´ıder balanc¸ar mais do que o normal. Com isso, o sistema de vis˜ao tamb´em
balanc¸a, inserindo ru´ıdo na medic¸˜ao da posic¸˜ao dos seguidores. Por fim, provavelmente devido
a estes dois fatores, o l´ıder ´e incapaz de navegar em linha reta, ou seja, mesmo sob o comando
de seguir em frente com velocidade angular zero, o robˆo descreve uma trajet´oria circular. Isso
afeta o desempenho do controlador, pois neste caso a compensac¸˜ao da velocidade angular n˜ao
est´a sendo feita.
5.3 Trabalhos Futuros 99
5.3 Trabalhos Futuros
A primeira e mais importante melhoria consiste em substituir o sistema de vis˜ao por um
outro com uma cˆamara de melhor resoluc¸˜ao e um espelho cuja forma permita visualizar melhor
a regi˜ao em torno do sistema. Com isso, ser´a poss´ıvel utilizar duas cores em cada seguidor
e suas orientac¸˜oes poder˜ao ser determinadas usando-se os centr´oides de cada cor. Isso n˜ao
elimina a necessidade de filtragem, mas fornece resultados mais precisos.
Outro ponto de destaque s˜ao as simulac¸˜oes. Um ambiente virtual para a realizac¸˜ao de
simulac¸˜oes ´e uma importante ferramenta no campo da rob´otica, como em v´arias outras ´areas do
conhecimento. Assim, desenvolver um ambiente deste tipo levando em considerac¸˜ao o modelo
dinˆamico tanto do l´ıder quanto dos seguidores contribuir´a, sem d´uvida, na tarefa de encontrar
os melhores ganhos para o controlador. A partir da´ı, as simulac¸˜oes permitir˜ao sintonizar o con-
trolador empregado sem a necessidade de realizar experimentos com esta finalidade. T´ecnicas
de Identificac¸˜ao de Sistemas podem ser usadas para obter esses modelos, que podem ser usa-
dos n˜ao apenas nas simulac¸˜oes, mas incorporados ao controlador. Dessa forma, os sinais de
controle gerados conduzir˜ao a equipe `a formac¸˜ao desejada de maneira mais eficiente.
Para tornar o sistema mais flex´ıvel e robusto, pode ser implantado um algoritmo supervisor
com o objetivo de ajustar automaticamente os ganhos do controlador em func¸˜ao do desempenho
da equipe na tarefa de entrar e manter a formac¸˜ao desejada.
Como a utilizac¸˜ao de v´arios robˆos ´e permitida, trabalhos podem ser feitos abordando pro-
blemas como mapeamento, explorac¸˜ao, limpeza, resgate, vigilˆancia e outros. Al´em disso, um
grupo com um grande n´umero de robˆos pode ser dividido em v´arias equipes menores, sendo
cada uma delas uma instˆancia do trabalho apresentado nesta Dissertac¸˜ao. A cooperac¸˜ao entre
as equipes pode ser coordenada atrav´es de uma arquitetura de controle descentralizado.
Como pr´oxima etapa deste projeto pretende-se incluir m´odulos Zigbee para a comunicac¸˜ao
sem fio entre os robˆos da equipe. Em seguida, espera-se adicionar algoritmos para detecc¸˜ao e
desvio de obst´aculos baseados em vis˜ao (fluxo ´otico e tempo para colis˜ao), sensores de ultra-
som ou mesmo sensores laser. Estes ´ultimos seriam usados apenas no l´ıder devido ao seu
custo e ao seu peso. Pretende-se, ainda, aplicar a fus˜ao dos dados provenientes das imagens
omnidirecionais e do sensor laser para a construc¸˜ao de um mapa global do ambiente. Isso
permitir´a a realizac¸˜ao de um SLAM (Simultaneous Localization and Mapping), onde o ıder
conduzir´a a equipe pelo ambiente ao mesmo tempo que construir´a um mapa global deste.
Por fim, uma an´alise da influˆencia dos erros de medic¸˜ao sobre o controlador pode fornecer
informac¸˜oes importantes para a melhoria do controle utilizado, bem como para o projeto de um
novo controlador.
100
Refer
ˆ
encias Bibliogr
´
aficas
[1] BEKEY, G. A. Autonomous Robots: From Biological Inspiration to Implementation and
Control. [S.l.]: The MIT Press, 2005.
[2] PIO, J. L. de S.; OLIVEIRA, C. J. S. Vis
˜
ao Omnidirecional. maio 2004.
Www.npdi.dcc.ufmg.br/workshop/wti2004/apresentacoes/a084-pio.pdf. V Workshop em
Tratamento de Imagens.
[3] CAO, Y. U.; FUKUNAGA, A. S.; KAHNG, A. B. Cooperative mobile robotics: Antece-
dents and directions. Autonomous Robots, v. 4, p. 7–27, 1997.
[4] SQUYRES, S. Spirit, Opportunity and the Exploration of the Red Planet. [S.l.]: Scribe
Publications, 2005.
[5] ARAI, T.; PAGELLO, E.; PARKER, L. E. Guest editorial - advances in multirobotsystems.
IEEE Transactions on Robotics and Automation, v. 18, n. 5, Outubro 2002.
[6] WOOLDRIDGE, M. An Introduction to MultiAgent Systems. [S.l.]: John Wiley & Sons,
LTD, 2002.
[7] FUKUDA, T.; NAKAGAWA, S. A dynamically reconficurable robotic system (concept of
a system and optimal configurations). In: IECON. [S.l.: s.n.], 1987. p. 588–595.
[8] BENI, G. The concept of cellular robot. In: IEEE Symposium on Intelligent Control. [S.l.:
s.n.], 1988. p. 57–61.
[9] PREMVUTI, S.; YUTA, S. Consideration on the cooperation of multiple autonomous mo-
bile robots. In: IEEE/RSJ IROS. [S.l.: s.n.], 1990. p. 212–219.
[10] ARAI, T.; OGATA, H.; SUZUKI, T. Collision avoidance among multiple robots using
virtual impedance. In: IEEE/RSJ IROS. [S.l.: s.n.], 1989.
[11] WANG, P. K. C. Navigation strategies for multiple autonomous mobile robots. In:
IEEE/RSJ IROS. [S.l.: s.n.], 1989. p. 486–493.
[12] ASAMA, H.; MATSUMOTO, A.; ISHIDA, Y. Design of an autonomous and distributed
robot system: Actress. In: IEEE/RSJ IROS. Tsukuba, Japan: [s.n.], 1989. p. 283–290.
[13] BALCH, T.; PARKER, L. E. Robot Teams: from Polymorphism to Diversity. Natick, MA:
A. K. Peters 2002.
[14] SCHULTZ, A.; PARKER, L. E. Multi-Robot Systems: From Swarms to Intelligent Auto-
mata. Norwell, MA: Kluwer 2002.
[15] ASAMA, H. et al. Distributed Autonomous Robotic Systems 6. NewYork: Springer-Verlab
1998.
Refer
ˆ
encias Bibliogr
´
aficas 101
[16] LEUTH, T. Distributed Autonomous Robotic Systems 3. New York: Springer-Verlab 1998.
[17] PARKER, L. E.; BEKEY, G.; BARHEN, J. Distributed Autonomous Robotic Systems 4.
New York: Springer-Verlab 2002.
[18] AUTONOMOUS Robots, v. 4, n. 1.
[19] AUTONOMOUS Robots, v. 8, n. 3.
[20] PARKER, L. E. Current research in multirobot systems. Artif Life Robotics, 2003.
[21] ARKIN, R. C. Integrating behavioral, perceptual and world knowledge in reactive naviga-
tion. Robotic Autonomous Systems, v. 6, p. 105–122, 1990.
[22] BROOKS, R. A. A robust layered control system for a mobile robot. IEEE J. Robotics
Automat., RA-2(1), p. 14–23, marc¸o 1986.
[23] VASSALLO, R. F. Uso de Mapeamentos Visuomotores com Imagens Omnidirecionais
para Aprendizagem por Imitac¸
˜
ao em Rob
´
otica. Tese (Doutorado) Universidade Federal
do Esp´ırito Santo, setembro 2004.
[24] MATARIC, M. Interaction and Intelligent Behaviour. Tese (Doutorado) — MIT, 1994.
[25] LEWIS, M. A.; TAN, K.-H. High precision formation control of mobile robots using
virtual structures. Autonomous Robots, v. 4, p. 387–403, 1997.
[26] DAS, A. K. et al. A vision-based formation control framework. IEEE Trans. Robot. Auto-
mat., v. 18, n. 5, p. 813–825, 2002.
[27] FEDDEMA, J. T.; LEWIS, C.; SCHOENWALD, D. A. Decentralized control of coopera-
tive robotic vehicles: Theory and application. IEEE Trans. Robot. Automat., v. 18, n. 5, p.
852–864, 2002.
[28] VIDAL, R.; SHAKERNIA, O.; SASTRY, S. Following the flock. IEEE Robotics & Auto-
mation Magazine, p. 14–20, 2004.
[29] BURGARD, W. et al. Collaborative multi-robot exploration. In: ICRA. San Francisco,
CA: [s.n.], 2000. p. 476–481.
[30] JUNG, B.; SUKHATME, G. S. Cooperative tracking using mobile robots and
environment-embedded, networked sensors. In: IEEE International Symposium on Compu-
tational Intelligence in Robotics and Automation. Alberta, Canad´a: [s.n.], 2001. p. 206–211.
[31] DESAI, J. P.; OSTROWSKI, J. P.; KUMAR, V. Modeling and control of formations of
nonholonomic mobile robots. IEEE Trans. Robot. Automat., v. 17, n. 6, p. 905–908, 2001.
[32] BALCH, T.; ARKIN, R. C. Behavior-based formation control for multi-robot teams. IEEE
Trans. Robot. Automat., v. 14, p. 926–939, 1998.
[33] SANTOS-VICTOR, J. A.; CARELLI, R.; ZWAAN, S. V. Nonlinear visual control of
remote cellular robots. 10th Mediterranean Conference on Control and Automation, 2002.
[34] DE-LA-CRUZ, C.; CARELLI, R. Control centralizado de formaci´on usando una c´amara
omnidireccional. IV Jornadas Argentinas de Rob
´
otica, novembro 2006.
Refer
ˆ
encias Bibliogr
´
aficas 102
[35] CARELLI, R. et al. Estrategia de control estable de formaci´on para robots m´oviles. AA-
DECA 2006 - XX Congreso Argentino de Control Autom
´
atico, 2006.
[36] KELLY, R. et al. Control de una pandilla de robots m´oviles para el seguimiento de una
constelaci´on de puntos objetivo. VI Congreso Mexicano de Rob
´
otica, 2004.
[37] DE-LA-CRUZ, C. Control de Formaci
´
on de Robots M
´
oviles. Tese (Doutorado) — Facul-
tad de Ingenier´ıa de la Universidad Nacional de San Juan, San Juan, Argentina, novembro
2006.
[38] WEIMERSKIRCHAND, H. et al. Energy saving in flight formations. Nature, n. 413, p.
697–698, 2001.
[39] BROWN, R. G.; JENNINGS, J. S. A pusher/steerer model for strongly cooperative mobile
robot manipulation. In: IEEE/RSJ IROS. [S.l.: s.n.], 1995. p. 562–568.
[40] CHAIMOWICZ, L. et al. An architecture for tightly-coupled multi-robot cooperation. In:
ICRA 2001. [S.l.: s.n.].
[41] NAYAR, S. K. Omnidirectional vision. 8th International Symposium on Robotics Rese-
arch, 1997.
[42] BAKER, S.; NAYAR, S. K. A theory of single-viewpoint catadioptric image formation.
Int. Journal of Computer Vision, v. 35, n. 2, p. 1–22, 1999.
[43] PARKER, L. E. Alliance: An architecture for fault-tolerant, cooperative control of hetero-
geneous mobile robots. In: IROS 1994. [S.l.: s.n.].
[44] GUSTAFSON david A.; MATSON, E. Taxonomy of cooperative robotic systems. In:
IEEE International Conference on Systems, Man and Cybernetics. [S.l.: s.n.], 2003. v. 2,
p. 1141–1146.
[45] BARNES, D.; GRAY, J. Behaviour synthesis for co-operant mobile robot control. In: In-
ternational Conference on Control. [S.l.: s.n.], 1991. p. 1135–1140.
[46] VIDYASAGAR, M. Nonlinear Systems Analysis (Classics in Applied Mathematics). Se-
cond. [S.l.]: SIAM, 2002.
[47] SCHNEIDER, E. et al. Eye movement driven head-mounted camera: It looks where the
eyes look. In: IEEE International Conference on Systems, Man and Cybernetics. Hawaii:
[s.n.], 2005. v. 3, p. 2437 2442.
[48] KIM, S. I. et al. A fast center of pupil detection algorithm for vog-based eye movement
tracking. In: IEEE Engineering in Medicine and Biology 27th Annual Conference. Shanghai,
China: [s.n.], 2005. p. 3188–3191.
[49] SORIA, C. M. et al. Control de robots celulares en base a visi´on articial. In: Anais do VI
Simp
´
osio Brasileiro de Automac¸
˜
ao Inteligente - VI SBAI. [S.l.: s.n.], 2003.
[50] OPEN Source Computer Vision Library. At http://www.intel.com/technology/ compu-
ting/opencv/index.htm.
[51] VASSALLO, R. F. et al. Bird’s eye view remapping and path following based on omnidi-
rectional vision. XV CBA, 2004.
Refer
ˆ
encias Bibliogr
´
aficas 103
[52] PEREIRA, F. G. et al. Calibrac¸ ˜ao de sistemas catadi´optricos e detecc¸ ˜ao da pose de robˆos
m´oveis por segmentac¸ ˜ao de imagens omnidirecionais. VII SBAI, 2005.
[53] GONZALEZ, R. C.; WOODS, R. E. Digital Image Processing. [S.l.]: Prentice Hall, 2002.
[54] BRAGANC¸A, J. de O. Estrat
´
egias para Deslocamento de Cargas Atrav
´
es Cooperac¸
˜
ao
Rob
ˆ
os M
´
oveis a Rodas. Dissertac¸˜ao (Mestrado) — Universidade Federal do Esp´ırito Santo,
Vit´oria, ES, dezembro 2004.
[55] FISCHLER, M. A.; BOLLES, R. C. Random sample consensus: A paradigm for model
fitting with applications to image analysis and automated cartography. In: FOLEY, J. D.
(Ed.). Communications of the Association for Computing Machinery (CACM). [S.l.: s.n.],
1981. v. 24, n. 6, p. 381–395.
[56] INC., M. R. Http://www.mobilerobots.com/.
[57] TEXAS INSTRUMENTS. MSP430x1xx Family - User’s Guide. Dispon´ıvel em
http://www.ti.com.
[58] TEXAS INSTRUMENTS. MSP430x13x, MSP430x14x Mixed Signal Microcontroller.
Dispon´ıvel em http://www.ti.com.
[59] ZAMBON, E. Uma plataforma para desenvolvimento de robˆos de baixo custo com alta
capacidade computacional - irobot. Universidade Federal do Esp
´
ırito Santo, Abril 2004.
[60] S´a, F. B. de.Cooperac¸
˜
ao de Rob
ˆ
os Baseadaem Vis
˜
ao Omnidirecional.[S.l.], 2007.Projeto
de PIBIC 2005/2006.
[61] GAVA, C. C. et al. A nonlinear control applied to team formation based on omnidirectio-
nal vision. In: International Symposium on Industrial Eletronics - ISIE. Montr´eal, Canad´a:
[s.n.], 2006.
[62] GAVA, C. C. et al. Team formation based on nonlinear control techniques and omnidi-
rectional vision. In: First IFAC Workshop on Multivehicle Systems - MVS. Salvador, Brasil:
[s.n.], 2006.
[63] GAVA, C. C. et al. Nonlinear control techniques and omnidirectional vision for team
formation on cooperative robotics. In: IEEE International Conference on Robotics and
Automation- ICRA. Roma, It´alia: [s.n.], 2007.
[64] GAVA, C. C. et al. Controle de formac¸˜ao de uma equipe de robˆos baseado em t´ecnicas
n˜ao lineares e vis˜ao omnidirecional. In: VIII Simp
´
osio Brasileiro de Automac¸
˜
ao Inteligente -
SBAI. Florian´opolis, Brasil: [s.n.], 2007.
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