localização e navegação entre robôs móveis · resumo esta dissertação aborda os problemas...

122
Localização e Navegação entre Robôs Móveis Miguel Simas da Costa Couto Dissertação para a obtenção do Grau de Mestre em Engenharia Mecânica Júri Presidente: Prof. João Rogério Caldas Pinto Orientador: Prof. Carlos Baptista Cardeira Vogal: Prof. Mário António Ramalho Maio 2010

Upload: trinhdung

Post on 28-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Localização e Navegação entre Robôs Móveis

Miguel Simas da Costa Couto

Dissertação para a obtenção do Grau de Mestre em

Engenharia Mecânica

Júri

Presidente: Prof. João Rogério Caldas Pinto

Orientador: Prof. Carlos Baptista Cardeira

Vogal: Prof. Mário António Ramalho

Maio 2010

Page 2: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada
Page 3: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Ces politiques ont été inspirées à

tous ces gens par une idéologie qui

consiste à ne plus accorder de valeur

au savoir et qui mêle la volonté de

faire jouer à l’école en priorité

d’autres rôles que l’instruction et la

transmission du savoir, la croyance

imposée à des théories

pédagogiques délirantes, le mépris

des choses simples, le mépris des

apprentissages fondamentaux, le

refus des enseignements construits,

explicites et progressifs, le mépris

des connaissances de base couplé à

l’apprentissage imposé de contenus

fumeux et démesurément

ambitieux, la doctrine de l’élève "au

centre du système" et qui doit

"construire lui-même ses savoirs".

Laurent Lafforgue

Page 4: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada
Page 5: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Resumo

Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso

foi actualizada a arquitectura do robô, de modo a que fosse possível utilizar um sistema de localização local

com base em hodometria. Foi também desenvolvido um sistema de localização global com base em visão

para corrigir o sistema local, iGPS (indoor Global Positioning System [Christo et al. 2009]). Para identificar o

robô no espaço de cores Y CbCr utilizaram-se dois alvos e a distância estatística de Mahalanobis. Um filtro

de Kalman (FK) fez o seguimento de posição do robô. Estimaram-se os parâmetros intrínsecos da câmara

[Bouguet 2008]. A correcção da localização do robô foi efectuada por um FK, que combina a informação de

ambos os sistemas de localização. O robô e o iGPS foram integrados num arquitectura orientada a serviços

através do desenvolvimento da interface entre Matlab® e Web Services. Um controlador proporcional integral

e outro não linear com ganhos variantes no tempo foram apresentados como soluções do problema de nave-

gação. Definiram-se três trajectórias para obtenção de resultados de simulação, bem como experimentais,

de modo a validar os metodologias propostas. Resultados experimentais demonstraram que o sistema de

relocalização consegue de facto corrigir o erro de hodometria, enquanto não instabiliza navegação do robô.

De notar que a abordagem inicial era para ser entre robôs, contudo apenas se utilizou um robô móvel.

i

Page 6: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

ii

Page 7: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Abstract

This dissertation approaches the localization and navigation problems for a differential mobile robot. Thus, the

robot’s architecture was updated, so that it could use the local localization system based on odometry. It was

also developed a global localization system based on vision in order to correct the local localization system,

iGPS (indoor Global Positioning System [Christo et al. 2009]). To identify the robot in the Y CbCr color space

it was used two targets and the statistical Mahalanobis distance. A Kalman filter (KF) did robot’s position

tracking. Intrinsic camera parameters were obtained [Bouguet 2008]. Robot’s localization was corrected by a

Kalman filter (KF), which combines the information from both localization systems. Robot and iGPS were in-

tegrated in a service oriented architecture through the development of an interface between Matlab®and Web

Services. A proportional integral (PI) and a time-varying non linear controllers were presented as solutions to

the navigation problem. Three trajectories were defined for acquiring simulation and experimental results, in

order to validate the proposed methodologies. Experimental results shows that the relocaliztion system can

indeed correct the odometry error, while not destabilizing the robot’s navigation. Note that the initial approach

was to be between robots, nevertheless it was used only one mobile robot.

iii

Page 8: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

iv

Page 9: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Palavras-Chave

• Robôs Móveis

• Localização

• Navegação

• Fusão Sensorial

• Sistema iGPS

• Web Services

v

Page 10: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

vi

Page 11: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Keywords

• Mobile Robots

• Localization

• Navigation

• Sensor Fusion

• iGPS System

• Web Services

vii

Page 12: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

viii

Page 13: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Agradecimentos

Esta dissertação não seria a mesma sem a presença de algumas pessoas, que aqui se encontram para a

posterioridade.

Gostaria de agradecer ao meu orientador, Prof. Carlos Cardeira por ter lançado um tema tão interessante,

que por si só fez-me ter vontade de abraçar este projecto com muita vontade e dedicação. Também pelas

ideias, críticas e opiniões. Uma palavra para o Prof. Miguel Silva, que acompanhou esta dissertação durante

os seus primeiros seis meses e que muito contribuiu para o seu crescimento.

A todos os que estiveram presentes no ROBÓTICA2009; Carlos Cardeira, Miguel Silva, Camilo e Lucas.

Ao Jorge Buescu, Jacques Fresco e Peter Joseph por alargarem os meus horizontes.

Ao Corvo pelas noitadas de roda do microcontrolador; Paulo e Ana Rita pelo constante apoio; pessoal do

laboratório, cheers!

À Carolina e à Lu.

Aos meus pais, Maria e Luís, por acreditarem e por terem estado sempre do meu lado. Obrigado!

Vocês proporcionaram-me a maior e mais importante bolsa da minha vida. Agora venham outras!

Miguel Couto

ix

Page 14: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

x

Page 15: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Índice

Resumo i

Abstract iii

Palavras-Chave v

Keywords vii

Agradecimentos ix

Lista de Tabelas xv

Lista de Figuras xviii

Lista de Algoritmos xix

1 Introdução 1

1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Trabalho Relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Contribuições Significativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Estrutura da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Estado da Arte 5

2.1 Robôs Móveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Minerva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Stanley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.3 CAMBADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.4 Rasteirinho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Localização de Robôs Móveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.1 Filtros de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.2 Filtro de Partículas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.3 Ambientes Activos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Navegação de Robôs Móveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1 Planeamento de Caminhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

xi

Page 16: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

2.3.2 Planeamento de Trajectórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 Detecção e Seguimento de Objectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.1 Detecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.2 Seguimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5 Arquitecturas e Comunicação de Sistemas Robóticos . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5.1 Arquitecturas de Sistemas Robóticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.5.2 Comunicação entre Componentes duma Arquitectura . . . . . . . . . . . . . . . . . . . . 22

2.6 Sistemas em Tempo-Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.6.1 Plataformas de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3 Metodologias Propostas 27

3.1 Desenvolvimento do Robô Móvel Rasteirinho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.1 Arquitectura do Sistema de Computação do Robô . . . . . . . . . . . . . . . . . . . . . . 27

3.1.2 Estimação dos Parâmetros dos Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.3 Controlador Embebido no Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 Localização do Robô Rasteirinho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.1 Hodometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.2 Sistema iGPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.3 Localização Híbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3 Navegação dum Robô Móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3.1 Projecto de Trajectórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3.2 Controlador para Seguimento de Trajectórias . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.4 Comunicação entre Agentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.4.1 Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.4.2 Interface Agentes - Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4 Implementação e Resultados 45

4.1 Robô Móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.1 Estimação dos Parâmetros dos Actuadores . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.2 Controlador Embebido no Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2 Sistema iGPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.2.1 Identificação das Propriedades dos Alvos . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.2.2 Seguimento do Robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2.3 Calibração da Câmara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3 Localização e Navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4 Relocalização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.1 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.2 Ensaio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.4.3 Ensaio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

xii

Page 17: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

5 Conclusões e Trabalhos Futuros 65

5.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Referências 68

A Descrição do Robô Rasteirinho 79

A.1 Configuração da Porta Série do PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

A.2 Diagrama I/O do Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

A.3 Modelos dos Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

B Modelos Simulink 83

B.1 Robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

B.2 Sistema iGPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

C Robotica 2009 87

C.1 Detecção de Linha e Passadeira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

C.2 Reconhecimento do Estado do Semáforo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

C.3 Detecção e Desvio de Obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

C.4 Detecção e Seguimento na Zona de Obras e Túnel . . . . . . . . . . . . . . . . . . . . . . . . . . 88

C.5 Zona de Estacionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

D Microcontrolador 91

D.1 Aquisição de Dados através de PIC (linguagem C) . . . . . . . . . . . . . . . . . . . . . . . . . . 91

D.2 Controlador PI (linguagem C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

xiii

Page 18: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

xiv

Page 19: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Lista de Tabelas

2.1 Métodos determinísticos e estatísticos para seguimento de pontos . . . . . . . . . . . . . . . . . 19

4.1 Atrito estático e dinâmico de cada actuador do robô . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2 Ganhos do controlador PI implementado em Simulink® . . . . . . . . . . . . . . . . . . . . . . . 46

4.3 Parâmetros ts , tp e Mp da resposta dos motores (simulação) . . . . . . . . . . . . . . . . . . . . 47

4.4 Ganhos do controlador PI implementado no veículo . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.5 Parâmetros da resposta experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.6 Média e covariância dos canais de cor (Cb ,Cr ) dos dois alvos . . . . . . . . . . . . . . . . . . . . 49

4.7 Parâmetros do controlador utilizados nas três trajectórias . . . . . . . . . . . . . . . . . . . . . . 52

A.1 Configuração da porta COM do PC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

xv

Page 20: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

xvi

Page 21: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Lista de Figuras

2.1 Quatro robôs móveis desenvolvidos por universidades . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Algoritmo Bug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3 Representação do grafo generalizado de Voronoi . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4 Caminhos não-holonómicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5 Representação de objectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.6 Paradigma sentir-planear-actuar (SPA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.7 Arquitectura com base em comportamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.8 Ciclo acção-percepção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.9 Plataformas Xenomai e RTAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.10 Robô móvel CyCab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.11 Robô móvel Robchair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1 Arquitectura de computação do robô Rasteirinho . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Diagrama de blocos do anel de controlo implementado no microcontrolador . . . . . . . . . . . 30

3.3 Referenciais global (Ox y) e móvel (P xr yr ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4 Representação do Sistema iGPS e do robô móvel Rasteirinho com os respectivos alvos . . . . 33

3.5 Representação do modelo duma câmara tipo pinhole simplificado . . . . . . . . . . . . . . . . . 36

3.6 Erros de seguimento no referencial do robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.7 Diagrama representativo da relação Cliente/Serviço no contexto de Web Services . . . . . . . 43

3.8 Arquitectura de comunicação entre agentes: iGPS e robô Rasteirinho . . . . . . . . . . . . . . . 43

3.9 Representação da interface Agentes -Web Services . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.1 Resultados da identificação dos motores do robô . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2 Resposta dos dois motores e acção de controlo com controlador projectado (simulação) . . . . 47

4.3 Resposta dos motores do robô a referência de 5 rad/s . . . . . . . . . . . . . . . . . . . . . . . . 48

4.4 Caminho percorrido pelo robô com referência de 5 rad/s . . . . . . . . . . . . . . . . . . . . . . . 48

4.5 Média e distância de Mahalanobis de ambas as cores . . . . . . . . . . . . . . . . . . . . . . . . 49

4.6 Imagem adquirida pelo sistema iGPS com identificação dos dois alvos do robô . . . . . . . . . 49

4.7 Duas das vinte imagens que serviram para calibrar a câmara . . . . . . . . . . . . . . . . . . . . 50

4.8 Erro de projecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.9 Erros total, radial e tangencial da câmara, estimados experimentalmente . . . . . . . . . . . . . 51

xvii

Page 22: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

4.10 Correcção da orientação do robô. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.11 Resultados experimentais trajectória circular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.12 Resultados de simulação para trajectória circular . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.13 Resultados experimentais trajectória sinusoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.14 Resultados de simulação para sinusóide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.15 Resultados experimentais trajectória oito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.16 Resultados de simulação para oito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.17 Relocalização do robô: combinação da informação através de filtro de Kalman . . . . . . . . . . 61

4.18 Resultados experimentais trajectória oito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.19 Resultados experimentais trajectória oito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

A.1 Diagrama I/O do microcontrolador PIC 16F876A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

A.2 Diagrama de Bode dos modelos identificados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

A.3 Pólos da função de transferência dos motores DC. . . . . . . . . . . . . . . . . . . . . . . . . . . 81

B.1 Modelo Simulink® para seguimento de trajectórias (simulação). . . . . . . . . . . . . . . . . . . . 83

B.2 Modelo Simulink® para seguimento de trajectórias (experimental). . . . . . . . . . . . . . . . . . 84

B.3 Modelo Simulink® do sistema iGPS (experimental). . . . . . . . . . . . . . . . . . . . . . . . . . . 85

C.1 Zonas de interesse da imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

C.2 Filtro para reconhecer cores do semáforo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

C.3 Diagrama de blocos construído em Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

xviii

Page 23: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Lista de Algoritmos

3.1 Algoritmo embebido no microcontrolador para comunicação bidireccional . . . . . . . . . . . . . 28

3.2 Algoritmo embebido no microcontrolador para aquisição de dados . . . . . . . . . . . . . . . . . . 29

3.3 Algoritmo embebido no microcontrolador para controlo do robô . . . . . . . . . . . . . . . . . . . . 30

3.4 Algoritmo de visão para detecção de alvos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.5 Algoritmo de relocalização do robô com filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . 38

4.1 Algoritmo para corrigir orientação do robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

xix

Page 24: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

xx

Page 25: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Notação

A seguinte notação é utilizada ao longo desta dissertação.

Acrónimos

ARX - Autoregressive Exogenous

CAMBADA - Cooperative Autonomous Mobile Robots with Advanced Distributed Architecture

CMOS - Complementary Metal-Oxide-Semiconductor

COM - Component Object Model

DC - Direct Current

EKF - Extended Kalman Filter

EST - Expansive-Spaces Tree

FIR - Finite Impluse Response

FK - Filtro de Kalman

GPS - Global Positioning System

HTTP - HyperText Transfer Protocol

iGPS - indoor Global Positioning System

IMU - Inertial Measurement System

ICD - In-Circuit Debugger

IST - Instituto Superior Técnico

LCAR - Laboratório de Controlo e Automação

MLS - Medium Size League

NASA - National Aeronautics and Space Administration

OLE - Object Linking and Embedding

xxi

Page 26: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

PI - Proporcional Integral

PIC - Programmable Intelligent Computer

PRM - Probabilistic Roadmaps

PWM - Pulse-Width Modulation

RPROP - Resilient backPROPagation

RRT - Rapidly-exploring Random Tree

RTAI - Real Time Application Interface

SIFT - Scale Invariant Feature Transform

SOA - Service Oriented Architecture

SOAP - Simple Object Access Protocol

WSDL - Web Service Description Language

WTEC - World Technology Evaluation Center

UDDI - Universal Description, Discovery and integration

WS - Web Services

XML - eXtensible Markup Language

xxii

Page 27: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Capítulo 1

Introdução

1.1 Motivação

Robótica móvel pode ser considerada uma área de muito interesse, onde há uma grande vontade por parte

da comunidade científica de evoluir o seu estado da arte. Por outro lado, o seu carácter interdisciplinar e

respectiva complexidade dos problemas existentes, faz com que dependa da evolução, tanto de ferramentas

matemáticas, como de sensores e actuadores ou dos próprios materiais, o que dificulta o seu avanço.

Os robôs móveis têm capacidades únicas para realizar tarefas que podem ser automatizadas, libertando

o ser humano para outras actividades mais criativas. Existem diversas tarefas hoje-em-dia já automatizadas,

como por exemplo, mapeamento e monitorização da vasta superfície coberta pelos oceanos, agricultura em

larga escala, monitorização do ambiente e indústria. Por outro, existem tarefas que são mesmo impossíveis

de realizar por seres humanos, como por exemplo, exploração e mapeamento de locais contaminados por

resíduos nucleares ou biológicos, de forma a avaliar os estragos, e a exploração espacial a corpos celestes

distantes. Existem outros campos de aplicação como, assistência pessoal, reabilitação e entretenimento.

Para este tipo de aplicações ser possível, os robôs têm de estar equipados com diversos tipos de sen-

sores, de forma a terem uma percepção do ambiente ao seu redor (e.g., sensores de força, sensores inerciais,

GPS, hodometria, sensores de distância ou visão). A sua movimentação pode ser feita quer por rodas ou

lagartas para robôs terrestres, quer por hélices ou asas para robôs aéreos, e finalmente, quer por superfícies

de controlo ou hélices para robôs aquáticos.

Quer seja na terra, no ar ou na água, dois problemas fundamentais coexistem: localização e navegação.

Estes são dois problemas cruciais para um sistema robótico poder interagir com o mundo físico de uma

forma correcta. Esta dissertação propõe a aplicação diversos métodos de modo a resolver o problema de

localização e navegação do robô móvel diferencial, Rasteirinho, num recinto fechado. Também é apresentada

a integração do robô e do sistema iGPS (indoor Global Positioning System) numa arquitectura SOA (Service

Oriented Architecture) através de WS (Web Services ).

1

Page 28: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

1.2 Trabalho Relacionado

Esta dissertação foi influenciada pela contribuição de diversas publicações científicas (artigos, dissertações,

livros, relatórios técnicos, etc), que revelaram ser uma mais-valia para o seu desenvolvimento. Nesta secção

é feita uma selecção dos trabalhos mais relevantes, assim como uma breve descrição.

De acordo com Borenstein, Everett, Feng & Wehe [1997] não existe uma solução verdadeiramente ele-

gante para o problema de localização de um robô móvel. Este problema encontra-se directamente associado

ao tipo de sensores utilizados, que podem ser agrupados de acordo com o tipo de medição: relativa e abso-

luta. A hodometria é o método relativo mais utilizado por ser simples e eficaz; porém com o tempo acumula

erros que são impossíveis de rectificar por si só. Assim, Christo et al. [2009] propõem um sistema de local-

ização absoluto, com base em visão (sistema iGPS), capaz de corrigir o sistema de localização relativo, de

modo a relocalizar o robô. Este propõe um método robusto para fazer a identificação com base na distância

de Mahalanobis.

Segundo uma pesquisa elaborada por Yilmaz, Javed & Shah [2006], existem diversas formas para car-

acterizar um objecto numa imagem (e.g., fluxo óptico, cantos, textura), sendo que a mais utilizada é a cor.

Para identificar as características da pele através da cor, Phung, Bouzerdoum & Chai [2002] utilizaram um

conjunto de imagens com amostras de pele para estimar os padrões da cor, necessários para determinar a

distância de Mahalanobis (média e covariância do espaço Y CbCr ).

O seguimento de referências é um campo com diversas aplicações, como análise do movimento humano

para diagnósticos médicos, terapia médica ou desporto, sistemas de vigilância, análise de meteorologia,

deformação de objectos, monitorização de tráfego, etc. Muitas aplicações possíveis necessitam de fazer o

seguimento de diversos objectos simultaneamente e envolvem problemas complexos como a oclusão. O

filtro de Kalman (FK) é o estimador de estados mais utilizado para fazer seguimento de referências. Pinho,

Manuel, Tavares & Correia [2007] utilizam um FK para fazer o seguimento de pessoas, bem como métodos

de correspondência e de optimização para melhorar o desempenho computacional.

A integração de novos agentes (e.g., robôs móveis, sistema iGPS) num ambiente interdisciplinar pode

ser uma tarefa árdua. Desta forma, Christo & Cardeira [2007b] propõem uma arquitectura SOA com base em

Web Services (WS). No artigo [Christo et al. 2009] é expandida a arquitectura para diversos sistemas iGPS.

Para a navegação dum robô móvel é necessário um controlador que seja capaz de fazer o seguimento

de trajectórias ou simplesmente fazer a estabilização em torno duma postura desejada. Três estratégias de

controlo foram testadas experimentalmente por De Luca, Oriolo & Vendittelli [2001] num robô móvel diferen-

cial, apenas com base na sua cinemática. Geralmente estes robôs têm constrangimentos não-holonómicos,

i.e., limitações de movimento devido ao seu modelo cinemático. No caso de robôs móveis diferenciais, a

limitação encontra-se na velocidade nula do robô na direcção perpendicular ao seu movimento.

2

Page 29: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

1.3 Contribuições Significativas

Com o objectivo de fazer a localização do robô móvel diferencial, Rasteirinho, e sua respectiva navegação

num recinto fechado, foram realizadas diversas tarefas dignas de registo. No que respeita ao desenvolvi-

mento do robô móvel,

1. Actualização da arquitectura de computação do robô com protocolo de comunicação bidirectional. Este

protocolo permite fechar o anel entre os dois sensores (encoders) e os dois actuadores (motores DC);

2. Utilização do microcontrolador como placa de aquisição de dados para identificar modelos dinâmicos

dos motores;

3. Projecto de controladores a partir dos modelos identificados;

4. Implementação dum controlador proporcional integral (PI) no microcontrolador, de modo a atenuar os

efeitos da dinâmica do robô;

5. Implementação de controlador não linear, com acção de controlo variante no tempo, para seguimento

de trajectórias;

6. Integração do robô na arquitectura SOA.

No que diz respeito ao sistema iGPS,

1. Identificação e aplicação da distância de Mahalanobis para identificar robô, na presença de ruído do

sensor de visão e condições de iluminação não ideais;

2. Conversão das distâncias em píxeis para o sistema métrico através da calibração da câmara, funda-

mental para robô poder comparar as medições dos dois sistemas de localização;

3. Aplicação de filtro de Kalman para seguimento do robô;

4. Integração do sistema iGPS na arquitectura SOA.

A correcção da posição do robô é feita pela combinação da informação proveniente, tanto do robô como

do sistema iGPS, através dum filtro de Kalman. Para possibilitar a comunicação de ambos os agentes no

ambiente foi implementada uma interface entre o Matlab® e os WS. Este passo foi decisivo para a integração

do robô e do iGPS na arquitectura orientada a serviços (SOA) Christo et al. [2009].

Finalmente, é de destacar a participação na competição ROBÓTICA2009, categoria de Condução Autónoma,

juntamente com Lucas [2009]. Como o próprio nome indica é uma prova complexa, onde é imperativo al-

guma experiência para se conseguir uma boa classificação. Apesar do resultado de meia tabela (sexto lugar),

foram implementados novos algoritmos e novas metodologias para abordar o problema, fazendo com que no

seu melhor desempenho, o robô conseguisse percorrer a pista desviando-se de obstáculos com o auxílio

de sensores infravermelhos. De notar que a abordagem inicial era para ser entre robôs, contudo apenas se

utilizou um robô móvel.

3

Page 30: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

1.4 Estrutura da Dissertação

Este documento encontra-se dividido em duas partes principais; uma primeira, onde é descrito todo o tra-

balho de pesquisa bibliográfica; e uma segunda, onde os métodos são descritos e aplicados. Assim, segue-

se uma breve passagem por todos os capítulos.

Capítulo 2. É feita uma descrição do estado da arte na localização e navegação de robôs móveis, bem como

do seguimento de objectos, arquitecturas de sistemas robóticos e sistemas em tempo-real.

Capítulo 3. São propostas metodologias para a resolução dos problemas de localização e navegação, e

respectiva integração dos agentes na arquitectura SOA.

Capítulo 4. São apresentados alguns pormenores importantes de implementação dos métodos propostos,

e principalmente, os resultados de simulação e experimentais obtidos.

Capítulo 5. São apresentadas as conclusões e sugestões para trabalhos futuros.

Por fim, encontram-se em anexo alguns detalhes que completam esta dissertação.

Anexo A. Descrição do Robô Rasteirinho.

Anexo B. Modelos Simulink®.

Anexo C. Robótica 2009.

Anexo D. Microcontrolador.

4

Page 31: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Capítulo 2

Estado da Arte

Neste capítulo é apresentado o estado da arte no que diz respeito às principais áreas científicas abor-

dadas neste trabalho. A primeira secção descreve alguns robôs móveis recentemente desenvolvidos por

diversas universidades para aplicações, tanto no domínio da prestação de serviços como no domínio das

competições.Na secção 2.2 é discutido o problema de localização de robôs móveis. Na secção 2.3 são abor-

dados os problemas de planeamento de caminhos, assim como o de geração de trajectórias e respectivo

controlo que possibilitam a navegação de robôs móveis. Na secção 2.4 são descritos algoritmos de detecção

e seguimento de objectos. Na secção 2.5 são apresentadas diversas arquitecturas e protocolos utilizados

em sistemas robóticos. Por último, uma breve discussão de sistemas em tempo-real é feita na secção 2.6.

2.1 Robôs Móveis

Em 2006 um painel de especialistas convidados pela WTEC, elaborou uma avaliação sobre a investigação

e desenvolvimento no campo da robótica [Bekey, Ambrose, Kumar, Sanderson, Wilcox & Zheng 2006]. Este

painel concluiu que, actualmente esta área do conhecimento encontra-se muito activa em todo o mundo,

sendo que a evolução tecnológica dos veículos robóticos aponta para que estes sejam cada vez mais

autónomos. Deste modo, de seguida serão descritos alguns dos projectos já desenvolvidos por algumas

universidades.

2.1.1 Minerva

As universidades de Carnegie Mellon, Pitsburgh e Bohn desenvolveram em conjunto um veículo descrito em

[Thrun et al. 1999] de nome Minerva, que teve como objectivo servir de guia turístico no Museu Nacional

da História Americana. É completamente autónomo e opera em ambientes dinâmicos e povoados, devido

a métodos probabilísticos aliados aos diversos sensores com que se encontra equipado: encoders, feixes

laser, visão esteroscópica e uma câmara apontada para o tecto.

5

Page 32: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

(a) Robô Minerva [Thrun et al. 1999]. (b) Robô Stanley [Thrun et al. 2006].

(c) Equipa de futebol robótico CAMBADA [Azevedo et al. 2009]. (d) Robô Rasteirinho [Lucas 2009].

Figura 2.1: Quatro robôs móveis desenvolvidos por universidades.

2.1.2 Stanley

O robô Stanley, descrito em [Thrun et al. 2006], foi desenvolvido por uma equipa de investigadores de em-

presas como a Intel ou a Volkswagen sob liderança da Universidade de Stanford, com o objectivo de avançar

o estado da arte na área da condução autónoma. O robô tem como base um Volkswagen Touareg R5TDI

(2004) com uma plataforma de computação constituída por seis processadores e um conjunto de actuadores

e sensores. O objectivo deste projecto foi o de construir um sistema extremamente seguro e com boa pre-

cisão, capaz de conduzir a velocidades relativamente elevadas num ambiente todo-o-terreno, diversificado

e não estruturado. Estes requisitos levaram a novos avanços no campo da navegação autónoma; métodos

foram desenvolvidos e os já existentes foram extendidos nas áreas de percepção de longo alcance do ter-

reno, evitar colisões em tempo real e controlo do veículo em terreno escorregadio e acidentado. De notar

que este veículo venceu a competição DARPA Grand Challenge 2005, que resumidamente consistiu em per-

correr cerca de 280 km no deserto em menos de 10 horas, estando o percurso definido por um corredor em

coordenadas GPS.

6

Page 33: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

2.1.3 CAMBADA

A equipa CAMBADA, descrita em [Azevedo et al. 2009], formada por investigadores e alunos de mestrado

da Universidade de Aveiro, desenvolveu um conjunto de robôs holonómicos para participar em torneios de

futebol robótico nacionais e internacionais na categoria MSL. Já ganharam diversas competições, tendo a

sua consagração mais importante ocorrido na edição de 2008 da ROBOCUP, em que se sagraram campeões

mundiais. Esta equipa está constantemente a evoluir o estado da arte na coordenação e controlo de alto nível

dos agentes, integração e partilha de informação, bem como da localização dos seus agentes no terreno de

jogo; feita sem o auxílio de sensores externos aos robôs.

2.1.4 Rasteirinho

Carvalho [2008] utilizou na sua dissertação de mestrado um veículo de nome Rasteirinho com o objectivo de

aplicar algoritmos para a manutenção de formação com base nas técnicas de visual servoing IBVS e PBVS.

O mesmo veículo foi utilizado na dissertação de Lucas [2009] para a construção de mapas e respectiva

localização com base em mosaicos visuais. Este é um veículo do tipo uniciclo, apresentado por Cardeira &

Sá da Costa [2005], que tem vindo a servir de apoio a algumas disciplinas na área de controlo de sistemas

do IST, e que já conta com diversas participações bem-sucedidas no festival nacional de robótica.

De seguida é apresentado o problema de localização de robôs móveis, assim como diversas soluções

existentes na literatura.

2.2 Localização de Robôs Móveis

Segundo Thrun et al. [2000] a literatura distingue três tipos de problemas de localização, em ordem cres-

cente de dificuldade:

Seguimento de posição. Neste problema a postura do robô é conhecida, logo apenas é necessário com-

pensar pequenos erros de hodometria à medida que o robô se desloca. Tipicamente a incerteza no

seguimento da posição é limitada fazendo com que estimadores de estado unimodais sejam aplicáveis.

Localização global. Quando a postura inicial é desconhecida então o robô, para se localizar do nada, tem

de ser capaz de lidar com ambiguidades e hipóteses múltiplas durante o processo de localização.

Rapto de robô. Esta é uma variante do problema de localização global em que um robô bem localizado

é repentinamente deslocado para localização aleatória - rapto. É um problema mais difícil que o an-

terior visto que o robô pode acreditar, falsamente, que ainda se encontra no local anterior ao rapto.

Este problema simula falhas catastróficas do sistema de localização e testa a habilidade do robô para

recuperar destas falhas.

Cox [1991] refere que a interpretação da informação sensorial para localizar um robô no seu ambiente

é a principal questão para dotar um robô móvel com capacidades autónomas. A verdade é que não existe

uma solução verdadeiramente elegante para este problema segundo Borenstein et al. [1997]. De acordo

com estes autores, a localização pode ser feita com base em dois tipos de medições: medições relativas

7

Page 34: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

e absolutas. Os sensores responsáveis por efectuar medições relativas (e.g. encoders, giroscópios, acel-

erómetros) têm uma boa precisão a curto prazo e um custo baixo, porém o método subjacente ao cálculo

da posição baseia-se na integração ao longo do tempo do movimento do robô, que inevitavelmente, leva à

acumulação ilimitada de erros de orientação e de posição. Por outro lado, os sensores responsáveis por

efectuar medições absolutas (e.g. bússola magnética, ultra-sons, GPS) permitem estimar a posição global

com um erro limitado, embora em determinadas condições possam ter erros de precisão consideráveis, [e.g.

Byrne, Klarer & Pletta 1992, Byrne 1993]. Deste modo, Borenstein et al. [1997] concluem que, de acordo

com as características do meio envolvente, a localização de robôs móveis deve ser feita por intermédio de

sensores relativos e absolutos em conjunto, e que o tempo de amostragem dos sensores relativos deve ser

superior ao tempo de amostragem dos sensores absolutos para que haja uma correcção na localização local

por parte do sistema de localização global.

2.2.1 Filtros de Bayes

A necessidade de recorrer a mais do que um sensor para determinar a localização de um robô levanta uma

nova questão - como integrar a informação do conjunto de modo a que seja uma mais valia para a resolu-

ção do problema? Este não é um exercício trivial e portanto são necessários mecanismos complexos, que

actualmente se baseiam em descrições probabilísticas das medições e dos processos, e consequentemente

na regra de Bayes (equação 2.1) para conjugar a informação proveniente dos sensores [Durrant-Whyte &

Henderson 2008]. Um filtro de Bayes estima de modo probabilístico o estado de um sistema dinâmico através

de observações contaminadas com ruído. A incerteza sobre a localização de um robô é representada pela

crença Bel(xt ), que é uma distribuição probabilística sobre o estado xt (equação 2.2). De um modo geral, a

crença responde à questão, "Qual é a probabilidade de um robô estar no local x, se a história das medições

dos sensores é z1, z2, . . . , zt ?" para todos os locais possíveis x. Esta abordagem faz com que a complexidade

do cálculo das densidades posteriores cresça exponencialmente, pois a quantidade de informação sensorial

disponível aumenta ao longo do tempo. Para resolver este problema os filtros de Bayes consideram que o

modelo dinâmico é Markoviano, i.e., a variável de estado actual xt possui toda a informação relevante.

P (x | z) =P (z | x)P (x)

P (z)(2.1)

Bel(xt ) = p(xt | z1, z2, . . . , zt ) (2.2)

Deste modo, os filtros de Bayes representam um conceito abstrato, na medida em que apenas providenciam

uma plataforma probabilística para a estimação recursiva dum estado. A sua implementação apenas é

possível especificando os modelos perceptual, p(zt | xt ) e dinâmico, p(xt | xt−1), assim como a forma de

representar a crença numa determinada localização (estado), Bel(xt ).

Segundo Fox et al. [2003] as diferentes implementações existentes diferem principalmente na forma

como é representada a função densidade de probabilidade sobre o estado xt . Por exemplo, o filtro de

Kalman [1960] é a variante do filtro de Bayes mais utilizada, em que a aproximação da crença é determinada

pelo seu primeiro e segundo momento, ou seja, uma curva Gaussiana unimodal. Os filtros de Kalman são

estimadores óptimos nas condições de a incerteza inicial ser Gaussiana e de o modelo das observações

8

Page 35: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

e da dinâmica do sistema serem funções lineares do estado. Mas por a maioria dos sistemas não ser

estritamente linear, é frequente a utilização do filtro de Kalman extendido (EKF), que é responsável por

linearizar o sistema através de expansões de primeira ordem da série de Taylor. Este filtro foi utilizado pela

primeira vez para demonstrar que era possível combinar as medições ópticas das estrelas e os dados do

movimento da nave espacial Apollo para que esta fosse colocada em órbita da Lua [McGee & Schmidt 1985].

Hoje em dia são diversas as aplicações deste filtro na localização de robôs móveis [e.g. Barshan & Durrant-

Whyte 1995, Bonnifait 1996, Roumeliotis & Bekey 1997, Sukkarieh, Nebot & Durrant-Whyte 1999, Panzieri,

Pascucci & Uliv 2001, Sousa, Costa, Moreira & Carvalho 2005].

Uma forma de ultrapassar a limitação devida à representação da distribuição unimodal por parte do filtro

de Kalman é através da utilização de um método de seguimento multi-hipotético (MHT). Este método combina

um conjunto de Gaussianas para formar a crença, equação 2.3.

Bel(xt ) =∑

i

w (i)t N (xt ;µ(i)

t ,σ(i)t ) (2.3)

Cada filtro de Kalman é utilizado para fazer o seguimento de cada hipótese, sendo que o seu peso associado,

w (i)t , é determinado com base na qualidade da reprodução das medições previstas pelas respectivas hipóte-

ses. Este filtro necessita de heurísticas sofisticadas para resolver o problema de associação de informação

e decidir quando adicionar ou descartar uma hipótese [e.g. Cox 1993, Cox & Hingorani 1996].

Cox [1991] fez a correspondência entre os dados provenientes de um sensor de distância óptico e o mapa

construído previamente do espaço interior para corrigir a localização estimada pela integração do movimento

do robô (hodometria). Por outro lado, é possível utilizar referências visuais conhecidas a priori para resolver

o problema da localização global [e.g. Atiya & Hager 1993, Bouguet & Perona 1995]. Jin, Lee & Tso [2004]

propõem a fusão de informação visual no espaço e no tempo com apenas uma câmara. Assim conseguem

estimar a localização do robô, como se este possuísse visão estereoscópica, com apenas o conhecimento

da distância percorrida pelo robô entre duas imagens consecutivas.

A utilização de mapas para representação do ambiente é muito comum, o que faz com que hajam alguns

métodos de localização que tenham em conta o tipo de mapa utilizado. Fox et al. [2003] apresenta duas

abordagens:

Com base em grelhas. São capazes de superar as desvantagens da utilização de filtros de Kalman, através

da representação de crenças discretas em secções constantes. As equações de actualização de abor-

dagens discretas são idênticas às actualizações do filtro de Bayes, mas com a substituição do integral

por um somatório. Para estimar a localização dum robô móvel em espaços interiores, estes filtros

dividem o ambiente em pequenos elementos, com tamanhos típicos entre 10 cm e 1 m, e cada um

contém a crença de que o alvo se encontra nele. Uma das vantagens principais deste tipo de aborda-

gens é que conseguem representar distribuições arbitrárias ao longo do espaço de estados discreto.

A comunidade científica de localização de robôs móveis demonstrou que aproximações métricas pro-

videnciam estimações da posição precisas ao mesmo tempo que oferecem boa robustez ao ruído dos

sensores. Como desvantagem, a complexidade computacional e espacial necessária para manter a

grelha de posição em memória e para fazer a sua actualização para cada nova observação aumenta

9

Page 36: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

exponencialmente com o número de dimensões, fazendo com que apenas seja possível de aplicar a

problemas de estimação com baixa dimensão.

Topológica. É possível evitar a complexidade computacional dos métodos vistos anteriormente utilizando

representações não-métricas do ambiente. Por exemplo, em muitos ambientes interiores é possível

representar de um modo simbólico (e.g. quarto, corredor, etc) a localização de um robô. Tal repre-

sentação resulta na implementação topológica do filtro de Bayes, onde o ambiente é representado por

um grafo. Cada nó do grafo corresponde a um local e cada aresta a uma ligação, que tipicamente é

um corredor. O modelo dinâmico que descreve a zona de circulação dum robô, p(xt | xt−1), pode ser

treinado para representar padrões típicos da sua dinâmica. A vantagem destes métodos reside na sua

eficiência, porque representam distribuições em espaço de estados reduzidos e discretos. Por outro

lado, é uma representação um pouco vaga, pois apenas contém informação aproximada da localização

do robô e por isso tipicamente é adequada a utilização de sensores de localização com pouca precisão.

2.2.2 Filtro de Partículas

Um filtro de partículas representa a crença por intermédio dum conjunto de amostras, ou partículas,

Bel(xt ) ≈

⟨x(i)t , w (i)

t ⟩ | i = 1, · · · ,n

Nesta equação cada x(i)t é um estado e w (i)

t são pesos não-negativos chamados de factores de importância

em que a sua soma é igual a 1. Os filtros de partículas realizam as actualizações do filtro de Bayes de acordo

com um procedimento de amostragem. A principal vantagem é a sua capacidade para representar densi-

dades de probabilidades arbitrárias. Para além disso, ao contrário do filtro de Kalman, podem convergir para

um posterior verdadeiro, mesmo para sistemas dinâmicos não Gaussianos e não lineares. Comparando o

filtro de partículas com abordagens com base em grelhas, são muito eficientes, porque automaticamente con-

centram os seus recursos (partículas) em regiões do espaço de estados com grande probabilidade. Porque

a eficiência do filtro de partículas depende fortemente do número de amostras utilizadas a serem filtradas,

alguns melhoramentos foram feitos na utilização das amostras disponíveis, surgindo assim o algoritmo de

Monte Carlo [Fox, Burgard, Dellaert & Thrun 1999]. Este algoritmo é actualmente a melhor solução para o

problema mais complexo de localização (rapto do robô), sendo por isso utilizado em diversas aplicações [.

Thrun et al. 1999, Baggio & Langendoen 2006, Santos 2008, Kümmerle, Triebel, Pfaff & Burgard 2008]

2.2.3 Ambientes Activos

O conceito de ambiente activo pode ser definido como um espaço de trabalho onde se encontra presente

um conjunto de sensores. Este tipo de ambiente é muito útil para o problema de localização global de robôs

móveis. Hada & Takase [2001] utilizaram uma câmara estática para detectar a radiação infravermelha emitida

por díodos montados nos robôs. Este sistema, de nome iGPS, detecta a posição global do robô no ambiente,

que depois é corrigida pelos encoders, devido ao atraso existente no processamento e envio da posição para

o robô. [Fernández, Mazo, Lázaro, Pizarro, Santiso, Martín & Losada 2007] extende o trabalho anterior

10

Page 37: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

utilizando um maior número de câmaras, determinando assim a posição tridimensional (X ,Y , Z ) bem como

a orientação (θx ,θy ,θz ). [Christo et al. 2009] propõem também um sistema de localização global em que

cada robô é identificado por um sistema de visão. Os autores sugerem dois métodos para identificar o robô -

distância de Mahalanobis [Mahalanobis 1936] para caracterizar a cor dos alvos do robô ou identificação das

características invariantes do robô através do algoritmo SIFT [Lowe 2004]. Por outro lado, Ocana, Bergasa,

Sotelo, Nuevo & Flores [2005] apresentam um sistema de localização com base na magnitude do sinal WiFi

com sete pontos de acesso distribuídos pelo espaço de trabalho.

2.3 Navegação de Robôs Móveis

Um robô móvel com recursos suficientes para se localizar necessita de conseguir deslocar-se de uma con-

figuração inicial até a um ponto de destino. Para isso necessita de resolver dois problemas: decidir qual o

caminho a seguir evitando obstáculos, e quais as velocidades que o permitem percorrer. Estes problemas

podem se encontrar sujeitos a constrangimentos do tipo: minimização do tempo ou energia ao longo do

percurso.

2.3.1 Planeamento de Caminhos

Os algoritmos Bug1 e Bug2 são dois planeadores capazes de comandar um robô móvel com dois graus

de liberdade num ambiente completamente desconhecido utilizando sensores, Figura 2.2. Assumem que o

robô é um ponto operacional no plano munido de um sensor de contacto para detectar obstáculos [Lumelsky

& Stepanov 1987]. Quando o robô se encontra equipado com um sensor de distância, então pode ser

utilizado o algoritmo Bug Tangente [Kamon, Rimon & Rivlin 1998]. Estes algoritmos têm a particularidade de

percorrerem o espaço livre sem construir o espaço de configuração, possuindo desta forma a limitação de

apenas poderem ser utilizados em espaços de configuração bidimensionais. Para ultrapassar esta limitação

Figura 2.2: Algoritmo Bug1 [Lumelsky & Stepanov 1987].

e porque é difícil representar o espaço de configurações explicitamente, uma alternativa é utilizar algoritmos

de procura, que de forma incremental exploram o espaço livre enquanto procuram por um caminho. Por

11

Page 38: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

exemplo, uma função potencial direcciona um robô como se fosse uma partícula deslocando-se num campo

vectorial gradiente. A combinação de forças atractivas e repulsivas fazem com que o robô se desloque da

posição inicial até à final evitando obstáculos, embora sempre com a possibilidade de encontrar um mínimo

local [Ge & Cui 2000].

O planeamento de caminhos quando é feito repetidamente no mesmo espaço, leva a que seja útil a

utilização duma estrutura de dados - mapa - de modo a acelerar o processo de planeamento. Uma classe de

mapas topológicos muito utilizados são os itinerários. Estes servem para um robô se deslocar de um local

para outro utilizando percursos pré-definidos, tal como as pessoas utilizam as auto-estradas para chegar ao

seu destino. Podem ser construídos por intermédio de grafos, como por exemplo: o Grafo de Visibilidade,

onde os obstáculos são representados por polígonos e os caminhos possíveis (ligações) são feitos unindo

os diversos vértices dos obstáculos ao nó de origem e ao nó de chegada [Lozano-Pérez & M.Wesley 1979];

ou o Grafo Generalizado de Voronoi (GVG), Figura 2.3, que representa o conjunto de pontos com a mesma

distância a dois obstáculos que se encontrem na vizinhança [Choset 1996].

Figura 2.3: Representação do grafo generalizado de Voronoi [Choset 1996].

Os métodos descritos anteriormente têm a particularidade de criarem itinerários no espaço de config-

uração livre, que se for muito elevado vai fazer com que a dimensão do problema também o seja. Este

factor pode fazer com que o problema de planeamento não possa ser resolvido em de tempo útil, tornado a

sua aplicação impraticável. Por outro lado, existem métodos que permitem reduzir o peso computacional de

avaliar se uma determinada configuração de um robô se encontra no espaço livre ou não. O planeador prob-

abilístico de itinerários (PRM) demonstrou o tremendo potencial destes métodos [Kavraki, Švestka, Latombe

& Overmars 1996], assim como outros; EST e RRT, que apesar da sua simplicidade conseguem lidar com

robôs de muitos graus de liberdade e com diferentes tipos de constrangimentos (e.g. cinemáticos, dinâmicos)

[e.g. LaValle 1998, Hsu, Latombe & Motwani 1999]. Uma característica importante destes planeadores é que

não tentam construir explicitamente as fronteiras do espaço de configuração dos obstáculos ou representar

o espaço livre através de células; apenas baseiam-se num procedimento que averigua se uma dada config-

uração do robô encontra-se em colisão com algum obstáculo, utilizando para isso bibliotecas para detecção

de colisões (e.g., SOLID, V-Collide ou SWIFT++).

12

Page 39: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

2.3.2 Planeamento de Trajectórias

Foi visto que um caminho especifica um conjunto de configurações que um robô alcança ao se mover de

uma configuração inicial para uma outra final. Deste modo, um caminho não é uma representação completa

do movimento de um sistema robótico, pois o tempo do movimento não é especificado. A um caminho com a

respectiva especificação do tempo em que cada configuração é alcançada dá-se o nome de trajectória. Para

as definir podem ser feitas duas abordagens: a desacoplada e directa. A primeira permite separar a tarefa de

encontrar o caminho, da tarefa de especificar o tempo de execução de cada configuração do robô. Por outro

lado, a segunda abordagem procura por uma solução directamente no espaço de estados do robô, utilizando

por exemplo técnicas de controlo óptimo e optimização numérica.

Abordagem Desacoplada

Pedrosa, Medeiros & Alsina [2003] propõem a criação de caminhos não-holonómicos através de polinómios

cúbicos parametrizados por um λ. Porém, nem sempre o caminho resultante é o melhor de entre todas as

infinitas soluções possíveis, por isso os autores adoptaram o critério de que o caminho seja regular, i.e.,

cada polinómio tem de ser uma função monótona crescente ou decrescente. Com a aplicação deste critério

resultam dois sistemas de inequações de onde se obtém os coeficientes dos polinómios arbitrados [Pedrosa

2001]. A Figura 2.4 mostra três caminhos não-holonómicos em que um deles não é regular, possuindo

um ponto máximo na direcção x. Depois de criado o caminho, as velocidades para um robô diferencial,

(v(t),ω(t)), foram obtidas directamente pela determinação da variação do parâmetro λ no tempo.

Figura 2.4: Caminhos não-holonómicos [Lumelsky & Stepanov 1987].

Tsai, Wang, Chang & Wu [2004] propõem a utilização de B-splines cúbicas, em que os seus pontos de

controlo são optimizados tendo em conta uma função de custo, que minimiza o erro quadrático entre os

pontos de interesse e a curva, e o cumprimento dos constrangimentos de curvatura e orientação (inicial

e final). Para resolver este problema de optimização os autores utilizaram a função fmincon do Matlab®.

Embora as B-splines cúbicas possam ter curvaturas contínuas do inicio até ao fim, alterações locais afectam

a forma de até seis segmentos vizinhos, sendo por isso inviável proceder à remoção ou substituição de

segmentos de uma trajectória existente. Assim, Lau, Sprunk & Burgard [2009] propõem a utilização de

13

Page 40: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

splines de Bézier de quinta ordem para construção de trajectórias de curvatura contínua com a vantagem

de ser possível fazer a montagem de novos segmentos sem haver descontinuidades na curvatura. Deste

modo torna-se possível alterar as trajectórias muito rapidamente de forma a reagir a obstáculos dinâmicos.

O projecto do caminho e das velocidades é proposto pelos mesmos autores através duma função de custo

com base no tempo total de execução. Esta é uma função complexa que depende da forma do caminho,

juntamente com o perfil de velocidades e com o mapa do ambiente, e por isso não é diferenciável. Desta

forma, os autores utilizaram esquemas de optimização inspirados no algoritmo RPROP de Riedmiller & Braun

[1993].

Abordagem Directa

Por outro lado, a abordagem directa, é um problema geral de optimização não linear pode ser ser colocado

da seguinte forma,

Encontrar t f , q(t), u(t) (2.4)

minimizando J (u(t), q(t), t f ) (2.5)

sujeito a M(q(t))q(t)+C (q(t), q(t))q + g (q(t))= u(t), 0≤ t ≤ t f (2.6)

umin (q(t), q(t)) ≤ u(t) ≤ umax (q(t), q(t)), 0≤ t ≤ t f (2.7)

h(q(t)) ≤ 0, 0≤ t ≤ t f (2.8)

q(0) = qinici al , q(0) = qinici al (2.9)

q(t f ) = q f inal , q(t f ) = q f inal (2.10)

onde h(q) ≤ 0 representa os obstáculos e os limites das juntas.

A resolução deste problema passa pela aplicação de métodos de optimização não linear, onde tipica-

mente apenas são satisfeitos os constrangimentos num número fixo de pontos distribuídos ao longo do

intervalo [0, t f ], e onde a representação dos estados e das acções de controlo é feita através da utilização

de parâmetros finitos. Existem três formas de resolver este problema:

Parametrização da trajectória q(t). O problema é solucionado para a trajectória parametrizada directa-

mente. As acções de controlo u em qualquer instante são calculadas através da equação 2.6.

Parametrização da acção de controlo u(t). O problema é solucionado para u(t) directamente, e depois é

necessário integrar a equação 2.6 para determinar (q(t), q(t)).

Parametrização de q(t) e u(t). O número de coeficientes da parametrização é maior visto que q(t) e u(t) têm

de satisfazer as equações da dinâmica 2.6 explicitamente.

A trajectória e/ou acções de controlo podem ser parametrizadas de diversas formas, como por exemplo,

através dos coeficientes dum polinómio no tempo, duma série de Taylor truncada, duma spline, etc. A

escolha da parametrização tem implicações futuras quanto à eficiência do cálculo de q(t) e u(t), bem como

da sensibilidade dos estados e controlo aos respectivos parâmetros, sendo portanto um factor importante na

estabilidade e eficiência da optimização numérica.

14

Page 41: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Este tipo de programação não linear pode ser resolvida de diversas formas incluindo programação quadrática

sequencial (SQP) ou programação dinâmica. Como precauções é necessário que a função objectivo e re-

spectivos constrangimentos sejam suficientemente suaves relativamente aos parâmetros de controlo (2.4),

i.e., pelo menos C 1, normalmente C 2 para que a informação da Hessiana seja utilizada, de forma a acelerar

a convergência. O palpite inicial da solução pode também influenciar bastante a solução final alcançada pelo

optimizador não linear (e.g., LINPACK, SNOPT ou NPSOL), pois este utiliza informação local do gradiente,

podendo fazer com que a solução convirja para um óptimo local.

Para que o problema de controlo não linear seja resolvido pelos respectivos optimizadores é necessário

transformar o problema para a forma de programação não linear. Existem diversas aplicações informáticas

capazes capazes de o fazer, como por exemplo: GPOPS [Rao, Benson, Darby, Patterson, Francolin, Sanders

& Huntington 2010], PROPT [Rutquist & Edvall 2008], OPTRAGEN [Bhattacharya 2006]. Estas aplicações

têm o factor comum de poderem ser utilizadas no ambiente Matlab®.

2.3.3 Controladores

Segundo [Kozlowski, Majchrzak & Michalek 2006] as dificuldades no projecto de controladores para sistemas

não-holonómicos surgem da impossibilidade de integrar os constrangimentos cinemáticos impostos pelo sis-

tema físico. Estes constrangimentos impõem restrições nas velocidades admissíveis, preservando contudo a

sua controlabilidade. Para além disso, a dimensão do espaço de controlo U ⊂ℜm em comparação com o es-

paço de configurações, Q ⊂ℜn com (n > m), causam dificuldades no projecto de um controlador. Apesar dos

problemas mencionados, existem muitas estratégias de controlo com realimentação para modelos cinemáti-

cos não-holonómicos. Ainda assim, alguns problemas importantes, como robustez às limitações da acção

de controlo dos actuadores, afinação intuitiva dos parâmetros do controlador e boa qualidade das acções de

controlo durante o regime transiente continuam a ser problemas abertos e requerem mais investigação.

A abordagem mais intuitiva para o controlo em anel aberto de um sistema não-holonómico, e que permite

atingir qualquer configuração desejada baseia-se no seguinte procedimento,

1. Rodar o robô até ficar alinhado com o segmento de recta que une a configuração inicial (xi , yi ,θi ) à

configuração final (x f , y f ,θ f ),

2. Andar em frente até atingir a posição final (x f , y f ),

3. Rodar novamente o robô até atingir a orientação final θ f .

Sendo u1 a acção de controlo associada ao movimento linear do robô e u2 ao movimento de rotação, com

apenas uma sequência de três acções de controlo u2, u1 e de novo u2 é possível conduzir um robô até a

uma configuração final. Esta abordagem é limitada a estruturas muito simples, como por exemplo um robô

diferencial, em que a intuição geométrica é suficiente.

Uma abordagem mais geral pode ser feita para um robô móvel seguir uma determinada trajectória que

cumpra os constrangimentos não-holonómicos dum determinado robô. Como o modelo cinemático dum

robô não é em geral controlável, é necessário considerar o modelo linearizado do erro entre a trajectória e a

posição real do robô, de forma a resultar um sistema linear invariante no tempo que garanta a controlabilidade

15

Page 42: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

do robô [De Luca & Oriolo 1995]. Canudas de Wit, Khennouf, Samson & Sordalen [1993] propõem duas leis

de controlo com base neste modelo, sendo uma linear e outra não linear. Outra abordagem tem por base a

linearização dinâmica da realimentação que consiste no problema de determinar um compensador dinâmico

de realimentação de estados [d’Andréa Novel, Campion & Bastin 1995]. De Luca et al. [2001] compararam

experimentalmente estas duas estratégias de controlo para um robô diferencial e concluíram que o peso

computacional destes métodos é semelhante, assim como o seu desempenho.

Um controlador preditivo de horizonte recidivo foi implementado para seguimento de trajectórias por Gu

& Hu [2006], em que a estabilidade do controlo é garantida pela adição dum termo (estado final) na função

de custo. Este controlador, para além da capacidade de fazer o seguimento de trajectórias tem capacidade

de fazer estabilização do robô em torno de um ponto.

2.4 Detecção e Seguimento de Objectos

O seguimento de objectos encontra-se no domínio da visão computacional e tem diversas aplicações: recon-

hecimento com base em movimento, indexação de vídeo, vigilância, interacção homem-máquina, monitoriza-

ção de tráfego e navegação de robôs móveis [Yilmaz et al. 2006]. Na sua forma mais simples, o seguimento

pode ser definido como um problema de estimação da trajectória de um objecto no plano da imagem à

medida que se movimenta. Esta tarefa pode ser bastante complexa devido a diversos factores,

• Perda de informação devido a projecção do mundo físico tridimensional num plano bidimensional;

• Ruído do sensor de visão;

• Movimento complexo do objecto;

• Natureza não-rígida ou articulada do objecto;

• Formas complexas dos objectos;

• Variações na iluminação do ambiente.

A representação de objectos pode ser feita por intermédio de pontos ou conjunto de pontos, formas ge-

ométricas primitivas (e.g. rectângulo, elipse), silhueta e contorno, modelos de formas articuladas ou modelos

esqueléticos, Figura 2.5. De seguida são apresentados diversos métodos para a sua detecção de acordo

com diferentes características visuais, assim como métodos para o seu seguimento.

2.4.1 Detecção

A selecção das características certas tem um papel crítico no seguimento de objectos. Em geral, a pro-

priedade mais desejada de uma característica visual é a sua singularidade para que objectos relevantes

possam ser facilmente distinguidos no espaço da respectiva característica. São quatro as características

mais utilizadas,

16

Page 43: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Figura 2.5: Representação de objectos. (a) centróide, (b) rectângulo, (c) formas articuladas, (d) contorno, (e) silhueta[Yilmaz et al. 2006].

Cor. A cor aparente de um objecto é influenciada principalmente por dois factores físicos: distribuição do

poder espectral da iluminação e propriedades da reflexividade da superfície do objecto. Existem diver-

sos espaços de cores (RGB, HSV, YCbCr, etc), sendo que a sua escolha depende de cada aplicação.

Arestas. A fronteira de objectos normalmente provoca profundas alterações na intensidade da imagem. A

detecção de arestas é utilizada para evidenciar estas alterações. Uma propriedade importante destas

é que são menos sensíveis a variações de iluminação em relação à cor. Algoritmos que seguem a

fronteira de objectos utilizam normalmente arestas como a característica representativa. Devido à sua

simplicidade e precisão o método mais popular de detecção é o de Canny [1986].

Fluxo Óptico. Campo vectorial de deslocamento que define a translação de cada pixel duma região. É

computado utilizando um constrangimento de brilho que assume a invariância do brilho de pixeis corre-

spondentes em frames diferentes [Horn & Schunck 1981]. É utilizado como característica na segmen-

tação com base em movimento e aplicações de seguimento. A avaliação do desempenho de diversos

métodos de fluxo óptico pode ser encontrada em [Barron, Fileet & Beauchemin 1994].

Textura. É uma medida da intensidade da variação de uma superfície que quantifica propriedades como a

suavidade e regularidade. É necessário um procedimento adicional em relação à cor para gerar os

descritores. Assim como a característica dos cantos é menos sensível a variações de iluminação.

Em geral, muitos algoritmos de seguimento de objectos utilizam uma combinação destas características,

embora de entre todas as características a mais utilizada é a cor. Por exemplo, Phung et al. [2002] utilizam o

espaço de cores Y CbCr para detectar a cor da pele de pessoas. O processo de classificação de cada píxel é

feito com base na distância de Mahalanobis, cujos parâmetros (média e covariância) são estimados através

da aplicação do processo de clustering k-means a um conjunto de imagens.

Detectores de Pontos de Interesse

Detectores de pontos de interesse são utilizados para encontrar pontos de interesse em imagens com uma

textura expressiva. Uma qualidade desejável de um ponto de interesse é a sua invariância a alterações na

iluminação e ponto de vista da câmara. Existem diversos detectores como o operador de Moravec [1979],

detector de Harris & Stephens [1988], detector KLT [Shi & Tomasi 1994] e o detector SIFT [Lowe 2004].

Uma comparação destes métodos foi feita por Mikolajczyk & Schmid [2003] que chegou à conclusão que os

descritores SITF têm um melhor desempenho.

17

Page 44: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Remoção do Fundo

A detecção de objectos também pode ser feita por intermédio da subtracção do fundo da imagem que pode

ser conseguida pela construção do modelo do fundo, seguido de desvios do modelo em cada frame. Gordon,

Darrell, Harville & Woodfill [1999] utilizam esta técnica com base na cor e aumenta a sua robustez com a

utilização de sensores de distância, reduzindo o efeito de problemas clássicos de segmentação (e.g., pontos

com cores semelhantes, sombras)

Segmentação

O objectivo dos algoritmos de segmentação é dividir a imagem em regiões semelhantes e para isso cada

algoritmo lida com dois problemas: definição dum critério para uma boa partição e, procedimento eficiente

para o fazer. Três das técnicas com mais relevo para seguimento são a Mean-Shift Clustering [Comaniciu

& Meer 1999], segmentação da imagem através de grafos [Shi & Malik 2000] e contornos activos [Caselles,

Kimmel. & Sapiro 1999].

Aprendizagem Supervisionada

A detecção de objectos pode ser feita por aprendizagem das diversas vistas do objecto de forma automática,

por intermédio de um mecanismo de aprendizagem supervisionado. Uma vez seleccionadas as caracterís-

ticas, diferentes perspectivas dum objecto podem ser aprendidas utilizando uma abordagem supervisionada

por intermédio de redes neuronais [Rowley, Baluja & Kanade 1998], impulso adaptativo [Viola, Jones &

Snow 2003], árvores de decisão [Grewe & Kak 1995] e support vector machines [Papageorgiou, Oren &

Poggio 1998]. Estes métodos computam uma hipersuperfície que separa uma classe de objectos de outras

classes num espaço de dimensões elevadas.

2.4.2 Seguimento

O objectivo dum algoritmo para seguir objectos é o de construir a sua trajectória ao longo do tempo, apenas

com a localização da sua posição em cada frame de vídeo. Este algoritmo tem dois procedimentos princi-

pais: detectar o objecto; e estabelecer a correspondência entre instâncias do objecto em frames diferentes.

Estes procedimentos podem ser feitos separadamente ou em conjunto, mas em ambos os casos os objec-

tos são representados utilizando a forma e/ou modelos de aparência descritos anteriormente. O modelo

seleccionado para representar os contornos limita o tipo de movimento ou deformação a que este pode ser

sujeito. Por exemplo, se um objecto é representado por um ponto então apenas um modelo de translação

pode ser utilizado; no caso de um objecto ser representado por uma forma geométrica (e.g. elipse) mode-

los paramétricos de movimento, como transformações afins ou projectivas podem ser utilizadas. Com estas

representações pode-se aproximar o movimento de corpo rígido do objecto. Para corpos não-rígidos a rep-

resentação mais descritiva é a silhueta ou o contorno, em que podem ser utilizados modelos paramétricos e

não-paramétricos para especificar o seu movimento. Assim, as representações podem ser divididas em três

grupos,

18

Page 45: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Pontos. Objectos detectados em frames consecutivas são representados por pontos e a associação dos

pontos tem como base o estado anterior (posição e velocidade).

Núcleos. Refere-se à forma e aparência do objecto (e.g. forma elíptica com um histograma associado). O

seguimento de objectos é feito através da computação do movimento do núcleo em frames consec-

utivas. Este movimento é descrito normalmente sob a forma duma transformação paramétrica como;

translação, rotação e transformação afim.

Silhuetas. O seguimento é feito estimando a região onde se encontra o objecto em cada frame. Métodos

para seguimento de silhuetas utilizam a informação codificada dentro da região do objecto, que pode

estar na forma de densidade aparente e modelos de forma (mapas de arestas). Dados os modelos dos

objectos, as silhuetas são seguidas ou por correspondência de forma ou por evolução do contorno.

A correspondência de pontos é um problema complicado principalmente na presença de oclusões, de-

tecções erradas, entradas e saídas de objectos [Veenman, Reinders & Backer 2001]. De uma forma global

os métodos de correspondência de pontos podem ser divididos em duas categorias - métodos determinísti-

cos e métodos estatísticos. Os métodos determinísticos utilizam heurísticas de movimento qualitativo para

constringir o problema de correspondência. Por outro lado, os métodos estatísticos utilizam explicitamente

as medições do objecto tendo em conta incertezas para estabelecer a correspondência. Na Tabela 2.1

encontram-se referências, tanto para métodos determinísticos como para estatísticos. Pormenores sobre o

seguimento de núcleos e silhuetas podem ser consultados em [Yilmaz et al. 2006].

Categoria Trabalho RepresentativoSeguimento de pontos• Métodos determinísticos MGE tracker [Salari & Sethi 1990]

GOA tracker [Veenman et al. 2001]• Métodos estatísticos Filtro de Kalman [Broida & Chellappa 1986]

JPDAF [Bar-Shalom & Foreman 1988]PMHT [Streit & Luginbuhl 1994]

Tabela 2.1: Métodos determinísticos e estatísticos para seguimento de pontos.

2.5 Arquitecturas e Comunicação de Sistemas Robóticos

Esta secção apresenta diversas arquitecturas de sistemas robóticos que hoje em dia são utilizadas, assim

como a comunicação entre os seus diversos constituintes. Pode se afirmar que existe alguma semelhança

entre arquitectura de robôs e engenharia de software, contudo, segundo Kortenkamp & Simmons [2008]

as arquitecturas de robôs têm características muito próprias, como por exemplo, a interacção assíncrona

em tempo-real num ambiente incerto que pode ser dinâmico. Para além deste motivo, muitos sistemas

robóticos respondem em tempos variáveis que podem ir dos milisegundos (controlo) a minutos ou horas

(tarefas complexas). Brooks [1986] divide os requisitos duma arquitectura em quatro pontos:

Objectivos. Frequentemente um robô vai ter múltiplos objectivos em que alguns podem ser conflituosos

entre si. Por exemplo, pode acontecer que um robô tenha de ir para um dado ponto enquanto evita

19

Page 46: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

obstáculos locais, ou mais drasticamente, numa ferrovia se soar o apito do comboio torna-se muito

mais importante sair da linha do que examinar o que falta na linha. O sistema de controlo tem de ser

rápido na reacção a objectivos de alta prioridade, e em simultâneo cumprir também os requisitos de

baixo nível (e.g., ao sair da linha o robô tem de manter o seu equilibro para não cair).

Sensores. Os robôs estão normalmente equipados com diversos sensores em que todos têm uma compo-

nente de erro nas suas leituras, muitas vezes não há uma relação analítica directa entre a quantidade

medida e a física, e alguns podem ter uma escala limitada levando à sobreposição de medições. Nes-

tas condições, o robô tem de ser capaz de tomar decisões.

Robustez. O robô deve ser robusto. Quando algum sensor falha, tem de ser capaz de lidar com a situação

e adaptar-se com base nos sensores que se encontram operacionais. Quando o ambiente muda

drasticamente, o robô deve ter um comportamento minimamente adequado, em vez de ficar quieto ou

de vaguear sem objectivo e irracionalmente.

Extensibilidade. À medida que mais sensores e capacidades são adicionadas ao robô, este precisa de

mais poder de processamento; de outro modo as funcionalidades iniciais do robô vão ser prejudicadas.

2.5.1 Arquitecturas de Sistemas Robóticos

Uma das primeiras arquitecturas baseia-se no paradigma sentir-planear-actuar, Figura 2.6. Nesta arqui-

tectura a informação sensorial segue para o modelo existente do ambiente que, por sua vez, é utilizado

no planeamento. Este é um paradigma que rapidamente caiu em desuso por duas razões: primeira, o

planeamento no domínio do mundo real é moroso levando ao bloqueio do robô enquanto não é concluído o

planeamento; segunda e mais importante, a execução do planeamento sem envolver a informação adquirida

pelos sensores é perigosa num mundo dinâmico.

Sensores

Per

cepç

ão

Mod

elaç

ão

Pla

neam

ento

Exe

cuçã

ode

Tare

fas

Con

trol

odo

Mot

or

Actuadores

Figura 2.6: Paradigma sentir-planear-actuar (SPA).

De modo a ultrapassar estes problemas, Brooks [1986] propõe um novo tipo de arquitectura hierárquica

com base em comportamentos que estão definidos em máquinas de estado finitas que se encontram em

níveis com diferentes prioridades e onde é possível a interacção entre elas, Figura 2.7. Cada uma destas

máquinas liga directamente sensores e actuadores e é responsável por um dado comportamento robótico.

Assim, é possível criar múltiplas camadas de comportamentos interactivos para fazer com que os robôs con-

sigam realizar tarefas complexas em ambientes complexos. Como múltiplos comportamentos podem ser

activados num instante de tempo qualquer, é necessário um mecanismo de arbitragem que possibilite habili-

tar um comportamento de maior importância (alto-nível) de modo a fazer o sobrecarregamento do sinal de um

20

Page 47: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Sonar

Vaguear

Sente Força

Colisão

Evitar

Fugir Virar FrenteRobô

Mapa

Força

Orientação Orientação

Orientação

Encoders

Parar

Robô Robô

Figura 2.7: Arquitectura com base em comportamentos [Brooks 1986].

comportamento com menos importância (baixo-nível) [e.g. Connell 1992, Horswill 1993]. O funcionamento

num mundo dinâmico não é assim um incómodo para estes robôs que estão constantemente a reagir à in-

formação sensorial adquirida. Muitas variações desta arquitectura existem, frequentemente com diferentes

mecanismos de arbitragem para combinar a saída dos comportamentos [e.g. Rosenblatt 1997]. Um exemplo

popular de uma arquitectura com base em comportamentos inspirada em agentes biológicos encontra-se de-

scrita por Arkin [1987]. Este autor utiliza um esquema para representar um dado comportamento; a teoria de

esquemas propõe que todo o conhecimento encontra-se organizado por unidades, e dentro destas unidades

de conhecimento, ou schemata, é guardada a informação. Assim, um modelo de esquemas descreve a

interacção entre percepção e acção, e pode ser adaptado com o objectivo de tornar um sistema robótico

altamente sensível ao ambiente percepcionado, Figura 2.8.

Ambiente

Ambiente Actual

Modelo

Memória de curto e longo prazo

Cognição

Planos de Acção

Esquemas de Acção

Direcção

Modificação

Figura 2.8: Ciclo acção-percepção.

Esquemas de acção operando de modo concorrente e independente podem produzir itinerários que re-

flectem a incerteza na detecção de obstáculos. Adicionalmente podem lidar com informação conflituosa

proveniente de diversos sensores com uma estratégia específica. Os esquemas de acção geram vectores

de resposta com base nas saídas dos esquemas perceptuais, que depois são combinados de maneira semel-

hante aos campos potenciais artificiais [Khatib 1986]. Estes esquemas de acção e de percepção, que podem

ser considerados comportamentos robóticos primitivos ou apenas primitivas, foram introduzidos na arquitec-

tura para robôs autónomos (AuRA) [Arkin & Balch 1997], que tem semelhanças biológicas com a navegação

de um sapo, mais concretamente, no controlo dos seus membros na zona da medula espinal.

Contudo, robôs com base em comportamentos cedo chegaram ao limite das suas capacidades devido

21

Page 48: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

à crescente complexidade dos objectivos propostos, como por exemplo, minimizar o tempo de realização

duma tarefa. Portanto, os robôs necessitavam das capacidades iniciais de planeamento juntamente com a

resposta reactiva com base em comportamentos. Assim, surgem as arquitecturas de controlo de robôs com

base em camadas.

Um dos primeiros passos na direcção da integração do comportamento reactivo e deliberativo foi dado

por Firby [1987] ao propor o sistema RAP. Este é um sistema com base em pacotes de acção reactiva (RAP),

que são essencialmente processos autónomos que perseguem um objectivo planeado até que este seja

concretizado. Se o sistema tem mais que um objectivo então vão existir processos independentes a tentar

concretizar cada um deles. Firby [1989] apresenta também uma arquitectura com três camadas pela primeira

vez, encontrando-se na camada intermédia o sistema RAP.

Independentemente e concorrentemente Bonasso [1991] fez uma arquitectura que no nivel mais baixo os

comportamentos robóticos são programados na linguagem Rex como circuitos síncronos. Essas máquinas

Rex garantem uma semântica consistente entre os estados internos do agente e os do ambiente. A camada

intermédia é um organizador condicional implementado na linguagem Gapps, que faz a activação e desac-

tivação das habilidades Rex até que as tarefas do robô estejam concluídas. Este organizador baseado em

Gapps é apelativo, porque pode ser sintetizado através de técnicas de planeamento mais tradicionais. Este

trabalho culminou com a arquitectura 3T cujo nome é devido às três camadas interactivas de processos de

controlo - planeamento, organização e controlo - que tem sido utilizada em muitas gerações de robôs. Um

exemplo da sua implementação pode ser consultado em [Bonasso, Kortenkamp, Miller & Slack 1997].

A arquitectura Syndicate extende o modelo 3T para coordenação multirobô [Sellner, Heger, Hiatt, Sim-

mons & Singh 2006]. Nesta arquitectura, cada camada interage não só com as vizinhas, mas com camadas

de outros robôs que se encontram ao mesmo nível. Desta forma o controlo distribuído pode ser projec-

tado em múltiplos níveis de abstracção. Outras arquitecturas para multirobôs encontram-se descritas em

[Parker 2008].

Uma arquitectura distribuída biomórfica com duas camadas foi utilizada pela equipa CAMBADA [Azevedo,

Cunha & Almeida 2007]. Numa camada é feita a coordenação responsável pelos comportamentos globais

da equipa e na outra é feita a percepção e reacção através dos diversos sensores e actuadores distribuídos

pelos membros da equipa, bem como a partilha da informação sobre o estado interno entre agentes e

execução das ordens provenientes da primeira camada. Assim, cada robô é um agente independente que

coordena as suas acções com os seus colegas de equipa através da comunicação e da troca de informação.

O comportamento resultante de cada robô é integrado na estratégia de equipa, resultando assim acções

cooperativas por parte todos os robôs. Isto é conseguido através da atribuição de funções aos agentes

(e.g., avançado, guarda-redes). Cada função tem os seus comportamentos bem definidos e estes definem a

atitude do jogador em campo (e.g., posição no campo, permissões para chutar, etc).

2.5.2 Comunicação entre Componentes duma Arquitectura

Todos os componentes duma arquitectura necessitam de comunicar uns com os outros, tanto para trocar

informação como para enviar ordens. A escolha da forma como estes módulos comunicam - frequentemente

chamado de middleware - é um dos aspectos mais importantes e que mais constrangimentos vai proporcionar

22

Page 49: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

no projecto de uma arquitectura para robôs [Kortenkamp & Simmons 2008].

Geralmente grande parte dos problemas e do tempo para depuração no desenvolvimento de arquitec-

turas de sistemas robóticos estão relacionados com a comunicação entre componentes. Adicionalmente,

uma vez que um dispositivo de comunicação é escolhido, torna-se extremamente difícil alterá-lo, fazendo

com que decisões embrionárias persistam por muitos anos. Muitos fazem os seus próprios protocolos de

comunicação, normalmente em cima de sockets Unix, permitindo a personalização de mensagens, embora

desaproveitando a fiabilidade, eficiência e facilidade de manuseio que pacotes de comunicação externos

fornecem. Existem duas abordagens básicas para comunicação: cliente-servidor e publicação-subscrição.

A primeira abordagem é muito popular e baseia-se no facto de que o pedido dum cliente é emparelhado a

uma resposta do servidor, enquanto o paradigma alternativo baseia-se em mensagens transmitidas de modo

assíncrono, em que todos os módulos que previamente subscreveram às mensagens recebem uma cópia.

Com um estilo cliente-servidor, os módulos tipicamente enviam um pedido e depois bloqueiam à espera da

resposta. Se a resposta não é dada então um deadlock pode ocorrer, embora, mesmo que o módulo não

bloqueie, o fluxo de controlo tipicamente fica à espera duma resposta, o que pode levar a comportamen-

tos inesperados. Pelo contrário, sistemas que utilizam o estilo publicação-subscrição tendem a ser mais

robustos, porque sendo assumido pelo módulo que as mensagens chegam assincronamente, o fluxo de con-

trolo tipicamente não espera uma ordem particular para o processamento das mensagens, fazendo com que

mensagens perdidas ou fora de ordem causem menos impacto [Kortenkamp & Simmons 2008].

Cliente-Servidor

Num protocolo entre cliente e servidor os componentes falam directamente um com o outro. Um bom exem-

plo é o protocolo RPC (Remote Procedure Call) em que um componente (o cliente) pode invocar funções e

procedimentos de um outro componente (o servidor). Uma variação actual deste protocolo tem o nome de

CORBA. Este intermediário também permite a um componente invocar métodos de objectos implementados

por outro componente. As invocações dos métodos encontram-se definidas num ficheiro de definição da

linguagem de interface (IDL) que é independente da linguagem. A vantagem encontra-se no facto de que

quando um ficheiro IDL é alterado, todos os componentes que utilizam o respectivo IDL voltam a ser compi-

lados automaticamente. Uma das desvantagens do CORBA é que introduz código adicional nas aplicações.

Alguns competidores tentaram resolver esta questão, como por exemplo o ICE1 que tem a sua própria versão

de um ficheiro IDL de nome SLICE2 [Henning 2004].

A vantagem mais importante de um protocolo cliente-servidor é que as interfaces são previamente

definidas fazendo com que se saiba quando são alteradas. Outra vantagem é que permite uma abordagem

distribuída sem um módulo central para fazer a distribuição de informação. Uma desvantagem é que introduz

atrasos significativos especialmente se muitos componentes necessitam da mesma informação. É de notar

que ambos os intermediários, CORBA e ICE, possuem mecanismos de transmissão chamados de canal de

eventos ou serviço de notificação. Embora a utilização do protocolo CORBA encontre-se em declínio no

mercado eCommerce, hoje-em-dia é utilizado principalmente em sistemas embebidos que necessitam do

1Internet Comunications Engine2Specification Language for ICE

23

Page 50: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

determinismo das redes em tempo-real [Henning 2006].

Publicação-Subscrição

Num protocolo publicação-subscrição (broadcast) um componente publica informação à qual qualquer outro

componente pode subscrever. Tipicamente, um processo centralizado encaminha os dados entre o editor e

o subscritor. Numa arquitectura a maioria dos componentes são editores e subscritores. Existem diversas

soluções em termos de middleware para este tipo de protocolo: RTI (Real-Time Inovations), DDS (Data

Distribution Service) ou IPC (Inter-Process Communication). Muitos protocolos estão a convergir na direcção

do XML (Extensible Markup Language) para fazer a definição dos dados publicados, com a conveniência

acrescida de transmitir XML sobre HTTP, o que permite uma interoperabilidade significativa com aplicações

baseadas na Web. Este tipo de protocolos possuem algumas vantagens:

1. Utilização simples e com baixa latência;

2. Especialmente úteis quando é desconhecido o número e o tipo de componentes que vão necessitar de

uma fatia da informação (e.g., múltiplas interfaces homem-máquina);

3. Os componentes não ficam sobrecarregados com pedidos repetidos de informação provenientes de

diversas fontes.

Por outro lado,

1. É difícil de fazer a depuração de problemas, porque a sintaxe da mensagem é codificada de acordo

com as normas da W3C, fazendo com que os problemas apenas sejam revelados no momento de

execução, i.e., quando um componente tenta analisar a mensagem recebida;

2. Não são tão legíveis quando se trata de enviar ordens de um módulo para outro; em vez de evocar

um método explícito ou uma função com parâmetros, uma ordem é lançada fazendo a publicação da

mensagem com a respectiva ordem e parâmetros, sendo depois analisada pelo subscritor;

3. Utilizam muitas vezes um servidor central para enviar as mensagens para todos os subscritores,

fazendo que que este seja um potencial ponto de atrasos e ao mesmo tempo um ponto único de

ruptura global.

Um Web Service é uma aplicação que permite aos seus clientes o acesso às suas funcionalidades

ou serviços através de protocolos normalizados e ao mesmo tempo abertos. Esta abordagem garante a

interligação e interoperabilidade de modo a que a funcionalidade do Web Service seja acedida por virtual-

mente qualquer cliente independentemente da localização, linguagem de programação ou plataforma. Du,

Witkowski & Rückert [2005] desenvolveram uma interface através de Web Services para a operação remota

de um robô móvel. [Christo et al. 2009] extende o conceito para que os próprios agentes robóticos acedam

aos serviços prestados pelos Web Services (e.g., localização global fornecida por outros agentes presentes

no ambiente).

24

Page 51: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

2.6 Sistemas em Tempo-Real

De acordo com Brooks [1986] o sistema de controlo para um robô móvel completamente autónomo tem de

realizar muitas tarefas de processamento de informação complexa em tempo-real (RT). Um sistema RT é

qualquer sistema que responde de forma determinística, sendo o tempo um recurso de importância fun-

damental e em que as actividades têm de ser escalonadas e executadas de modo a cumprir requisitos

temporais [Saksena & Selic 1999]. Estes requisitos podem ser classificados de restritos quando um atraso

tem consequências catastróficas para o sistema, ou latos quando um atraso pode ser tolerado pelo sistema.

Figura 2.9: Plataformas Xenomai e RTAI [Barbalace, Luchetta, Manduchi, Moro, Soppelsa & Taliercio 2008].

2.6.1 Plataformas de Desenvolvimento

Muitos sistemas robóticos utilizam plataformas de desenvolvimento em tempo-real como a QNX, LynxOS e

VxWorks [Sousa, Araújo, Nunes, Alves & Lopes 2007]. Embora possuam boas características e suporte,

têm custos elevados, bem como falta de drivers e expansibilidade. Algumas alternativas a estas plataformas

dispendiosas são desenvolvidas pela comunidade open source: RTLinux, RTAI ou Xenomai. Os dois últimos

consistem basicamente num micro-kernel adicionado a um kernel Linux anfitrião, que assim perde o controlo

das interrupções e do processador, Figura 2.9. Esta é uma alternativa atractiva pois não tem qualquer

custo monetário adicional e é possível interagir e aceder a todos os recursos Linux. Para além destes

motivos também é possível fazer o desenvolvimento de uma aplicação em tempo-real utilizando ferramentas

de programação gráfica como o Simulink® ou o Scicos® [e.g. Bucher & Balemi 2005, Bucher & Balemi 2006,

Bucher & Balemi 2008]. [Barbalace et al. 2008] fez uma comparação do desempenho das plataformas open

source com a plataforma VxWorks e concluiu que são alternativas válidas para controlo de sistemas em

tempo-real duro. De seguida são apresentadas algumas aplicações da plataforma RTAI.

O recente desenvolvimento de um sistema de transportes públicos baseou-se em veículos dotados com

capacidades autónomas, como o ilustrado na Figura 2.10. Nestes veículos encontram-se implementados

algoritmos de navegação em C++ numa plataforma RTAI [Pradalier, Hermosillo, Koike, Braillon, Bessière &

25

Page 52: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Figura 2.10: Robô móvel CyCab [Morette, Novales & Vieyres 2008].

Laugier 2005].

Uma plataforma RTAI foi também utilizada num portátil por cada agente da equipa CAMBADA, de forma

a executar funções de controlo de alto-nível e para integrar mais facilmente dispositivos de electrónica de

consumo, como câmaras com protocolos normalizados USB ou Firewire [Azevedo et al. 2009].

Os controladores dos actuadores do robô Robchair, ilustrado na Figura 2.11, têm cada um o seu tempo

de amostragem, peso computacional e constrangimento de tempo. Para garantir a execução de todos os

controladores sem violação dos constrangimentos impostos, Sousa et al. [2007] utilizaram um sistema RT

RTAI, e concluíram que a combinação entre as linguagens C/C++ e o respectivo sistema RT foram produtivas,

estáveis e com bom desempenho. Também é salientado o acesso a um vasto conjunto de recursos como

redes, gráficos e I/O de dispositivos.

Figura 2.11: Robô móvel Robchair [Sousa et al. 2007].

26

Page 53: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Capítulo 3

Metodologias Propostas

Neste capítulo são descritos os métodos propostos e respectivos conceitos teóricos necessários para resolu-

ção dos problemas de localização e de navegação do robô móvel Rasteirinho. O corpo principal encontra-se

dividido em quatro secções. A primeira descreve os avanços efectuados na arquitectura do sistema de com-

putação do robô, bem como o controlador PI implementado no microcontrolador. Na segunda parte, são

abordados os problemas de localização local (hodometria), localização global (iGPS) e sua combinação. O

projecto de trajectórias e dum controlador não linear para fazer o seu seguimento são apresentados depois,

como solução ao problema de navegação dum robô móvel. Por último, é apresentada a arquitectura de

comunicação entre os dois agentes (robô e iGPS) por intermédio de WS.

3.1 Desenvolvimento do Robô Móvel Rasteirinho

3.1.1 Arquitectura do Sistema de Computação do Robô

A estrutura de computação do robô Rasteirinho encontra-se dividida em duas camadas: a de baixo nível e

a de alto nível, Figura 3.1. A camada de baixo nível é responsável pelo controlo em anel fechado do robô

e está embebida num microcontrolador; enquanto que a camada de alto nível pode realizar funções mais

complexas, como o seguimento de trajectórias ou o processamento de imagem, e encontra-se embebida

num PC portátil, pois este tem mais recursos (e.g., computação, memória, etc) e ainda possui interfaces

diversas para comunicação com outros dispositivos e/ou agentes (e.g., Wi-Fi, USB, FireWire, ethernet, RS-

232, etc).

Analisando a estrutura já existente verificou-se que a comunicação existente entre as duas camadas

encontrava-se definida de forma unidireccional, i.e., o controlador de alto nível apenas envia as velocidades

angulares de cada roda para o controlador de baixo nível. Por outro lado, não se encontrava definido um

protocolo que assegurasse a correcta recepção da informação por parte dos portos de ambas as camadas.

Esta arquitectura tinha como propósito minimizar algumas características não lineares do sistema como,

diferenças nos dois motores DC, níveis de bateria diferentes, etc, e assim minimizar o efeito da dinâmica do

robô móvel Carvalho [2008].

27

Page 54: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Figura 3.1: Arquitectura de computação do robô Rasteirinho.

Para estimar a localização do robô por hodometria foi necessário acrescentar mais um sentido na comuni-

cação. Assim, foi desenvolvida uma comunicação bidireccional entre ambas as camadas, com um protocolo

bem definido, Figura 3.1, de modo a dar robustez ao sistema. A metodologia para implementar este tipo

de comunicação no microcontrolador é descrita no Algoritmo 3.1. Resumidamente este algoritmo tem em

consideração que a comunicação é feita via porta série, portanto os caracteres são enviados e recebidos um

a um como um conjunto de 8 bits, sendo posteriormente guardados numa zona de memória rápida (buffer).

Estes caracteres são verificados à chegada até ser encontrado o terminador da mensagem. Se a mensagem

contida no buffer até ao terminador for válida então é actualizada a referência do controlador. Neste momento

é de imediato enviada uma mensagem de resposta para o controlador de alto nível com os valores das ve-

locidades reais de cada roda e referências recebidas. Esta mensagem é depois validada no PC portátil do

mesmo modo que no microcontrolador. Para uma mensagem ser válida tem de ter a estrutura "#MSG/r/n",

em que "MSG" é a mensagem.

Entrada : Velocidades desejadasSaída: Velocidades reaisEnquanto microcontrolador ligado fazer

se interrupção porta série activada entãoler caracter;colocar caracter em buffer;se caracter terminador então

verificar tamanho da mensagem recebida;se tamanho da mensagem == 5 então

actualizar referência (entrada);enviar via porta série velocidades desejadas e reais;reset buffer;

senãoincrementar uma posição ao buffer;

fimsenão

incrementar uma posição ao buffer;fimse buffer > 20 então

reset buffer;fim

fimfim

Algoritmo 3.1 : Algoritmo embebido no microcontrolador para comunicação bidireccional.

Com a comunicação a ser efectuada nos dois sentidos foi possível estimar os parâmetros do modelo de

cada motor do robô móvel, para projecto dum controlador de baixo nível (seguimento de referências) e outro

de alto nível (seguimento de trajectórias) em ambiente de simulação, para posterior implementação.

28

Page 55: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

3.1.2 Estimação dos Parâmetros dos Actuadores

O robô móvel Rasteirinho é constituído por dois motores eléctricos que podem ser modelados como um

sistema de segunda ordem se o objectivo for determinar a relação entre a entrada em tensão e a saída em

velocidade angular. De acordo com Dorf & Bishop [2008] a função de transferência que representa esta

relação é,

Φ(s)

V (s)=

KJL

s2 +JR+BL

JL s + BR+K 2

JL

(3.1)

em que Φ(s) é a velocidade angular, V (s) é a tensão aplicada, J e R são a inércia e a resistência do rotor, K

é a constante do binário, L a indutância e finalmente B é constante de atrito do binário.

Para completar a modelação do motor eléctrico foram ainda consideradas duas não linearidades:

1. Acção de controlo confinada ao intervalo [0,12] volts;

2. Cada motor tem o seu atrito estático e dinâmico.

Os parâmetros do sistema de segunda ordem 3.1 foram estimados através da aquisição de dados expe-

rimentais, obtidos através do envio dum comando (tensão pretendida nos motores) para a camada de baixo

nível, que por sua vez devolve a velocidade angular de cada roda à camada de alto nível, Algoritmo 3.2.

Enquanto microcontrolador ligado fazeractuar motores;se interrupção encoders activada então

verificar qual dos encoders activou a porta;incrementar contador de pulsos do respectivo encoder;

fimse interrupção relógio RTCC activada então /* Interrupção responsável pelo tempo de amostragem */

calcular velocidades reais;reset contador de pulsos dos dois encoder;

fimfim

Algoritmo 3.2 : Algoritmo embebido no microcontrolador para aquisição de dados.

O cálculo das velocidades reais de cada roda é efectuado pelo microcontrolador, que recebe a informação

proveniente dos encoders sob a forma de pulsos. Se o número de pulsos for dividido pelo seu tempo de

amostragem, Ts , e multiplicado por uma constante C , é possível calcular-se a velocidade angular de cada

roda, ωd e ωe , em r ad .s−1. O cálculo destas constantes é feito nas seguintes equações,

Ts =255

20M H z256×4×255

= 13.1 ms (3.2)

C =2π

400Ts≈ 1.2

r ad

N .s(3.3)

em que as quantidades envolvidas no cálculo de Ts estão directamente envolvidas com as características do

microcontrolador, e a expressão de C encontra-se relacionada com as propriedades dos encoders.

3.1.3 Controlador Embebido no Microcontrolador

Foi escolhido um controlador PI para controlar cada motor. São dois os motivos: primeiro, ser capaz de

reduzir o erro estacionário em relação à referência; segundo, por não ser necessário um termo derivativo

29

Page 56: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

que eventualmente possa vir a causar o escorregamento do robô. O menor peso computacional também foi

tido em conta.

O projecto destes controladores teve em consideração dois requisitos fundamentais:

1. As respostas dos dois motores serem o mais semelhantes possível, de forma a evitar comportamentos

de fase não-mínima verificados por [Mestre 2008];

2. Os dois motores atingirem a referência de forma rápida, mas sem escorregamento das rodas.

Por outro lado, este controlador sendo linear, não vai corresponder sempre da forma projectada devido a, por

exemplo, comportamentos não lineares dos motores e baterias, ou a alterações no peso da carga do robô e

sua distribuição. Com as especificações de projecto em mente foi projectado o controlador discreto, Gc (z),

Gc (z)

Controlador PI

HGP (z)

Motoru(k)

Encoder

Medição

Vd + e(k) Velocidade Actual−

Velocidade Medida

Figura 3.2: Diagrama de blocos do anel de controlo implementado no microcontrolador.

ilustrado no diagrama de blocos da Figura 3.2. O cálculo da consequente acção de controlo, u(k) foi feito via

aproximação rectangular para a frente (Euler), pela seguinte equação às diferenças,

u(k) = u(k −1)+Kp

[

e(k)+T0

Tie(k −1)

]

(3.4)

em que os parâmetros a estimar são KP e Ti respectivamente. Uma estimativa inicial destes parâmetros foi

feita utilizando o método do ganho crítico proposto por Ziegler & Nichols [1942], sendo de seguida realizado

um ajusto fino até serem satisfeitos os requisitos já mencionados. O controlador foi depois implementado no

microcontrolador de acordo com Algoritmo 3.3.

Entrada : Velocidades desejadasSaída: Acção de controloEnquanto microcontrolador está ligado fazer

se interrupção encoders activada entãoverificar qual dos encoders activou a porta;incrementar contador de pulsos do respectivo encoder;

fimse interrupção relógio RTCC activada então /* Interrupção responsável pelo tempo de amostragem */

calcular velocidades reais;calcular acção de controlo (controlador PI);actuar motores;reset contador de pulsos dos dois encoder;

fimfim

Algoritmo 3.3 : Algoritmo embebido no microcontrolador para controlo do robô.

30

Page 57: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

3.2 Localização do Robô Rasteirinho

A localização do robô móvel é feita por hodometria com correcções por parte do sistema iGPS. O primeiro

sistema permite estimar a localização por integração das velocidades das rodas do robô. Por outro lado,

o segundo sistema estima a localização global do robô através da utilização duma câmara montada no

tecto. Segue-se a descrição destes dois sistemas e a apresentação do FK como o método para combinar a

informação de ambos os sistemas. Mas antes uma breve observação.

Assunção 3.1. Nesta dissertação assumiu-se que a localização inicial do robô é sempre conhecida no

referencial global devido à existência do sistema iGPS. Para que esta suposição seja verdadeira o robô tem

de se encontrar inicialmente posicionado no campo de visão do iGPS.

y

x

θ

ω

v

P

O

yP

xP

yrxr

d

Figura 3.3: Referenciais global (Ox y) e móvel (P xr yr ).

3.2.1 Hodometria

No robô móvel Rasteirinho encontram-se dois sensores (encoders incrementais) cujo objectivo é fazer a

medição do deslocamento angular de cada roda, para posterior cálculo da respectiva velocidade angular.

Tendo em conta o modelo cinemático do robô e integrando as respectivas velocidades é possível obter o

deslocamento do centróide do robô no referencial global inercial (Ox y), Figura 3.2. O modelo cinemático de

um robô diferencial como o Rasteirinho é dado por,

x

y

θ

= g1(q)v + g2(q)ω=

cosθ

sinθ

0

v +

0

0

1

ω (3.5)

nas coordenadas generalizadas q = (x, y,θ). Este sistema de equações relaciona as velocidades no refer-

encial do robô, (v,ω), com as velocidades no referencial inercial, (x, y , θ). Para além deste modelo, um robô

diferencial deste género é caracterizado por ter constrangimentos não-holonómicos, i.e., constrangimentos

diferenciais não integráveis em relação às velocidades generalizadas. Este constrangimento indica que é

31

Page 58: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

impossível ao robô ter velocidade perpendicular ao seu movimento,

x sinθ− y cosθ = 0 (3.6)

A velocidade linear e angular do robô, v e ω, são calculadas pelas equações 3.7 com o conhecimento das

respectivas velocidades angulares de cada roda, Ωd e Ωe .

v =r (Ωd +Ωe )

2, ω=

r (Ωd −Ωe )

d(3.7)

Sabendo v e ω é possível integrar numericamente o modelo cinemático discretizado, de forma a determinar

a postura do robô relativamente ao instante de tempo anterior. Com conhecimento da sua posição global

inicial obtém-se a postura global, (x, y,θ).

3.2.2 Sistema iGPS

No LCAR, foi instalado um sistema iGPS composto por uma câmara comum ligada a um PC, com o objectivo

de estimar a postura (posição e orientação) do robô Rasteirinho ao longo de uma área considerável. Por este

motivo, a câmara foi instalada perto do tecto, enquanto que dois alvos de cores distintas foram colocados

no robô de modo a determinar a sua postura, como ilustrado na Figura 3.4. Embora Carvalho [2008] tenha

desenvolvido um sistema semelhante, o método utilizado para identificação do robô era sensível às condições

de iluminação do ambiente interior. Por este motivo, foi utilizado um método mais robusto para classificação

da cor dos alvos, com base na distância de Mahalanobis proposto por [Christo et al. 2009]. Este método é

descrito de seguida, sendo depois abordado o problema de seguimento dos alvos e por último, o problema

de calibração da câmara. Mas antes duas breves notas sobre a montagem experimental do sistema iGPS.

Assunção 3.2. Ao longo desta dissertação considerou-se que a câmara instalada encontra-se a uma altura

fixa e orientada segundo o seu eixo óptico, Z, perpendicularmente ao chão. Deste modo pode-se desprezar

a orientação da câmara.

Assunção 3.3. O centróide do alvo amarelo, que se encontra sensivelmente sobre as duas rodas motrizes,

representa o centróide do robô. Assim, o sistema iGPS para determinar a localização do robô apenas tem

de seguir o centróide do alvo amarelo. Ambos os alvos em conjunto têm como objectivo estimar a orientação

do robô.

Identificação dos Alvos

A postura do robô pode ser estimada pelo sistema iGPS através da colocação de dois alvos no robô - um

de cor amarelo à frente e outro de cor azul atrás. Assim, numa primeira fase estimaram-se os valores dos

parâmetros de cada modelo de cor do respectivo alvo; e numa segunda fase utilizaram-se estes parâmetros

para o cálculo da distância de Mahalanobis durante a execução do sistema iGPS desenvolvido. A câmara

presente no tecto envia imagens no espaço de cores RGB que depois são convertidas para o espaço YCbCr.

32

Page 59: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Figura 3.4: Representação do Sistema iGPS e do robô móvel Rasteirinho com os respectivos alvos.

Este é um espaço de cores uniforme que descreve uma imagem em termos de brilho (Y ) e de cor (Cb ,Cr )

através da seguinte relação,

Y

Cb

Cr

=

0.2989 0.5866 0.1145

−0.1688 −0.3312 0.5000

0.5000 −0.4184 −0.0816

R

G

B

(3.8)

Os valores dos canais da imagem Cb e Cr vão servir para estimar os parâmetros do modelo da cor de

cada um dos alvos, enquanto que o canal Y não é contabilizado, pois não contém informação sobre a cor.

Os parâmetros necessários para definir o modelo são: a média e a covariância entre os dois canais (Cb ,Cr ),

equações 3.9. Para os estimar foi recolhido experimentalmente um conjunto de Ni amostras de cada conjunto

i = Cb,Cr , representativos de uma região de interesse da imagem, i.e., uma zona onde todos os píxeis

pertencem ao alvo a identificar, x j .

µi ,1

N

N∑

j=1

x j e cov(xC bj , xCr

j ), E [(xC bj −µC b)(xCr

j −µCr )]; (3.9)

Sabendo os valores dos dois parâmetros de cada modelo de cor (média e covariância) utilizou-se o Algoritmo

3.4 para fazer a classificação dos píxeis recolhidos pela câmara. De seguida, são apresentados os métodos

utilizados pelo respectivo algoritmo: a matriz de distâncias de Mahalanobis, o filtro FIR, o filtro de média e a

formação de conjuntos de píxeis.

Matriz de Distâncias de Mahalanobis. A matriz de distâncias de Mahalanobis é calculada da seguinte

maneira,

M(x j ,µi ,ci ), (x j −µi )T c−1i (x j −µi ) (3.10)

33

Page 60: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Entrada : imagem RGB; µik ; cik com i = Cb,Cr e k = al vo1 ,al vo2

Saída: imagem bináriaEnquanto camera estiver ligada fazer

converter imagem RGB para espaço de cores YCbCr;Para cada cork fazer

calcular M(x j ,µi ,ci );aplicar filtro FIR;se M(x j ,µi ,ci ) < Θ então

píxel ∈ a cork ;senão

píxel ∉ a cork ;fimaplicar filtro de mediana;formar conjuntos de píxeis ∈ cork ;Para cada conjuntom , m = 1,2 fazer

se conjuntom ≥ λ píxeis então∃ al vok ;

senãoØ al vok ;

fimfim

fimfim

Algoritmo 3.4 : Algoritmo de visão para detectar de alvos.

onde x j = [Cb;Cr ] representa os dois canais Cb e Cr da imagem adquirida. Quanto menor for esta

distância mais perto estará um píxel do centro do cluster com coordenadas (µC b ,µCr ).

Filtro FIR 2D. Um filtro FIR baseia-se no método da convolução. A ideia básica subjacente neste filtro é

fazer com que uma janela, de tamanho e forma finitos, faça o varrimento da imagem de forma a torná-

la mais suave ou mais aguçada, dependendo dos coeficientes projectados para o filtro. Assim, o valor

final de cada píxel da imagem é a soma pesada do valor inicial dos píxeis pertencentes à janela, em

que os pesos são os coeficientes do filtro atribuídos a cada píxel da própria janela.

Dada uma imagem de dimensão M × N e um filtro h( j ,k) de dimensões J ×K (considerando que as

coordenadas ( j ,k) = (0,0) encontram-se no centro do filtro) então o integral de convolução pode ser

escrito como uma soma finita,

C (m,n) =J−1∑

j=0

K−1∑

k=0

h( j ,k)∗a(m − j ,n−k) (3.11)

em que m = 0,1, . . . , M ; n = 0,1, . . . , N e a operação de convolução é representada por ∗. Desta

operação obtém-se a imagem filtrada.

Filtro de Mediana. Segundo Gonzalez & Woods [2007] o filtro de mediana é o filtro estatístico mais utilizado

no processamento de imagem devido às excelentes características para a remoção de ruído. Como o

próprio nome indica, é utilizada a mediana dos píxeis vizinhos de um determinado píxel, para deter-

minar o seu valor. Entenda-se o conceito de vizinhos como os píxeis pertencentes a um subconjunto

da imagem à excepção do seu centro. Sendo (x, y) a coordenada de um pixel de uma determinada

imagem, Sx y uma vizinhança centrada nesse ponto com tamanho fixo, e g (s, t) o valor do píxel em

coordenadas do subconjunto, é possível definir a imagem filtrada como,

f (x, y) =mediana(s,t )∈Sx y

g (s, t) (3.12)

34

Page 61: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Operações Morfológicas. Ao contrário dos filtros abordados anteriormente para o processamento de im-

agem, em que uma imagem continua uma imagem após o processamento, as operações morfológicas

são capazes de realçar características dando assim "significado" à respectiva imagem, [Gonzalez &

Woods 2007]. Nesta dissertação, a única característica que interessa identificar na imagem são os

alvos que determinam a postura do robô; estes têm geometria circular, portanto podem ser utiliza-

dos elementos estruturais com a forma dum disco, com raio r , para os alvos ficarem com uma forma

definida e suave. Assim, é necessário primeiro efectuar uma operação de dilatação seguida de uma

operação de erosão, ou matematicamente,

A •B = (A⊕B)⊖B (3.13)

em que A é a imagem binária e B é o elemento estrutural escolhido para realizar as operações mor-

fológicas.

Seguimento de um Alvo

Geralmente o seguimento de objectos é feito através dum FK, de modo a lidar com o ruído introduzido pelo

sensor CMOS. Este filtro recursivo estatístico encontra-se descrito com detalhe em [Welch & Bishop 1995].

Nesta dissertação, o estado de cada alvo é representado pela sua posição (x, y) e pela respectiva velocidade

(vx , vy ); portanto estas quatro variáveis são os elementos do vector de estados xk do sistema que se assume

linear. Para o seguimento do centróide de um alvo é necessário ter em consideração que a nova posição

(x, y) é a anterior mais a velocidade (d x,d y) e o ruído associado. Assim, a matriz de transição de estados,

A, é preenchida da forma ilustrada na equação 3.14, enquanto que a matriz de observações, H , tem em

consideração apenas a medição da posição do centróide do alvo.

A =

1 0 1 0

0 1 0 1

0 0 1 0

0 0 0 1

, H =

1 0 0 0

0 1 0 0

(3.14)

A representação em espaço de estados fica,

xk = Axk−1 +wk−1 (3.15)

zk = H xk + vk (3.16)

em que o ruído do processo, wk , e o ruído das observações, vk , seguem uma distribuição Gaussiana N (0,Qk)

e N (0,Rk ).

Calibração da Câmara

O mundo em que vivemos é tridimensional, portanto qualquer ponto no seu espaço pode ser especificado

por três coordenadas (X,Y,Z). Por outro lado, numa imagem, um ponto é representado por apenas duas

35

Page 62: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

O

i

j

Plano da

Imag

em

Q = (X ,Y , Z )

q = (x, y, f )Eixo Óptico

kf

Figura 3.5: Representação do modelo duma câmara tipo pinhole simplificado.

coordenadas (x,y), visto que se encontra num plano bidimensional. É possível representar este fenómeno

físico de uma forma muito simples: através do modelo de uma câmara tipo pinhole. Este modelo, utilizado

por [e.g. Silva 2008, Carvalho 2008, Blanco 2009], considera que a luz do cenário é projectada no plano

da imagem da câmara, mas apenas um único raio vindo de um ponto particular da envolvente é que é

projectado. Como resultado a imagem projectada no seu plano encontra-se sempre focada e o seu tamanho

relativamente a um objecto distante é dada apenas por um único parâmetro da câmara: a sua distância

focal, f . Conhecendo esta distância e observando a Figura 3.5 verifica-se pela relação entre triângulos

semelhantes que,x

f=

X

Z,

y

f=

Y

Z(3.17)

Deste modo consegue-se determinar a posição do ponto Q no referencial global (i , j , k), em relação ao

centro de projecção O. De notar que a intersecção do eixo óptico com o plano da imagem tem o nome de

ponto principal. Segundo Bradski & Kaehler [2008] o centro de um sensor CMOS embebido em câmaras

comuns geralmente não se encontra sobre o eixo óptico, sendo necessário introduzir no modelo da câmara

a translação do ponto principal,

x = fx

(

X

Z

)

+cx , y = fy

(

Y

Z

)

+cy (3.18)

Distorção. O modelo utilizado considera que os raios de luz atravessam um pinhole, portanto são muito

poucos os raios adquiridos por unidade de tempo para que se possa formar uma imagem a uma

frequência de amostragem rápida. Este problema é ultrapassado através da utilização de lentes; estas

conseguem fazer convergir mais raios de luz de uma área maior para depois focá-los no sensor da

câmara. Contudo, esta solução introduz distorção na imagem adquirida, que, de acordo com Bradski

& Kaehler [2008] pode ser de dois tipos: radial e tangencial; a distorção radial é devida à forma da

lente, enquanto que a distorção tangencial é devida à lente não ser completamente paralela ao plano

da imagem. Nesta dissertação foi considerada apenas a distorção radial que segundo [Zhang 1999]

é a mais significativa numa câmara comum. Na prática esta distorção é pequena pelo que pode ser

36

Page 63: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

caracterizada pelos primeiros dois termos da expansão de Taylor na vizinhança de r = 0 [Heikkilä &

Silven 1997]. De notar que apenas os termos de potência par são considerados devido à simetria em

r do polinómio. Deste modo a função da distorção fica,

xc = x(1+k1r 2 +k2r 4) (3.19)

yc = y(1+k1r 2+k2r 4)

em que r 2 = x2 + y2, (x, y) corresponde à localização inicial do ponto distorcido no plano da imagem e

(xc , yc ) corresponde à localização do ponto corrigido.

Calibração. Depois de abordados os conceitos teóricos fundamentais sobre a modelação de uma câmara

comum, e de serem apresentadas as propriedades intrínsecas e de distorção de uma câmara comum,

é necessário fazer a calibração da câmara utilizada pelo sistema iGPS. Com este objectivo em mente,

utilizou-se a ferramenta Camera Calibration Toolbox for Matlab® desenvolvida por [Bouguet 2008], que

exprime as ideias e metodologias apresentadas em diversas publicações na respectiva área cientifica

[e.g. Brown 1971, Tsai 1987, Heikkilä & Silven 1997, Clarke & Fryer 1998, Sturm & Maybank 1999,

Zhang 1999]. Mais concretamente, são estimados os seguintes parâmetros: distância focal f , centro

óptico c, factores de distorção radial kc , coeficiente de torção αc e a matriz da câmara dada por,

K K =

fx αc fx cx

0 fy cy

0 0 1

(3.20)

O procedimento efectuado foi o seguinte:

1. Colocar um alvo com padrão xadrez no campo de visão da câmara;

2. Fazer aquisição de 20 fotografias, com o alvo em diferentes posições e orientações;

3. Seguir instruções da toolbox já referida;

4. Guardar parâmetros já referidos.

Localização do Alvo. Supondo que um alvo se encontra no campo de visão da câmara, o sistema iGPS

tem agora a capacidade de estimar a sua localização no sistema métrico. Assim, se o centro dum alvo

é detectado no píxel (x, y) e tendo em conta a suposição 3.2, a localização do alvo pode ser estimada

em relação ao referencial global coincidente com a câmara (X0,Y0, Z0) fazendo:

1. Normalizar centróide de acordo com [Bouguet 2008]. Resulta (xn , yn);

2. Para (xn , yn ), calcular r =

x2n + y2

n ;

3. Determinar (xc , yc ) através da função de distorção, equações 3.19. Resulta uma nova posição

sem distorção radial, (xd , yd ). k1ek2 são obtidos no processo de calibração (kc );

4. Finalmente a localização métrico do alvo no referencial global, (X0,Y0, Z0), é calculada aplicando

a seguinte equação,

X = xc Z , Y = yc Z , Z = h, (3.21)

37

Page 64: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

sendo h a altura da câmara relativamente ao alvo.

3.2.3 Localização Híbrida

O robô móvel pode aproveitar a informação de localização global do sistema iGPS, de forma a corrigir o erro

acumulado devido à natureza do sistema de hodometria. Com este sistema híbrido é possível corrigir erros

de seguimento de trajectórias do robô ou, fazer com que o robô recupere de perturbações externas.

A combinação da informação é feita por um FK para seguimento do erro entre os dois sistemas de

localização (hodometria e iGPS), como descrito pelo Algoritmo 3.5. Para além dos estados de localização

também foram inseridas as velocidades linear e angular do robô, fazendo um total de cinco estados,(

ex

ey eθ v ω)

. As matrizes do processo, A, e de observações, H , são construídas de forma semelhante às

anteriores, utilizadas para seguimento dos alvos na secção 3.2.2.

Para cada instante de amostragem Ts fazerEnviar pedido de localização a WS;Receber informação de iGPS via WS ;se robô visível por sistema iGPS então

Reset integradores cinemáticos da localização;Activar FK;Calcular erro entre de localização entre robô e iGPS;FK realiza procedimento de correcção e previsão do erro;Adicionar erro filtrado a localização do robô por hodometria;

senãoLocalização por hodometria;

fimfim

Algoritmo 3.5 : Algoritmo de relocalização do robô com FK.

3.3 Navegação dum Robô Móvel

Nesta dissertação, o problema de navegação foi dividido em dois sub-problemas: primeiro, projectar uma

trajectória que cumpra o constrangimento não-holonómico inerente ao robô e ao mesmo tempo as limitações

dos actuadores/sensores; segundo, projectar um controlador capaz de fazer o seguimento da trajectórias.

Desta forma, são apresentadas nesta secção as metodologias propostas a estes dois sub-problemas.

3.3.1 Projecto de Trajectórias

É pretendido que um ponto representativo do centróide do robô, (x, y), siga uma trajectória cartesiana

(xd (t), yd (t)), com t ∈ [0,T ]. Relembrando que o modelo cinemático do robô é dado por,

x

y

θ

= g1(q)v + g2(q)ω=

cosθ

sinθ

0

v +

0

0

1

ω (3.22)

de forma a determinar a orientação do robô fica,

θ = AT AN 2(y , x)+kπ, k = 0,1, . . . (3.23)

38

Page 65: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

onde AT AN 2 é função inversa da tangente definida nos quatro quadrantes, i.e., definida entre [0,2π]. A

velocidade linear e angular do robô podem ser calculadas por,

vd (t)=±

x2d

(t)+ y2d

(t) (3.24)

ωd (t)=yd (t)xd (t)− xd (t)yd (t)

x2d

(t)+ y2d

(t)(3.25)

onde a velocidade angular é obtida derivando a equação 3.23 em ordem ao tempo. Uma propriedade deste

tipo de robôs é que, dada uma configuração inicial e uma trajectória consistente (xd (t), yd (t), xd (t), yd (t)),

existe apenas uma única trajectória associada, qd (t) =(

xd (t), yd (t),θd (t))

que pode ser calculada de um

modo puramente geométrico,

θd (t)= AT AN 2(

yd (t), xd (t))

+kπ, k = 0,1, . . . (3.26)

A trajectória cartesiana pode representar uma circunferência, uma sinusóide, um lemniscata, etc, de uma

forma parametrizada. No capítulo seguinte encontram-se definidas as trajectórias utilizadas. De notar que

as velocidades desejadas para o robô devem ser inferiores aos limites dos actuadores e sensores,

vd ≤ vm ax , ωd ≤ωmax (3.27)

3.3.2 Controlador para Seguimento de Trajectórias

Para que o robô seja capaz de seguir as trajectórias definidas foi necessário implementar um controlador,

para além do que existe no microcontrolador. O estudo da controlabilidade do robô é feita de seguida segundo

De Luca et al. [2001]. Definindo o erro de seguimento em torno da trajectória, qd (t), como q = q − qd e as

variações das acções de controlo como v = v − vd e ω = ω−ωd , é necessário fazer a linearização deste

sistema em torno da trajectória, visto que o modelo cinemático do robô não é controlável. Deste modo fica,

˙q =

0 0 −vd sinθd

0 0 vd cosθd

0 0 0

q +

cosθd 0

sinθd 0

0 0

v

ω

= A(t)q +B(t)

v

ω

(3.28)

Como o sistema linearizado é variante no tempo, uma condição de controlabilidade necessária e suficiente

é que o Gramiano da controlabilidade seja não singular. Contudo, uma análise mais simples pode ser feita

definindo o erro de seguimento dos estados através duma matriz de rotação,

qR =

cosθd sinθd 0

−sinθd cosθd 0

0 0 1

q (3.29)

39

Page 66: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Utilizando a equação 3.28 obtém-se,

˙qR =

0 ωd 0

−ωd 0 vd

0 0 0

qR +

1 0

0 0

0 1

v

ω

(3.30)

Quando vd e ωd são constantes o sistema linear acima torna-se invariante no tempo e controlável, pois a

matriz de controlabilidade,

C =

[

B AB A2B

]

=

1 0 0 0 −ω2d

vdωd

0 0 −ωd vd 0 0

0 1 0 0 0 0

(3.31)

tem característica 3 quando vd e ωd não são nulos. Assim é possível concluir que o sistema cinemático

pode ser localmente estabilizado por realimentação linear em torno de uma trajectória que consiste em

caminhos lineares ou circulares, executados a velocidades constantes. É possível utilizar técnicas de projecto

lineares de modo a obter estabilização local para trajectórias arbitrárias, mas possíveis, i.e., que satisfaçam

o constrangimento não-holonómico.

Visto que é possível fazer com que o robô tenda assimptoticamente para a referência é agora projectado

o controlador linear. Considerando que o erro se encontra definido em relação à orientação do robô num

dado instante de tempo, Figura 3.6, fica,

e1

e2

e3

=

cosθ sinθ 0

−sinθ cosθ 0

0 0 1

xd − x

yd − y

θd −θ

(3.32)

e utilizando a transformação de coordenadas do erro e o modelo cinemático do robô, equação 3.22, resulta

Figura 3.6: Erros de seguimento no referencial do robô [Klancar 2005].

40

Page 67: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

o seguinte modelo cinemático do erro,

e =

cose3 0

sin e3 0

0 1

vd

ωd

+

−1 e2

0 −e1

0 −1

v

ω

(3.33)

Considerando que as acções de controlo (v,ω) são compostas pela diferença entre a componente directa e

a componente proveniente da realimentação,

v = vd cose3 −u1 (3.34)

ω=ωd −u2

resulta a seguinte equação,

e =

0 ωd 0

−ωd 0 0

0 0 0

e +

0

sin e3

0

vd +

1 0

0 0

0 1

u1

u2

(3.35)

que linearizada em torno da trajectória de referência permite obter as mesmas equações 3.33 (lineares e

variantes no tempo), mas agora com estado e e acções de controlo,

u1 =−k1 e1 (3.36)

u2 =−k2si g n(vd (t)) e2 −k3 e3

A determinação dos ganhos do controlador (k1,k2,k3) é feita utilizando a equação característica do anel

fechado,

(λ+2ζa)(λ2+2ζaλ+a2), ζ, a > 0 (3.37)

que pode ter valores próprios constantes (um valor próprio negativo real em −2ζa e um par complexo com

uma frequência angular natural a > 0 e coeficiente de amortecimento ζ ∈ (0,1)) se os ganhos das equações

3.36 forem definidos da seguinte forma,

k1 = k3 = 2ζa , k2 =a2 −wd (t)2

|vd (t)|(3.38)

Contudo k2 vai tender para infinito à medida que vd → 0. Para resolver este problema é possível aplicar uma

relação de ganhos fazendo a = a(t)=√

ω2d

(t)+bv2d

(t) de modo a que,

k1 = k3 = 2ζ√

ω2d

(t)+bv2d

(t) , k2 = b|vd (t)| (3.39)

onde o factor b > 0 é um grau de liberdade adicional do controlador. De acordo com a análise de controlabili-

dade feita por De Luca et al. [2001], estes ganhos tendem para zero quando a controlabilidade local em torno

41

Page 68: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

da trajectória é perdida, i.e., quando o robô pára. Em termos das acções de controlo originais, esta abor-

dagem leva a um controlador não linear variante no tempo. É de realçar que mesmo que os valores próprios,

λ, sejam constantes com parte real negativa, esta lei de controlo não garante a estabilidade assimptótica do

erro de seguimento dos estados e, porque o sistema é variante no tempo. A lei de controlo força os erros e1 e

e3 a tenderem para zero, mas por outro lado nem sempre isto acontece para e2. Quando o robô se encontra

paralelo à trajectória, e1 = e2 = 0, e2 , 0 e a velocidade de referência vd = 0 o controlador não força e2 → 0,

contudo este erro encontra-se sempre confinado nesta situação [Klancar 2005].

Finalmente as acções de controlo (v,ω) são convertidas em velocidades angulares das rodas através das

seguintes equações,

Ωd =(v +ωd/2)

r, Ωe =

(v −ωd/2)

r(3.40)

3.4 Comunicação entre Agentes

A comunicação entre os dois agentes presentes no ambiente, robô móvel e iGPS, é essencial para a localiza-

ção híbrida do robô. Este encontra-se equipado com encoders para se localizar, mas com o passar do tempo

estes sensores são cada vez menos precisos devido ao acumular de erros [Borenstein et al. 1997]. Assim,

torna-se essencial o sistema iGPS como referência para correcção da posição do robô. A comunicação entre

estes agentes é feita através de WS.

3.4.1 Web Services

Os WS foram desenvolvidos para facilitar a interacção entre aplicações informáticas numa rede, como por

exemplo a internet. A comunicação é feita através de mensagens SOAP, escritas em XML e transportadas

normalmente sobre HTTP, de modo a ultrapassar constrangimentos de segurança ou firewalls. Nestas men-

sagens são descritos os pedidos, bem como o resultado do pedido de um cliente (aplicação).

Para um cliente descobrir um serviço apenas tem de se encaminhar a um repositório UDDI, onde pode

encontrar o serviço que necessita. Por outro lado, uma aplicação que disponibilize um serviço, tem de se

registar previamente nesse repositório. Este processo de procura/registo é feito utilizando mensagens XML

com especificação WSDL desenvolvida pelo W3C. Ver Figura 3.7.

Como vantagens, para além da facilidade de comunicação através de uma rede segura, estes serviços

têm subjacentes tecnologias que são abertas e bastante conhecidas (e.g. HTTP, SOAP, WSDL, UDDI, XML).

O seu desenvolvimento pode ser feito em diversas linguagens de programação (e.g. Java, C++, VB, C#), o

que faz com que as aplicações possam ser feitas para qualquer sistema operativo que tenha o ambiente de

desenvolvimento da linguagem. Outra vantagem baseia-se no facto de que os consumidores de um WS não

necessitam ter conhecimento acerca da plataforma ou linguagem de programação utilizada para implemen-

tar o serviço; apenas necessitam de perceber como enviar e receber mensagens SOAP. Nesta dissertação,

o sistema iGPS, descrito na secção anterior, pode ser visto como um agente capaz de fornecer serviços a

outros agentes, como por exemplo; localizar robôs no seu campo de visão, detectar obstáculos para alertar

um robô que esteja próximo. Para isto ser possível tem de ser estabelecida uma comunicação entre am-

bos. Deste modo, utilizou-se um WS desenvolvido por Christo & Cardeira [2007a], onde se encontram dois

42

Page 69: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Figura 3.7: Diagrama representativo da relação Cliente/Serviço no contexto de WS.

métodos disponíveis: Write_Position e Get_Position. É evidente que o primeiro método vai ser invocado

pelo sistema iGPS para enviar a localização do robô para uma base de dados. O segundo é invocado pelo

robô para actualizar a sua posição global. A adopção deste tipo de serviços permite o encapsulamento da

comunicação entre os agentes, que juntamente com as vantagens descritas acima, facilitam a integração de

novos agentes no meio.

Figura 3.8: Arquitectura de comunicação entre agentes: iGPS e robô Rasteirinho.

3.4.2 Interface Agentes - Web Services

O sistema iGPS, bem como o controlador de alto nível do robô Rasteirinho foram desenvolvidos no software

Matlab®/Simulink®; portanto, foi necessário implementar uma interface entre a aplicação Matlab®e o WS.

Esta interface, ilustrada na Figura 3.9, foi realizada da mesma forma para ambos os agentes, com apenas a

nuance de cada agente invocar o método que corresponde às suas necessidades.

Assim, foi criado um servidor OLE no Matlab® para que um agente possa comunicar com a biblioteca

COM, onde se encontram os métodos disponibilizados pelo WS. Depois, este concretiza a função desejada

43

Page 70: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

de acordo com o método invocado pelo agente; no caso do robô, o WS apenas acede a um registo de

posições (RP) para ir buscar o valor da sua localização e depois devolvê-lo, enquanto que no caso do iGPS,

o WS actualiza a posição do robô no RP.

Figura 3.9: Representação da interface Agentes - WS.

44

Page 71: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Capítulo 4

Implementação e Resultados

Neste capítulo são apresentadas implementações e respectivos resultados relativamente à localização do

robô e sua navegação. Na primeira secção encontram-se os resultados de simulação e experimentais do

desenvolvimento do robô, ou seja, são estimados os parâmetros dos modelos dos motores e do controlador

PI. Na secção 4.2 é descrita a implementação do sistema iGPS, dividida em três partes: estimação das

características dos alvos, seguimento e calibração da câmara. Na secção 4.3 são apresentados os resul-

tados relativamente aos dois sistemas de localização, assim como do sistema navegação do robô para três

trajectórias distintas: circunferência, sinusóide e lemniscata. Na secção 4.4 é descrita a implementação do

FK para combinação dos dados dos dois sistemas de localização de forma a corrigir a localização do robô.

São apresentados os resultados para o caso duma trajectória circular.

4.1 Robô Móvel

O protocolo de comunicação (Algoritmo 3.1) e os algoritmos para identificar e controlar o robô (3.2 e 3.3),

foram implementados na linguagem C e depois transformados em hexadecimais pelo compilador CCS, para

finalmente serem programados na memória do respectivo microcontrolador. Uma descrição detalhada das

configurações da porta série do PC, bem como o diagrama I/O do microcontrolador e uma breve explicação do

seu funcionamento, podem ser encontrados no Apêndice A. O código desenvolvido para o microcontrolador

encontra-se no Apêndice D.

De seguida, são estimados os parâmetros da função de transferência dos motores do robô, equação 3.1.

4.1.1 Estimação dos Parâmetros dos Actuadores

A aquisição dos dados experimentais com vista à estimação os parâmetros dos modelos foi feita em três

fases,

1. Variar a tensão nos motores até estes se encontrarem no limite da zona-morta;

2. Aplicar degrau de dois volts;

3. Guardar dados (velocidade angular das duas rodas).

45

Page 72: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Estimaram-se os parâmetros de um modelo ARX de segunda ordem através da toolbox de identificação de

sistemas do Matlab®. Foram obtidas as seguintes funções de transferência,

G(s)d to. =3.492

s2 +39.52s +102.2, G(s)esq. =

7.081

s2 +59.17s +208.6(4.1)

Nas Figuras 4.1(a) e 4.1(b) encontram-se ilustrados o sinal de identificação, as velocidades angulares adquiri-

das pelo microcontrolador e a saída dos modelos identificados. Foram adicionados alguns constrangimentos

à acção de controlo, para a modelação do veículo ficar mais completa: a acção de controlo foi constringida ao

intervalo [0,15] rad/s e considerou-se que existem dois tipos de atrito relativamente aos motores, o estático

e o dinâmico.

Atrito [volts] Motor dto. Motor esq.Estático 1.17 1.05Dinâmico 0.70 0.59

Tabela 4.1: Atrito estático e dinâmico de cada actuador do robô.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

1

2

3

4

5

6

7

8

(a) Motor direito: degrau (−−) (volts), ωr eal (−) (rad/s)ωmodel o (−−−) (rad/s) vs. tempo(s)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

1

2

3

4

5

6

7

8

(b) Motor esquerdo: degrau (−−)(volts), ωr eal (−), ωmodel o(−−−) (rad/s) vs. tempo (s)

Figura 4.1: Resultados da identificação dos motores do robô.

4.1.2 Controlador Embebido no Microcontrolador

Resultados de Simulação

O controlador PI foi primeiro testado em ambiente de simulação, encontrando-se na Tabela 4.2 os parâmetros

escolhidos KP , Ti e T0 de forma a cumprir as especificações de projecto descritas na secção 3.1.3. Na Figura

4.2 é possível observar-se as respostas de ambos os modelos e respectivas acções de controlo. A simulação

foi realizada em Simulink®.

KP Ti T0

Motor dto. 5 0.1 0.04Motor esq. 3 0.12 0.04

Tabela 4.2: Ganhos do controlador PI implementado em Simulink®.

46

Page 73: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Observando as respostas dos dois motores à referência ω = 5 rad/s, Figura 4.2(a), identificaram-se os

parâmetros indicados na Tabela 4.3. Registaram-se também as acções de controlo em cada motor, ilustradas

na Figura 4.2(b). De notar que estas são suaves e não saturam para as velocidades angulares pedidas.

ts [s] tp [s] MP [%]

Motor dto. 0.28 0.297 20

Motor esq. 0.32 0.493 20

Tabela 4.3: Parâmetros da resposta dos motores (simulação).

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

1

2

3

4

5

6

(a) Resposta dos dois motores com controlador PI: Ωr e f(−−), Ωd (−−−), Ωe (−) (rad/s) vs. tempo (s).

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

(b) Acções de controlo nos motores direito (−−−) e esquerdo(−): Tensão (volts) vs. tempo (s).

Figura 4.2: Resposta dos motores direito e esquerdo devida a acção de controlo com controlador PI projec-tado.

Resultados Experimentais

No LCAR foi testado o controlador projectado no veículo Rasteirinho. Primeiro, foi necessário programar o

microcontrolador e de seguida efectuar uma afinação dos parâmetros do controlador. Assim obtiveram-se os

ganhos da Tabela 4.4. A resposta dos dois motores é ilustrada na Figura 4.3(a) e pode ser definida pelos

KP Ti T0

Motor dto. 6 0.24 0.04Motor esq. 4 0.16 0.04

Tabela 4.4: Ganhos do controlador PI implementado no veículo.

parâmetros Tabela 4.5. Como seria de esperar os dois motores têm comportamentos semelhantes, visto que

foram enviadas referências de velocidade iguais para os motores e o controlador.

Comparando com os parâmetros identificados na simulação é possível verificar que os motores têm na

realidade um tempo de subida e de pico mais longos.

tr [s] tp [s] MP [%] ess[%]

Motor dto. 0.84 1.2 20 20

Motor esq. 0.84 1.08 20 20

Tabela 4.5: Parâmetros da resposta experimental.

Com estas velocidades o robô percorreu o caminho ilustrado na Figura 4.3(b) e 4.4.

47

Page 74: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

1

2

3

4

5

6

7

8

9

10

(a) Resposta dos motores, direito (−−−) e esquerdo (−), areferência (−−): ω (rad/s) vs. tempo (s)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

(b) Trajectória seguida pelo robô: x (−−−), y (−) (m), θ(−−)

(rad) vs. tempo (s).

Figura 4.3: Resposta dos motores do robô a referência de 5 rad/s.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

Figura 4.4: Caminho percorrido pelo robô com referência de 5 rad/s: x (m) vs. y (m).

4.2 Sistema iGPS

Os métodos descritos na secção 3.2.2 foram implementados em Simulink® , e como resultado obteve-se o

modelo da Figura B.3. A execução deste modelo permite estimar a localização do robô por intermédio da

identificação de um alvo amarelo e outro azul, como ilustrado na Figura 4.6(a). A identificação dos principais

parâmetros utilizados na identificação dos alvos é descrita de seguida.

4.2.1 Identificação das Propriedades dos Alvos

Foi feita a aquisição de cerca de dez segundos de vídeo no espaço de cores Y CB Cr . A zona de interesse do

vídeo de onde se retirou a informação, (Cb ,Cr ), encontrava-se localizada directamente sobre os píxeis que

contêm os alvos. Os valores estimados da média e covariância destes dois canais de cor, para cada alvo,

encontram-se na Tabela 4.6. Com estes parâmetros, pode-se efectuar o cálculo da distância de Mahalanobis

para cada um dos píxeis do vídeo adquirido, Figura 4.5. Observando esta imagem, é possível verificar que

todos os píxeis se encontram a uma distância inferior a 40, relativamente à média. Este, é um valor que pode

ser utilizado para definir a fronteira, no respectivo espaço de cores, entre os pontos pertencentes ao alvo e

os não pertencentes ao alvo. Como a imagem do vídeo tem algum ruído foi escolhida uma distância mais

curta, que permita reduzir o número de classificações erradas. Depois de diversas observações empíricas,

optou-se pela distância 25 para ambas as cores. O resultado da aplicação desta distância, juntamente com

48

Page 75: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

CorMédi a inv(Cov)

Cb Cr inv(Cov1,1) inv(Cov1,2) inv(Cov21 ) i nv(Cov2,2)

Amarelo 92.0 148.8 0.10 0.02 0.02 0.11

Azul 143.0 98.7 0.15 0.16 0.16 0.27

Tabela 4.6: Média e covariância dos canais de cor (Cb ,Cr ) dos dois alvos.

Figura 4.5: Média e distância de Mahalanobis de ambas as cores.

as técnicas de processamento e segmentação de imagem descritas na secção 3.2, permitiram a identificação

dos dois alvos sob a forma binária, Figura 4.6(b).

4.2.2 Seguimento do Robô

O seguimento do robô foi feito através do FK descrito na secção 3.2.2. As matrizes de covariância do ruído

do processo e das medições, w e v , foram determinadas por observação empírica,

w = di ag(

0.5 0.5 0.5 0.5)

, v = di ag(

2 2)

(4.2)

(a) Robô identificado pelo sistema iGPS. (b) Imagem binária resultante da aplicaçãoda distância de Mahalanobis e técnicasde processamento de imagem.

Figura 4.6: Imagem adquirida pelo sistema iGPS com identificação dos dois alvos do robô.

49

Page 76: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

(a) (b)

Figura 4.7: Duas das vinte imagens que serviram para calibrar a câmara.

−1 −0.5 0 0.5 1

−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x

y

Figura 4.8: Erro de projecção: x (píxel) vs. y (píxel).

4.2.3 Calibração da Câmara

Ao longo do procedimento de calibração da câmara foram utilizadas vinte imagens, das quais, duas encontram-

se ilustradas na Figura 4.7. No fim deste procedimento foram devolvidos os erros de projecção dos cantos do

padrão xadrez, estimados de forma automática. Este é um erro geométrico que corresponde à distância na

imagem, entre o ponto projectado e o medido, e que é utilizado para quantificar o quão bem uma estimativa

de um ponto tridimensional recria a verdadeira projecção do ponto. Verifica-se pela Figura 4.8 que este erro

encontra-se limitado no intervalo ±1 píxel.

Obtiveram-se também os diversos parâmetros da câmara, como o centro da imagem da câmara, cc, em

píxeis, a distância focal e o factor de correcção,

cc =

(

98.4 , 72.9

)

, f c =

(

248.3 , 248.8

)

, kc =

(

−0.2673 , 0.7268

)

(4.3)

A matriz de calibração fica,

K K =

248.3 0 98.4

0 248.8 72.9

0 0 1

(4.4)

Sabendo que a câmara se encontra a uma altura Z = 7.865 m relativamente ao plano dos alvos do robô,

então é possível determinar a localização do robô com base nas propriedades estimadas da câmara, como

descrito na secção 3.2.2.

50

Page 77: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

(a) Modelo completo da distorção da câmara identificadodurante calibração. Os símbolos, × e , representamo centro da imagem e a localização do ponto principal.Isolinhas representam conjuntos de pontos com deslo-camentos iguais (píxeis). x (píxel) vs. y (píxel).

(b) Erro radial estimado da distorção da câmara (píxeis). Ossímbolos, × e , representam o centro da imagem e alocalização do ponto principal. x (píxel) vs. y (píxel)

(c) Erro tangencial estimado da distorção da câmara (píx-eis). Os símbolos, × e , representam o centro da im-agem e a localização do ponto principal. x (píxel) vs. y(píxel)

Figura 4.9: Erros total, radial e tangencial da câmara, estimados experimentalmente.

A Figura 4.9(a) mostra o impacto do modelo completo de distorção (radial e tangencial) em cada píxel

da imagem. Cada seta representa o deslocamento efectivo de um píxel induzido pela distorção da lente.

Reparar que os pontos nos cantos superior e inferior esquerdo têm deslocamentos na ordem dos 4.5 píxeis e

nos cantos opostos praticamente não há distorção. Na Figura 4.9(b) é apresentado o impacto da componente

radial da distorção, e verifica-se que é muito semelhante ao modelo total de distorção, excepto no primeiro

quadrante, que devido à contribuição da componente tangencial, anulam-se. A componente tangencial da

distorção é apresentada na Figura 4.9(c), e o deslocamento máximo induzido é de 2 píxeis (no canto inferior

esquerdo).

4.3 Localização e Navegação

Como foi referido no capítulo anterior, a arquitectura do robô móvel encontra-se dividida em duas camadas;

uma assente num PC portátil e outra num microcontrolador. Na secção 4.1 foi abordada a implementação do

controlador da camada de baixo nível. Agora, na camada de alto nível, foi utilizada a plataforma Simulink®

51

Page 78: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

para implementar o controlador não linear, descrito na secção 3.3.2. Sendo esta uma ferramenta de sim-

ulação, foi fundamental introduzir o bloco Real-Time, Rouleau [2009], com um factor de escala igual a 1

segundo. Este bloco permite controlar o modo como o tempo de simulação avança, com a finalidade de

realizar a comunicação com o microcontrolador em tempo real aproximado. Resultados experimentais e de

simulação foram obtidos para as seguintes trajectórias: circunferência, sinusóide e lemniscata.

Outro pormenor de implementação, relembrando que a orientação do robô é calculada através da função

AT AN 2, esta repete-se a cada 2π, provocando uma descontinuidade na orientação, e ao mesmo tempo

prejudicando a estabilidade do controlador. Desta forma, torna-se fundamental aplicar o Algoritmo 4.1 no

Simulink®, como ilustrado na Figura 4.10.

O controlador tem apenas dois graus de liberdade, i.e., dois parâmetros que permitem modificar o seu

comportamento, ζ e b. Para as três trajectórias projectadas os parâmetros utilizados encontram-se na Tabela

4.7. As acções de controlo desejadas, vd e ωd , envolvidas na lei de controlo, são calculadas de acordo com

a equação 3.24.

Entrada : OrientaçãoSaída: Orientação corrigidaCalcular declive entre orientação actual e anterior;se |decl i ve| > 5 então

Adicionar 2πsi g n(decl i ve) à orientação;fim

Algoritmo 4.1 : Algoritmo para corrigir orientação do robô.

u2>5

sign

theta _star

1

z

1

k*2*pi

slope

+/− k*2pi

1

2*pi

0

|u|

theta

1

Figura 4.10: Correcção da orientação do robô.

Trajectória ζ b

Circular 0.4 7Sinusoidal 0.7 5Lemniscata 0.7 5

Tabela 4.7: Parâmetros do controlador utilizados nas três trajectórias.

De notar que o erro associado ao seguimento da trajectória encontra-se normalizado de acordo com

[De Luca et al. 2001]. Este é definido como,

en =

(ex coseθ)2 + (ey sin eθ)2 (4.5)

Nesta dissertação a localização inicial do robô é sempre conhecida e encontra-se num referencial fixo

52

Page 79: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

definido pelo sistema iGPS. Assim, o robô é sempre informado da sua localização global antes de iniciar as

suas tarefas. A configuração inicial do robô foi sempre coincidente com as condições iniciais da trajectória

de forma a não excitar a dinâmica do robô e comprometer a sua estabilidade.

Com o objectivo de comparar os resultados de simulação com os experimentais, primeiro foram realizados

os ensaios experimentais e só depois é que foram executados os modelos de simulação com os mesmos

parâmetros do controlador, sendo esta a ordem pela qual os resultados se encontram ordenados.

Circunferência

A circunferência foi definida pelas seguintes equações paramétricas,

xd (t) = 1.76+0.6cos(ωt), (4.6)

yd (t) = 0.84+0.6sin(ωt),

onde t ∈ [0,16] segundos e ω= 2πt f

rad/s. Esta é uma trajectória com acções de controlo constantes, v e ω, e

por isso o robô não apresenta dificuldades no seu seguimento, como demonstram os seguintes resultados.

Os resultados experimentais desta trajectória encontram-se ilustrados nas Figuras 4.11. Observando a

Figura 4.11(g), verifica-se que a hodometria tem erros muito pequenos (na ordem dos centímetros), que por

vezes não correspondem à realidade, pois observando o caminho percorrido pelo robô segundo o iGPS,

Figura 4.11(a), existe um pequeno erro na direcção radial que não é observável pelo robô, devido a acumu-

lação de erros dos respectivos sensores. Na Figura 4.11(h) os dois erros (posição e orientação) entre os

dois sistemas de localização, já se encontram na ordem dos decímetros. Para além disso a sua diferença

aumentou ao longo do tempo. As acções de controlo v e ω, Figuras 4.11(e) e 4.11(e), são bruscas no inicio

devido à velocidade nula do robô, e depois tendem para a referência, por onde ficam de forma oscilatória.

Os resultados de simulação encontram-se ilustrados nas Figuras 4.12. Verifica-se que o erro de segui-

mento é menor que o experimental. O seguimento da trajectória é semelhante ao experimental, Figuras

4.12(b) 4.12(c) e 4.12(d). As acções de controlo, Figuras 4.12(e) e 4.12(f), permitem o seguimento quase

perfeito da trajectória, embora tenham oscilações muito rápidas em torno das referências, tendo portanto,

dinâmicas um pouco diferentes das verificadas experimentalmente.

Sinusóide

A trajectória sinusóide é definida pelas seguintes equações paramétricas,

xd (t)= 0.31+0.5sin(ωt) (4.7)

yd (t)= 1+ωt

4

onde t ∈ [0,20] segundos, ω= 2πt f

. Esta é uma trajectória que excita o robô com variações rápidas na veloci-

dade das referências, provocando alguns problemas no seu seguimento.

Os resultados experimentais desta trajectória encontram-se ilustrados nas Figuras 4.13. Em relação aos

erros são semelhantes aos da trajectória circular. As acções de controlo v e ω, Figuras 4.13(e) e 4.13(e),

53

Page 80: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

estão constantemente a variar, com um bom seguimento por parte do controlador.

Os resultados de simulação encontram-se ilustrados nas Figuras 4.14. O seguimento da trajectória é

semelhante ao experimental, Figuras 4.14(b) 4.14(c) e 4.14(d). As acções de controlo, Figuras 4.12(e) e

4.12(f), permitem o seguimento quase perfeito da trajectória.

Lemniscata

A trajectória lemniscata é definida pelas seguintes equações paramétricas,

xd (t)= 1.31+0.6sin(t/6) (4.8)

yd (t)= 0.99+0.6sin(t/3)

onde t ∈ [0,37.8] segundos. Esta é uma trajectória que de forma persistente excita o robô com alterações

bruscas na velocidade das referências, provocando alguns erros de seguimento.

Os resultados experimentais desta trajectória encontram-se ilustrados nas Figuras 4.15. Observando a

Figura 4.15(g), verifica-se que o erro encontra-se na mesma ordem de grandeza que o anterior, assim como

os dois erros de comparação dos dois sistemas de localização Figura 4.15(h), embora haja uns picos na

orientação devidos a limitações de cálculo.

Os resultados de simulação encontram-se ilustrados nas Figuras 4.15. Verifica-se que a trajectória efec-

tuada é muito semelhante à experimental, Figuras 4.16(b), 4.16(c) e 4.16(d). As acções de controlo seguem

melhor as referências que experimentalmente.

54

Page 81: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 5 10 15 20 25 300.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 300

0.5

1

1.5

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 301

2

3

4

5

6

7

8

9

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

(g) Evolução do erro normalizado en (m) vs. tempo(s).

0 5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(h) Evolução dos erros entre robô e iGPS: (−) (m),orientação (−−) (rad) vs. tempo (s).

Figura 4.11: Resultados experimentais trajectória circular.

55

Page 82: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), posição inicial e final ().

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 300

0.5

1

1.5

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 300

1

2

3

4

5

6

7

8

9

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.005

0.01

0.015

0.02

0.025

0.03

(g) Evolução do erro normalizado: en (m) vs. tempo(s).

Figura 4.12: Resultados de simulação para trajectória circular.

56

Page 83: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 5 10 15 20 25 300.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 300.2

0.4

0.6

0.8

1

1.2

1.4

1.6

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 30−1.5

−1

−0.5

0

0.5

1

1.5

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.01

0.02

0.03

0.04

0.05

0.06

(g) Evolução do erro normalizado en (m) vs. tempo(s).

0 5 10 15 20 25 300

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(h) Evolução dos erros entre robô e iGPS: posição(−) (m), orientação (−−) (rad) vs. tempo (s).

Figura 4.13: Resultados experimentais trajectória sinusoidal.

57

Page 84: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), posição inicial e final ().

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 30−1.5

−1

−0.5

0

0.5

1

1.5

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 300

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 300

0.005

0.01

0.015

0.02

0.025

0.03

0.035

(g) Evolução do erro normalizado: en (m) vs. tempo(s).

Figura 4.14: Resultados de simulação para sinusóide.

58

Page 85: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 5 10 15 20 25 30 35 40 45 500.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 30 35 40 45 500

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 30 35 40 45 50−5

−4

−3

−2

−1

0

1

2

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 5 10 15 20 25 30 35 40 45 500

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30 35 40 45 50−1.5

−1

−0.5

0

0.5

1

1.5

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30 35 40 45 500

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1

(g) Evolução do erro normalizado en (m) vs. tempo(s).

0 5 10 15 20 25 30 35 40 45 500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

(h) Evolução dos erros entre robô e iGPS:posição(−) (m), orientação (−−) (rad) vs. tempo(s).

Figura 4.15: Resultados experimentais trajectória oito.

59

Page 86: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 5 10 15 20 25 30 35 40 45 500

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 30 35 40 45 500

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 30 35 40 45 50−5

−4

−3

−2

−1

0

1

2

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−).

0 5 10 15 20 25 30 35 40 45 500

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30 35 40 45 50−1.5

−1

−0.5

0

0.5

1

1.5

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 5 10 15 20 25 30 35 40 45 500

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

(g) Evolução do erro normalizado: en (m) vs. tempo(s).

Figura 4.16: Resultados de simulação para oito.

60

Page 87: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

4.4 Relocalização

Nesta secção, são apresentados os resultados dos problemas de localização e navegação com o auxílio do

sistema iGPS. A experiência laboratorial tem por base uma trajectória circular idêntica à utilizada na secção

anterior, com a nuance do número de voltas ter aumentado para dez. O objectivo é corrigir o potencial

erro proveniente do sistema de hodometria ao longo das dez voltas, através da combinação das medições

dos dois sistemas de localização e também das velocidades reais do robô. Por sua vez, os parâmetros do

controlador foram mantidos constantes.

Para que fosse possível uma análise comparativa, foram realizados dois ensaios experimentais:

1. A localização do robô é estimada por um FK que combina a informação de localização local (hodome-

tria) com a informação de localização global (iGPS) e com as velocidades actuais do robô (v , ω).

2. A localização do robô é apenas feita pelo sistema de hodometria, como na secção anterior.

4.4.1 Filtro de Kalman

A combinação da informação proveniente dos dois sistemas foi realizada por um FK implementado da forma

ilustrada na Figura 4.17 em Simulink®. A matriz de transição de estados, A, e a matriz de observações, H,

robo*

1

KalmanFilter

Z

Enable

Z

Z_estZ_estZ_estZ_estZ_estZ_est

iGPS visivel

3

iGPS

2

robo

1

Figura 4.17: Relocalização do robô: combinação da informação através de FK.

encontram-se já definidas na secção 3.2. Por outro lado, os ruídos do processo e das observações foram

determinados por observação empírica,

w = di ag(

1 1 1 1 1 1)

, v = di ag(

1 1 1)

(4.9)

4.4.2 Ensaio 1

Os resultados do primeiro ensaio encontram-se na Figura 4.18. Pode-se concluir pela evolução do estado

do robô, (x(t), y(t),θ(t)), que a combinação da informação leva à correcção do erro de hodometria, Figuras

4.18(b), 4.18(c), 4.18(d). Observando o erro normalizado verifica-se que o valor máximo de erro é de 12 cm,

enquanto que o erro dos dois sistemas de localização é no máximo 8 cm, Figuras 4.18(g) e 4.18(h). Por outro

lado, as acções de controlo são muito rápidas, de forma a minimizar o erro de localização, Figuras 4.18(e) e

4.18(f).

61

Page 88: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

4.4.3 Ensaio 2

Os resultados do segundo ensaio encontram-se na Figura 4.19. Estes resultados mostram que o robô já

não se encontrava nas mesmas condições que na secção anterior, quando realizou a primeira circunferên-

cia. No inicio do movimento o robô descreveu uma trajectória muito larga, quase saindo da zona do iGPS,

Figura 4.19(a). Este facto por si só explica o porquê de no ensaio anterior, a primeira volta se diferenciar

das restantes, Figura 4.18(a). As restantes voltas deste segundo ensaio decorreram em torno duma circun-

ferência com outro centro, fazendo com que metade de cada volta não seja perceptível ao sistema iGPS,

Figura 4.19(a). Embora as acções de controlo estejam perto das respectivas referências e o erro seja muito

pequeno, Figura 4.19(g), a verdade, é que de acordo com a informação proveniente do sistema iGPS, o erro

normalizado chega a atingir os 1.6 m, Figura 4.19(h).

Analisando estes resultados e comparando com o objectivo inicial de corrigir apenas os erros de hodome-

tria do robô, verificou-se que o sistema de localização híbrido, para além de relocalizar o robô, também tem

o papel de supervisionar o comportamento do robô, pelo seguimento do erro entre os dois sistemas de

localização e das velocidades linear e angular do robô.

62

Page 89: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 20 40 60 80 100 120 140 160 1800.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 1800

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 1800

10

20

30

40

50

60

70

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 1800

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 20 40 60 80 100 120 140 160 180−0.2

0

0.2

0.4

0.6

0.8

1

1.2

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 20 40 60 80 100 120 140 1600

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

(g) Evolução do erro normalizado en (m) vs. tempo(s).

0 20 40 60 80 100 120 140 1600

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

(h) Evolução do erro normalizado de seguimentoentre robô e iGPS: erro (m) vs. tempo (s).

Figura 4.18: Resultados experimentais trajectória oito.

63

Page 90: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.80

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(a) Caminho percorrido, x (m) vs. y (m): referência(−−), robô (−), iGPS (−.), posição inicial e final().

0 20 40 60 80 100 120 140 160 1800

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(b) Evolução de x (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 1800

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(c) Evolução de y (m) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 180−10

0

10

20

30

40

50

60

70

(d) Evolução de θ (rad) vs. tempo (s): referência(−−), robô (−), iGPS (−.).

0 20 40 60 80 100 120 140 160 1800

0.05

0.1

0.15

0.2

0.25

0.3

0.35

(e) Evolução de v (m/s) vs. tempo (s):referência(−−), real(−).

0 20 40 60 80 100 120 140 160 1800

0.1

0.2

0.3

0.4

0.5

0.6

0.7

(f) Evolução de ω (rad/s) vs. tempo (s):referência(−−), real(−).

0 20 40 60 80 100 120 140 1600

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

(g) Evolução do erro normalizado en (m) vs. tempo(s).

0 20 40 60 80 100 120 140 160 1800

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

(h) Evolução do erro normalizado de seguimentoentre robô e iGPS: erro (m) vs. tempo (s).

Figura 4.19: Resultados experimentais trajectória oito.

64

Page 91: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Capítulo 5

Conclusões e Trabalhos Futuros

5.1 Conclusões

Os métodos aplicados nesta dissertação permitiram relocalizar correctamente o robô móvel diferencial,

Rasteirinho, num recinto fechado. A localização local do robô foi delegada ao sistema de hodometria, en-

quanto que a localização global ficou a cargo do sistema iGPS. Um filtro de Kalman foi utilizado para combinar

a informação dos dois sistemas de modo a corrigir falhas inerentes ao sistema de hodometria. O problema

de navegação foi resolvido com a implementação dum controlador não linear capaz de fazer o seguimento

de trajectórias. Foi ainda realizada a integração dos dois agentes (robô e iGPS) na arquitectura SOA desen-

volvida por Christo & Cardeira [2007b], através de uma interface COM desenvolvida entre agentes e Web

Services .

A evolução efectuada na arquitectura de computação do robô, i.e., a comunicação bidireccional entre a

camada de alto nível e a de baixo nível, com um protocolo bem definido, fez com que fosse possível localizar

o robô com base em hodometria, assim como, conferiu-lhe maior estabilidade. O controlador PI melhorou

substancialmente o desempenho do robô para baixas velocidades, permitindo o seu movimento contínuo,

equilibrado e estável, e corrigiu os problemas detectados por [Mestre 2008].

Os resultados de simulação e experimentais demonstraram que o controlador não linear implementado

faz muito bem o seguimento de trajectórias, embora, segundo [Kozlowski et al. 2006] a afinação intuitiva dos

parâmetros do controlador e boa qualidade das acções de controlo durante o regime transiente continuam a

ser problemas abertos e requerem mais investigação.

A aquisição dos modelos dos motores permitiu obter um modelo para simulação do robô. Porém, foi

verificado que os modelos estimados tiveram pouca utilidade para este trabalho experimental. Isto deve-se

a dois motivos: os modelos de segunda ordem apenas representam uma versão simplificada dos motores e;

os modelos foram estimados para um ponto de operação definido pela velocidade angular da roda. Na ver-

dade, este ponto de operação é função de outros parâmetros não lineares, como a diferença de tensão nas

65

Page 92: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

baterias. Outro pormenor prende-se com o facto de ambos os motores serem iguais, mas encontrarem-se

montados de forma simétrica, o que faz com que o atrito dinâmico e a folga em cada motor sejam diferentes,

levando a comportamentos erráticos do robô (rotações), aquando de acelerações/desacelerações bruscas.

Este facto explica o comportamento do robô quando sujeito a correcções de localização menos frequentes.

Isto porque, foi verificado no decorrer desta dissertação que não é possível relocalizar o robô com tempos

de amostragem muito elevados, pois teoricamente o erro de localização aumenta, levando a que o robô ul-

trapasse os limites para os quais foi projectado, de forma a corrigir a sua localização. Esta reacção provoca

movimentos menos próprios e expõe de forma clara as limitações do robô.

O sistema iGPS desenvolvido faz a identificação e seguimento do robô de forma excepcional, como é

visível nos resultados experimentais, secção 4.3. A distância de Mahalanobis foi crucial para o bom desem-

penho do sistema de seguimento com filtro de Kalman. A calibração da câmara, por sua vez, foi fundamental

para se comparar a informação dos dois sistemas de localização no mesmo sistema métrico. Apenas foi uti-

lizado o modelo de distorção radial, embora, após calibração se tenha verificado que a distorção tangencial

era mais influente do que inicialmente previsto. Assim foi porque, depois de diversas medições e ensaios

experimentais, se chegou à conclusão que o erro do modelo de distorção utilizado não era crítico para ser

aplicado nesta dissertação.

A informação dos dois sistemas de localização foi relacionada por intermédio de um filtro de Kalman,

de forma a corrigir a postura do robô num recinto fechado. Esta correcção revelou ser uma mais valia,

tanto para o problema de localização, como para o de navegação, visto que, o robô é relocalizado de forma

suave através do seguimento do erro de localização e das velocidades do robô. Esta abordagem foi robusta

o suficiente para ultrapassar os comportamentos não lineares do robô já abordados, de acordo com os

resultados obtidos na secção 4.4.

5.2 Trabalhos Futuros

A localização e navegação de robôs móveis são dois problemas que podem ser tão complexos quanto se

queira. Embora as aplicações sejam mais apelativas, ainda não é possível antever uma aplicação para esta

dissertação, pois ainda são necessários inúmeros passos intermédios. Desta forma, serão abordados os

passos intermédios, e no final serão apresentadas algumas aplicações. Como extensão a esta dissertação,

• No lugar de o microcontrolador enviar as velocidades instantâneas de cada roda, passar a enviar o seu

deslocamento angular. Assim, é necessário estimar de novo os parâmetros dos modelos dos motores,

que segundo Dorf & Bishop [2008] é de terceira ordem. A utilização de um ICD é fundamental.

• Um controlador para seguimento de caminhos ou estabilização de posturas, no lugar do seguimento de

trajectórias. Isto porque, ao se utilizar um sistema de computação não determinístico é mais correcto

não ter em consideração as especificações de tempo do caminho a percorrer.

• Aumentar as capacidades sensoriais do robô (e.g., visão, sensores de distância), sem esquecer a

66

Page 93: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

quarta condição de Brooks, secção 2.5, de forma a implementar uma arquitectura SPA, mas com o

intuito de tornar a passagem para arquitectura 3T mais simples, visto que a sua complexidade é maior.

• Fazer o planeamento de caminhos num ambiente com obstáculos estáticos através de algoritmos como

o A∗, o Bug1, Bug2 ou Bug tangente.

• Aumentar a zona supervisionada com câmara ethernet já existente no laboratório.

• O sistema iGPS para além de prestar o serviço de localização, poderia vir a detectar obstáculos, sem

esquecer a quarta condição de Brooks.

• Actualizar Web Services para lidar com concorrência de recursos.

Portanto, o objectivo é tornar o robô cada vez mais autónomo, de modo a conseguir fazer tarefas básicas

como transporte de peças na zona da célula, servir de guia aos alunos do secundário, desligar as luzes do

laboratório ao fim do dia, realizar tarefas como se fossem serviços disponibilizados na internet, ou mesmo,

só para desenvolver ferramentas que possam ser úteis em outros projectos públicos.

67

Page 94: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

68

Page 95: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Referências

Arkin, R. [1987], Motor schema based navigation for a mobile robot: An approach to programming by behavior,

em ‘Proceedings of the IEEE’, Vol. 4, International Conference on Robotics and Automation, pp. 264–

271.

Arkin, R.C. & T. Balch [1997], ‘Aura: Principles and practice in review’, Journal of Experimental and Theoretical

Artificial Intelligence 9, 175–189.

Atiya, S. & G.D. Hager [1993], Real-time vision-based robot localization, em ‘Proceedings of the IEEE’, Vol. 9,

Transactions on Robotics and Automation, pp. 785–800.

Azevedo, J.L., M.B. Cunha & L. Almeida [2007], Hierarchical distributed architectures for autonomous mobile

robots: a case study, em ‘Proceedings of ETFA 2007’, 12th IEEE Conference on Emerging Technologies

and Factory Automation, Patras (Grece), pp. 973–980.

Azevedo, J.L., M.B. Cunha, N. Lau, A. Neves, G. Corrente, F. Santos, A. Pereira, L. Almeida, L.S. Lopes, P.

Pedreiras, J. Vieira, D. Martins, N. Figueiredo, J. Silva, N. Filipe & I. Pinheiro [2009], Cambada 2009:

Team description paper, Technical report, RoboCup 2009, Graz, Austria.

Baggio, A. & K. Langendoen [2006], Mobile Ad-hoc and Sensor Networks, Vol. 4325/2006 of Lecture Notes in

Computer Science, Springer Berlin / Heidelberg, capítulo Monte-Carlo Localization for Mobile Wireless

Sensor Networks, pp. 317–328.

Bar-Shalom, Y. & T. Foreman [1988], Tracking and Data Association, Academic Press Inc.

Barbalace, A., A. Luchetta, G. Manduchi, M. Moro, A. Soppelsa & C. Taliercio [2008], ‘Performance compari-

son of VxWorks, Linux, RTAI and Xenomai in a hard real-time application’, IEEE Transactions on Nuclear

Science 55(1), 435–439.

Barron, J., D. Fileet & S. Beauchemin [1994], ‘Performance of optical flow techniques’, International Journal

of Computer Vision 14(1), 43–77.

Barshan, B. & H.F. Durrant-Whyte [1995], Inertial navigation systems for mobile robots, em ‘Proceedings of

the IEEE’, Vol. 3, Transactions on Robotics and Automation, pp. 328–342.

Bekey, G., R. Ambrose, V. Kumar, A. Sanderson, B. Wilcox & Y. Zheng [2006], International assessment of

research and development in robotics, Technical report, World Technology Evaluation Center.

69

Page 96: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Bhattacharya, R. [2006], OPTRAGEN: A MATLAB toolbox for optimal trajectory generation, em ‘Proceedings

of the 45th IEEE’, Conference on Decision and Control, San Diego, CA, EUA, pp. 6832–6836.

Blanco, F. [2009], CT image based 3d reconstruction for computer aided orthopaedic surgery, Dissertação de

Mestrado, Universidade Técnica de Lisboa, Instituto Superior Técnico.

Bonasso, R.P. [1991], Integrating reaction plans and layered competences through synchronous control, em

‘IJCAI’91: Proceedings of the 12th international joint conference on Artificial intelligence’, Morgan Kauf-

mann Publishers Inc., San Francisco, CA, USA, pp. 1225–1231.

Bonasso, R.P., D. Kortenkamp, D.P. Miller & M. Slack [1997], ‘Experiences with an architecture for intelligent,

reactive agents’, Journal of Experimental and Theoretical Artificial Intelligence 9(2), 237–256.

Bonnifait, P.and G. Garcia [1996], A multisensor localization algorithm for mobile robots and its real-time

experimental validation, em ‘Proceedings of the IEEE’, Vol. 2, International Conference on Robotics and

Automation, Minneapolis, Minnesota, pp. 1395 – 1400.

Borenstein, J., H.R. Everett, L. Feng & D. Wehe [1997], ‘Mobile robot positioning: Sensors and techniques’,

Journal of Robotic Systems 14(4), 231–249. artigo convidado.

Bouguet, J.-Y. [2008], ‘Camera calibration toolbox for Matlab®’, ht t p :

//w w w.vi si on.cal tech.edu/boug uet j /cali b_doc/.

Bouguet, J.-Y. & P. Perona [1995], Visual navigation using a single camera, em ‘Proceedings of the 5th

International Conference on Computer Vision’, Cambridge, EUA, pp. 645–652.

Bradski, Gary & Adrian Kaehler [2008], Learning OpenCV - Computer Vision with the OpenCV Library,

O’Reilly, capítulo Camera Models and Calibration, pp. 370–404.

Broida, T. & R. Chellappa [1986], ‘Estimation of object motion parameters from noisy images’, IEEE Transac-

tions on Pattern Analysis and Machine Intelligence 8(1), 90–99.

Brooks, R.A. [1986], ‘A robust layered control system for a mobile robot’, IEEE Journal of Robotics and

Automation RA-2(1), 14–23.

Brown, D.C. [1971], Close-range camera calibration, Symposium on Close-Range Photogrammetry, Urbana,

Illinois.

Bucher, R. & S. Balemi [2005], Scilab/Scicos and Linux RTAI - a unified approach, em ‘Proceeding of the 2005

IEEE’, Conference on Control Applications, Toronto, Canadá, pp. 1121–1126.

Bucher, R. & S. Balemi [2006], ‘Rapid controller prototyping with Matlab/Simulink and Linux’, Control Engi-

neering Practice 14(2), 185–192. Special Section on Advances in Control Education.

Bucher, R. & S. Balemi [2008], CAN-bus based rapid control prototyping system for education laboratories,

em ‘Proceedings of the 17th World Congress’, The International Federation of Automatic Control, Seoul,

Korea, pp. 9761–9766.

70

Page 97: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Byrne, R.H. [1993], Global positioning system receiver evaluation results, Sandia Report SAND93-0827,

Sandia National Laboratories, Albuquerque, NM.

Byrne, R.H., P.R. Klarer & J.B. Pletta [1992], Techniques for autonomous navigation, Sandia Report SAND92-

0457, Sandia National Laboratories, Albuquerque, NM.

Canny, J. [1986], ‘A computational approach to edge detection’, IEEE Transactions on Pattern Analysis and

Machine Intelligence 8(6), 679–698.

Canudas de Wit, C., H. Khennouf, C. Samson & O. Sordalen [1993], Recent Trends in Mobile Robots, Vol. 11

of World Scientific Series in Robotics and Intelligent Systems, World Scientific Publisher, capítulo Non-

linear control design for mobile robots, pp. 121–156.

Cardeira, C. & J. Sá da Costa [2005], A low cost mobile robot for engineering education, em ‘Proceed-

ings of IECON 2005’, 31st Annual Conference of the IEEE Industrial Electronics Society, Raleigh, USA,

pp. 2162–2167.

Carvalho, E. [2008], Localization and cooperation of mobile robots applied to formation control, Dissertação

de Mestrado, Universidade Técnica de Lisboa, Instituto Superior Técnico, Lisboa, Portugal.

Caselles, V., R. Kimmel. & G. Sapiro [1999], Geodesic active contours, em ‘IEEE International Conference

on Computer Vision (ICCV)’, Vol. 2, Computer Society Conference on Computer Vision and Pattern

Recognition, pp. 694–699.

Choset, H. [1996], Sensor Based Motion Planning: The Hierarchical Generalized Voronoi Graph, Tese de

Doutoramento, California Institute of Technology, Pasadena, Califórnia.

Christo, C. & C. Cardeira [2007a], Plug-and-play autonomous mobile robot (p&pamr), em ‘Proceedings of the

IEEE’, International Symposium on Industrial Electronics (ISIE2007), Vigo, Espanha, pp. 3215–3220.

Christo, C. & C. Cardeira [2007b], Service oriented architecture for mobile robot localization, em ‘Proceedings

of ETFA 2007’, IEEE Conference on Emerging Technologies and Factory Automation, Patras, Greece,

pp. 888–891.

Christo, C., E. Carvalho, M.P. Silva & C. Cardeira [2009], Autonomous mobile robots localization with multiples

iGPS Web Services, em ‘Proceedings of 14th IEEE’, Conference on Emerging Technologies and Factory

Automation ETFA 2009, Maiorca, Espanha. CD-ROM.

Clarke, T.A. & J.G. Fryer [1998], The development of camera calibration methods and models, Vol. 16, Black-

well Publishing and the Remote Sensing and Photogrammetric Society, pp. 51–66.

Comaniciu, D. & P. Meer [1999], Mean shift analysis and applications, em ‘IEEE International Conference

on Computer Vision (ICCV)’, Vol. 2, Computer Society Conference on Computer Vision and Pattern

Recognition, pp. 1197–1203.

Connell, J. [1992], Sss: A hybrid architecture applied to robot navigation, em ‘Proceedings of the IEEE’,

International Conference on Robotics and Automation, Nice, França, pp. 2719–2724.

71

Page 98: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Cox, I.J. [1991], ‘Blanche - an experiment in guidance and navigation of an autonomous robot vehicle’, IEEE

Transactions on Robotics and Automation 7(2), 193–204.

Cox, I.J. [1993], ‘A review of statistical data association techniques for motion correspondence’, International

Journal of Computer Vision 10(1), 53–66.

Cox, I.J. & S.L. Hingorani [1996], ‘An efficient implementation of Reid’s multiple hypothesis tracking algorithm

and its evaluation for the purpose of visual tracking’, IEEE Transactions on Pattern Analysis and Machine

Intelligence 18(2), 138–150.

d’Andréa Novel, B., G. Campion & G. Bastin [1995], ‘Control of nonholonomic wheeled mobile robots by state

feedback linearization’, International Journal of Robotics Research 14(6), 543–559.

De Luca, A. & G. Oriolo [1995], Kinematics and Dynamics of Multi-Body Systems, Springer-Verlag, capítulo

Modeling and control of nonholonomic mechanical systems, pp. 277–342.

De Luca, A., G. Oriolo & M. Vendittelli [2001], Articulated and Mobile Robotics for Services and Technology,

Vol. 270 of Lecture Notes in Control and Information Sciences, Springer, capítulo Control of Wheeled

Mobile Robots: An Experimental Overview, pp. 181–226.

Dorf, R. & R. Bishop [2008], Modern Control Systems, 11ª ed., Pearson Prentice-Hall, capítulo Mathematical

Models of Systems, pp. 42–144.

Du, J.L., U. Witkowski & U. Rückert [2005], Teleoperation of a mobile autonomous robot using web services,

em ‘Proceedings of the 3rd International Symposium on Autonomous Minirobots for Research and Edu-

tainment (AMiRE 2005)’, Springer Berlin Heidelberg, pp. 55–60.

Durrant-Whyte, H. & T.C. Henderson [2008], Handbook of Robotics, Springer, capítulo Multisensor Data Fu-

sion, pp. 585–610.

Fernández, I., M. Mazo, J.L. Lázaro, D. Pizarro, E. Santiso, P. Martín & C. Losada [2007], ‘Guidance of

a mobile robot using an array of static cameras located in the environment’, Journal of Autonomous

Robots 23(4), 305–324.

Firby, R.J. [1987], An investigation into reactive planning in complex domains, em ‘Proceedings of the AAAI’,

pp. 202–206.

Firby, R.J. [1989], Adaptive Execution in Complex Dynamic Worlds, Tese de Doutoramento, Yale University,

New Haven.

Fox, D., J. Hightower, L. Liao, D. Schulz & G. Borriello [2003], ‘Bayesian filters for location estimation’, IEEE

Pervasive Computing 2(3), 24–33.

Fox, D., W. Burgard, F. Dellaert & S. Thrun [1999], Monte carlo localization: Efficient position estimation for

mobile robots, em ‘Proceedings of the National Conference on Artificial Intelligence’, pp. 343–349.

Ge, S. & Y. Cui [2000], ‘New potential functions for mobile robot path planning’, IEEE Transactions on Robotics

and Automation 16(5), 615–620.

72

Page 99: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Gonzalez, Rafael C. & Richard E. Woods [2007], Digital Image Processing, 3ªed., Prentice Hall, US, capítulo

Image Enhancement in the Spatial Domain, pp. 75–146.

Gordon, G., T. Darrell, M. Harville & J. Woodfill [1999], Background estimation and removal based on range

and color, em ‘Proceedings of the IEEE/CVPR’, Computer Society Conference on Computer Vision and

Pattern Recognition, Fort Collins, CO, pp. 459–464.

Grewe, L. & A. Kak [1995], ‘Interactive learning of a multiple-attribute hash table classifier for fast object

recognition’, Computer Vision Image Understanding 61(3), 387–416.

Gu, D. & H. Hu [2006], ‘Receding horizon tracking control of wheeled mobile robots’, IEEE Transactions on

Control Systems Technology 14(4), 743–749.

Hada, Y. & K. Takase [2001], Multiple mobile robot navigation using the indoor global positioning system

(igps), em ‘Proceedings of the IEEE/RSJ’, Vol. 2, International Conference on Intelligent Robots and

Systems, pp. 1005–1010.

Harris, C. & M. Stephens [1988], A combined corner and edge detector, em ‘Proceedings of The Fourth Alvey

Vision Conference’, pp. 147–151.

Heikkilä, J. & O. Silven [1997], A four-step camera calibration procedure with implicit image correction, em

‘Proceedings of IEEE’, Conference on Computer Vision and Pattern Recognition, San Juan, Puerto Rico,

pp. 1106–1112.

Henning, M. [2004], ‘A new approach to object-oriented middleware’, IEEE Internet Computing 8(1), 66–75.

Henning, M. [2006], ‘The rise and fall of corba’, ACM Queue 4(5), 28–34.

Horn, B. & B. Schunck [1981], ‘Determining optical flow’, Artificial Intelligence 17, 185–203.

Horswill, I. [1993], Polly: A vision-based artificial agent, em ‘Proceedings of the Eleventh National Conference

on Artificial Intelligence (AAAI-93)’, pp. 824–829.

Hsu, D., J.C. Latombe & R. Motwani [1999], ‘Path planning in expansive configuration spaces’, International

Journal of Computational Geometry and Applications 9(4), 495–512.

Jin, T., J. Lee & S.K. Tso [2004], ‘A new space and time sensor fusion method for mobile robot navigation’,

Journal of Robotic Systems 21(7), 389–400. Wiley Periodicals, Inc.

Kalman, R.E. [1960], A new approach to linear filtering and prediction problems, em ‘Journal of Basic Engi-

neering’, number 82 in ‘D’, Transactions of the ASME, pp. 35–45.

Kamon, I., E. Rimon & E. Rivlin [1998], ‘Tangentbug: A range-sensor-based navigation algorithm’, The Inter-

national Journal of Robotics Research 17(9), 934–953.

Kavraki, L.E., P. Švestka, J.C. Latombe & M.H. Overmars [1996], ‘Probabilistic roadmaps for path planning in

high-dimensional configuration spaces’, IEEE Transactions on Robotics and Automation 12(4), 566–580.

73

Page 100: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Khatib, O. [1986], ‘Real-time obstacle avoidance for manipulators and mobile robots’, The International Jour-

nal of Robotics Research 5(1), 90–98.

Klancar, G. D. Matko, Sašo Blažic [2005], Mobile robot control on a reference path, em ‘Proceedings of the

13th IEEE International Symposium on Intelligent Control’, Mediterranean Conference on Control and

Automation, Limassol, Cyprus, pp. 1343–1348.

Kortenkamp, D. & R. Simmons [2008], Handbook of Robotics, Springer, capítulo Robotic Systems Architec-

tures and Programming, pp. 187–206.

Kozlowski, Krzysztof, Jaroslaw Majchrzak & Maciej Michalek [2006], Robot Motion and Control: Recent Devel-

opments, Lecture Notes in Control and Information Sciences, Springer-Verlag New York, Inc., Secaucus,

NJ, USA, capítulo Posture Stabilization of a Unicycle Mobile Robot - Two Control Approaches, pp. 24–54.

Kümmerle, R., R. Triebel, P. Pfaff & W. Burgard [2008], ‘Monte carlo localization in outdoor terrains using

multilevel surface maps’, Journal of Field Robotics 25(6-7), 346–359.

Lau, B., C. Sprunk & W. Burgard [2009], Kinodynamic motion planning for mobile robots using splines, em

‘Proceedings of the IEEE/RSJ’, International Conference on Intelligent Robots and Systems, St. Louis,

EUA, pp. 2427–2433.

LaValle, S. [1998], Rapidly-exploring random trees: A new tool for path planning, Technical Report 98-11,

Dept. Computer Science, Iowa State University.

Lowe, D.G. [2004], ‘Distinctive image features from scale-invariant keypoints’, International Journal of Com-

puter Vision 60(2), 91–110.

Lozano-Pérez, T. & M.Wesley [1979], ‘An an algorithm for planning collision-free paths among polyhedral

obstacles’, Communication of the ACM 22(10), 560.

Lucas, A. [2009], Mapeamento e localização baseados em mosaicos visuais, Dissertação de Mestrado, Uni-

versidade Técnica de Lisboa, Instituto Superior Técnico, Lisboa, Portugal.

Lumelsky, V. & A. Stepanov [1987], ‘Path-planning strategies for a point mobile automaton moving amidst

unknown obstacles of arbitrary shape’, Algorithmica 2, 403–430.

Mahalanobis, P.C. [1936], On the generalised distance in statistics, em ‘Proceedings of the National Institute

of Sciences of India’, Vol. 2, pp. 49–55.

McGee, L. & S. Schmidt [1985], Discovery of the Kalman filter as a practical tool for aerospace and industry,

em ‘NASA Techmcal Memorandum 86847’, NASA.

Mestre, Nuno [2008], Controlo preditivo híbrido de robôs móveis terrestres para seguimento de pista, Disser-

tação de Mestrado, Universidade Técnica de Lisboa, Instituto Superior Técnico, Lisboa, Portugal.

Microchip [2003], PIC16F87XA Data Sheet, Microchip Technology Inc.

74

Page 101: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Mikolajczyk, K. & C. Schmid [2003], A performance evaluation of local descriptors, em ‘Proceedings of the

IEEE/CVPR’, Vol. 2, Computer Society Conference on Computer Vision and Pattern Recognition, Madi-

son, Wisconsin, pp. 1615–1630.

Moravec, H. [1979], Visual mapping by a robot rover, em ‘Proceedings of the 6th International Joint Confer-

ence on Artificial Intelligence (IJCAI)’, pp. 599–601.

Morette, N., C. Novales & P. Vieyres [2008], Inverse versus direct kinematics model based on flatness and

escape lanes to control cycab mobile robot, em ‘Proceedings of the IEEE/ICRA 2008’, International

Conference on Robotics and Automation, Pasadena, CA, USA, pp. 2240–2245.

Ocana, M., L.M. Bergasa, M.A. Sotelo, J. Nuevo & R. Flores [2005], Indoor robot localization system using

wifi signal measure and minimizing calibration effort, em ‘Proceedings of the IEEE’, Vol. 4, International

Symposium on Industrial Electronics (ISIE), pp. 1545–1550.

Panzieri, S., F. Pascucci & G. Uliv [2001], An outdoor navigation system using gps and inertial platform, em

‘Proceddings of the IEEE/ASME’, International Conference on Advanced Intelligent Mechatronics, Como,

Itália, pp. 8–12.

Papageorgiou, C., M. Oren & T. Poggio [1998], ‘A general framework for object detection’, IEEE International

Conference on Computer Vision (ICCV) pp. 555–562.

Parker, L. [2008], Handbook of Robotics, Springer, capítulo Multiple Mobile Robots Systems, pp. 921–941.

Pedrosa, D. [2001], Sistema de navegação para robôs móveis autónomos, Dissertação de Mestrado, Univer-

sidade Federal do Rio Grande do Norte, Natal, Brasil.

Pedrosa, D., A. Medeiros & P. Alsina [2003], Point-to-point paths generation for wheeled mobile robots, em

‘Proceedings of the 2003 IEEE’, International Conference on Robotics and Automation, Taipei, Taiwan,

pp. 3752–3757.

Phung, S.L., A. Bouzerdoum & D. Chai [2002], A novel skin color model in YCBCR color space and its appli-

cation to human face detection, em ‘Proceedings of the International Conference on Image Processing’,

Vol. 1, pp. 289–292.

Pinho, R., J. Manuel, R. Tavares & M. Correia [2007], ‘Efficient approximation of the mahalanobis distance for

tracking with the kalman filter’, International Journal of Simulation Modelling 6(2), 84–92.

Pradalier, C., J. Hermosillo, C. Koike, C. Braillon, P. Bessière & C. Laugier [2005], ‘The CyCab: a car-like robot

navigating autonomously and safely among pedestrians’, Robotics and Autonomous Systems 50, 51–67.

Rao, A., D. Benson, C. Darby, M. Patterson, C. Francolin, I. Sanders & G. Huntington [2010], ‘Algorithm

902: Gpops, a MATLAB software for solving multiple-phase optimal control problems using the gauss

pseudospectral method’, ACM Transactions on Mathematical Software 37(2), 22.1–22.39.

75

Page 102: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Riedmiller, M. & H. Braun [1993], A direct adaptive method for faster backpropagation learning: The RPROP

algorithm, em ‘IEEE International Conference on Neural Networks’, Vol. 1, San Francisco, CA, EUA,

pp. 586–591.

Rosenblatt, J.K. [1997], Damn: A distributed architecture for mobile navigation, doctoral dissertation CMU-RI-

TR-97-01, Robotics Institute, Carnegie Mellon University.

Rouleau, G. [2009], ‘Real-time subsystem’, http://www.mathworks.com/matlabcentral/fileexchange/21908.

Roumeliotis, S.I. & G.A. Bekey [1997], An extended Kalman filter for frequent local and infrequent global

sensor data fusion, em ‘Proceedings of the Sensor Fusion and Decentralized Control in Autonomous

Robotic Systems (SPIE)’, Pittsburgh, Pennsylvania, USA, pp. 11–22.

Rowley, H., S. Baluja & S. Kanade [1998], ‘Neural network-based face detection’, IEEE Transactions on

Pattern Analysis and Machine Intelligence 20(1), 23–38.

Rutquist, P. & M. Edvall [2008], PROPT: MATLAB optimal control software, Technical report, TOMLAB Opti-

mization Inc., Pullman, WA, EUA.

Saksena, M. & B. Selic [1999], ‘Real-time software design - state of the art and future challenges’, IEEE

Canadian Review pp. 5–8.

Salari, V. & I. Sethi [1990], ‘Feature point correspondence in the presence of occlusion’, IEEE Transactions

on Pattern Analysis and Machine Intelligence 12(1), 87–91.

Santos, J. [2008], Multi-robot cooperative object localization, Dissertação de Mestrado, Universidade Técnica

de Lisboa, Instituto Superior Técnico, Lisboa, Portugal.

Sellner, B., F. Heger, L. Hiatt, R. Simmons & S. Singh [2006], ‘Coordinated multi-agent teams and sliding

autonomy for large-scale assembly’, Proceedings of the IEEE - Special Issue on Multi-Robot Systems

94(1), 1425 – 1444.

Shi, J. & C. Tomasi [1994], Good features to track, em ‘Proceedings of the IEEE/CVPR’, Computer Society

Conference on Computer Vision and Pattern Recognition, pp. 593–600.

Shi, J. & J. Malik [2000], ‘Normalized cuts and image segmentation’, IEEE Transactions on Pattern Analysis

and MAchine Intelligence 22(8), 888–905.

Silva, P. [2008], Controlo visual de robôs manipuladores: Utilizando um sistema de visão estéreo, Dissertação

de Mestrado, Universidade Técnica de Lisboa, Instituto Superior Técnico.

Sousa, A.J., P.J. Costa, A.P. Moreira & A. Carvalho [2005], Self localization of an autonomous robot: Using

an ekf to merge odometry and vision based landmarks, em ‘Proceedings of ETFA 2005’, 10th IEEE

International Conference on Emerging Technologies and Factory Automation, pp. 227–234.

Sousa, P., R. Araújo, U. Nunes, L. Alves & A.C. Lopes [2007], Real-time architecture for mobile assistant

robots, em ‘Proceedings of the IEEE’, International Conference on Emerging Technologies and Factory

Automation (ETFA 2007), Patras, Greece, pp. 965–972.

76

Page 103: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Streit, R. & T. Luginbuhl [1994], Maximum likelihood method for probabilistic multihypothesis tracking, em

O. E.Drummond, ed., ‘Signal and Data Processing of Small Targets’, Vol. 2235, SPIE, Orlando, FL, USA,

pp. 394–405.

Sturm, P.F. & S.J. Maybank [1999], On plane-based camera calibration: A general algorithm, singularities,

applications, em ‘Proceedings of the IEEE’, Vol. 1, International Conference on Computer Vision, p. 666.

Sukkarieh, S., E.M. Nebot & H.F. Durrant-Whyte [1999], A high integrity imu/gps navigation loop for au-

tonomous land vehicle applications, em ‘Proceedings on IEEE’, Vol. 15, Transactions on Robotics and

Automation, pp. 572–578.

Thrun, S., M. Beetz, M. Bennewitz, W. Burgard, A.B. Creemers, F. Dellaert, D. Fox, D. Hahnel, C. Rosenberg,

N. Roy, J. Schulte & D. Schulz [2000], Probabilistic Algorithms and the Interactive Museum Tour-Guide

Robot Minerva 19(1), 972–999.

Thrun, S., M. Bennewitz, W. Burgard, A.B. Cremers, F. Dellaert, D. Fox, D. Haehnel, C. Rosenberg, N. Roy, J.

Schulte & D. Schulz [1999], Minerva: A second generation mobile tour-guide robot, em ‘Proceedings of

the IEEE’, International Conference on Robotics and Automation (ICRA).

Thrun, S., M. Montemerlo, H. Dahlkamp, D. Stavens, A. Aron, J. Diebel, P. Fong, J. Gale, M. Halpenny, G.

Hoffmann, K. Lau, C. Oakley, M. Palatucci, V. Pratt, P. Stang, S. Strohband, C. Dupont, L.E. Jendrossek,

C. Koelen, C. Markey, C. Rummel, J. van Niekerk, E. Jensen, P. Alessandrini, G. Bradski, B. Davies, S.

Ettinger, A. Kaehler, A. Nefian & P. Mahoney [2006], ‘Winning the DARPA Grand Challenge’, Journal of

Field Robotics 23(9), 661–692.

Tsai, P., L. Wang, F. Chang & T. Wu [2004], Systematic backstepping design for B-spline trajectory tracking

control of the mobile robot in hierarchical model, em ‘Proceedings of the IEEE’, International Conference

on Networking, Sensing and Control, Taipei, Taiwan, pp. 713–718.

Tsai, R.Y. [1987], ‘A versatile camera calibration technique for high accuracy 3d machine vision metrology

using off-the-shelf tv cameras and lenses’, IEEE Journal of Robotics and Automation 3(4), 323–344.

Veenman, C.J., M.J. Reinders & E. Backer [2001], ‘Resolving motion correspondence for densely moving

points’, IEEE Transactions on Pattern Analysis and Machine Intelligence 23(1), 54–72.

Viola, P., M. Jones & D. Snow [2003], Detecting pedestrians using patterns of motion and appearance, em

‘Proceedings of the Ninth IEEE International Conference on Computer Vision’, IEEE Computer Society,

Washington, DC, USA, pp. 734–741.

Welch, G. & G. Bishop [1995], An introduction to the Kalman filter, Technical Report TR 95-041, University of

North Carolina, Chapel Hill, USA.

Yilmaz, A., O. Javed & M. Shah [2006], ‘Object tracking: A survey’, ACM Computing Surveys 38(4), 45.

Zhang, Z. [1999], Flexible camera calibration by viewing a plane from unknown orientations, em ‘Proceed-

ings of the IEEE’, 7th International Conference on Computer Vision (ICCV’99), IEEE Computer Society,

Grécia, pp. 666–673.

77

Page 104: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Ziegler, J.G. & N.B. Nichols [1942], Optimum settings for automatic controllers, Vol. 64, Trans. ASME, pp. 759–

768.

78

Page 105: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Apêndice A

Descrição do Robô Rasteirinho

O robô Rasteirinho é um veículo composto por duas rodas motrizes actuadas independentemente e por outra

roda que apenas providência estabilidade à estrutura. Este tipo de robô é fácil de controlar e que é capaz de

virar sobre o seu próprio eixo, o que lhe confere maior mobilidade para espaços interiores, onde tem maior

aplicação.

Assunção A.1. Ao longo desta dissertação o movimento do robô, Rasteirinho é considerado suficientemente

lento, de modo a tracção longitudinal e a força lateral exercida nos pontos de contacto do veículo com o chão

não excedam o coeficiente de atrito estático, i.e., o escorregamento entre as rodas do veículo e a superfície

de contacto durante todo o movimento do robô é nulo.

A suposição A.1 implica que o deslocamento de cada roda é proporcional à variação do seu ângulo de

rotação e ao seu raio, equação A.1.

x =φr (A.1)

O raio das rodas e a distância que as separa são respectivamente,

r = 0.0375 m , d = 0.3 m (A.2)

A.1 Configuração da Porta Série do PC

Na camada de alto nível da arquitectura do robô, encontra-se um PC portátil que comunica com o microcon-

trolador através de uma porta série virtual configurada da forma ilustrada na Tabela A.1.

A.2 Diagrama I/O do Microcontrolador

O microcontrolador PIC 16F876A é responsável por fazer o controlo do robô e por enviar os valores das

velocidades angulares de cada roda para a camada de alto nível. O seu esquema I/O do encontra-se ilustrado

na figura A.1. Uma descrição mais detalhada pode ser encontrada no manual Microchip [2003].

79

Page 106: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Propriedades da Comunicação

baude rate 9600Data bits 8Parity NãoStop bits 1Flow control Não

Capacidade do buffer

bytes recebidos 1024bytes enviados 1024Latência 1ms

Timeouts

Leitura (mínimo) 0msEscrita (mínimo) 0ms

Tabela A.1: Configuração da porta COM do PC.

Figura A.1: Diagrama I/O do microcontrolador PIC 16F876A.

A.3 Modelos dos Motores

A função de transferência do modelo de cada motor é,

G(s)d to =3.492

s2 +39.52s +102.2, G(s)esq =

7.081

s2 +59.17s +208.6(A.3)

−120

−100

−80

−60

−40

−20

Mag

nitu

de (

dB)

10−1

100

101

102

103

−180

−135

−90

−45

0

Fas

e (d

eg)

Frequency (rad/sec)

(a) Motor direito.

−120

−100

−80

−60

−40

−20

Mag

nitu

de (

dB)

10−1

100

101

102

103

−180

−135

−90

−45

0

Pha

se (

deg)

Frequency (rad/sec)

(b) Motor esquerdo.

Figura A.2: Diagrama de Bode dos modelos identificados.

80

Page 107: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

−40 −35 −30 −25 −20 −15 −10 −5 0−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Eixo Real

Eix

o Im

agin

ário

(a) Motor direito.

−60 −50 −40 −30 −20 −10 0−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Eixo Real

Eix

o Im

agin

ário

(b) Motor esquerdo.

Figura A.3: Pólos da função de transferência dos motores DC.

81

Page 108: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

82

Page 109: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Apêndice B

Modelos Simulink

Neste apêndice são apresentados os modelos gerais Simulink® para localização e navegação do robô,

B.1 Robô

Trajectória

v

w

x

y

theta PIC

Wd

We

Wd

We

Cinemática

Wd

We

X

Y

Theta

vd

wd

e

theta

vc

wc

w_D

w_E

controlador

Figura B.1: Modelo Simulink®para seguimento de trajectórias (simulação).

83

Page 110: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Web Service

RS232

Trajectória

v

w

x

y

theta protocoloSaturação

Cinemática

Wd

We

iGPS

posicao

iGPS

Serial Send

COM4Data

COM4

Data

Status

Serial Configuration

COM49600

8,none ,1

U Y

Real Time

vd

wd

e

theta

vc

wc

w_D

w_E

controlador

double

Figura B.2: Modelo Simulink®para seguimento de trajectórias (experimental).

84

Page 111: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

B.2 Sistema iGPS

Câmara

píxeis2mm

Web Service

píxeis2mm

XY Theta do Robô

c_amarelo

c_azul

CentróidesClassificação

Distância de MahalanobisProcessamento

de Imagem

Real Time

KalmanFilter

ZZZ Z_estZ_estZ_estZ_estZ_estZ_est

KalmanFilter

ZZZ Z_estZ_estZ_estZ_estZ_estZ_est

Logitech Qui ...RGB24_160x120

input 1

Figura B.3: Modelo Simulink® do sistema iGPS (experimental).

85

Page 112: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

86

Page 113: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Apêndice C

Robotica 2009

A prova de condução autónoma da competição Robótica2009 contou com a presença da equipa Rasteirinho.

O material utilizado foi:

• Robô Rasteirinho;

• Duas câmaras;

• Dois sensores infravermelhos.

O cérebro do rasteirinho encontra-se divido em duas zonas:

• Zona de aquisição de referências para seguimento da pista;

• Máquina de estados

Figura C.1: Zonas de interesse da imagem.

C.1 Detecção de Linha e Passadeira

A imagem aquirida pela webcam, no espaço de cores RGB, foi dividida em três zonas de interesse para

diminuir o tempo de processamento, como se encontra ilustrado na Figura C.1. A detecção da linha para

seguimento de pista foi feita através da análise da cor do canal vermelho nas respectivas zonas 2 e 3. Se

o tamanho do conjunto de píxeis encontrados estivesse contido no intervalo desejado, o centróide deste

87

Page 114: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

conjunto servia então de comparação com a referência. Se houvessem dois centróides de área nestas duas

zonas, seria então detectada a passadeira.

C.2 Reconhecimento do Estado do Semáforo

A distinção das cores presentes nos semáforos foi feita utilizando a distância de Mahalanobis. Considerando

o espaço de cores Y CbCr , desprezou-se o Y (luminosidade) e calculou-se a média e co-variância de Cb e

Cr .

(a) Imagem do semáforo adquirida pela webcam. (b) Aplicando distância de Mahalanobis

Figura C.2: Filtro para reconhecer cores do semáforo.

C.3 Detecção e Desvio de Obstáculos

Para a detecção de obstáculos utilizou-se um sensor infravermelho instalado na frente do rasteirinho; ao

detectar o obstáculo, o estado do veículo é alterado de modo a desencadear uma sequência de operações

que permitem o contorno do obstáculo em anel aberto.

C.4 Detecção e Seguimento na Zona de Obras e Túnel

Para detecção e seguimento na zona de obras e túnel utilizou-se um segundo sensor infra-vermelho, instal-

ado também na frente do veículo, mas com uma inclinação de 45 graus, de modo a detectar a parede vertical

do túnel e a superfície da fita da zona de obras. O seguimento foi feito de acordo com a distância do sensor

à fita e à parede do túnel.

C.5 Zona de Estacionamento

A zona de estacionamento encontra-se localizada depois da zona dos semáforos. Depois de o contador de

voltas indicar que o número de voltas foi concluído e o sinal do semáforo indicar o estacionamento, então

desencadeia-se uma sequência de operações, em anel aberto, que levam o veículo móvel rasteirinho a parar

dentro da zona pretendida.

88

Page 115: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

processamento de imagem

imagem

u

vel _nominal

passadeira

passadeira1

clock

clockWebcam

QuickCamRGB24_160 x120

input 1

Unit Delayz

1

Rate Transition 2

Rate Transition 1

Motores

Esq

DirMOTOR

0.01349 z+0.01201

z −1.681z+0.70612

Chart

u

vel _nominal

passadeira

clock

verde

passadeira1

u1

vel _nominal1

camera2

Camera Semaforo

Out1

Figura C.3: Diagrama de blocos construído em Simulink.

89

Page 116: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

90

Page 117: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

Apêndice D

Microcontrolador

Neste apêndice encontra-se o código C desenvolvido, que permitiu identificar e controlar o robô Rasteirinho.

D.1 Aquisição de Dados através de PIC (linguagem C)

#include <16F876A . h>

#device ICD=TRUE

#device adc=8

#use fast_io (b ) / / _inputs=PIN_b4 , PIN_b5 , PIN_b6 , PIN_b7 )

#use delay ( c lock=20000000)

#fuses NOWDT , HS , NOPUT , NOPROTECT , DEBUG , BROWNOUT , NOLVP , NOCPD , NOWRT

#use rs232 ( baud=9600 ,parity=N , xmit=PIN_C6 , rcv=PIN_C7 , bits=8)

/ / Global vars 115200

#byte Portb = 6

/ / Counters

signed int32 counter_D=0;

signed int32 counter_E=0;

/ / Real velocity of the wheels

signed int32 vel_D=0;

signed int32 vel_E=0;

/ / Simulink velocity orders

signed int32 vel_in_D =0 ,

signed int32 vel_in_E=0;

/ / PWM out

signed int32 pwm_out_D , pwm_out_E ;

signed int32 value , valueanterior , valueRoda2 , valueanteriorRoda2 , valor ;

int1 TIMERFLAG=0;

#include <math . h>

/ / Buffer definitions

#define MAX_MSG_SIZE 20

char CURRENT_COMMAND [ MAX_MSG_SIZE ] ;

unsigned int CURRENT_COMMAND_LEN = 0 ;

/ / * * * * * * * * * WRITE_SERIAL − SERIAL PORT WRTIE TO SIMULINK * * * * * * * * * * * * * * * * *void write_serial ( )

printf ( " #%c%c%c%c \ r \ n " , vel_D , vel_E , vel_in_D , ve l_ in_E ) ;

91

Page 118: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

/ / * * * * * * * * * WRITE_PWM − PWM out * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *void write_pwm ( )

set_pwm1_duty ( ( unsigned int16 ) 10*vel_in_D ) ;

set_pwm2_duty ( ( unsigned int16 ) 10*vel_in_E ) ;

/ / * * * * * * * * * DO_COMMAND − UPDATE DESIRED VELOCITIES * * * * * * * * * * * * * * * * * * * * * *void doCommand ( )

/ / i f order from simulink is ok , update velocity references

i f ( CURRENT_COMMAND_LEN==5 && CURRENT_COMMAND [0 ]== 'D ' && CURRENT_COMMAND [2 ]== 'F ' )

write_serial ( ) ;

vel_in_D= CURRENT_COMMAND [ 1 ] ;

vel_in_E= CURRENT_COMMAND [ 3 ] ;

/ / Buffer rese t

memset ( CURRENT_COMMAND , 0 , MAX_MSG_SIZE ) ;

CURRENT_COMMAND_LEN = 0 ;

/ / CURRENT_STATE = STATE_STAND_BY ;

/ / * * * * * * * * * INT_RDA − SERIAL PORT INTERRUPTION * * * * * * * * * * * * * * * * * * * * * * * * * * *#int_rda

void serial_isr ( )

char ch ;

ch=getc ( ) ;

/ / i f buffer is f u l l , then rese t buffer

i f ( CURRENT_COMMAND_LEN == MAX_MSG_SIZE )

memset ( CURRENT_COMMAND , 0 , MAX_MSG_SIZE ) ;

CURRENT_COMMAND_LEN = 0 ;

/ / i f terminator is not received , save i n f o in buffer

i f ( ch != ' \ n ' )

CURRENT_COMMAND [ CURRENT_COMMAND_LEN ] = ch ;

CURRENT_COMMAND_LEN++;

/ / otherwise check i f there´s another terminator ( there are two terminators )

e lse

i f ( CURRENT_COMMAND_LEN >=1)

/ / i f there are 2 terminators , then change STATE_COMMAND

i f ( CURRENT_COMMAND [ CURRENT_COMMAND_LEN−1]== ' \ r ' )

/ / CURRENT_STATE = STATE_COMMAND ;

doCommand ( ) ;

e lse

CURRENT_COMMAND [ CURRENT_COMMAND_LEN ] = ch ;

CURRENT_COMMAND_LEN++;

/ / Ts f o r angular velocity calculus

/ / Ts = 255/(20e6 / 4 / 2 5 6 ) = 0.0131 ms

/ / Ts ( SIMULINK ) = 3*0.0131 = 0.0393 = 0.04

/ / * * * * * * * * * INT_RTCC − REAL VELOCITY CALCULUS * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#org 0x1000 , 0x11FF DEFAULT

#INT_RTCC

void clock_isr ( )

/ / vel = counter * 2 p i /400 /Ts ( PIC ) = counter *1.1991

vel_D = ( counter_D *6 ) / 5 ;

92

Page 119: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

vel_E = ( counter_E *6 ) / 5 ;

TIMERFLAG=1;

/ / * * * * * * * * * INT_RB − ENCODERS INTERRUPTION * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#int_RB

void RB_isr ( void )

/ / read encoder A

valor=input_b ( ) &0x80 ;

i f ( valor != valueanterior ) ++counter_D ;

valueanterior=valor ;

/ / read encoder B

valueRoda2=input_b ( ) &0x20 ;

i f ( valueRoda2 != valueanteriorRoda2 ) ++counter_E ;

valueanteriorRoda2=valueRoda2 ;

/ / * * * * * * * * * MAIN − PI CONTROLLER CALCULUS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#org DEFAULT

void main ( )

setup_adc_ports ( AN0_AN1_AN3 ) ;

setup_adc ( ADC_CLOCK_INTERNAL ) ;

setup_timer_2 ( T2_DIV_BY_4 , 255 , 1) ; / / 7 6 Hz ou 38Hz

setup_ccp1 ( CCP_PWM ) ;

setup_ccp2 ( CCP_PWM ) ;

SET_TRIS_B (0x0F ) ;

SET_TRIS_C (0xF0 ) ;

output_bit ( PIN_C3 , 0 ) ;

set_pwm2_duty ( 0 ) ;

output_bit ( PIN_C0 , 0 ) ;

set_pwm1_duty ( 0 ) ;

set_tris_b (0xF0 ) ;

port_b_pullups ( TRUE ) ;

delay_us (10 ) ;

setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_256 ) ;

set_timer0 ( 0 ) ;

enable_interrupts ( INT_RTCC ) ;

enable_interrupts ( INT_RB ) ; / / turn on port b interrupt on change

enable_interrupts ( int_rda ) ;

enable_interrupts ( GLOBAL ) ;

printf ( " ta vivo " ) ;

WHILE ( TRUE )

/ / controller is done every Ts = Ts_pic = 0.0131s

i f ( TIMERFLAG==1)

disable_interrupts ( INT_RB ) ;

disable_interrupts ( INT_RTCC ) ;

counter_D=0;

counter_E=0;

write_pwm ( ) ; / / PWM out

clear_interrupt ( INT_RB ) ;

clear_interrupt ( INT_RTCC ) ;

set_timer0 ( 0 ) ;

enable_interrupts ( INT_RTCC ) ;

enable_interrupts ( INT_RB ) ;

TIMERFLAG=0;

93

Page 120: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

D.2 Controlador PI (linguagem C)

#include <16F876A . h>

#device ICD=TRUE

#device adc=8

#use fast_io (b ) / / _inputs=PIN_b4 , PIN_b5 , PIN_b6 , PIN_b7 )

#use delay ( c lock=20000000)

#fuses NOWDT , HS , NOPUT , NOPROTECT , DEBUG , BROWNOUT , NOLVP , NOCPD , NOWRT

#use rs232 ( baud=9600 ,parity=N , xmit=PIN_C6 , rcv=PIN_C7 , bits=8)

#byte Portb = 6

/ / COUNTERS

signed int32 counter_D=0;

signed int32 counter_E=0;

/ / Real velocity of the wheels

signed int32 vel_D=0 , vel_E=0;

/ / Simulink velocity orders

signed int32 vel_in_D =0 , vel_in_E=0;

/ / velocity e r ro r

signed int32 erro_D , erro_E , erro_ant_D = 0 , erro_ant_E = 0 ;

/ / PWM out

signed int32 pwm_out_D , pwm_out_E ;

/ / portB state variables

signed int32 value , valueanterior , valueRoda2 , valueanteriorRoda2 , valor ;

int1 TIMERFLAG=0;

/ / controller variables

signed int32 int_D = 0 , int_ant_D = 0 , int_E = 0 , int_ant_E = 0 ;

signed int32 Gc_D = 0 ,Gc_E = 0 ;

signed int32 Kp_D=6 , Ki_D=1 , Kp_E=4 , Ki_E=1;

/ / Buffer definitions

#define MAX_MSG_SIZE 20

signed int32 CURRENT_COMMAND [ MAX_MSG_SIZE ] ;

unsigned int CURRENT_COMMAND_LEN = 0 ;

#include <math . h>

/ / * * * * * * * * * WRITE_SERIAL − SERIAL PORT WRTIE TO SIMULINK * * * * * * * * * * * * * * * * *void write_serial ( )

printf ( " #%c%c%c%c \ r \ n " , ( unsigned i n t 8 ) ( vel_D ) , ( unsigned i n t 8 ) ( vel_E ) , ( unsigned i n t 8 ) ( ve l_ in_D ) , ( unsigned ←-

i n t 8 ) ( ve l_ in_E ) ) ;

/ / * * * * * * * * * WRITE_PWM − PWM out * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *void write_pwm ( )

set_pwm1_duty ( ( unsigned int16 ) pwm_out_D ) ;

set_pwm2_duty ( ( unsigned int16 ) pwm_out_E ) ;

/ / * * * * * * * * * DO_COMMAND − UPDATE DESIRED VELOCITIES * * * * * * * * * * * * * * * * * * * * * *void doCommand ( )

/ / i f order from simulink is ok , update velocity references

i f ( CURRENT_COMMAND_LEN==5 && CURRENT_COMMAND [0 ]== 'D ' && CURRENT_COMMAND [2 ]== 'F ' )

write_serial ( ) ;

vel_in_D= CURRENT_COMMAND [ 1 ] ;

vel_in_E= CURRENT_COMMAND [ 3 ] ;

/ / Buffer rese t

94

Page 121: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

memset ( CURRENT_COMMAND , 0 , MAX_MSG_SIZE ) ;

CURRENT_COMMAND_LEN = 0 ;

/ / * * * * * * * * * INT_RDA − SERIAL PORT INTERRUPTION * * * * * * * * * * * * * * * * * * * * * * * * * * *#int_rda

void serial_isr ( )

char ch ;

ch=getc ( ) ;

/ / i f buffer is f u l l , then rese t buffer

i f ( CURRENT_COMMAND_LEN == MAX_MSG_SIZE )

memset ( CURRENT_COMMAND , 0 , MAX_MSG_SIZE ) ;

CURRENT_COMMAND_LEN = 0 ;

/ / i f terminator is not received , save i n f o in buffer

i f ( ch != ' \ n ' )

CURRENT_COMMAND [ CURRENT_COMMAND_LEN ] = ch ;

CURRENT_COMMAND_LEN++;

/ / otherwise check i f there´s another terminator ( there are two terminators )

e lse

i f ( CURRENT_COMMAND_LEN >=1)

/ / i f there are 2 terminators , then change STATE_COMMAND

i f ( CURRENT_COMMAND [ CURRENT_COMMAND_LEN−1]== ' \ r ' )

doCommand ( ) ;

e lse

CURRENT_COMMAND [ CURRENT_COMMAND_LEN ] = ch ;

CURRENT_COMMAND_LEN++;

/ / Ts f o r angular velocity calculus

/ / Ts = 255/(20e6 / 4 / 2 5 6 ) = 0.0131 ms

/ / Ts ( SIMULINK ) = 3*0.0131 = 0.0393 = 0.04

/ / * * * * * * * * * INT_RTCC − REAL VELOCITY CALCULUS * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#org 0x1000 , 0x11FF DEFAULT

#INT_RTCC

void clock_isr ( )

/ / vel = counter * 2 p i /400 /Ts ( PIC ) = counter *1.1991

vel_D = ( counter_D *6 ) / 5 ;

vel_E = ( counter_E *6 ) / 5 ;

TIMERFLAG=1;

/ / * * * * * * * * * INT_RB − ENCODERS INTERRUPTION * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#int_RB

void RB_isr ( void )

/ / read encoder A

valor=input_b ( ) &0x80 ;

i f ( valor != valueanterior ) ++counter_D ;

valueanterior=valor ;

/ / read encoder B

valueRoda2=input_b ( ) &0x20 ;

i f ( valueRoda2 != valueanteriorRoda2 ) ++counter_E ;

valueanteriorRoda2=valueRoda2 ;

/ / * * * * * * * * * MAIN − PI CONTROLLER CALCULUS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

95

Page 122: Localização e Navegação entre Robôs Móveis · Resumo Esta dissertação aborda os problemas de localização e navegação dum robô móvel diferencial. Para isso foi actualizada

#org DEFAULT

void main ( )

setup_adc_ports ( AN0_AN1_AN3 ) ;

setup_adc ( ADC_CLOCK_INTERNAL ) ;

setup_timer_2 ( T2_DIV_BY_4 , 255 , 1) ; / / 7 6 Hz ou 38Hz

setup_ccp1 ( CCP_PWM ) ;

setup_ccp2 ( CCP_PWM ) ;

SET_TRIS_B (0x0F ) ;

SET_TRIS_C (0xF0 ) ;

output_bit ( PIN_C3 , 0 ) ;

set_pwm2_duty ( 0 ) ;

output_bit ( PIN_C0 , 0 ) ;

set_pwm1_duty ( 0 ) ;

set_tris_b (0xF0 ) ;

port_b_pullups ( TRUE ) ;

delay_us (10 ) ;

setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_256 ) ;

set_timer0 ( 0 ) ;

enable_interrupts ( INT_RTCC ) ;

enable_interrupts ( INT_RB ) ; / / turn on port b interrupt on change

enable_interrupts ( int_rda ) ;

enable_interrupts ( GLOBAL ) ;

printf ( " ta vivo " ) ;

WHILE ( TRUE )

/ / controller is done every Ts = Ts_pic = 0.0131s

i f ( TIMERFLAG==1)

disable_interrupts ( INT_RB ) ;

disable_interrupts ( INT_RTCC ) ;

/ / control f o r right motor

erro_D = ( vel_in_D−vel_D ) ;

int_D = Ki_D *erro_ant_D + int_ant_D ;

Gc_D = Kp_D *erro_D + int_D ;

i f ( Gc_D >1024) pwm_out_D = 1024;

e lse i f ( Gc_D<0) pwm_out_D=0;

e lse pwm_out_D = Gc_D ;

erro_ant_D = erro_D ;

int_ant_D = int_D ;

counter_D=0;

/ / control f o r left motor

erro_E = ( vel_in_E−vel_E ) ;

int_E = Ki_E *erro_ant_E + int_ant_E ;

Gc_E = Kp_E *erro_E + int_E ;

i f ( Gc_E > 1024) pwm_out_E = 1024;

e lse i f ( Gc_E < 0) pwm_out_E=0;

e lse pwm_out_E = Gc_E ;

erro_ant_E = erro_E ;

int_ant_E = int_E ;

counter_E=0;

write_pwm ( ) ; / / PWM out

set_timer0 ( 0 ) ;

enable_interrupts ( INT_RTCC ) ;

enable_interrupts ( INT_RB ) ;

TIMERFLAG=0;

96