Vous êtes sur la page 1sur 113

Faculdade de Engenharia da Universidade do Porto

Navegao e Controlo de um Veculo Mvel

Hugo Srgio Pinto Alves

Dissertao realizada no mbito do


Mestrado Integrado em Engenharia Electrotcnica e de Computadores
Major Automao

Orientador: Prof. Dr. Antnio Paulo Gomes Mendes Moreira


Co-orientador: Prof. Dr. Paulo Jos Cerqueira Gomes da Costa

Maro de 2010
ii

Hugo Srgio Pinto Alves, 2010


vi
v

Resumo

A constante necessidade de reduzir custos de produo e eliminar a presena humana em


ambientes potencialmente perigosos e hostis para a sade tem possibilitado a utilizao de
veculos guiados autonomamente, AGVs, em diversas aplicaes. A utilizao destes veculos
teria um crescimento ainda mais significativo se estes sistemas se inserissem num mercado de
custo reduzido, possibilitando o seu acesso s pequenas e mdias empresas.
Este documento descreve a navegao e controlo de um veculo mvel aplicado a um caso
concreto da robtica mvel, os AGVs.
A autonomia e flexibilidade so necessidades cada vez mais desejadas em sistemas
robticos autnomos com o intuito de fornecer liberdade de movimentos a um rob.
Associado a estas duas caractersticas surge o problema da localizao. Para o presente
trabalho, um dos objectivos gerais prende-se no desenvolvimento de um sistema de
localizao de custo acessvel, adequado aos novos mercados. Assim, expe-se a tcnica de
localizao baseada em marcadores passivos artificiais desenvolvida com o objectivo de
detect-los atravs de viso artificial.
apresentada a sntese de uma pesquisa bibliogrfica que descreve as diferentes solues
utilizadas nos AGVs em relao temtica da localizao e da deteco de obstculos.
Introduzem-se alguns conceitos tericos pertinentes para a realizao e o
desenvolvimento deste veculo autnomo, nomeadamente, os mtodos de medio do estado
do rob, os mtodos estocsticos para fuso sensorial e a anlise de imagem. Dentro dos
mtodos estocsticos introduz-se o conceito dos filtros Kalman e da sua verso estendida
(EKF) que fornece ao sistema a capacidade de estimar a posio do AGV relativamente a
referencial global.
Outro dos objectivos do trabalho que se expe o desenvolvimento de um software que
permite criar uma interface de controlo e deciso da movimentao do rob.
simulado o rob em estudo atravs da plataforma de simulao SimTwo. Com esta
simulao pretende-se verificar o comportamento do rob, testar diferentes estratgias de
deciso e controlo e aperfeioar o software desenvolvido. Este simulador um sistema de
simulao realista onde possvel implementar diferentes tipos de robs.
Apresentam-se os resultados do comportamento do rob em simulao, recorrendo ao
sistema de localizao baseado em deteco de parede vertical.
O trabalho realizado enquadra-se nas actividades de investigao do grupo ROBIS
Robtica e Sistemas Inteligentes do INESC Porto, LA em colaborao com a empresa
DELTAMATIC Engenharia e Automao Industrial, S.A.
vi
vii

Abstract

The constant need to reduce costs in production/manufacture and eliminate human


presence in environments which are potentially dangerous and hostile for our health, has
made possible the usage of automated guided vehicles, AGVs in various applications. The
usage of these vehicles would have a much larger potential for growth if these systems were
implemented in a low cost market, making it possible for small and medium sized firms to
have access to it.
This paper describes the navigation and control of a mobile vehicle when applied to a
specific case in mobile robotics, the AGVs.
Autonomy and flexibility are requirements which are more and more desirable in robotic
systems, so as to enable the freedom of movements in a robot. Associated to these two
characteristics comes the problem of localisation. For the present paper, one of the main
aims is linked to the development of a system of location at an affordable price, suitable for
new markets. Thus, the location technique, based on artificial passive landmarks and
developed with the objective of detecting them through artificial vision will be presented
here.
The summary of a bibliographic research which describes the different solutions used in
AGVs, in relation to the topic of location and the detection of obstacles will be presented.
Some relevant theoretical terms will be introduced for the making and development of
this automated guided vehicle, namely the methods of measuring the state of the robot, the
stochastic methods for the sensory fusion and the image analysis. Among the stochastic
methods, it will be introduced the concept of the Kalman filters and their extended version
(EKF), which gives the system the capability of estimating the position of the AGV.
Another aim is the development of software that allows the making of a control interface
and the decision of the robots movements.
There is a simulation of the robot under study through the simulation platform SimTwo.
The aim of this simulation is to verify the robots behaviour, test the different strategies of
control and decision making and to perfect the software developed. This simulator is a
realistic simulation system where it is possible to implement different kinds of robots.
There is a presentation of the results of the robots behaviour, using the location system
based on vertical wall detection.
The work undertaken is part of the research activities of the ROBIS group Robtica e
Sistemas Inteligentes of INESC Porto, LA in cooperation with the firm DELTAMATIC
Engenharia e Automao Industrial, S.A.
viii
ix

Agradecimentos

com muita satisfao que expresso aqui o mais profundo agradecimento a todos aqueles
que tornaram a realizao deste trabalho possvel.

Ao Prof. Dr. Antnio Paulo Moreira, meu orientador, e ao Prof. Dr. Paulo Gomes da Costa,
meu co-orientador, agradeo pela oportunidade proporcionada em trabalhar no grupo ROBIS
Robtica e Sistemas Inteligentes da FEUP/INESCPorto, e por toda a disponibilidade no apoio e
cooperao para o sucesso no desenvolvimento desta dissertao.

Gostaria tambm de agradecer aos meus colegas de laboratrio do Departamento de


Engenharia Electrotcnica e de Computadores, Hber Sobreira, Marcos Ferreira, Paulo
Malheiros e Alexandre Castro, pela ajuda demonstrada em determinadas fases desta etapa.

Aos meus grandes amigos, um muito obrigado por todos os bons momentos proporcionados
ao longo da minha vida, pela amizade compartilhada e pela compreenso e fora
disponibilizada durante esta dissertao.

Agradeo, de uma forma muito especial, minha famlia, Ana Francisca e sua famlia,
pelo sentido crtico, pela dedicao, motivao e perseverana demonstrada nos bons e maus
momentos passados, que se revelou fundamental para a concluso desta jornada.

Hugo Srgio Pinto Alves


x
xi

ndice

Captulo 1 .......................................................................................... 1

Introduo .......................................................................................... 1
1.1 Enquadramento Geral ............................................................................... 1
1.2 Objectivos............................................................................................. 3
1.3 Organizao do documento ........................................................................ 3

Captulo 2 .......................................................................................... 5

Estado da Arte ..................................................................................... 5


2.1 Mtodos de localizao de AGVs ................................................................. 5
2.1.1 Solues envolvendo filo-guiado ...................................................... 6
2.1.2 Solues envolvendo trilaterao/triangulao laser ............................. 7
2.1.3 Solues envolvendo viso artificial .................................................. 7
2.1.4 Solues envolvendo GPS ............................................................... 8
2.1.5 Solues envolvendo sensores pticos ................................................ 8
2.1.6 Solues envolvendo giroscpios ...................................................... 9
2.2 Solues para deteco de obstculos ......................................................... 10
2.2.1 Solues envolvendo pra-choques mecnicos ................................... 10
2.2.2 Solues envolvendo laser ............................................................ 10
2.2.3 Solues envolvendo sensores ultra-sons .......................................... 11

Captulo 3 .........................................................................................13

Enquadramento Terico ........................................................................13


3.1 Mtodos de medio do estado de um rob mvel .......................................... 13
3.1.1 Medio de posio e orientao relativa ......................................... 14
3.1.1.1 Odometria ................................................................... 14
3.1.2 Medio de posio e orientao absoluta ........................................ 15
3.1.2.1 Marcadores Artificiais ..................................................... 15
3.2 Mtodos Estocsticos para fuso sensorial .................................................... 16
3.2.1 Filtro de Kalman ........................................................................ 17
xii ndice

3.2.1.1 Equaes em tempo discreto ............................................ 17


3.2.2 Filtro de Kalman Estendido........................................................... 19
3.3 Anlise de imagem ................................................................................ 20
3.3.1 Pixis e nveis de uma imagem ...................................................... 20
3.3.2 Processamento de imagem binria .................................................. 21
3.3.2.1 Aquisio de imagem binria............................................. 21
3.3.3 Tcnicas de iluminao ............................................................... 22

Captulo 4 ......................................................................................... 23

Mini-AGV Concepo Estrutural ............................................................. 23


4.1 Descrio Geral .................................................................................... 23
4.2 Plataforma de Hardware ......................................................................... 24
4.2.1 Motores .................................................................................. 26
4.2.2 Encoders ................................................................................. 26
4.2.3 Sistema de alimentao............................................................... 27
4.2.4 Microcomputador e LCD Tctil ....................................................... 28
4.2.5 Sensores de ultra-sons ................................................................ 28
4.2.6 Sistema autnomo de viso artificial ............................................... 29
4.2.7 Sensores de fim-de-curso ............................................................. 30
4.2.8 Controladores dos motores ........................................................... 30
4.2.9 Conversores de tenso DC-DC ........................................................ 31
4.3 Plataforma de Software .......................................................................... 32
4.3.1 Comunicao assente no protocolo srie RS-232 ................................. 32
4.3.2 Comunicao assente no protocolo UDP ........................................... 34
4.3.3 Comunicao assente no protocolo TCP ........................................... 35
4.3.4 Descrio da camada superior ....................................................... 36
4.3.5 Descrio da camada inferior ........................................................ 39
4.3.6 Controladores de velocidade dos motores ......................................... 39
4.3.6.1 Modelo dinmico do rob ................................................. 40
4.3.6.2 Dimensionamento do controlador ....................................... 42

Captulo 5 ......................................................................................... 45

Plataforma de Simulao ....................................................................... 45


5.1 Descrio Geral .................................................................................... 45
5.2 Configurao do simulador....................................................................... 49
5.3 Configurao do corpo do rob, paredes e pista ............................................ 51
5.3.1 Modelao do rob simulado ......................................................... 51
5.3.2 Modelao dos obstculos ............................................................ 53
5.3.3 Modelao da pista .................................................................... 53
5.4 Controlo do rob simulado ....................................................................... 54
xiii

Captulo 6 .........................................................................................57

Localizao e Navegao .......................................................................57


6.1 Descrio Geral .................................................................................... 57
6.2 Odometria Localizao relativa ............................................................... 57
6.2.1 Modelo de odometria .................................................................. 58
6.2.2 Calibrao da odometria .............................................................. 59
6.3 Sistema de deteco de marcadores - Localizao absoluta .............................. 61
6.3.1 Viso Artificial .......................................................................... 62
6.3.1.1 Calibrao da cmara ..................................................... 63
6.3.1.2 Anlise/Processamento da imagem ..................................... 64
6.3.2 Formato das mensagens enviadas por TCP ........................................ 65
6.4 Controlo e Planeamento de Trajectrias ...................................................... 66
6.4.1 Procedimentos de baixo nvel ........................................................ 66
6.4.1.1 Goto_Target ................................................................. 66
6.4.1.2 Follow_Line.................................................................. 68
6.4.1.3 Follow_Circle................................................................ 69
6.4.1.4 Stop ........................................................................... 70
6.4.2 Procedimento de mais alto nvel .................................................... 70
6.4.2.1 Exemplo de um possvel percurso ....................................... 72
6.5 Algoritmo de localizao absoluta .............................................................. 72
6.5.1 Modelo matemtico do mtodo de auto-localizao por linhas ............... 73
6.5.2 Estrutura e descrio do algoritmo de localizao ............................... 74
6.6 Fuso Sensorial ..................................................................................... 76
6.6.1 Mdia Pesada............................................................................ 76
6.6.2 Filtro de Kalman ........................................................................ 76

Captulo 7 .........................................................................................77

Resultados .........................................................................................77
7.1 Rob em simulao ................................................................................ 77
7.1.1 Trajectria baseada em localizao relativa sem rudo ......................... 77
7.1.2 Trajectria baseada em localizao relativa com rudo ........................ 79
7.1.3 Trajectria baseada em odometria com correco da orientao do
rob atravs de marcadores ............................................................................ 80
7.1.4 Trajectria baseada em odometria com correco do estado do rob
atravs de marcadores ................................................................................... 81
7.1.5 Trajectria baseada em odometria com correco do estado do rob
atravs de marcadores e rudo aplicado aos encoders ............................................. 82

Captulo 8 .........................................................................................83

Concluses e Trabalhos Futuros ..............................................................83


8.1 Concluses .......................................................................................... 83
xiv ndice

8.2 Trabalhos Futuros ................................................................................. 84

Referncias ....................................................................................... 85

Anexo A ............................................................................................ 89

Distncia de um ponto a uma recta .......................................................... 89

Anexo B ............................................................................................ 91

Mapa de marcadores ............................................................................ 91


xv

Lista de figuras

Figura 1.1 Aplicao de AGVs no porto martimo de Roterdo .....................................3

Figura 2.1 Sistema de localizao por filo-guiado [8] .................................................6

Figura 2.2 AGV com tecnologia filo-guiado [2] .........................................................6

Figura 2.3 Sistema de localizao por laser [8] ........................................................7

Figura 2.4 AGV com tecnologia laser [11] ...............................................................7

Figura 2.5 Sistema de localizao por GPS [13] ........................................................8

Figura 2.6 Sistema de localizao baseado em sensores pticos [8] e [12] .......................9

Figura 2.7 AGV com sistema de localizao baseado em sensores pticos [2] ...................9

Figura 2.8 Sistema de localizao por giroscpio [8] .................................................9

Figura 2.9 Deteco de obstculos atravs de pra-choques mecnicos [14] .................. 10

Figura 2.10 Deteco de obstculos por laser [15] .................................................. 11

Figura 2.11 Deteco de obstculos atravs de ultra-sons para a indstria automvel


[17] ...................................................................................................... 11

Figura 2.12 Deteco de obstculos em AGVs atravs de sensores de ultra-sons [18] ....... 12

Figura 3.1 Elementos constituintes de um sistema de fuso sensorial ........................... 16

Figura 3.2 Resumo do processo de estimao e actualizao do KF em tempo discreto ..... 19

Figura 3.3 Imagem em escala de cinzentos e imagem binria .................................... 21

Figura 3.4 Esquemas bsicos de iluminao .......................................................... 22

Figura 4.1 Rob desenvolvido para a realizao do trabalho em estudo ........................ 24

Figura 4.2 Sistema de traco diferencial com duas rodas livres .............................. 24

Figura 4.3 Arquitectura funcional da plataforma de hardware ................................... 25

Figura 4.4 Motores para o movimento da plataforma deslizante [28] ........................... 26


xvi Lista de figuras

Figura 4.5 Esquema de motor, caixa redutora e encoder utilizado para a locomoo ....... 27

Figura 4.6 Encoder Omron E6A2-CW5C [28] .......................................................... 27

Figura 4.7 Sistema de alimentao ..................................................................... 27

Figura 4.8 Microcomputador instalado ................................................................ 28

Figura 4.9 Ecr Tctil ..................................................................................... 28

Figura 4.10 Sonar SRF01 .................................................................................. 28

Figura 4.11 Sistema de aplicao para viso artificial [30] ........................................ 29

Figura 4.12 Cmara jAi CV-A11 [30].................................................................... 29

Figura 4.13 Sensor fotoelctrico Omron E3F2 [28] .................................................. 30

Figura 4.14 Driver dos motores de locomoo e deslocamento vertical da plataforma


deslizante............................................................................................... 31

Figura 4.15 Controlador de velocidade do motor Maxon EC-45 ................................... 31

Figura 4.16 Mdulo generic atmega8 .................................................................. 31

Figura 4.17 Esquema de ligaes serial Daisy Chain ................................................ 33

Figura 4.18 Esquema sequencial das aces a tomar no ciclo de controlo ..................... 36

Figura 4.19 Mquina de estados do rob .............................................................. 37

Figura 4.20 Esquema da aco a tomar para eventos externos ................................... 38

Figura 4.21 Interface grfica da aplicao de controlo do rob .................................. 38

Figura 4.22 Interface grfica para visualizao do movimento do rob ......................... 38

Figura 4.23 Diagrama de blocos do sistema .......................................................... 39

Figura 4.24 Folha de clculo para construo grfica da evoluo temporal das
velocidades em ambos os motores ................................................................. 40

Figura 4.25 Evoluo temporal das velocidades dos motores ..................................... 41

Figura 4.26 Resultados da aproximao do modelo dinmico do rob a um sistema de 1


ordem ................................................................................................... 42

Figura 4.27 Diagrama de blocos do sistema controlado ............................................ 42

Figura 4.28 Sistema simulado com filtro de entrada ................................................ 43

Figura 4.29 Resposta ao sistema simulado com filtro de entrada ................................ 44

Figura 4.30 Resposta ao degrau da velocidade aplicado s duas rodas motrizes do rob .... 44

Figura 5.1 Janela de visualizao da interface grfica 3D do SimTwo........................... 47

Figura 5.2 Janela de configurao do SimTwo ....................................................... 47


xvii

Figura 5.3 Janela do editor de cdigo do SimTwo ................................................... 48

Figura 5.4 Janela de grficos do SimTwo ............................................................. 48

Figura 5.5 Janela de edio em XML dos objectos do SimTwo .................................... 48

Figura 5.6 Rob construdo numa primeira fase ..................................................... 51

Figura 5.7 Estrutura final do rob com visualizao da distribuio de massa pelo corpo
do rob .................................................................................................. 52

Figura 5.8 Estrutura final do corpo do rob desenvolvido para a simulao .................... 52

Figura 5.9 Ambiente final do rob simulado no SimTwo ........................................... 54

Figura 6.1 Rob diferencial .............................................................................. 58

Figura 6.2 Movimento linear para determinar a relao de impulsos atravs do


deslocamento .......................................................................................... 60

Figura 6.3 Movimento circular para determinar a distncia entre rodas ........................ 60

Figura 6.4 Esquema representativo da aquisio da imagem pela cmara ..................... 62

Figura 6.5 Imagem original capturada pela cmara instalada no rob .......................... 63

Figura 6.6 Imagem utilizada para mtodo de calibrao ........................................... 64

Figura 6.7 Imagem original delimitada a verde pela ROI ........................................... 65

Figura 6.8 Imagem aps pr-processamento e segmentao ...................................... 65

Figura 6.9 Esquema representativo do procedimento Goto_Target .............................. 67

Figura 6.10 Mquina de estados do procedimento Goto_Target .................................. 67

Figura 6.11 Representao esquemtica do procedimento Follow_Line ........................ 68

Figura 6.12 Mquina de estados do procedimento Follow_Line ................................... 68

Figura 6.14 Mquina de estados para o procedimento Follow_Circle ............................ 69

Figura 6.13 Esquema representativo do procedimento Follow_Circle ........................... 69

Figura 6.15 Imagem representativa dos percursos e sentidos a realizar pelo rob ao
longo da trajectria em H ........................................................................ 70

Figura 6.16 Mquina de estados para o procedimento Follow_Path ............................. 71

Figura 6.17 Exemplo de um percurso a realizar pelo rob ......................................... 72

Figura 6.18 Esquema representativo da medio da distncia do rob a uma parede


lateral ................................................................................................... 73

Figura 6.19 Esquema representativo da medio da distncia do rob a um marcador


artificial ................................................................................................. 74

Figura 6.20 Diagrama de estados do processo de localizao ..................................... 75


xviii Lista de figuras

Figura 7.1 Trajectria baseada em odometria ....................................................... 78

Figura 7.2 Trajectria baseada em odometria com rudo aplicado aos encoders.............. 79

Figura 7.3 Trajectria baseada em odometria com correco da orientao do rob


atravs de marcadores ............................................................................... 80

Figura 7.4 Trajectria baseada em odometria com correco da orientao e posio do


rob atravs de marcadores ........................................................................ 81

Figura 7.5 Trajectria baseada em odometria com correco do estado do rob atravs
de marcadores e rudo aplicado aos encoders ................................................... 82
xix

Lista de tabelas

Tabela 4.1 Formato da trama do protocolo Daisy Bin ............................................... 33

Tabela 4.2 Resumo dos campos que constituem a trama do protocolo Daisy Bin .............. 34

Tabela 4.3 Cabealho das mensagens do protocolo UDP ........................................... 35

Tabela 4.4 Definio de IPs e Mscara de sub-rede para a comunicao baseada no


protocolo TCP .......................................................................................... 35

Tabela 4.5 Parmetros do modelo dinmico do rob ............................................... 42

Tabela 4.6 Parmetros do PI utilizados nos motores ................................................ 43

Tabela 5.1 Classes abrangidas pela estrutura hierarquia mais elevada do SimTwo ........... 49

Tabela 5.2 Objectos bsicos do SimTwo e suas propriedades ..................................... 49

Tabela 5.3 Objectos mais complexos suportados pelo SimTwo ................................... 50

Tabela 5.4 Propriedades dos objectos mais complexos abrangidos pelo SimTwo.............. 50

Tabela 5.5 Formato da mensagem enviada pelo SimTwo .......................................... 55

Tabela 5.6 Formato da mensagem recebida pelo SimTwo ......................................... 55

Tabela 6.1 Parmetros da odometria obtidos para a plataforma em estudo ................... 61

Tabela 6.2 Formato da mensagem enviada por TCP ................................................ 65

Tabela 6.3 Transies da mquina de estados do procedimento Follow_Path ................. 71

Tabela 6.4 Percursos efectuados em cada estado do procedimento Follow_Path ............. 71

Tabela 6.5 Transies da mquina de estados do processo de localizao ..................... 75


xx Lista de tabelas
xxi

Abreviaturas e Smbolos

Lista de abreviaturas

3D Three Dimensional
5DPO Grupo de Futebol Robtico da FEUP
AGV Automated Guided Vehicle
CPU Central Processing Unit
DC Direct Current
DEEC Departamento de Engenharia Electrotcnica e de Computadores
DPI Dots per Inch
EKF Extended Kalman Filter
FEUP Faculdade de Engenharia da Universidade do Porto
GPS Global Positioning System
IP Internet Protocol
ISO International Organization for Standardization
KF Kalman Filter
LCD Liquid Crystal Display
ODE Open Dynamics Engine
PI Proportional, integral
PID Proportional, integral, derivativo
PLS Proximity Laser Scanner
PPI Pixels per Inch
PWM Pulse Width Modulation
ROI Region of Interest
RF Radio Frequency
TCP Transmission Control Protocol
XML Extensible Markup Language
xxii Abreviaturas e Smbolos
Captulo 1

Introduo

Numa sociedade imersa em novas tecnologias, onde a sucessiva competitividade e o


elevado ritmo gera cada vez mais a criao e a procura de novas solues capazes de permitir
o avano, o progresso e a ascenso de empresas, pessoas e instituies, surge com
pertinncia a necessidade de desenvolver produtos de custo mais acessvel com a profunda
inteno de superar a investida de outras solues, promovendo assim o desenvolvimento
econmico.

O tema apresentado nesta dissertao ser estudado para um caso particular de robtica
mvel os veculos guiados autonomamente (AGV). Este trabalho ser desenvolvido em
colaborao com a empresa DELTAMATIC Engenharia e Automao Industrial, S.A.
(www.deltamatic.pt) uma vez que o estudo e os resultados se revelam pertinentes para a
mesma.

A constante necessidade de optimizar recursos humanos para diminuir custos de


produo, aumentar a produtividade de um sistema, eliminar a presena humana em
ambientes potencialmente perigosos e hostis para a sade, reduzir danos nos produtos por
manuseamento, aliada franca ascenso dos sistemas robticos autnomos na indstria e
servios, tem possibilitado a utilizao de AGVs em diversas aplicaes. Tal crescimento
seria ainda mais significativo se estes sistemas se inserissem num mercado de custo reduzido,
possibilitando o seu acesso s pequenas e mdias empresas.

1.1 Enquadramento Geral

At ao aparecimento da robtica mvel, o transporte e manuseamento de materiais era


realizado com uma forte interveno humana, como era o caso dos veculos guiados
manualmente. Actualmente, estas tarefas so realizadas por veculos guiados
autonomamente, vulgarmente designados por AGV.

1
2 Introduo

O primeiro AGV apareceu no mercado em 1950, por Barrett Electronics de Northbrook, em


Illinois, e consistia apenas num veculo de reboque que seguia um fio elctrico embutido no
pavimento, substituindo o tradicional sistema de carril. Ao longo dos anos, com a progressiva
sofisticao da tecnologia os veculos tornaram-se autnomos, potencializando a tecnologia
laser LGV para a sua localizao. Sendo assim, considerando o caso tpico de um rob mvel
que se desloca num ambiente bidimensional, localizar o mesmo significa conhecer a sua
posio cartesiana e orientao em coordenadas do mundo. Aliado localizao
surge o conceito de navegao [1].

A navegao pode ser considerada como a plataforma intermdia que faz cumprir a ordem
de chegar a um certo destino. De uma forma geral, possvel entender a navegao de robs
mveis como o problema de determinao de trajectrias, proporcionando condies para
que as tarefas (objectivos) sejam executadas com desempenho aceitvel. Estas tcnicas
utilizam diferentes tipos de sensores (infravermelho, ultra-sons, tctil, viso) como parte do
equipamento do rob mvel, para realizar as suas tarefas de movimentao e controlo, desde
uma posio inicial at uma posio final definida.

Em sistemas de processos automatizados, os AGVs so programados para cooperarem com


outros robs, com o intuito de garantir que o transporte do produto realizado de uma forma
suave. Presentemente, os veculos guiados autonomamente desempenham um papel
importante na concepo de novas fbricas e armazns, permitindo o transporte de
mercadorias em segurana [2].

No final do sculo XX, os AGVs assumiram novas funes e esta tecnologia comeou a ser
fortemente utilizada para movimentar contentores industriais (ISO Estandardizado). A ttulo
de exemplo, destaca-se o porto martimo de Roterdo o qual utiliza mais de 100 AGVs na
realizao desta funo, figura 1.1 [2]. de salientar que o controlo destes veculos depende
das caractersticas do meio ambiente1, bem como do tipo de tarefa e do desempenho exigido
os quais influenciam bastante na escolha da tcnica de localizao [3]. No Captulo 2 so
apresentadas as tcnicas de localizao utilizadas actualmente nos AGVs.

As aplicaes deste tipo de veculos so interminveis podendo os mesmos possuir uma


capacidade de carga que pode variar de apenas alguns quilos a centenas de toneladas.

1
Pode-se caracterizar por um ambiente interno fechado com caractersticas previamente
conhecidas, indoor, ou num ambiente externo no necessariamente conhecido, outdoor.
Objectivos 3

Figura 1.1 Aplicao de AGVs no porto martimo de Roterdo

1.2 Objectivos

A presente dissertao tem como objectivos gerais apresentar uma tcnica de localizao
de custo reduzido baseada em marcadores passivos artificiais previamente colocados pelo
percurso a percorrer pelo rob e um sistema de controlo e navegao para o AGV.
Assim, para a concretizao destes objectivos esta dissertao ser enformada nas
seguintes etapas:
Levantamento de estudos j realizados sobre veculos guiados autonomamente e de
outras tecnologias similares;
Reviso bibliogrfica referente problemtica de localizao;
Simulao do comportamento do rob na plataforma de simulao SimTwo;
Desenvolvimento e implementao do sistema de localizao baseado em marcadores
passivos localizados no pavimento;
Desenvolvimento e implementao do software de controlo da movimentao;
Desenvolvimento e implementao do sistema de navegao e seguimento de
trajectrias.

1.3 Organizao do documento

Esta seco tem como objectivo descrever a estrutura e organizao deste documento,
explicando sucintamente o que ser desenvolvido em cada captulo.
Aps este captulo introdutrio far-se-, no captulo 2, uma anlise do estado da arte
quanto aos mtodos mais utilizados na localizao e na deteco de obstculos de um AGV.
No captulo 3 apresentam-se alguns conceitos tericos pertinentes que posteriormente
sero aplicados no desenvolvimento do trabalho em estudo.
4 Introduo

No captulo 4 descreve-se a implementao do rob desenvolvido neste trabalho, sendo


tambm descritos os vrios elementos constituintes do hardware e do software.
Segue-se o captulo 5, plataforma de simulao, onde se apresenta a ferramenta de
simulao utilizada para testar o comportamento do rob.
No 6 captulo, localizao e navegao, apresentam-se a tcnica de localizao relativa e
absoluta aplicada ao rob, bem como o planeamento de trajectrias e os algoritmos
desenvolvidos para a localizao do rob.
O captulo 7 exibe alguns dos resultados obtidos relativos localizao do rob quando
percorre um percurso de um ponto inicial do mapa para um ponto final.
Finalmente, no captulo 8 apresentam-se as concluses gerais retiradas no
desenvolvimento do presente trabalho e, tendo em considerao o que foi apreendido,
remete-se ainda para alguma propostas a realizar no futuro.
Captulo 2

Estado da Arte

Com o crescimento do poder de processamento computacional e com o sucessivo


progresso no desenvolvimento de tecnologias de localizao para veculos autnomos,
surgiram os primeiros robs mveis, com uma vasta aplicao em diversos servios e
indstrias. Como j foi referido no captulo anterior, estes tinham como intuito a reduo da
interveno humana, de forma a reduzir e optimizar os recursos humanos.
Segundo Rocha [4], no desenvolvimento de um rob mvel procura-se aliar a eficincia de
manuseamento e manipulao de robs convencionais (manipuladores robticos) com a
autonomia em sistemas de navegao de um veculo autnomo, num nico dispositivo de
automao mvel.
Na aplicao industrial, as fbricas de produo utilizam veculos mveis para incorporar
trabalhos com outras mquinas, com a finalidade de se tornarem sistemas modernos de
produo flexvel [5]. Neste domnio, os veculos guiados autonomamente so os que
apresentam maior aplicao em empresas de produo ou de distribuio, relativamente
robtica mvel, realizando variadssimas tarefas, tais como a manipulao e armazenamento
de materiais. Podem ser tambm utilizados em escritrios para troca de correspondncia ou
documentos, bem como nos aeroportos para o transporte de clientes embora ainda no seja
muito habitual encontrar esta tecnologia nos aeroportos.

A eficincia e a eficcia dos sistemas de produo so influenciadas pelo nvel de


optimizao do movimento de materiais dentro da fbrica. Sendo assim, o desempenho de um
sistema automtico de transporte essencial para conseguir um bom desempenho geral do
sistema de produo.

2.1 Mtodos de localizao de AGVs

Como j foi referido, os veculos guiados autonomamente, AGV, tm actualmente uma


enorme importncia no transporte interno e externo de materiais na indstria de produo,
tendo-se assistido a um forte alargamento da utilizao destes veculos para outras reas
como o armazenamento.

5
6 Estado da Arte

Os AGVs so veculos equipados com sistemas de orientao automtica capazes de


seguir os caminhos pr-definidos. A preciso de localizao , consequentemente, de extrema
importncia para o alcance da verdadeira autonomia do veculo, contribuindo assim para o
seu sucesso. A verdadeira problemtica associada localizao resume-se questo onde
estou?, referindo-se ao meio em que est inserido o veculo [6].
Desta forma, ao longo dos anos assistiu-se a uma evoluo contnua no que diz respeito
autonomia e preciso de localizao dos AGVs. Existem diversos mtodos de localizao que
permitem a um AGV seguir um caminho fixo ou um caminho dinmico. Assim, a determinao
dos caminhos depende dos requisitos de flexibilidade, dos custos de instalao e da
necessidade ou no da futura ampliao do sistema. Os sistemas com caminhos fixos so
menos dispendiosos no que se refere instalao, todavia inviabilizam a possibilidade de
reagir a alteraes no layout do trabalho sem interromper o seu funcionamento normal,
acarretando por isso custos adicionais.
Na seco 2.1.1, 2.1.5 e 2.1.6 sero abordadas solues de localizao baseadas em
caminhos fixos. Os mtodos baseados em caminhos dinmicos sero apresentados nas seces
2.1.2, 2.1.3 e 2.1.4.

2.1.1 Solues envolvendo filo-guiado

O sistema baseado em filo-guiado, representado na figura 2.1 e 2.2, a forma mais


simples de navegao, uma vez que estabelece um percurso fisicamente pr-definido. Esta
soluo, segundo Rocha [4], usada em grande escala devido sua robustez e simplicidade.
baseada num fio lectrico embutido no pavimento e num sistema de deteco do campo
magntico do veculo, ou seja, um sensor para detectar o sinal de RF proveniente do fio
embutido (aproximadamente 2 a 3 centmetros abaixo da superfcie do piso). O sensor
detecta o sinal e ajusta a posio do veculo para mant-lo no caminho. Uma vez que este
sistema implica a abertura de um corte no pavimento, estes sistemas de filo-guiado so
comummente utilizados quando os percursos no so susceptveis de alterao [7]. Apesar
dessa limitao, os sistemas de filo-guiado so frequentemente usados em aplicaes que
requerem um alto grau de preciso no caminho a percorrer pelo AGV. exemplo desta
utilizao a viagem de ida e volta entre duas estaes de trabalho numa rea congestionada.

Figura 2.1 Sistema de localizao por filo- Figura 2.2 AGV com tecnologia filo-guiado [2]
guiado [8]
Mtodos de localizao de AGVs 7

2.1.2 Solues envolvendo trilaterao/triangulao laser

A tcnica envolvendo trilaterao/triangulao laser utiliza painis reflectores instalados


nas colunas, paredes, mquinas ou postos, como se ilustra na figura 2.3, sendo estabelecido
um nico ponto de coordenada X, Y, para cada painel [7]. Na figura 2.4 encontra-se
representada esta tcnica, que consiste na incorporao de um laser scanner no veculo. Este
efectua varrimentos rotativos detectando as posies dos painis reflectores colocados ao
longo do layout [9]. Segundo Rocha [4], a posio do AGV obtida aplicando o mtodo da
trilaterao/triangulao. Este mtodo define a localizao do veculo atravs da medio da
distncia e orientao dos feixes de luz reflectidos pelos reflectores e, consequentemente, a
triangulao destas medidas permite determinar a posio do AGV. O mapa do layout dos
reflectores distribudos pelo percurso armazenado numa base de dados e acessvel pelo
AGV. Esta soluo apresenta elevada flexibilidade, pois possvel criar um novo layout sem
que seja necessrio efectuar interrupes ao funcionamento normal do veculo [9] e [10].
Este mtodo apresenta-se adequado para um ambiente industrial, desde que no exista
excessiva poeira no ar.

Figura 2.3 Sistema de localizao por laser Figura 2.4 AGV com tecnologia laser [11]
[8]

2.1.3 Solues envolvendo viso artificial

Na tcnica envolvendo viso artificial, a navegao do veculo realizada atravs da


captura de informao visual obtida a partir de marcadores (landmarks), previamente
distribudos pelo percurso a percorrer pelo mesmo. Estes marcadores so normalmente figuras
geomtricas ou sinais colocados num layout pr-definido e pr-conhecido pelo AGV. Segundo
Beccari [12], esta tecnologia fortemente utilizada para a navegao de veculos inseridos
em ambientes estruturados2 e quando se pretende um custo de implementao relativamente
baixo.

2
Caracterizam-se por ambientes estveis, onde no h variao da posio dos componentes ou
equipamentos, nem um elevado fluxo na circulao de pessoas.
8 Estado da Arte

2.1.4 Solues envolvendo GPS

A soluo de localizao por GPS, representada na figura 2.5, apenas se aplica a situaes
de navegao quando o veculo circula em ambientes exteriores e utilizada normalmente
para veculos de grande porte onde no necessria uma elevada preciso na posio do
AGV. Esta tecnologia usualmente utilizada no transporte de pessoas nos aeroportos ou,
como foi referido no captulo anterior, para transporte de mercadorias de grandes dimenses
em percursos longos, como contentores industriais. Este mtodo, para Leito et al [13], no
permite a recolha ou armazenamento automtico de produtos nem a cooperao com outros
robs num sistema de produo/distribuio flexvel, devido falta de preciso na
determinao da posio do veculo.

Figura 2.5 Sistema de localizao por GPS [13]

2.1.5 Solues envolvendo sensores pticos

A soluo assente em sensores pticos utiliza uma fita magntica ou colorida, como se
representa na figura 2.6, para estabelecer o percurso do AGV. A utilizao destas fitas
assume algumas vantagens perante os sistemas de filo-guiado, uma vez que estas podem ser
facilmente removidas e recolocadas se for necessrio alterar o percurso a percorrer pelo
veculo, para alm do reduzido custo de instalao [10]. Este facto deve-se no necessidade
de embutir a fita no pavimento. O sistema representado na figura 2.7 considerado um
sistema passivo, uma vez que no exige que o meio de acompanhamento do veculo seja
magnetizado [2]. Esta tecnologia poder-se- tornar instvel quando incorporada em reas de
elevado trfego, onde a fita pode ficar danificada ou suja, inviabilizando a localizao do
AGV.
Mtodos de localizao de AGVs 9

Figura 2.6 Sistema de localizao baseado emFigura 2.7 AGV com sistema de localizao
sensores pticos [8] e [12] baseado em sensores pticos [2]

2.1.6 Solues envolvendo giroscpios

A tecnologia envolvendo giroscpios surgiu na dcada de 90 como alternativa soluo de


filo-guiado. No pavimento so embutidos pequenos marcadores (transponders), ilustrados na
figura 2.8, e cada AGV equipado com um giroscpio. Estes dispositivos possuem uma
elevada capacidade de detectar pequenos desvios na direco do veculo e so utilizados em
conjunto com os marcadores para determinar a posio do veculo guiado autonomamente [7]
e [10]. Estes marcadores so utilizados como pontos de referncia para corrigir qualquer
pequeno erro acumulado ao longo da distncia entre os marcadores. Normalmente encontra-
se um marcador a cada 25 metros. Do mesmo modo que na navegao baseada na
triangulao a laser, o caminho a percorrer um jogo virtual de coordenadas armazenadas na
memria de cada AGV ou numa base de dados central. A margem de erro para o mtodo de
inrcia de mais ou menos 1 centmetro [7].

Figura 2.8 Sistema de localizao por giroscpio [8]


10 Estado da Arte

2.2 Solues para deteco de obstculos

2.2.1 Solues envolvendo pra-choques mecnicos

Os pra-choques mecnicos, representados na figura 2.9, so a forma tradicional de


deteco de obstculos para sistemas de localizao baseados em filo-guiado. A zona de
deteco de um pra-choques mecnico fixa e no varia durante o funcionamento do
veculo [9]. Quando h contacto, necessrio um tempo adicional para parar o veculo,
dependendo este mesmo tempo da velocidade do veculo [14]. O veculo dever circular a
velocidades baixas para evitar o contacto com um objecto, o que a acontecer poder resultar
numa perda de produtividade.

Figura 2.9 Deteco de obstculos atravs de pra-choques mecnicos [14]

2.2.2 Solues envolvendo laser

A soluo de laser, ilustrada na figura 2.10, pode ser aplicada separadamente ou em


conjunto com o pra-choques mecnico, sendo esta a forma mais habitual de deteco de
obstculos embora relativamente dispendiosa [14]. Esta configurao de deteco oferece
uma soluo de manuteno flexvel e livre quando o ambiente de operao partilhado por
pessoas [9].
Para Leito et al [15], esta tecnologia permite que os utilizadores definam diferentes
zonas de segurana para a deteco de obstculos com diferentes actuaes em cada zona
por parte do AGV, podendo ser alteradas durante a operao do veculo. Com a ajuda do laser
pode-se calcular a distncia a que o obstculo se encontra, criando-se diferentes zonas:
Zona de Segurana Mxima No efectua manobras perigosas. Qualquer
movimentao faz parar o AGV;
Zona de Perigo Inicia a manobra de desvio do obstculo, ou emite aviso;
Zona Examinada Raio mximo observado pelo PLS.
Solues para deteco de obstculos 11

Figura 2.10 Deteco de obstculos por laser [15]

2.2.3 Solues envolvendo sensores ultra-sons

A soluo envolvendo sensores de ultra-sons utiliza o tempo de propagao de uma onda


sonora para medir a distncia a um objecto. Estes dispositivos so constitudos por um
emissor e um receptor de ultra-sons. Um sistema responsvel por gerar uma onda com
determinada frequncia que transmitida por um emissor de ultra-sons. Quando o sensor
receptor de ultra-sons detecta o eco do sinal enviado, o sistema, que mantm o registo do
tempo decorrido, desde que o sinal foi enviado at que o eco foi detectado, sabendo a
velocidade do som, calcula a distncia a que o objecto se encontra [16].
Esta soluo ainda no se apresenta muito comum em AGVs embora seja uma soluo
que se encontra em franca ascenso na indstria automvel. Para a indstria automvel, a
verso mais recente desta soluo permite, para alm de detectar obstculos, detectar
espaos livres que permitem estacionar o veculo atravs da utilizao dos sensores ultra-
snicos colocados lateralmente [17].

Figura 2.11 Deteco de obstculos atravs de ultra-sons para a indstria automvel [17]
12 Estado da Arte

Quanto aos AGVs esta soluo adoptada por [18] que estabelece vrios sensores na
zona frontal e na retaguarda, garantindo que os sensores consigam detectar um obstculo
durante o seu movimento.

Figura 2.12 Deteco de obstculos em AGVs atravs de sensores de ultra-sons [18]


Captulo 3

Enquadramento Terico

Neste captulo introduzir-se-o os conceitos tericos relevantes para o desenvolvimento


deste trabalho. Sero descritos de uma forma resumida com o intuito de permitir enquadrar
as temticas que sero desenvolvidas posteriormente durante a implementao do rob.
Assim, na seco 3.1 sero abordados os mtodos de localizao relativa e absoluta, focando
os mtodos utilizados no desenvolvimento deste trabalho. Na seco 3.2 sero introduzidos os
conceitos tericos que permitiro a fuso da informao baseando-se no Filtro de Kalman
(KF), subseco 3.2.1, e no Filtro de Kalman Estendido (EKF), subseco 3.2.2. A seco 3.3
apresenta algumas noes sobre anlise/processamento de imagem exibindo alguns
algoritmos que permitem retirar as caractersticas pretendidas de uma imagem
monocromtica.

3.1 Mtodos de medio do estado de um rob mvel

O estado de um rob mvel, , designa a posio cartesiana e a orientao


de um veculo mvel em relao a um referencial global.
Como foi referido anteriormente, segundo Borenstein [6], o problema da navegao de um
rob mvel resume-se a trs questes colocadas do ponto de vista do rob: Onde estou?,
Para onde vou?, Como fazer para l chegar?. Deste modo, nesta seco pretende-se
responder primeira questo introduzida que corresponde problemtica da localizao,
tendo em considerao o rob em estudo.
A localizao de um veculo autnomo permite definir a posio e orientao segundo um
referencial mundo. Para tal, torna-se ento necessrio introduzir mtodos que permitam
medir o seu estado. Segundo Borenstein [6], estes mtodos podem ser classificados em dois
grupos: mtodos relativos e absolutos.

13
14 Enquadramento Terico

3.1.1 Medio de posio e orientao relativa

A medio relativa do estado de um rob apresenta-se como um mtodo que,


normalmente, no requer a preparao do ambiente e tem como finalidade, garantir que o
veculo se encontra localizado em todos os instantes. Assim, o clculo da posio e da
orientao actual do veculo baseado na informao fornecida pelos sensores e determinado
mediante a actualizao de uma posio e orientao medidas anteriormente [19].
As estimativas do estado do rob fornecidas pelos mtodos de localizao relativa so
muito teis na avaliao de todas as outras informaes disponveis sobre a navegao.
Os mtodos mais comuns utilizados para localizao relativa so baseados em sensores
inerciais. Nesta seco apenas ser apresentado o mtodo baseado em odometria, visto ser o
que ser objecto de estudo neste trabalho.

3.1.1.1 Odometria

A odometria o mtodo de localizao relativa mais amplamente utilizado para a


estimao da posio e orientao de um rob [6]. Esta tcnica consiste na integrao da
informao incremental do movimento linear das rodas motrizes ao longo do tempo, ou seja,
na medio da rotao das rodas motrizes, de forma a determinar a distncia percorrida por
um veculo, a sua velocidade e a direco do movimento. Para este efeito, os sensores mais
utilizados so potencimetros, resolvers e encoders acoplados ao veio das rodas motrizes do
rob.
O deslocamento linear traduzido atravs da rotao das rodas, por vezes no transmite
uma elevada preciso para a estimao do estado do rob. A ttulo de exemplo, destaca-se o
caso de derrapagem das rodas. Este caso traduzido em impulsos gerados pelos sensores que
sero interpretados como um deslocamento linear da roda motriz e que, na maior parte dos
casos, no corresponde ao real deslocamento. Este um dos variadssimos casos de erros
aplicados odometria do rob e que ser acumulado em cada iterao no clculo de posio
e orientao do rob prejudicando igualmente, a determinao do seu estado [6] e [19].
Os erros resultantes da aplicao deste mtodo podem ser categorizados em erros
sistemticos e erros no sistemticos [6], [19] e [20].
Os erros sistemticos so especficos do rob e podem ter as seguintes origens:
Rodas com diferentes dimetros;
Dimetro mdio das rodas diferentes do seu valor nominal;
Distncia entre rodas diferente da nominal;
Desalinhamento das rodas;
Deformao dos pneus das rodas com a carga;
Variao do raio das rodas com a carga ou distribuio da carga no veculo.

Os erros no sistemticos so produzidos pela interaco do piso com as rodas do rob e


no podem possuir as seguintes provenincias:
Resoluo dos encoders limitada;
Taxa de amostragem dos encoders limitada;
Incerteza na base das rodas (ponto de contacto com o piso);
Pavimentos irregulares ou com objectos inesperados durante a trajectria do rob;
Mtodos de medio do estado de um rob mvel 15

Deslizamento das rodas devido a pisos escorregadios, aceleraes excessivas, curvas


efectuadas demasiado rpido, foras exteriores (interaco com corpos exteriores),
foras interiores (rodas livres), falta de contacto pontual entre as rodas e o piso.

Apesar deste mtodo ser de custo reduzido no que diz respeito determinao da posio
e orientao de um rob, todos os sistemas odomtricos caracterizam-se por um erro
cumulativo que funo da distncia percorrida. Por esta razo a odometria deve ser
calibrada de forma a minimizar os erros sistemticos e normalmente utilizada em conjunto
com outros mtodos, por exemplo atravs da identificao de referncias absolutas.
Informaes sobre a calibrao da odometria podem ser encontradas na referncia [21].

3.1.2 Medio de posio e orientao absoluta

Os mtodos utilizados para a localizao absoluta consistem na determinao da posio e


da orientao de um veculo de um modo independente de suposies sobre movimentos
anteriores [20].
A estimao da posio baseada em mtodos absolutos normalmente confinada
trilaterao ou triangulao com balizas, bssola magntica, reconhecimento de marcadores
artificiais ou naturais, correspondncia de mapas. Nesta seco apenas ser apresentado o
mtodo de localizao absoluta baseado em marcadores artificiais.

3.1.2.1 Marcadores Artificiais

A utilizao da localizao baseada em marcadores artificiais necessita que o ambiente


do rob seja previamente configurado mediante a colocao de marcadores no ambiente em
que o veculo se insere. Para este mtodo, os marcadores artificiais recorrentemente
utilizados so marcadores pticos, marcadores magnticos e transponders embora,
usualmente, a estimao da localizao de um rob seja baseada em marcadores pticos
detectados atravs de um sistema de viso.

A posio de cada marcador ter que ser conhecida antecipadamente pelo veculo e ter
que constituir o percurso desejado para a trajectria do rob, com o fim exclusivo de
possibilitar a sua localizao [6] e [20]. A utilizao de marcadores artificiais permite que o
rob conhea desde logo as suas caractersticas, tais como a forma, o tamanho. De uma forma
geral, os marcadores (landmarks) so cuidadosamente escolhidos para serem facilmente
identificveis/detectveis e possuem uma posio fixa e conhecida a partir da qual o rob se
pode localizar [6]. Quando se utiliza um sistema de viso artificial para detectar os
marcadores, estes devem possuir como caracterstica principal, um elevado contraste com o
seu fundo (background).
Este mtodo apresenta-se bastante vantajoso quando se pretende implementar um
sistema de localizao de custo reduzido, pois os marcadores artificiais apresentam um custo
efectivo desprezvel.
A localizao baseada em marcadores artificiais inerentemente intermitente, uma vez
que estes se encontram espaados no ambiente e, geralmente, um veculo s consegue
16 Enquadramento Terico

reconhecer um marcador de cada vez e quando se encontra bastante prximo deste. Assim, a
navegao baseada em marcadores artificiais bastante inexacta quando o veculo se
encontra distante do marcador que nesse momento estiver a ser utilizado para a localizao.
O grau de exactido da localizao apenas se torna mais elevado quando o rob detecta um
marcador. Para a navegao entre dois marcadores ento necessrio recorrer a outro
mtodo de localizao (por exemplo, odometria). O no reconhecimento de apenas um dos
marcadores pode fazer com que o veculo se perca.
A exactido com que o rob estima a sua posio diminui com o aumento da distncia
entre o rob e o marcador. A orientao de um veculo relativamente a um marcador outro
factor que permite estimar esta exactido. Outro factor preponderante para a localizao de
um veculo atravs deste mtodo passa pela iluminao.
A navegao por marcadores artificiais requer que o estado do rob seja
aproximadamente conhecido partida, para que o rob s precise de procur-los numa rea
limitada.

3.2 Mtodos Estocsticos para fuso sensorial

A localizao em sistemas robticos autnomos um assunto complexo, e que requer


especial ateno quando necessria uma elevada preciso na obteno da posio de um
rob. A constante necessidade de reduzir o custo efectivo de um sistema atravs da
substituio de um sensor de elevada preciso (custo elevado), por vrios sensores de baixo
custo (menor preciso), permitiu introduzir uma nova rea denominada fuso multi-sensorial
de dados [22].
Define-se fuso multi-sensorial, neste contexto, como a fuso de informao proveniente
de diversos sensores, que combinados, permitem obter um melhor desempenho, ou seja,
obter mais preciso do que com um nico sensor, fornecendo assim uma descrio mais
robusta e completa do ambiente [23].
O termo fuso sensorial, apesar de parecer bastante complexo, envolve poucas ideias
essenciais: mltiplas entradas, uma ou mais tcnicas de fuso, o resultado pretendido e o
mecanismo de controlo do sistema, figura 3.1. A fuso de sensores um termo que abrange
uma srie de mtodos e algoritmos, incluindo o filtro de Kalman. O filtro de Kalman atravs
de informao proveniente dos diferentes sensores, permite realizar uma estimao do
estado do rob.
Nesta seco, o mtodo estudado e apresentado foi o filtro de Kalman e a sua vertente
EKF (Extended Kalman Filter). Apresentam-se tambm, de uma forma resumida, as equaes
que regem estes conceitos.

Sistema
Dados dos Interferncia
sensores de Fuso

Mecanismo de
controlo

Figura 3.1 Elementos constituintes de um sistema de fuso sensorial


Mtodos Estocsticos para fuso sensorial 17

3.2.1 Filtro de Kalman

O filtro de Kalman ou filtro de Kalman-Bucy, introduzido pelo matemtico R. E. Kalman,


o mtodo mais amplamente utilizado por fuso sensorial em aplicaes de robtica mvel.
Trata-se de um algoritmo recursivo de fuso de informao, utilizado para prever os estados
de um sistema dinmico, baseado na medio da fiabilidade dos dados observados a partir de
uma matriz de co-varincias calculada a cada novo processo de estimao que se utiliza o
filtro, garantindo a convergncia para a soluo ptima [24]. Com base num conjunto de
equaes matemticas estimado o estado do processo, de modo a minimizar a co-varincia
do erro estimado. Se um sistema pode ser descrito como um modelo linear e as incertezas dos
sensores e do sistema modeladas como rudo branco3, ento o KF fornece uma estimativa
estatisticamente aceitvel para a informao recebida. Isto significa que, sob certas
condies, o filtro de Kalman capaz de encontrar a melhor estimativa baseada na correco
de cada medida [24].

As premissas em que este filtro se baseia so [25]:

O sistema deve ser linear;


O rudo que afecta o sistema gaussiano com mdia nula e varincia constante;
O rudo do sistema e as medidas no esto correlacionados.

3.2.1.1 Equaes em tempo discreto

O filtro de Kalman pretende estimar o estado de um processo controlado em tempo


discreto com base na equao s diferenas lineares estocsticas

(3.1)

com medies de obtidas por

(3.2)

As variveis aleatrias vk e wk representam o processo de mensurao dos rudos e so


assumidas como sendo independentes uma da outra, com rudo branco e distribuio normal

(3.3)

(3.4)

3
Caracteriza-se por ser rudo associado a determinada medida ou processo cuja caracterstica
principal a sua aleatoriedade, logo no determinstico, o que resulta num erro de medida ou
estimao do processo.
18 Enquadramento Terico

em que Q representa o rudo do processo da co-varincia e R o rudo da mensurao da co-


varincia.
Este filtro permite obter um estimador ptimo se as variveis, vk e wk, forem processos
gaussianos de mdia nula.

O estado de um processo, representa a partir de n a dimenso do sistema.


As entradas deste so caracterizadas por p atravs de . A mensurao
do processo estipula q como o nmero de sadas do sistema.

Na equao (3.1), a matriz A com e a matriz B de ,


relacionam, o estado anterior, k, com o estado actual, k+1, e com as entradas ,
respectivamente. Na equao (3.2) representa-se a matriz C de que relaciona o
estado actual com a medio yk+1 [24].

O filtro de Kalman pressupe duas fases distintas: estimao e actualizao. A estimao


usa o modelo do sistema e o estado anterior para produzir uma estimativa do estado actual.
Esta fase corresponde utilizao dos sensores de localizao relativa (encoders) para
proceder estimao do estado do sistema, o que conduz a um crescimento sem limites do
erro de estimao, devido sucessiva integrao do rudo dos sensores. Para diminuir o erro
de estimao necessrio ento recorrer segunda fase do KF, a actualizao. A fase de
actualizao usa informaes de medidas existentes para refinar essa estimao, a fim de
alcanar uma nova estimativa mais precisa do estado, a iterao corrente. Para o caso de
estudo em concreto, esta fase realiza-se sempre que um marcador artificial detectado.

Considerando ento as condies iniciais do processo como

(3.5)

(3.6)

possvel auferir as equaes da estimao e actualizao em tempo discreto. Assim, a


propagao de estado obtida por

(3.7)

com, a co-varincia associada obtida a partir de

(3.8)

Para a actualizao, que pode no ocorrer em todas as iteraes, necessrio calcular o


ganho de Kalman. Este dado por

(3.9)
Mtodos Estocsticos para fuso sensorial 19

e a actualizao da co-varincia por

. (3.10)

Por fim, a actualizao de estado obtida atravs de

. (3.11)

A figura 3.2 apresenta de forma sumria o processo de estimao em paralelo com o de


actualizao. As expresses descritas acima podem ser confirmadas em Welch et al [24].

Inicializao Equaes do
de estado processo de estimao

Equaes do
processo de actualizao

Figura 3.2 Resumo do processo de estimao e actualizao do KF em tempo discreto

3.2.2 Filtro de Kalman Estendido

Conforme descrito anteriormente, o filtro de Kalman aborda o problema geral de tentar


estimar o estado de um sistema em tempo discreto controlado atravs de uma equao linear
estocstica. No entanto, a maioria dos sistemas so no-lineares. Um filtro de Kalman que
lineariza em torno da mdia e co-varincia actual referido como um filtro de Kalman
estendido, EKF. So apresentadas de seguida as equaes que descrevem o filtro de Kalman
estendido.
A propagao de estado dada por

(3.12)

sendo, a previso da varincia determina atravs de

(3.13)

com ,e .
20 Enquadramento Terico

A fase de actualizao pressupe o clculo do ganho de Kalman que pode ser obtido a
partir de

(3.14)

com, e .

Mediante as equaes anteriores, obtm-se ento a actualizao da estimao. Esta


dado por

(3.15)

e a actualizao da varincia obtida atravs de

. (3.16)

3.3 Anlise de imagem

Uma imagem pode ser definida como uma matriz de pixis em que cada pixel funo da
sua coordenada no plano da imagem. Assim, uma imagem monocromtica uma funo
, em que est compreendida entre valores de preto e branco, ou seja, valores
numa escala de nveis cinzentos.
Desta forma, numa imagem monocromtica a funo est compreendida entre os
valores

. (3.17)

Nesta seco sero abordadas algumas tcnicas que permitem retirar as caractersticas
mais importantes de uma imagem, tendo em conta o fim desejado.

3.3.1 Pixis e nveis de uma imagem

Uma imagem possuir maior qualidade quanto maior for o nmero de pixis e os nveis de
intensidade que compem essa mesma imagem.
Um conceito geralmente associado a uma imagem a sua resoluo. A resoluo pode ser
descrita como a resoluo espacial ou resoluo de intensidade. A resoluo espacial um
termo que se refere ao nmero de pixis utilizados na construo de uma imagem digital,
expressa em dpi ou em ppi, e a distncia entre cada pixel e como tal a profundidade da
qualidade da imagem. Duas imagens com o mesmo nvel de intensidade e diferente nmero
de pixis, resultam em imagens com qualidade diferente, ou seja, uma imagem com maior
Anlise de imagem 21

resoluo espacial composta por um maior nmero de pixis do que as de menor resoluo
espacial. Intensidade de resoluo representa os nveis de intensidade numa imagem.

3.3.2 Processamento de imagem binria

Uma imagem binria caracteriza-se por ser uma imagem constituda por apenas dois nveis
de intensidade, normalmente branco e preto. Na figura 3.3 mostra-se a diferena entre uma
imagem de nveis cinzentos e sua imagem binria. Numa imagem binria, os pixis do objecto
possuem o valor 1 (preto) e os pixis do fundo possuem valor 0 (branco), ou vice-versa,
dependendo da conveno.
Com a mesma resoluo espacial, uma imagem binria requer menos poder computacional
que a sua imagem em nveis cinzentos. Isso ocorre porque o valor de um pixel binrio pode
ser representado por uma varivel lgica, enquanto a representao de um valor de na escala
de cinzentos necessita da representao da imagem como uma funo .
Em geral, os sistemas de viso binria so teis nos casos em que a forma contm
informao suficiente para permitir o reconhecimento de um objecto e onde o ambiente pode
ser adequadamente controlado. Desta forma, os objectos devem ser facilmente separados do
fundo para garantir que se obtm a correcta forma do objecto. A qualidade da informao
obtida por binarizao pode ser melhorada se a imagem possuir poucos objectos e utilizando
tcnicas de iluminao apropriadas. Estas sero descritas na seco 3.3.3.

3.3.2.1 Aquisio de imagem binria

Quando se utiliza a viso artificial para adquirir informao de uma imagem em tempo
real, no se pretende obter a imagem original mas sim uma determinada caracterstica da
imagem.
O threshold uma operao pontual sobre a imagem original. Esta operao tem como
finalidade separar na imagem os objectos do fundo. Assim, atravs desta operao converte-
se uma imagem de nveis cinzentos numa imagem binria. Desta forma, define-se
exactamente os pixis brancos, cujo valor est acima de um determinado limiar e fixam-se os
restantes pixis com a cor preta. Nas imagens monocromticas, o fundo possu nveis de
intensidade mais elevados comparativamente com os objectos.

Figura 3.3 Imagem em escala de cinzentos e imagem binria


22 Enquadramento Terico

A imagem binria obtida a partir da imagem original


pode ser descrita por

(3.18)

No caso dos valores dos nveis de intensidade dos objectos serem conhecidos e
pertencerem ao intervalo , ento a imagem binria correspondente pode ser obtida de
acordo com

(3.19)

3.3.3 Tcnicas de iluminao

Em sistemas sensveis luminosidade, a iluminao de uma imagem captada por um


sensor passivo (por exemplo, uma cmara) um factor importante e que, muitas vezes,
afecta a complexidade do processamento da imagem. A utilizao de iluminao natural, ou
arbitrria, pode resultar em baixos contrastes de imagem, sombras, reflexos e detalhes
irrelevantes. Deste modo, por vezes, para a obteno de resultados ptimos necessria uma
iluminao cuidada. Um sistema de iluminao bem projectado permite minimizar a
complexidade de uma imagem com a finalidade de obter uma melhor informao para a
deteco de um determinado objecto. Existem diversas tcnicas de iluminao de imagem
sendo que os mais usuais so [26]:
Difusa aplicada quando as caractersticas da superfcie dos objectos so importantes;
Direccional reala o contraste dos contornos e dos baixos-relevos de um objecto;
Iluminao estruturada a estrutura da iluminao fornece informao tridimensional;
Iluminao na retaguarda do objecto (backlight) permite adquirir a forma de um
objecto.

Figura 3.4 Esquemas bsicos de iluminao


Captulo 4

Mini-AGV Concepo Estrutural

Neste captulo apresenta-se de uma forma geral, a infra-estrutura experimental utilizada


para o desenvolvimento deste trabalho, bem como algum do material herdado de projectos
anteriores. Inicialmente sero estabelecidos alguns traos gerais sobre a concepo deste
sistema no que diz respeito ao tipo de locomoo e versatilidade do rob e tambm
relativamente arquitectura de processamento. Na seco 4.2 ser apresentada a
arquitectura funcional do hardware que compe o rob e nas subseces seguintes ser
descrito em detalhe cada elemento da plataforma de hardware que compe o mesmo. A
descrio em pormenor da estruturao do software desenvolvido para a realizao deste
estudo, bem como todos os protocolos de comunicaes empregues e os controladores de
velocidade dos motores, sero apresentados na seco 4.3.

4.1 Descrio Geral

Na figura 4.1 pode-se visualizar o rob utilizado no estudo deste trabalho. A principal
caracterstica da plataforma robtica Mini-AGV o facto de esta possuir um sistema de
traco diferencial, sendo este o mais popular e usado em veculos guiados autonomamente.
O sistema desenvolvido consiste na disposio diametral de duas rodas acopladas a dois
motores de corrente contnua, dispostos no mesmo eixo central e simetricamente opostos.
Para proporcionar uma estabilidade e apoio estrutura so tambm colocadas duas rodas
livres, como se pode verificar na figura 4.2. Esta configurao traduz-se num simples
mecanismo de locomoo, permitindo plataforma uma enorme liberdade de movimento,
como rodar sobre o seu centro. No captulo 6 ser descrito em detalhe a cinemtica referente
ao modelo de odometria para um rob com accionamento diferencial.
Uma caracterstica no menos importante do rob concebido a versatilidade. O rob
constitudo por uma plataforma deslizante movida vertical e horizontalmente em relao
base do sistema, capaz de recolher e armazenar volumes em vrias posies previamente
estabelecidas pelo utilizador.

23
24 Mini-AGV Concepo Estrutural

Figura 4.1 Rob desenvolvido para a realizao do trabalho em estudo

V1

V2

Rodas livres

Figura 4.2 Sistema de traco diferencial com duas rodas livres

4.2 Plataforma de Hardware

A arquitectura funcional da plataforma de hardware do rob em estudo apresentada na


figura 4.3. O AGV apresenta uma arquitectura complexa, integrando diversos dispositivos
externos com diferentes necessidades de comunicao. de salientar que o processamento
de dados dividido em dois nveis distintos. O nvel inferior, designado por camada de
processamento inferior, responsvel por processar a informao dos sensores actuando nos
motores. O nvel superior, designado por camada de processamento superior, encarrega-se de
efectuar o controlo e a deciso do movimento do rob, tendo como uma das principais
funes a determinao da localizao do mesmo. Estas duas camadas sero apresentadas em
pormenor na seco 4.3.
Seguidamente, apresenta-se em detalhe os elementos constituintes do AGV e que figuram
na arquitectura funcional do hardware.
Plataforma de Hardware

Figura 4.3 Arquitectura funcional da plataforma de hardware


25
26 Mini-AGV Concepo Estrutural

4.2.1 Motores

O rob desenvolvido para o estudo deste trabalho contempla quatro motores. Dois para o
movimento do mesmo e dois destinados ao movimento da plataforma deslizante.
Para a locomoo do AGV recorreu-se aos motores DC apresentados na figura 4.5. Estes
so dotados de 150 Watts de potncia e alimentados por uma tenso nominal de 24 Volts.
Reala-se o facto de estes motores de traco possurem uma caixa redutora incorporada
sendo a relao da caixa de 43:1. Desta forma transmite-se um maior binrio em prol de uma
reduo na velocidade de rotao. Estes motores apresentam uma excelente razo entre
volume/performance, altssima eficincia, baixa indutncia, alta fiabilidade e alta acelerao
graas baixa inrcia, [27].
Para o deslocamento da plataforma responsvel pela recolha/armazenamento de
materiais utilizaram-se dois motores para a translao vertical e para a horizontal. Assim,
para o deslocamento vertical utilizou-se o motor da Mini Motor com uma potncia nominal de
37 Watts e para o deslocamento horizontal o motor elctrico sncrono Brushless (motor DC
sem escovas) com uma potncia de 30 Watts, comutado electronicamente. A figura 4.4 ilustra
os motores utilizados para o movimento da plataforma deslizante.

Figura 4.4 Motores para o movimento da plataforma deslizante [28]

4.2.2 Encoders

Com o objectivo de quantificar a distncia percorrida por cada roda, o sentido e a


velocidade de rotao das mesmas, acoplou-se codificadores pticos encoders,
directamente ao veio dos motores. Na figura 4.5 encontra-se representado o modelo do
encoder utilizado para a locomoo da plataforma robtica integrado no motor e na caixa
redutora. Estes encoders possuem uma resoluo de 256 impulsos por revoluo (360) e trs
sinais de sada (A, B e I). Os canais A e B permitem determinar o sentido de rotao do veio e
encontram-se desfasados de 90. O canal I um ponto de referncia para a determinao
precisa do ngulo de rotao e gera um impulso sempre que o eixo do codificador ptico
realiza uma volta completa [29]. Uma vez que, so contabilizadas todas as transies de das
fases obtm-se no os 256 impulsos por rotao mas antes 1024.
A posio de carga ou descarga de um determinado material tambm determinada
atravs da leitura de um codificador ptico que, posteriormente, converter os impulsos
elctricos gerados pelo encoder em distncia percorrida pela plataforma, permitindo desta
forma a recolha ou armazenamento do material. Esta posio ser previamente estabelecida
Plataforma de Hardware 27

pelo utilizador, uma vez que o rob no possui qualquer outro dispositivo ptico capaz de lhe
fornecer a informao da posio precisa do objecto. Para esta finalidade utilizou-se o
encoder representado na figura 4.6 que por cada rotao completa gera 100 impulsos
elctricos.

Caixa Redutora Motor Encoder


+ +
GP 42 C RE 40 MR 256-1024 CPT

Figura 4.5 Esquema de motor, caixa redutora e encoder utilizado para a locomoo

Figura 4.6 Encoder Omron E6A2-CW5C [28]

4.2.3 Sistema de alimentao

A alimentao da plataforma robtica foi estabelecida tendo em considerao a tenso


requerida pelos motores. Assim, o sistema de alimentao do AGV composto por duas
baterias de chumbo cclicas cada uma contendo uma tenso nominal de 12 Volts, ligadas em
srie, como se pode observar na figura 4.7. As baterias utilizadas so prprias para a
aplicao em sistemas industriais, permitindo ciclos contnuos de carga e descarga. Estas
baterias assumem a responsabilidade de alimentar todos os dispositivos que incorporam o
rob, bem como o microcomputador e o ecr tctil.

Figura 4.7 Sistema de alimentao


28 Mini-AGV Concepo Estrutural

4.2.4 Microcomputador e LCD Tctil

Para facilitar a configurao do Mini-AGV, instalou-se um microcomputador na parte


superior do rob e um ecr tctil de 10,2 polegadas apresentados na figura 4.8 e 4.9. Este
microcomputador encontra-se equipado com uma fonte de alimentao de 12 Volts sem
partes mveis (ventoinhas), de um disco de 160 Gb e de uma placa que garante o acesso a
redes wireless. A ausncia de partes mveis confere-lhe uma maior robustez e durabilidade.
A utilizao de um ecr tctil promove a interaco entre Homem-Mquina uma vez que,
a acessibilidade ao sistema de controlo se torna mais prtica e simples, evitando a utilizao
de outro tipo de perifricos de entrada de dados, como o teclado.

Figura 4.8 Microcomputador instalado Figura 4.9 Ecr Tctil

4.2.5 Sensores de ultra-sons

Os sensores de ultra-sons tm como finalidade a deteco de obstculos, evitando assim a


coliso com os mesmos. Deste modo, utilizaram-se trs sensores de ultra-sons localizados na
parte frontal do pra-choques e outros trs na parte traseira. A escolha recaiu sobre o sonar
representado na figura 4.10, pois apresenta uma capacidade de deteco de obstculos numa
gama de medies entre 0 centmetros e 6 metros, dependendo do modo de operao
estipulado. A comunicao com os sensores pode ser feita atravs de uma interface serial
UART e suporta at 16 sonares no mesmo barramento. Para tal, apenas necessrio garantir
que todos possuam endereos diferentes.

Figura 4.10 Sonar SRF01


Plataforma de Hardware 29

4.2.6 Sistema autnomo de viso artificial

Com vista a detectar os marcadores artificiais distribudos pelo percurso a percorrer pelo
rob, utilizou-se um sistema compacto de viso artificial. Este sistema assemelha-se a um
CPU mas com caractersticas bastante especficas para viso artificial com capacidade de
conjugar at quatro cmaras. Este sistema integrado permite obter medidas com excelente
preciso, pois provido da tecnologia subpxel. A escolha recaiu sobre o modelo DALSA IPD-
VA40 da Infaimon representado na figura 4.11, que fornece duas interfaces distintas
designadas por iNspect e Sherlock. A aplicao iNspect proporciona versatilidade e facilidade
na utilizao, permitindo a instalao e implementao de uma soluo de viso num curto
perodo de tempo. Para tarefas mais complexas, o software Sherlock oferece ainda maior
flexibilidade e controlo, fornecendo as ferramentas e os recursos capazes de se aplicar
maioria das situaes.

Figura 4.11 Sistema de aplicao para viso artificial [30]

Com vista a identificar marcadores e determinar a sua localizao, obtendo assim


informao do ambiente no qual o rob se insere, utilizou-se uma cmara fornecida em
conjunto com o sistema integrado de viso artificial. Esta cmara reunida com outros sensores
(encoders e sonares) permite obter o posicionamento do AGV. Na figura 4.12 encontra-se
ilustrada a cmara jAi CV-A11 utilizada. Esta possui as seguintes caractersticas:

Cmara monocromtica progressiva compacta com um sensor de 1/3 polegadas;


Robusta e de custo reduzido concebida para aplicaes industriais;
Resoluo: 659x494;
Extrema sensibilidade luz, possibilitando o trabalho em ambientes com baixa
iluminao.

Figura 4.12 Cmara jAi CV-A11 [30]


30 Mini-AGV Concepo Estrutural

4.2.7 Sensores de fim-de-curso

A utilizao de sensores de fim-de-curso tem como finalidade a deteco de objectos.


Neste caso concreto so utilizados os sensores fotoelctricos representados na figura 4.13,
para auxiliar no controlo da plataforma deslizante, tanto no deslocamento vertical como no
deslocamento horizontal. Assim, foram colocados dois sensores na posio superior e inferior
servindo de reset ao posicionamento da plataforma. Logo, quando os sensores ficam activos,
ou seja, quando h uma reflexo do feixe luminoso emitido, provocam a situao de paragem
no movimento vertical. Relativamente ao movimento horizontal foram aplicados dois sensores
utilizando o mesmo conceito descrito para o movimento vertical, embora referente ao
movimento de recolha e armazenamento de um objecto.

Figura 4.13 Sensor fotoelctrico Omron E3F2 [28]

4.2.8 Controladores dos motores

Para o controlo dos motores do rob seguiram-se duas abordagens distintas, considerando
o tipo de motor a controlar. Desta forma, com o objectivo de controlar os motores
encarregues de movimentar o AGV e de deslocar verticalmente a plataforma deslizante,
utilizou-se um mdulo constitudo por uma placa de circuito impresso desenvolvido pela
equipa 5DPO da FEUP/INESCPorto, vulgarmente designado de driver. Este tem-se
demonstrado muito til revelando grande fiabilidade na aplicao da robtica mvel, da a
sua larga utilizao em projectos desta equipa, nomeadamente no futebol robtico (Small
and Middle Size League).
Estes mdulos, ilustrados na figura 4.14, tm como finalidade, para alm de controlar os
motores atravs de transstores que formam uma ponte em H, a leitura dos impulsos gerados
pelos encoders, a gesto das comunicaes entre a aplicao da camada superior e a da
camada inferior atravs do protocolo RS-232 numa interface Daisy Chain especial (ser
abordado mais detalhadamente na seco 4.3.1), bem como a interface com dispositivos
atravs das entradas e sadas digitais e analgicas. Os sensores fotoelctricos utilizados na
plataforma deslizante so um exemplo da utilizao destas mesmas entradas e sadas,
realizando o pr-processamento dos dados adquiridos.
Tendo como objectivo a realizao do controlo do motor encarregue pelo deslocamento
horizontal da plataforma deslizante, optou-se por utilizar um controlador especfico,
representado na figura 4.15, uma vez que se trata de um motor brushless DC comutado
electronicamente. Foi tambm utilizado um mdulo que incorpora um microprocessador
atmega8 e uma interface de comunicao RS-232, apresentado na figura 4.16, que serve de
ponte entre as instrues enviadas pela camada superior e o controlo do motor.
Plataforma de Hardware 31

Figura 4.14 Driver dos motores de locomoo e deslocamento vertical da plataforma deslizante

Figura 4.15 Controlador de velocidade do motor Figura 4.16 Mdulo generic atmega8
Maxon EC-45

4.2.9 Conversores de tenso DC-DC

Atendendo existncia de diferentes nveis de tenso nos diversos sistemas que integram
esta plataforma robtica, foi necessrio proceder transformao da tenso (DC) fornecida
pelo sistema de alimentao do AGV noutra tenso (DC), para permitir o correcto
funcionamento dos mesmos. Desta forma, especificam-se de seguida os diversos nveis de
tenso existentes no rob:

24 V 12 V: Microcomputador e ecr tctil;


24 V 5 V: Circuitos de comando dos drivers;
24 V 3,6 V: Sistema de iluminao da cmara de viso.
32 Mini-AGV Concepo Estrutural

4.3 Plataforma de Software

A organizao da arquitectura de software de um sistema afecta totalmente o


desempenho de um rob mvel. A integrao de mltiplos sistemas de sensores, sem uma
aquisio e pr-processamento de dados adequada e eficiente, reflecte-se numa enorme
ineficcia de desempenho por parte do rob. Por outro lado, mltiplas formas de
desenvolvimento e tarefas de controlo podem ser mais eficientes e manipulveis por uma
arquitectura organizada que promove a programao orientada a eventos, processos de
interaco e de controlo [12].

Nesta seco apresentam-se os vrios componentes que constituem a plataforma de


software, assim como as suas principais caractersticas.
Atravs da figura 3.3 pode-se visualizar os diferentes tipos de comunicao utilizados para
a integrao total dos sistemas que constituem o AGV. Estes so tambm abordados nesta
seco e descritos de uma forma detalhada. Os protocolos de comunicao utilizados
permitem a simulao, navegao, localizao e o controlo do mesmo.
O controlo do software em tempo real ser organizado por camadas de processamento de
diferentes nveis, de acordo com as prioridades exigidas pelo sistema. A arquitectura
desenvolvida para o sistema ser abordada nesta seco, descrevendo de uma forma
organizada as vrias camadas (subsistemas) que compem esta plataforma robtica.
Ser ainda objecto de estudo nesta seco, o desenvolvimento e a calibrao dos
controladores de velocidade dos motores responsveis pela locomoo do AGV.

O software de deciso e controlo do rob foi realizado numa aplicao desenvolvida na


camada de processamento superior, usando a plataforma de desenvolvimento Lazarus que
incorpora a linguagem Free Pascal sobre o sistema operativo Windows. Salienta-se tambm
que a utilizao desta plataforma permite transpor facilmente o software de deciso e
controlo do sistema operativo Windows para o sistema operativo Linux, necessitando apenas
de ser novamente recompilado. Pelo facto da linguagem Free Pascal ser orientada a objectos,
permite o fcil acesso aos dispositivos e sistemas perifricos, assim como a fcil construo
de interfaces para o utilizador.

4.3.1 Comunicao assente no protocolo srie RS-232

No trabalho em estudo seguiram-se duas abordagens distintas relativamente utilizao


do protocolo de comunicao srie RS-232.
Para a estratgia de comunicao entre a camada de processamento superior - aplicao
de controlo e deciso - e os drivers dos motores aplicou-se uma lgica serial Daisy Chain que
permite interligar mais do que um dispositivo atravs da mesma conexo fsica. Esta conexo
utiliza um protocolo prprio, protocolo Daisy Bin, que adaptada a ligao srie RS-232 a uma
tipologia em anel. Esta lgica fortemente utilizada pela equipa 5DPO da FEUP/INESCPorto
no desenvolvimento de projectos na rea da robtica mvel, nomeadamente, nas ligas de
futebol robtico (Small and Middle Size League).
A outra abordagem recorre a uma ligao srie RS-232, do tipo unicast, para a
comunicao entre o mdulo de controlo dos sensores de ultra-sons ou o mdulo de controlo
Plataforma de Software 33

do motor responsvel pelo movimento horizontal da placa deslizante e a aplicao de deciso


e controlo.

Na figura 4.17 exibe-se o esquema de ligaes aplicado para a utilizao da lgica Daisy
Chain, baseada no protocolo de comunicao srie RS-232.
O protocolo Daisy Bin utiliza uma arquitectura do tipo Master-Slave, sendo o Master o
responsvel pela inicializao da comunicao e o nico capaz de gerar pedidos. Este
protocolo apenas permite a utilizao de um dispositivo para desempenhar as funes de
Master podendo-se agregar n Slaves rede serial Daisy Chain. Para o caso em estudo,
utilizam-se 3 dispositivos (Slaves) como se pode visualizar atravs da figura 4.17.

Aplicao de Controlo e Deciso

Master

Rx GND Tx

Tx GND Rx Tx GND Rx Tx GND Rx

Slave 1 Slave 2 Slave 3

Motor Direito Motor Esquerdo Motor Elevador

Figura 4.17 Esquema de ligaes serial Daisy Chain

A comunicao realizada apenas num sentido - comunicao unidireccional - pelo que


cada dispositivo da rede serial Daisy Chain ter que responder e reencaminhar a mensagem
(trama) para permitir que esta circule e que retorne ao Master. A estrutura da mensagem
possui o formato representado na tabela 4.1 que contm um cabealho, com as definies
necessrias ao transporte pelo anel, e uma trama de dados. Esta trama inclui os dados do
pedido do Master, DataIn, e os dados fornecidos pelo Slave, DataOut.

Tabela 4.1 Formato da trama do protocolo Daisy Bin

7 6 5 4 3 2 1 0
Byte 1 D
Byte 2 C
Byte 3 I45 O45 B n Cabealho
Byte 4 I O
Byte 5 ma
Byte 6n DataIn
Dados
Byte nm DataOut
34 Mini-AGV Concepo Estrutural

A trama inicializada com os caracteres D e C nos bytes 1 e 2, respectivamente. No


byte 3 definido o comprimento dos dados de entrada e sada, I45 e O45, bem como o modo
de comunicao que se pretende para o Broadcast, B, e o nmero do n ao qual se destina a
mensagem. Quanto ao Broadcast pode ser estabelecido o valor de 1, modo Broadcast, caso se
pretenda que os dados de entrada sejam iguais para todos os dispositivos a quem a trama se
destina; ou o valor de 0, modo Compact, onde os dados de entrada e sada so especificados
para cada n de destino da trama. O nmero do n, n, inicializado pelo Master com o valor
0 e incrementado sempre que passa por um dispositivo.
No byte 4 define-se o nmero de bytes de entrada e sada de dados e, no byte 5 definem-
se os dispositivos a quem se destinam as mensagens de dados. Para indicar os ns a quem se
destina a mensagem coloca-se o respectivo bit a 1 como, 00000111 mensagens para os
dispositivos 0, 1 e 2.
O conjunto dos 5 bytes anteriores forma o cabealho da mensagem sendo que os restantes
bytes constituem a informao dos dados de entrada e sada. Cada byte de entrada ou sada
de dados permite informao at a um mximo de 63 bytes.

Na tabela 4.2 apresenta-se, de forma resumida, o significado de cada campo que constitui
a mensagem.

Tabela 4.2 Resumo dos campos que constituem a trama do protocolo Daisy Bin

Campo Descrio
D e C Caracteres para inicializao da trama
Bits reservados para definir o comprimento dos dados de entrada e sada,
I45 e O45
respectivamente
B Flag indicativa do modo de Broadcast
n Nmero do dispositivo ao qual se destina a mensagem
I Nmero de bytes de dados de entrada
O Nmero de bytes de dados de sada
ma Mscara do n a quem se destina a mensagem
DataIn Dados de entrada, destinados ao Slave e fornecidos pelo Master
DataOut Dados de sada fornecidos pelo dispositivo ao Master

4.3.2 Comunicao assente no protocolo UDP

Para a troca de pacotes de mensagens entre a aplicao de controlo e deciso e a


plataforma de simulao SimTwo, utiliza-se a comunicao baseada no protocolo UDP.
Este protocolo no orientado conexo e, como tal no garante que os pacotes
cheguem ao destino. A entrega dos pacotes de dados poder ser realizada de forma
desordenada e a integridade dos dados pode ser conferida pelo sistema de deteco de erros,
Checksum [31]. A ausncia de estruturas de controlo complexas no protocolo UDP garante
uma elevada eficincia, j que cada pacote composto praticamente apenas por dados [32].
O software desenvolvido para o processamento dos pacotes UDP encontra-se estruturado de
modo a reduzir os impactos na falha de um pacote UDP.
Na tabela 4.3 apresenta-se o cabealho das mensagens do protocolo UDP.
Plataforma de Software 35

A utilizao deste protocolo para a comunicao entre as duas aplicaes referidas


anteriormente, permite a entrega de mensagens entre aplicaes em sistemas host4, sendo
apenas necessrio estabelecer os portos5 de origem e destino para permitir a comunicao
entre elas. No captulo 5, seco 5.4, ser descrito em pormenor o formato dos pacotes das
mensagens trocadas entre as aplicaes, bem como estas reagem a mensagens danificadas.

Tabela 4.3 Cabealho das mensagens do protocolo UDP

Porto de origem Porto de destino

Comprimento da mensagem Deteco de erros

4.3.3 Comunicao assente no protocolo TCP

O envio da trama (mensagem) com a informao do marcador detectado por parte do


sistema de viso artificial realizado sob a comunicao baseada no protocolo TCP.
O protocolo TCP foi desenvolvido para garantir uma comunicao fivel entre pares de
processos atravs de redes fiveis e no fiveis. Ao contrrio do protocolo descrito na seco
anterior, este protocolo orientado conexo. A aplicao envia um pedido de conexo para
o destino e usa essa conexo para transferir os dados [33]. No caso em estudo, o software
Sherlock efectua o pedido de conexo aplicao de controlo e deciso usando esta conexo
para transferir a trama. Esta contm a informao da orientao e distncia do rob ao
marcador.
O recurso a este protocolo deve-se ao facto de o sistema de viso artificial apenas
permitir a comunicao atravs de TCP.
Este protocolo assegura a fiabilidade e robustez das mensagens enviadas garantido a
entrega ordenada dos dados [31]. Considerando que a mensagem enviada por TCP contm
informao relevante para a determinao da localizao do rob, a utilizao deste
protocolo revela-se de uma enorme importncia.
Para permitir o estabelecimento da comunicao ponto a ponto sem a interveno de um
modem ou router, torna-se apenas necessrio definir o IP6 e Mscara de sub-rede7, tabela 4.4.

Tabela 4.4 Definio de IPs e Mscara de sub-rede para a comunicao baseada no protocolo TCP

DALSA IPD-VA40 Minicomputador


Endereo IP 192.168.253.100 192.168.253.110
Mscara de sub-rede 255.255.255.0 255.255.255.0

No captulo 6 ser descrito em pormenor o formato do pacote da mensagem enviada do


sistema de viso artificial para a aplicao de controlo e deciso.

4
Caracterizam-se por sistemas para comunicaes locais definidas pelo IP 127.0.0.1.
5
Porto ou porta, uma estrutura de software representada por um nmero de 16 bits que se
encontra ligado a uma aplicao.
6
Endereo que indica o local de um determinado equipamento numa rede privada ou pblica.
7
Caracteriza-se por ser um nmero de 32 bits usada para separar num IP a parte correspondente
rede pblica, sub-rede e aos hosts.
36 Mini-AGV Concepo Estrutural

Mais detalhes sobre o funcionamento do protocolo TCP podem ser encontrados em [31].

4.3.4 Descrio da camada superior

A camada de processamento superior responsvel pelo controlo e deciso do


comportamento do rob. As aces so tomadas tendo em considerao o estado do rob e o
objectivo a alcanar. Deste modo, a estrutura de controlo representada como uma
sequncia de operaes muito semelhante execuo de uma mquina de estados, figura
4.18.
Como se refere anteriormente, a plataforma de desenvolvimento Lazarus utilizada para o
desenvolvimento do processamento da camada superior um ambiente de desenvolvimento
integrado desenvolvido para o compilador Free Pascal sendo este um compilador de Object
Pascal. Desta forma, o software de controlo e deciso foi desenvolvido baseado na
programao orientada a eventos. Estes eventos so definidos como internos ou externos,
despoletados por aces externas, como recepo de pacotes atravs do protocolo UDP ou
TCP, ou por aces internas, evento externo e interno, respectivamente.
O evento interno, timer, controla o tempo entre ciclos de controlo, sendo invocado de 40
em 40 ms. As decises e processamentos mais complexos so realizados neste ciclo. Os
principais blocos de aces presentes no ciclo de controlo encontram-se apresentados na
figura 4.18.
Cada evento externo processado de forma assncrona e independente. Desta forma, e
uma vez que a plataforma de desenvolvimento Lazarus no se rege por nveis de prioridade,
este apenas processado quando a aco que se encontra a ser realizada terminar.

Evento interno Ciclo de controlo

Timer de 40 ms Pedido da leitura de encoders

Envio de Vref para os motores

Navegao

A B C D

Localizao

Figura 4.18 Esquema sequencial das aces a tomar no ciclo de controlo


Plataforma de Software 37

A mquina de estado que rege o controlo do rob apresentada na figura 4.19. Esta
representada por trs estados: inicializao, evento interno e ciclo de controlo. No estado
inicializao estabelecida a comunicao entre a camada de processamento superior e a
camada de processamento inferior e so tambm inicializadas algumas variveis internas
necessrias para o correcto funcionamento do sistema. neste estado que o rob ir
determinar pela primeira vez sua posio absoluta. O estado inicializao apenas executado
quando se inicia a aplicao de controlo e deciso do rob. O estado evento interno apenas
responsvel pela contagem do tempo de ciclo de controlo. Desta forma, sempre que o timer
atinge o valor estipulado (40 ms) so despoletadas uma srie de aces no ciclo de controlo.
O estado ciclo de controlo corresponde ao controlo e deciso do comportamento do rob.
Neste estado executadas as aces mais importantes que permitem a navegao e localizao
do rob no referencial mundo. neste estado que possvel a escolha da tarefa a realizar e o
seu modo de funcionamento.

Inicializao

Sim

Evento
interno

No
Sim
Sim

Ciclo de
controlo

Figura 4.19 Mquina de estados do rob

Na figura 4.20 apresenta-se um esquema da aco a tomar na recepo de dados a partir


do sistema de viso artificial ou da plataforma de simulao. Estes eventos so realizados
aps a recepo completa dos dados e no caso de no estar a ser executada nenhuma tarefa.
Deste modo, quando estes eventos so desencadeados, a aplicao de controlo e deciso
executa uma funo que permite a descodificao dos dados recebidos. Os dados recebidos a
partir do sistema de viso artificial sero utilizados, posteriormente, no algoritmo de
localizao do rob. J os dados proveniente do SimTwo so utilizados tanto na localizao
como na navegao do rob. Deste modo, na navegao so utilizados para proceder
actualizao da posio do rob com base nos impulsos gerados por um ciclo de controlo e na
localizao so utilizados para determinar a distncia e a orientao do rob em relao ao
marcador (parede), possibilitando a correco de posio e, consequentemente, a sua
localizao.
38 Mini-AGV Concepo Estrutural

Evento externo

Descodificao mensagem
Recepo de dados
recebida

Descodificao mensagem
Recepo de dados
recebida

Figura 4.20 Esquema da aco a tomar para eventos externos

Nas figuras 4.21 e 4.22 so apresentadas as interfaces grficas disponveis na aplicao de


controlo e deciso do rob.

Figura 4.21 Interface grfica da aplicao de controlo do rob

Figura 4.22 Interface grfica para visualizao do movimento do rob


Plataforma de Software 39

4.3.5 Descrio da camada inferior

Como j referido, o rob possui alguns controladores perifricos, responsveis pelo


processamento local de certas tarefas. Estes controladores permitem libertar o computador
de tarefas simples e repetitivas, mas que requerem nveis de latncia muito baixos, e por isso
normalmente s disponveis em sistemas operativos de tempo real.

Esta camada responsvel pelo processamento das leituras dos encoders, pela actuao
nos motores de traco, pelo controlo da velocidade dos motores e pelo encaminhamento dos
dados para a camada de processamento superior. A leitura dos encoders realizada num
microcontrolador sendo os dados desse processamento posteriormente utilizados pelo
microcontrolador, responsvel pelo controlo e actuao dos motores. O controlo do sentido
de rotao feito por um sinal digital de um porto I/O do microcontrolador. A recolha dos
dados odomtricos permite efectuar um controlo em malha fechada da velocidade dos
motores, tendo sido implementado um algoritmo de compensao tipo PI que efectua o
controlo de 10 ms em 10 ms.

4.3.6 Controladores de velocidade dos motores

Os controladores de velocidade dos motores so responsveis pela actuao nos motores


acoplados s rodas, garantindo que estes se encontram a rodar velocidade de referncia
estabelecida. Deste modo, um controlador de velocidade dos motores exige o conhecimento
prvio do modelo dinmico aproximado do rob.

Os dois motores DC que esto acoplados s rodas motrizes so controlados de forma


independente. O controlo das velocidades implementado no microcontrolador dos drivers
de cada motor. Logo, quando se pretende que o rob se desloque com uma determinada
velocidade, dada uma referncia a cada motor, em ticks (nmeros de impulsos por intervalo
de amostragem).

Na figura 4.23 exibe-se o diagrama de blocos que permite efectuar o controlo da


velocidade de referncia nos motores em malha fechada.

Velocidade
de referncia Erro PWM Velocidade actual
Controlador Rob

Figura 4.23 Diagrama de blocos do sistema


40 Mini-AGV Concepo Estrutural

Nas seces seguintes so descritos os procedimentos para obteno do modelo dinmico


do rob, bem como o dimensionamento e implementao dos controladores de velocidade dos
motores.

4.3.6.1 Modelo dinmico do rob

Os movimentos de um rob surgem como resultado da aplicao de tenses DC em cada


motor, criando um determinado binrio em cada roda motriz. Estes binrios so convertidos
pelas prprias rodas em fora de traco paralelas ao cho que obrigam o rob a descrever
uma certa trajectria.
Como foi referido anteriormente, a calibrao de um controlador de velocidade para os
motores requer um conhecimento a priori do comportamento do rob. Este comportamento
pode ser descrito atravs de um modelo dinmico aproximado que permitir controlar uma
dada trajectria atravs do controlo da velocidade a aplicar nos motores de traco
diferencial.
Deste modo, para se obter este modelo dinmico necessrio actuar nos motores,
aplicando um degrau de tenso em ambos. Alguns dados sobre a movimentao do rob so
guardados num ficheiro de texto onde, posteriormente, so utilizados na construo grfica
da evoluo temporal das velocidades dos motores, figura 4.24.


Figura 4.24 Folha de clculo para construo grfica da evoluo temporal das velocidades em ambos
os motores

Na figura 4.25 apresenta-se a evoluo temporal das velocidades dos motores, aps
colocar o rob a efectuar um movimento de translao o mais linear possvel, isto , aps
aplicar um degrau no motor da roda motriz direita e um degrau de sinal oposto no motor da
roda motriz esquerda.
Plataforma de Software 41

300

Velocidade em impulsos por 10ms


200
100
0
-100 0 1 2 3 4 5 6 7 8

-200
-300
Tempo (s)

Motor Roda Direita Motor Roda Esquerda

Figura 4.25 Evoluo temporal das velocidades dos motores

Com base na figura 4.25 verifica-se que a resposta do sistema semelhante a um sistema
de 1 ordem com resposta exponencial. tambm possvel observar que a resposta do sistema
se apresenta estvel embora com algumas oscilaes. Tais oscilaes devem ser introduzidas
por perturbaes entre a estrutura mecnica e o piso. O tempo de estabelecimento do
sistema de, aproximadamente, 1 s.

Um sistema de 1 ordem possui a seguinte funo de transferncia:

(4.1)

correspondendo equao diferencial

(4.2)

Assim, o sistema modelado e apresentado na figura 4.24 pode ser representado por

(4.3)

sendo v(t) o sinal de sada, u(t) a entrada em degrau, G DC o ganho DC e a constante de


tempo para regime permanente.

Uma vez definida a equao que modela o rob agora necessrio determinar os
parmetros desta equao, nomeadamente GDC e . Desta forma, recorreu-se ao mtodo de
Aproximao do Mnimos Quadrados, usando como pares ordenados os valores dos impulsos
por perodo de amostragem, Vact/10ms, e os valores do perodo de ciclo de controlo,
Delta(s), (figura 4.24), estimando assim, os parmetros GDC e para cada roda motriz.
Seguidamente, realizada a mdia entre a estimao dos parmetros obtidos para a roda
motriz direita e a roda motriz esquerda. Na tabela 4.5 apresentam-se os valores obtidos para
42 Mini-AGV Concepo Estrutural

os parmetros do modelo dinmico do rob que sero utilizados, posteriormente, para o


dimensionamento dos controladores de velocidade dos motores.

Tabela 4.5 Parmetros do modelo dinmico do rob

Ganho DC 4,17
Constante de tempo (s) 0,39

Na figura 4.26 apresenta-se as funes de aproximao do modelo do rob para a roda


direita - Motor Roda Direita (curva de tendncia) - e para a roda esquerda - Motor Roda
Esquerda (curva de tendncia).

300
Velocidade em impulsos por 10ms

200

100

0
0 1 2 3 4 5 6 7 8
-100

-200

-300
Tempo (s)

Motor Roda Direita Motor Roda Esquerda


Motor Roda Direita (curva de tendncia) Motor Esquerda (Curva de tendncia)

Figura 4.26 Resultados da aproximao do modelo dinmico do rob a um sistema de 1 ordem

4.3.6.2 Dimensionamento do controlador

Como referido anteriormente, o controlo da velocidade dos motores realizado em malha


fechada. Este controlo efectuado recorrendo a um algoritmo de compensao do tipo PI
com filtro de entrada e Feed-Forward. A figura 4.27 apresenta o diagrama de blocos do
sistema controlado.

Feed-Forward

+
Erro PWM V(s)

Vref(s) + +

Filtro de Controlador Rob
referncia

Figura 4.27 Diagrama de blocos do sistema controlado


Plataforma de Software 43

Na figura 4.27 pode-se observar, para alm do controlador e da planta (Rob), um


controlo Feed-Forward e um filtro do sinal de referncia. O filtro de referncia aplicado na
entrada do sistema permite anular o zero introduzido pelo controlador, ou seja, anular a
sobreelongao do sistema. Deste modo, o plo do filtro ter que ser igual ao zero do
controlador. O controlo Feed-Forward permite uma resposta mais rpida e melhorada sem
interferir na estabilidade.

A funo de transferncia em malha fechada do diagrama de blocos representado na


figura 4.27 dada por

(4.4)

Para dimensionar os parmetros do controlador, nomeadamente, K c e Ti recorreu-se ao


prottipo de Bessel. Assim, definiu-se um tempo de estabelecimento 8 de 1 s e calculou-se os
plos da funo de transferncia atravs dos plos de Bessel [34]. Os parmetros
determinados para o controlador PI encontram-se representados na tabela 4.6.

Tabela 4.6 Parmetros do PI utilizados nos motores

Ganho do Controlador 0,518


Tempo integral 0,253
Constante de tempo filtro de referncia (s) 0,253

Aps a determinao dos parmetros do controlador realizou-se uma simulao com o


intuito de verificar se a resposta do sistema era satisfatria, figura 4.28.
A partir da figura 4.29 possvel verificar que a resposta do sistema est dentro do que
era esperado, garantindo o tempo de estabelecimento mximo de 1 s.

Kf

Gain Feed -Forward

1 Gdc
Kc
tau _fref .s+1 tau .s+1
V_ref Kc Saturation V_act
Reference Filter Robot

1
-K -
s
Integrator 1/Ti

Figura 4.28 Sistema simulado com filtro de entrada

8
Corresponde ao tempo decorrente desde o instante em que o sistema comea a responder
solicitao de movimento e o instante em que o valor de regime permanente obtido.
44 Mini-AGV Concepo Estrutural

Figura 4.29 Resposta ao sistema simulado com filtro de entrada

Com os parmetros obtidos atravs do prottipo de Bessel e aps a simulao do sistema a


controlar, calibrou-se o PI de cada motor do rob e aplicou-se a mesma velocidade de
referncia aos motores. Na figura 4.30 exibe-se a resposta do sistema aplicao de um
degrau a cada motor. Pode-se observar tambm que a resposta idntica resposta do
sistema simulado, figura 4.29, comprovando a correcta calibrao dos controladores e
modelizao do sistema.

150
Impulsos por ciclos de 10ms

100

50

0
0 1 2 3 4 5 6 7
-50

-100

-150
Tempo (s)
Motor Roda Direita Motor Roda Esquerda

Figura 4.30 Resposta ao degrau da velocidade aplicado s duas rodas motrizes do rob
Captulo 5

Plataforma de Simulao

Neste captulo reala-se a necessidade da utilizao de uma ferramenta que possibilite a


realizao de simulaes do sistema robtico apresentado, com o intuito de testar diferentes
estratgias de deciso e controlo. A aplicao desta ferramenta permite economizar tempo,
evitar acidentes e evitar danos no rob e sensores.
A plataforma de simulao utilizada para testar os algoritmos de controlo e deciso foi
desenvolvida pelo Prof. Dr. Paulo Costa e apelidada de SimTwo [35].
O simulador permite verificar os resultados em tempo real atravs de uma interface
grfica 3D. A partir desta, torna-se possvel observar a posio, o movimento e a trajectria
actual do rob. Assim, para alm das vantagens da utilizao de um simulador descritas
anteriormente, este permite tambm supervisionar o comportamento do rob em tempo real,
auxiliando na deteco de possveis erros no algoritmo de deciso e controlo de forma a
aperfeioar o software desenvolvido.

Neste captulo, na seco 5.1, apresentada uma viso geral do simulador e dos seus
recursos. Na seco 5.2 descrita a implementao da configurao do modelo do rob em
estudo, bem como a estruturao da interligao do simulador com a aplicao de controlo e
deciso. Por fim, apresenta-se na seco 5.3 uma estratgia de localizao do rob aplicando
um sistema de deteco de paredes atravs de sensores que mensuram distncias.

5.1 Descrio Geral

A plataforma de simulao SimTwo um sistema de simulao realista onde possvel


implementar vrios tipos de robs9. Este realismo relativo dinmica do rob permite
decompor o mesmo em duas partes: uma referente ao realismo introduzido nos sistemas de
corpos rgidos utilizando a biblioteca ODE (Open Dynamics Engine) [36]; e outra relativa ao
realismo aplicado nos modelos dos motores elctricos e controladores [35]. A biblioteca ODE
direccionada para a simulao de estruturas articuladas, tais como veculos terrestres ou

9
Robs mveis, manipuladores industriais, quadrpedes, humanides, entre outros.

45
46 Plataforma de Simulao

criaturas com pernas. Esta supe dois nveis de simulao, o nvel da dinmica que se
encarrega das propriedades dinmicas dos corpos, tais como massa e velocidade, e o nvel das
colises, que se ocupa da forma dos corpos.
As estruturas articuladas ou rodas, nos robs encontram-se associadas a eixos que
normalmente supem um sistema de accionamento. Este sistema pode ser constitudo por um
motor de corrente contnua com caixa redutora, um controlador e um encoder ptico. O
controlador permite ser definido aplicando um PID ao sinal de posio ou velocidade [35].
Este simulador reala um especial cuidado na modelizao dos modelos dos motores e tem
como objectivo capturar as no linearidades inerentes a estes actuadores, tais como
limitaes de corrente, saturao da tenso aplicada e atrito de Coulomb [35]. Estas no
linearidades so factores imutveis nos motores de todos os robs.
Este simulador oferece dois nveis de controlo do rob. Um sistema de controlo de baixo
nvel responsvel pelo controlo dos motores que, por defeito, efectua 100 ciclos por segundo
(invocado periodicamente de 10 ms em 10 ms) e um controlador de mais alto nvel
implementado pelo utilizador, que permite desenvolver tarefas de controlo mais complexas e
que, por defeito, corre com um perodo de 40 ms (25 ciclos por segundo). Este controlador
pode ser implementado recorrendo a um programa remoto que comunica com o SimTwo
atravs de protocolo UDP ou porta srie, ou recorrendo a uma linguagem de script que se
baseia na biblioteca Pascal Script [37] editvel e compilvel no prprio simulador [35]. de
salientar que o controlador de baixo nvel encontra-se desenvolvido de origem, mas permite
as alteraes de muitos parmetros.
A plataforma de simulao permite observar o comportamento do sistema em tempo real,
pois dotado de uma interface de visualizao 3D.

Para se exibir de uma forma perceptvel o aspecto grfico desta ferramenta so expostas
de seguida algumas capturas das vrias janelas que contemplam o SimTwo.
Na figura 5.1 apresenta-se a janela da interface grfica 3D deste simulador. O SimTwo
fornece tambm uma janela de configurao da plataforma de simulao, figura 5.2. Atravs
desta ltima possvel configurar parmetros grficos da interface grfica 3D, figura 5.2 a),
parmetros da configurao do rob, figura 5.2 b), bem como parmetros da configurao
fsica dos objectos, figura 5.2 c). O SimTwo ainda dotado de um editor de cdigo que
permite a execuo de cdigo escrito numa variante da linguagem Pascal que um
subconjunto do ObjectPascal10, figura 5.3. Na figura 5.4, ilustra-se a janela de grficos. Esta
janela permite registar a evoluo de algumas variveis em funo do tempo e tambm
visualizar esta progresso em tempo real.
Como foi referido anteriormente, o SimTwo permite simular diferentes configuraes de
robs. Para tal, este simulador recorre a ficheiros com uma sintaxe XML [38] editveis a partir
de uma janela fornecida pela plataforma de simulao, figura 5.5. Ao iniciar, a aplicao
reproduz o ficheiro scene.xml onde se encontram definidos os ficheiros XML que contemplam
a configurao dos robs, obstculos e objectos. A diferena entre obstculos e objectos
que os primeiros so inamovveis e objectos so elementos livres com dinmica [35].

10
Tal como existe para o Delphi e Free Pascal.
Descrio Geral 47

Figura 5.1 Janela de visualizao da interface grfica 3D do SimTwo

a) b) c)
Figura 5.2 Janela de configurao do SimTwo
48 Plataforma de Simulao

Figura 5.3 Janela do editor de cdigo do SimTwo

Figura 5.4 Janela de grficos do SimTwo

Figura 5.5 Janela de edio em XML dos objectos do SimTwo


Configurao do simulador 49

5.2 Configurao do simulador

Como havia sido exposto na seco anterior, o SimTwo especifica o mundo virtual11 como
uma organizao hierrquica de informao que contempla no nvel mais elevado desta
hierarquia o ficheiro XML, scene.xml. A partir deste nvel so introduzidas as classes ou
seces, que definem, no caso concreto em estudo, a configurao do rob, os obstculos ou
paredes e a pista, sendo que esta ltima expressa o ambiente das trajectrias definidas para
o rob. Na tabela 5.1 apresenta-se um resumo das classes abrangidas pelo ficheiro scene.xml.

Tabela 5.1 Classes abrangidas pela estrutura hierarquia mais elevada do SimTwo

Classes Descrio
Robot Configurao da estrutura do rob
Things Configurao de corpos dinmicos
Obstacles Configurao de obstculos (inamovveis)
Track Configurao de ambientes com trajectrias desenhadas no pavimento

Das vrias classes descritas anteriormente, a classe robot a nica instncia controlvel
na plataforma de simulao. A configurao desta classe estabelecida recorrendo a
estruturas virtuais que so definidas por objectos. Estes podem ser divididos em dois grupos,
um que incorpora os objectos bsicos, solids, permitindo definir a estrutura fsica do rob, e
outro que inclu os objectos mais complexos, tais como sensores, articulaes, que permitem
a interaco com o ambiente. Os objectos bsicos possuem algumas caractersticas
fundamentais, tais como forma, massa, dimenso, permitindo simular de uma forma realista a
dinmica dos corpos rgidos. Na tabela 5.2 exibe-se os diferentes tipos de objectos bsicos
suportados pelo SimTwo e as suas propriedades. Os restantes objectos so apresentados na
tabela 5.3. Um exemplo de cdigo desta implementao mostrado de seguida:

<solids>
<cuboid>
<ID value='AgvDown'/>

Tabela 5.2 Objectos bsicos do SimTwo e suas propriedades

Objecto Descrio Propriedade Componente Descrio da Propriedade

Cuboid Paraleleppedo Id value Identificao do objecto


Mass value Massa do objecto, em Kg
Cylinder Cilindro Size x, y, z Tamanho, em metros

Belt Tapete rolante Pos x, y ,z Posio no referencial mundo


Rot_deg x, y, z Rotao, em graus
Sphere Esfera Color_rgb r, g, b Cor na base RGB (8bits)

11
Subentende-se todos os objectos constituintes do meio ambiente desenvolvido para a simulao,
tais como robs, objectos, obstculos e pista.
50 Plataforma de Simulao

Tabela 5.3 Objectos mais complexos suportados pelo SimTwo

Objecto Descrio
Sensors Sensores
Articulations Articulaes
Wheels Rodas
Shells Superfcies de contacto

A utilizao dos objectos descritos na tabela 5.3 confere um nvel de complexidade mais
elevado configurao dos robs. As shells possuem a finalidade de tornar a forma do rob
mais complexa e de resolver a limitao imposta pela biblioteca ODE, pois esta no
implementa colises entre cilindros. As wheels e as articulations correspondem ao sistema de
actuao dos robs, permitindo definir eixos articulados entre corpos. Por fim, os sensors
permitem introduzir sensores no rob, embora presentemente s se encontram disponveis os
sensores que medem distncias, similares aos sensores de infravermelhos.
Na tabela 5.4 apresentam-se as principais propriedades existentes nos objectos mais
complexos.

Tabela 5.4 Propriedades dos objectos mais complexos abrangidos pelo SimTwo

Propriedade Componente Objecto Descrio


ri, ki, vmax,
Motor Articulations/Wheels Parmetros do motor
imax, active
Gear ratio Articulations/Wheels Relao da caixa redutora
Friction Bv, fc, coulomblimit Articulations/Wheels Parmetros da frico nos actuadores
Encoder ppr, mean, stdev Articulations/Wheels Parmetros do codificador ptico
mode, kp, ki,
Controller Articulations/Wheels Parmetros do controlador
kd, kf, active
Axis x, y, z Articulations/Wheels Parmetros do eixo da roda
type value Articulations Tipo de articulao
Connect B1, B2 Articulations Ligao entre dois objectos
Articulations/Sensors
Pos x, y, z Posio no referencial mundo
/Sheels
Limits Min, Max Articulations Limites da articulao
length, initial_width,
Beam Sensors Parmetros dos sensores
final_width
Rot_deg x, y, z Shells/Sensors Rotao, em graus
Color_rgb r, g, b Shells/Sensors Cor na base RGB (8bits)
Omni Wheels Define a roda como omnidireccional
Mass, radius,
tyre Wheels Parmetros da roda
width, centerdist
Configurao do corpo do rob, paredes e pista 51

5.3 Configurao do corpo do rob, paredes e pista

5.3.1 Modelao do rob simulado

Os objectos descritos na seco anterior apresentam-se como subclasses da classe robot.


A descrio da configurao do robot na plataforma de simulao realizada por intermdio
de um ficheiro de texto com formato XML, que supe quatro subclasses ou subseces: a
subclasse solids, que caracteriza o corpo do rob; a subclasse shells que representa as
superfcies de contacto para o modelo de colises; a subclasse articulations que responsvel
por todo o sistema de movimentao, desde os motores at s rodas; e a subclasse sensors
encarregue de introduzir sensores no rob.

A modelao do rob simulado realizou-se em duas fases. Na primeira representou-se o


corpo do rob como um corpo simples, recorrendo apenas a objectos bsicos do tipo solids.
Este possua a forma de um paraleleppedo representando apenas a base do rob, cuja massa
distribuda uniformemente pelo objecto, figura 5.6.
Numa segunda fase, desenvolveu-se o corpo do rob, com o intuito de se obter um
aspecto prximo da estrutura real, e que possusse uma distribuio de massa idntica do
rob real, figura 5.7. Desta forma, decomps-se este em diversos segmentos, tal como
representado na realidade. Esta concepo apresenta um nvel de complexidade mais elevado
e como tal, para simplificar a construo do modelo recorreu-se ao uso da subclasse shells
que permite definir superfcies de coliso mais complexas. Deste modo, a estrutura final do
corpo do rob utilizada na simulao um conjunto de diversos segmentos referenciados
sempre a partir de um elemento da base do mesmo, figura 5.8. Todas as partes foram
previamente medidas e posteriormente recriadas para o rob simulado.

Figura 5.6 Rob construdo numa primeira fase


52 Plataforma de Simulao

Figura 5.7 Estrutura final do rob com visualizao da distribuio de massa pelo corpo do rob

Figura 5.8 Estrutura final do corpo do rob desenvolvido para a simulao

Para dotar o rob de comportamento prprios, isto , para permitir que este se
conseguisse movimentar, foi necessrio introduzir a classe articulations no ficheiro de
descrio do rob. Esta define atravs da subclasse default, as propriedades comuns das
rodas, criando posteriormente uma subclasse para cada roda, contendo os seus parmetros
individuais.
Relativamente s propriedades comuns das rodas, estas so modeladas com base em
pressupostos previamente adquiridos. As propriedades comuns contemplam o sistema de
Configurao do corpo do rob, paredes e pista 53

actuao que engloba os motores, com as respectivas caixas redutoras, encoders e


controladores. Assim, os parmetros do motor da etiqueta motor, o parmetro da relao de
transmisso da caixa redutora, ratio, da etiqueta gear, bem como o parmetro da resoluo
dos encoders, ppr, da etiqueta encoder, so estabelecidos recorrendo s datasheets dos
fabricantes. No que diz respeito aos parmetros do controlador da etiqueta controller, estes
so baseados nos valores obtidos na seco 4.3.6.
Os parmetros individuais atribudos a cada roda so introduzidos atravs da subclasse
joint. Esta permite definir atravs da etiqueta connect quais os objectos que sero
interligados, atravs da etiqueta pos a posio do eixo de actuao e atravs da etiqueta axis
o sentido de rotao do eixo.

De seguida mostrado um exemplo de cdigo para esta implementao:

<articulations>
<default>
<motor ri='0.316' ki='0.0302' vmax='24' imax='12' active='1'/>
<gear ratio='43'/>
<friction bv='0.001' fc='0.0615' coulomblimit='0.0001'/>
<encoder ppr='44032' mean='0' stdev='0'/>
<controller mode='pidspeed' kp='0.52' ki='0.0208' kd='0.0' kf='0.0' active='1' period='10'/>

A deteco de marcadores, nomeadamente a deteco da parede lateral realizada


atravs da utilizao de sensores. Estes so introduzidos no ficheiro da descrio do rob na
subclasse sensors e permitem especificar atravs da etiqueta beam os parmetros dos
sensores. A posio destes em relao ao rob introduzida na etiqueta pos.

5.3.2 Modelao dos obstculos

Uma vez que o simulador apenas permite a utilizao de sensores que medem distncias,
tornou-se necessrio criar objectos idnticos a paredes. As paredes pretendem simular a
deteco de marcadores previamente definidos no ambiente e que fariam parte da
trajectria do rob. O marcador utilizado na simulao diferente do marcador detectado
pelo rob real embora se deva salientar que o algoritmo de localizao implementado na
simulao o mesmo para se detectar as linhas no cho (ou marcadores) com um sistema de
viso.
Os obstculos so definidos numa classe diferente da classe descrita na seco anterior,
ou seja, na classe obstacles. Uma vez que estes so objectos inamovveis necessrio inserir
em cada subclasse a etiqueta imovable.

5.3.3 Modelao da pista

A modelao da pista atravs da classe track, para o trabalho em estudo, apenas possui
um carcter ilustrativo uma vez que o rob no incorpora um sensor para detectar linhas no
pavimento, mas sim para medir distncias a um objecto, neste caso a uma parede. Assim,
54 Plataforma de Simulao

recriou-se um ambiente que permite visualizar as trajectrias que se pretendem que o rob
seja capaz de realizar. Estas podem ser vistas como um percurso a realizar em H,
representado atravs da cor azul, delimitando a rea ou ambiente de actuao do rob
atravs do quadrado a preto.
Na figura 5.9 apresenta-se o resultado final das modelaes descritas anteriormente.

Figura 5.9 Ambiente final do rob simulado no SimTwo

5.4 Controlo do rob simulado

O controlo do rob simulado realizado atravs de uma aplicao externa, baseado no


protocolo de comunicao UDP. Esta diviso em duas aplicaes tem como finalidade, emular
o comportamento do rob real de forma transparente para o software de deciso e controlo.
O princpio de funcionamento consiste na troca de mensagens entre o SimTwo e a
aplicao de controlo e deciso.

Quando a aplicao externa pretende enviar uma ordem de movimento ao rob simulado,
transmitida uma mensagem ou trama. Esta trama contm a informao destinada aos
controladores dos motores sendo processada pelo programa de controlo da simulao. A
aplicao de controlo do SimTwo corre com um perodo de 40 ms e, cada vez que o ciclo de
controlo se inicia, esta verifica se tem alguma trama de dados para processar. Se a resposta
for positiva, verificada a integridade da mensagem e de seguida descodificada. So ento
obtidas as referncias de velocidade e aplicadas aos motores atravs da funo
SetAxisSpeedRef(R: LongInt; i: LongInt; aSpeed: Double). Se a resposta for negativa ou se
durante a descodificao da mesma for verificado a no integridade dos dados, esta
descartada permanecendo a referncia de velocidade aplicada aos controladores introduzida
no ciclo anterior.
Controlo do rob simulado 55

No ciclo de controlo, o SimTwo tambm se encontra encarregue de enviar uma mensagem


para a aplicao externa. Esta contm a odometria do rob, o nmero total de impulsos de
cada roda, e a distncia aos obstculos medida pelos sensores de infravermelhos. Esta trama,
uma vez preenchida e enviada por rede, interpretada pela aplicao de controlo e deciso
como se fosse proveniente da camada de processamento inferior (drivers dos motores). Esta
interpretao passa por despoletar um evento, sempre que a aplicao externa recebe uma
trama de dados. Tal como no simulador, na aplicao externa tambm se verifica a
integridade da mensagem recebida. O processo idntico e no caso de no se verificar a
integridade dos dados tambm descartada, permanecendo o nmero de impulsos total para
cada roda e a distncia do rob parede do ciclo anterior.
Na tabela 5.5 e 5.6 apresenta-se o formato das mensagens enviadas e recebidas pelo
SimTwo.

Tabela 5.5 Formato da mensagem enviada pelo SimTwo

# CR12 Odo_0 CR Odo_1 CR Sensor_0 CR Sensor_1 CR *

Tabela 5.6 Formato da mensagem recebida pelo SimTwo

# CR Vel_Motor_0 CR Vel_Motor_1 CR *

12
CR ou carriage return
56 Plataforma de Simulao
Captulo 6

Localizao e Navegao

6.1 Descrio Geral

Para o trabalho em estudo, recorreu-se ao mtodo baseado em odometria para a medio


relativa do estado do rob e deteco de marcadores artificiais para a medio absoluta do
estado do rob. Desta forma, atravs da odometria, que proporciona uma boa preciso a
curto prazo, determina-se o estado actual do rob e atravs da deteco de marcadores por
viso artificial corrige-se, periodicamente, a posio absoluta do mesmo.
Neste captulo apresenta-se para alm da localizao relativa e absoluta, o controlo e
planeamento de trajectrias para o rob, responsvel pelo correcto movimento do rob
durante os percursos a realizar, seco 6.4. Na seco 6.5 exibe-se o algoritmo de
localizao, descrevendo a estrutura deste e o mtodo matemtico utilizado para a auto-
localizao de linhas. A seco 6.6 contempla os mtodos de fuso sensorial que permitem
uma melhor estimativa do estado actual do rob.

6.2 Odometria Localizao relativa

Como referido anteriormente, a odometria uma tcnica que permite quantificar as


distncias percorridas por um veculo. A quantificao do movimento dos motores, e
consequentemente da rotao das rodas, possibilitada pelos encoders incrementais
presentes na plataforma. Sabendo o estado anterior do veculo e a distncia percorrida por
cada roda motriz possvel conhecer o estado actual do mesmo, ou seja, a sua posio
cartesiana e a sua orientao em relao ao referencial mundo. Para que um rob se localize
no mundo e conhea com preciso as suas velocidades, necessria uma correcta calibrao
da odometria.

57
58 Localizao e Navegao

6.2.1 Modelo de odometria

O sistema modelado constitudo por um rob mvel de duas rodas com accionamento
diferencial. A figura 6.1 apresenta uma representao esquemtica do rob modelado.

y0 ve

De
v

vd

Dd


x0

Figura 6.1 Rob diferencial

O modelo cinemtico do rob pode ser descrito com base na figura 6.1, onde e so
as coordenadas de base do sistema de referncia; representa a interseco entre o eixo de
simetria e o segmento que passa pelas rodas; vd,e so as velocidades lineares das rodas direita
e esquerda, respectivamente; v a velocidade linear do rob; b a distncia entre as rodas
do rob; Dd,e so os dimetros das rodas direita e esquerda, respectivamente; w a
velocidade angular do rob.
Assim, o modelo cinemtico do rob diferencial [20] que permite simular o seu
comportamento dado por

(6.1)

com,

(6.2)

(6.3)

A odometria do rob obtida atravs da integrao da informao provida pelos encoders


incrementais de cada roda, em cada perodo de amostragem, , e permite estimar com base
no estado actual o deslocamento linear e angular durante o perodo de amostragem.
Odometria Localizao relativa 59

Para se obter os deslocamentos lineares de cada roda, e , no perodo de


amostragem , torna-se ento necessrio relacionar o deslocamento das rodas, , com os
impulsos dos encoders, . Assim, o deslocamento dado por

(6.4)

com,

(6.5)

A equao 6.5 permite determinar que representa o factor de converso entre


impulsos dos encoders, , e o deslocamento linear da respectiva roda onde, o
dimetro nominal das rodas, a resoluo dos encoders e a relao da caixa redutora.

Assim, discretizando o modelo da cinemtica do rob a partir das diferenas centradas,


actualiza-se a o estado do rob atravs de

(6.6)

com,

(6.7)

(6.8)

A utilizao de diferenas centradas para discretizar o modelo cinemtico tem como


finalidade diminuir o erro introduzido pela discretizao na equao 6.1.

Aps a exposio das equaes que determinam o modelo cinemtico do rob em estudo,
pode-se tirar algumas elaes em relao aos parmetros a obter para o modelo de
odometria. O modelo de odometria ficar completamente exposto mediante a calibrao dos
do raio das rodas e da distncia entre rodas.

6.2.2 Calibrao da odometria

A calibrao da odometria um processo extremamente importante quando se pretende


uma estimativa fivel das distncias percorridas pelo rob. O processo de calibrao
caracteriza-se por ser um procedimento moroso e complexo. A sua incorrecta calibrao
60 Localizao e Navegao

causa erros grosseiros na preciso das medidas de distncias devido ao erro ser acumulativo.
Esta causa estabelecida pois o erro integrado em cada perodo de amostragem o que
inviabiliza a utilizao desta tcnica por longos perodos de tempo. Mesmo que o erro
acumulado seja pequeno, haver sempre perturbaes externas que inviabilizam a utilizao
prolongada.
Como referido anteriormente, para uma correcta utilizao do mtodo de odometria
ento necessrio calibrar dois parmetros. O dimetro das rodas, , e a distncia entre
rodas do rob, . Uma vez que este ltimo no influencia nos movimentos de translao, o
primeiro parmetro a ajustar dever ser o dimetro das rodas. Considerou-se que ambas
compadecem do mesmo dimetro.

Para medir o dimetro das rodas foi necessrio determinar, inicialmente, a relao de
impulsos atravs do deslocamento do rob. Assim, colocou-se o rob a realizar um movimento
de translao e armazenou-se a quantidade total de impulsos medidos pelos encoders de cada
roda, figura 6.2. Para uma distncia de 8,073 m o nmero total de impulsos medidos pelo
encoder da roda direita e esquerda foi 930609 e 930876, respectivamente.

ve

vd

8,073 m

Figura 6.2 Movimento linear para determinar a relao de impulsos atravs do deslocamento

Desta forma, determinou-se que os encoders do rob em estudo geram 115291


impulsos/metro.
Atravs das equaes 6.4, 6.5 e 6.7 e do valor determinado para os impulsos/metro
obtm-se um dimetro mdio, , para as duas rodas de 12,16 cm.

Aps a medio do dimetro das rodas, procedeu-se calibrao da distncia entre rodas.
Para tal colocou-se o rob a realizar um movimento de rotao aplicando a mesma velocidade
a cada roda mas com sinais contrrios, para que o rob rodasse sobre si prprio. Durante este
procedimento a velocidade deve ser reduzida para evitar situaes de deslizamento das rodas
e para minimizar os efeitos inerciais.

ve
360
w

vd

Figura 6.3 Movimento circular para determinar a distncia entre rodas


Sistema de deteco de marcadores - Localizao absoluta 61

Aps 10 voltas completas registou-se o valor total dos impulsos medidos pelos encoders
obtendo-se 2150535 e 2150551 para a roda direita e para a roda esquerda, respectivamente.
Atravs da equao 6.8 obtm-se uma distncia entre rodas, , de 59,38 cm.
Na tabela 6.1 representam-se os parmetros obtidos atravs da calibrao da odometria
que permitiro obter uma estimativa do estado do rob.

Tabela 6.1 Parmetros da odometria obtidos para a plataforma em estudo

Dimetro das rodas ( 12,16 cm


Distncia entre rodas (b) 59,38 cm
Resoluo dos encoders 44032 impulsos/volta

As calibraes descritas acima no garantem uma elevada preciso na determinao dos


parmetros do sistema de odometria, pois os mtodos utilizados envolvem a aplicao de
sensores (encoders) que, normalmente, fornecem medidas com erros relativos resoluo dos
encoders.
Para alm dos erros introduzidos por sensores, os erros sistemticos especficos do rob
tambm prejudicam na obteno de uma preciso elevada na calibrao. Estes podem ser de
diferentes origens, tais como tempos de amostragem variveis, variao do ponto de contacto
com o piso, variao da distncia entre rodas.
Assim, para uma melhor calibrao e, consequentemente, para a obteno de uma melhor
preciso na estimativa da posio e orientao do rob, deve-se proceder utilizao de
mtodos de calibrao mais eficientes de forma a identificar e compensar os erros
sistemticos.
K. S. Chong e L. Kleeman [21] apresentam um mtodo sistemtico de calibrao do
sistema de odometria de forma a compensar o efeito dos erros sistemticos designado por
UMBMark e identificam trs fontes dominantes de erros sistemticos: o erro devido ao
dimetro das rodas diferentes, Ed; o erro devido incerteza da distncia entre os pontos de
contacto das rodas com o piso, Eb; e o erro de escala, Es.
O mtodo de calibrao UMBMark permite identificar separadamente o erro Ed e Eb e,
assim, compensar correctamente o efeito que cada um provoca na odometria.
Para informaes mais detalhadas sobre o mtodo de calibrao UMBMark consultar a
referncia [21].

6.3 Sistema de deteco de marcadores - Localizao absoluta

A utilizao de sistemas de deteco de marcadores artificiais baseados em viso artificial


permite a estimao da posio absoluta do rob, garantindo desta forma uma melhor
preciso na localizao do AGV.
Dotar um rob de viso uma tarefa ambiciosa que implica a capacidade de gerir
mltiplas tarefas simultaneamente, ou seja, a capacidade de processar dados de sensores
exteriores e fundi-los de forma a se mover autonomamente. de uma forma semelhante o
que o crebro de um ser humano faz quando recebe a informao sensorial dos olhos e depois
a transmite aos membros inferiores encarregues pela locomoo.
62 Localizao e Navegao

A viso num rob aumenta significativamente as suas capacidades sensoriais e


consequentemente operacionais, bem como a sua versatilidade e segurana de
funcionamento. Pretende-se com a viso robtica poder determinar as posies dos objectos
(landmarks), assim como as relaes entre os mesmos e o ambiente que os cerca, e assim
poder realizar tarefas ou misses, como navegar entre os objectos e detect-los num
determinado percurso predefinido.

6.3.1 Viso Artificial

A viso artificial consiste na aquisio e processamento da imagem obtida atravs da


cmara. A aquisio realizada atravs do sistema autnomo de viso artificial e o
processamento executado atravs do software Sherlock. Fisicamente, a aquisio da imagem
obtida atravs da utilizao de um espelho posicionado a 45 em relao cmara. Isto
deve-se ao facto da cmara se encontrar instalada no interior do AGV e paralela ao plano do
objecto (marcador). O esquema da aquisio da imagem pode ser observado na figura 6.4.
Deste modo, durante o movimento do rob sempre que detectado um objecto idntico
ao objecto utilizado como amostra, despoletado um conjunto de operaes que visam o
processamento da imagem obtida em tempo real. Aps o trmino do algoritmo inerente a este
processo e quando um marcador identificado, estabelecida a comunicao entre o
subsistema de processamento de imagem e o subsistema da aplicao de controlo e deciso.
de salientar que a comunicao entre estas duas aplicaes unidireccional, pois apenas o
subsistema responsvel pela aquisio e tratamento da imagem envia informao (dados) para
o subsistema da aplicao de controlo e deciso. A comunicao realizada atravs do envio
de uma mensagem por TCP e aps algum processamento possvel actualizar a localizao do
AGV. A mensagem enviada contm os dados das medies da posio, do ngulo do marcador
em relao ao seu referencial de base e da semelhana entre o marcador detectado e o
marcador utilizado como amostra. Aps a identificao do marcador visual, a posio global
do AGV torna-se de alguma forma conhecida. Este facto s acontece quando o AGV se
movimenta relativamente perto do marcador.

A imagem capturada pela cmara apresentada na figura 6.5. Pode-se observar que o
marcador apresenta um elevado contraste em relao ao fundo (background) o que facilitar
a sua identificao e deteco.

Cmara
45

Espelho

Plano do objecto (marcador localizado no pavimento)

Figura 6.4 Esquema representativo da aquisio da imagem pela cmara


Sistema de deteco de marcadores - Localizao absoluta 63

Figura 6.5 Imagem original capturada pela cmara instalada no rob

6.3.1.1 Calibrao da cmara

A calibrao de uma cmara refere-se ao estabelecimento de uma transformao de


coordenadas entre as coordenadas de pixel da cmara e um sistema de coordenadas real. Isto
permite medies precisas a serem realizadas em unidades de real a partir de qualquer janela
de imagem.
O software utilizado para o processamento da imagem apresenta trs mtodos de
calibrao: Pontos, Escala e Grelha (Grid) [39]. Para o presente trabalho, recorreu-se ao
mtodo Grid que utiliza uma imagem em grelha ou uma imagem idntica a um tabuleiro de
xadrez, para estabelecer um mapeamento de quatro pontos. Este mtodo baseia-se na
suposio de que o tabuleiro ou grelha constitudo por (apenas) linhas perpendiculares e
paralelas que definem clulas quadradas. Definindo a dimenso das clulas quadradas em
coordenadas mundo possvel, aps a calibrao da imagem, associar a dimenso de um pixel
a uma unidade das coordenadas reais. Uma vez localizados os quatro pontos utilizados para o
mapeamento, a transformao de coordenadas encontra-se estabelecida. Este mtodo
composto por um mtodo de perspectiva radial que assume as clulas como uniformes em
tamanho e executa correces de distncia no-lineares a partir de um ponto central.
Todos os pontos e linhas so representados no sistema de coordenadas da imagem para
que foram definidos. Desta forma, aps a calibrao da imagem, as dimenses passam a ser
lidas em unidades reais, os ngulos so estabelecidos em relao ao eixo X do mundo real, e
at mesmo no caso da existncia de crculos estes seriam computados como ovais, devido
distoro de perspectiva. Neste caso concreto, a imagem captada apresenta uma distoro
em barril provocada pela lente utilizada.
Na figura 6.6 apresenta-se o mtodo de calibrao utilizado para calibrar as imagens
captadas pela cmara.
64 Localizao e Navegao

Figura 6.6 Imagem utilizada para mtodo de calibrao

6.3.1.2 Anlise/Processamento da imagem

O software utilizado para a anlise da imagem captada pela cmara uma aplicao user-
friendly onde os algoritmos utilizados para o pr-processamento e posteriormente para a
segmentao so escolhidos a partir de uma lista, conforme a finalidade pretendida para o
tratamento da imagem.
Inicialmente, estabelece-se uma regio de interesse na imagem (ROI). Estas so zonas
onde o objecto escolhido tem uma probabilidade relevante de ser encontrado. Na figura 6.7
pode-se visualizar esta regio delimitada por um rectngulo verde.
A criao de uma regio de interesse permite processar apenas os pixis que se
encontram no seu interior e nas margens da rea delimitada. Desta forma, uma vez que o
algoritmo no necessita de percorrer todos os pixis da imagem captada, o processo de
detectar um objecto na ROI realiza-se de uma forma mais clere.
No pr-processamento realizada a atenuao dos rudos e outros factores, como a
luminosidade do ambiente, com o objectivo de se obter a informao necessria da imagem
utilizando os algoritmos especficos de viso. Desta forma, recorreu-se transformao da
imagem monocromtica em imagem binria, aplicando um nvel de threshold de 100 numa
escala de 0 a 255. Logo, todos os pixis que constituem a ROI e que se encontram acima do
nvel estabelecido adoptam o valor de 1 (branco), e os que se encontram sob o nvel
estabelecido assumem o valor de 0 (preto), figura 6.8.
Posteriormente, para a deteco do marcador utilizou-se um algoritmo de pesquisa de
figuras geomtricas, Search, que consiste na procura de uma determinada estrutura na
imagem. Inicialmente, o algoritmo passa por uma fase de treino onde se introduz o marcador
de forma a este algoritmo treinar a forma e tamanho do objecto a identificar, tornando-o
numa amostra que servir de referncia para a identificao e deteco dos marcador visuais
que sero obtidos quando o rob se encontrar a funcionar em tempo real. Aps a realizao
do treino do objecto, o tratamento da imagem encontra-se pronto a detectar os marcadores.
A utilizao do algoritmo de deteco de formas geomtricas possibilita estimar a
orientao do marcador e a distncia do mesmo em relao amostra.
Sistema de deteco de marcadores - Localizao absoluta 65

Figura 6.7 Imagem original delimitada a verde pela ROI

O resultado ps-processamento mostrado na figura 6.8.

Figura 6.8 Imagem aps pr-processamento e segmentao

6.3.2 Formato das mensagens enviadas por TCP

Na tabela 6.2 apresenta-se o formato das mensagens enviadas do sistema autnomo de


viso artificial para a aplicao de controlo e deciso.
O primeiro parmetro corresponde semelhana entre o marcador detectado e a amostra
responsvel pelo teste de similaridade. Os restantes parmetros correspondem ao ponto do
centro de massa do objecto e do ngulo relativamente ao objecto idntico utilizado como
amostra.

Tabela 6.2 Formato da mensagem enviada por TCP

Pattern_Similarity Position_X Position_Y Position_Theta


66 Localizao e Navegao

6.4 Controlo e Planeamento de Trajectrias

O controlo e o planeamento de trajectrias para um rob consiste na determinao de um


percurso que permita moviment-lo desde uma origem, localizao inicial, at a um destino,
alvo ou meta. Esta movimentao deve garantir que o rob no colida com nenhum obstculo
do ambiente e que o movimento planeado seja consistente com as restries da cinemtica
do veculo.
No planeamento de trajectrias so tidas em considerao as habilidades do rob e a
estrutura do ambiente. Desta forma, so assumidos os seguintes pressupostos:
Rob rgido modelado como um ponto;
Ambiente esttico e conhecido;
Movimentos do rob segundo segmentos rectilneos ou curvilneos.
F

Com o objectivo de permitir ao rob movimentar-se num ambiente semi-estruturado,


definiram-se alguns procedimentos de baixo nvel, que reunidos possibilitam o desempenho
de uma tarefa pelo rob, como percorrer uma trajectria de um ponto inicial para um ponto
final. Por sua vez, a definio das trajectrias do rob implementada por um procedimento
de mais alto nvel responsvel por garantir que o rob desempenha correctamente o
movimento para o qual foi proposto.

Deste modo, na seco 6.4.1 so descritas em pormenor as rotinas bsicas que permitem
o controlo do rob. A seco 6.4.2 descreve o procedimento de mais alto nvel que se baseia
nas rotinas mais simples, com o objectivo de percorrer uma determinada trajectria.

6.4.1 Procedimentos de baixo nvel

Para o procedimento de baixo nvel foram desenvolvidas as seguintes rotinas bsicas com
o intuito de permitir o controlo do movimento do rob:
Goto_Target (Target_X,Target_Y,V);
Follow_Line ( , V);
Follow_Circle (Xc, Yc, Raio, V, sentido);
Stop.

A implementao de diferentes procedimentos de baixo nvel possibilita alterar os


percursos do rob em qualquer momento, sendo apenas necessrio definir o tipo de percurso
que se pretende aplicar ao movimento do rob.

6.4.1.1 Goto_Target

Esta funo tem como objectivo gerar os valores de velocidade linear e velocidade
angular (V, W) a enviar para os motores, que possibilitam ao rob atingir um determinado
ponto (target) definidos como parmetros de entrada do procedimento.
Na figura 6.9 representa-se esquematicamente o procedimento abordado nesta seco.
Controlo e Planeamento de Trajectrias 67

y0
y

x0

Figura 6.9 Esquema representativo do procedimento Goto_Target

Este procedimento, representado na figura 6.10, pode ser visto como uma mquina de
estados que percorre os vrios estados com base na posio do rob, verificando as condies
e actuando nos motores do rob com o intuito de atingir o objectivo final, o ponto definido
por .

POINTING

+ TOL

+ TOL

GOING

FINAL_ANGLE

AT_TARGET

Figura 6.10 Mquina de estados do procedimento Goto_Target

A varivel , apresentada na figura 6.10, definida por

(6.9)
68 Localizao e Navegao

6.4.1.2 Follow_Line

Este procedimento tem como objectivo gerar os valores de velocidade linear e velocidade
angular (V, W) a enviar para os motores que conduzam o rob a seguir um vector definido
pelo par de coordenadas , no sentido do ponto 1 para o ponto 2, e que so
parmetros de entrada deste procedimento. Na figura 6.11 apresenta-se esquematicamente o
significado deste procedimento.

Figura 6.11 Representao esquemtica do procedimento Follow_Line

Para o procedimento Follow_Line, implementou-se uma mquina de estados,


representada na figura 6.12, que permite aproximar o rob linha formada pelos pontos
e e, posteriormente, segui-la. Desta forma, a mquina de estados composta
por dois estados: POINTING e GOING. No estado POINTING ajusta-se o controlador de
velocidade, actuando na velocidade de rotao (W). Inicialmente determina-se a distncia do
rob linha, aplicando posteriormente uma velocidade (W) proporcional a essa distncia. Se
o rob se encontrar a uma distncia muito elevada executa-se primeiro uma trajectria em
direco ao ponto mais prximo da linha. O estado GOING responsvel por aplicar aos
motores as velocidades V e W que permitam seguir o vector definido por P1 e P2 (Anexo A).

POINTING

GOING

Figura 6.12 Mquina de estados do procedimento Follow_Line

Na figura 6.12, o parmetro dado por

. (6.10)
Controlo e Planeamento de Trajectrias 69

6.4.1.3 Follow_Circle

O procedimento Follow_Circle (Xc, Yc, Raio, V, sentido) tem como objectivo gerar os
valores de velocidade tangencial e velocidade angular (V, W) a enviar para os motores que
permitem ao rob seguir a trajectria de um circulo com um determinado raio, centrada no
ponto (Xc,Yc) definidos como parmetros de entrada deste processo. Esta trajectria tambm
permite estipular o sentido de movimentao. Assim, assume-se o sentido horrio para
sentido = 1 e anti-horrio no outro caso.

Figura 6.13 Esquema representativo do procedimento Follow_Circle

O processo bsico de seguir um crculo tambm foi implementado baseado numa mquina
de estados, figura 6.14.
Desta forma, a implementao do procedimento Follow_Circle seguiu a mesma
metodologia indicada para a aco Follow_Line. Este processo consiste no ajuste da
velocidade de rotao do rob em funo da velocidade linear deste e do raio de curvatura.
A mquina de estados contempla dois estados: GOING e AT_TARGET. O estado GOING
verifica se o movimento efectuado no sentido horrio ou anti-horrio e, se o rob se
encontrar distanciado da trajectria circular, procede inicialmente aproximao
trajectria. Quando o rob se encontra dentro da trajectria despoletado o estado
AT_TARGET que responsvel por garantir que o rob realiza a trajectria requerida,
actuando nas velocidades V e W.

GOING

AT_TARGET

Figura 6.14 Mquina de estados para o procedimento Follow_Circle

A varivel representa a distncia entre o rob e a trajectria em crculo. Esta pode


ser obtida atravs de

. (6.11)
70 Localizao e Navegao

6.4.1.4 Stop

Esta funo tem como objectivo gerar os valores de velocidade tangencial e velocidade
angular a enviar para os motores (V, W) que conduzam o rob a permanecer imvel.

6.4.2 Procedimento de mais alto nvel

Para atingir o objectivo global, ou seja, percorrer percursos atravs de uma trajectria
previamente definida, assumiu-se que o rob mvel se encontrava inserido numa linha de
produo com um armazm industrial e dois postos de trabalho. Estabeleceu-se para dois
cantos do espao utilizvel cada um dos postos de trabalho e o armazm automtico num
outro canto. O quarto canto livre admitiu-se como o posto de carga do rob. Os corredores
em que o rob se pode deslocar formam um H que une os 4 locais mencionados. Na figura
6.15 apresenta-se o ambiente, bem como a definio dos sentidos ao longo dos diferentes
percursos pelo qual o rob se poder movimentar.

Para permitir que o rob se desloque pelos corredores em H, implementou-se um


procedimento de mais alto nvel (Follow_Path) que utiliza sequencialmente (mquina de
estados), a funo mais simples Goto_Target.
A mquina de estados que permite ao rob movimentar-se entre pontos numa trajectria
em H apresentada na figura 6.16. Os pontos estabelecidos representam percursos a
efectuar pelo rob que em conjunto formam a trajectria a realizar, com a finalidade de
atingir o objectivo global, ou seja, a posio pretendida.

sentido_x = 0
E
D F
sentido_x = 1

sentido_y = 0 sentido_y = 1

sentido_x = 0

A C
B
sentido_x = 1

Figura 6.15 Imagem representativa dos percursos e sentidos a realizar pelo rob ao longo da
trajectria em H
Controlo e Planeamento de Trajectrias 71

ANALYSING

T3 T4

MOVEMENT_2 MOVEMENT_1

T1 T2
T5

MOVEMENT_3

T1 T2

MOVEMENT_4 MOVEMENT_5

T6

AT_POINT

Figura 6.16 Mquina de estados para o procedimento Follow_Path

Tabela 6.3 Transies da mquina de estados do procedimento Follow_Path

Transio Condio
T1
T2
T3
T4
T5
T6

Os estados definidos na figura 6.16 descrevem processos na atribuio de diferentes


posies para cumprir com um determinado requisito no seguimento de uma trajectria. Na
tabela 6.4 apresentam-se os diferentes estados que formam o procedimento Follow_Path,
assim como os percursos realizados pelo rob em cada estado.

Tabela 6.4 Percursos efectuados em cada estado do procedimento Follow_Path

Estado Percurso
MOVEMENT_1 A -> B ou D -> E
MOVEMENT_2 F -> E ou C -> B
MOVEMENT_3 B -> E ou E -> B
MOVEMENT_4 C -> B -> A ou F -> E -> D ou B -> A ou E -> D
MOVEMENT_5 A -> B -> C ou D -> E -> F ou B -> C ou E -> F
AT_POINT A ou B ou C ou D ou E ou F
72 Localizao e Navegao

Segue-se uma breve explicao dos estados que compem este procedimento. Assim, no
estado ANALYSING verifica-se o sentido do deslocamento do rob em relao ao referencial
global. Desta forma, analisa-se se o rob se deslocar no sentido positivo ou negativo do eixo
dos xx, sentido_x, ou no sentido positivo ou negativo do eixo dos yy, sentido_y, a partir da
diferena entre a posio actual do rob, RPose, e a posio de destino, target.
Posteriormente so encadeados sequencialmente os estados necessrios para que o rob
atinja a meta pretendida.
Desta forma, e a ttulo de exemplo, descreve-se de seguida as aces realizadas no estado
MOVEMENT_1 da figura 6.16, sendo este despoletado quando se d a confirmao da
transio T4 pelo rob. As aces que compem este estado so direccionadas para a
realizao de um movimento que em conjunto com outros ter como finalidade atingir um
objectivo global. Para este estado concreto, a condio de transio T4 estabelece que a
posio da ordenada do rob, RPose.y, difere da ordenada da posio final, target.y. Logo, o
rob ter que estabelecer para a rotina bsica Goto_Target um destino que, neste caso, ser
o ponto intermdio da trajectria em H, sendo este o nico ponto estipulado que permite
ao rob transitar de posio segundo o eixo y, ou seja, movimentar-se segundo o percurso de
B para E. O estado MOVEMENT_1 apresenta-se como um estado intermdio de transio na
realizao de um dado percurso.

6.4.2.1 Exemplo de um possvel percurso

A ttulo de exemplo apresenta-se na figura 6.17 os estados a percorrer no procedimento


Follow_Path quando se pretende movimentar o rob de A para F. Neste caso, assume-se que o
ponto A a base do rob (posto de carga) e o ponto F um posto de trabalho.

ANALYSING MOVEMENT_1 MOVEMENT_3 MOVEMENT_5 AT_POINT

Figura 6.17 Exemplo de um percurso a realizar pelo rob

6.5 Algoritmo de localizao absoluta

O algoritmo de localizao desenvolvido para este estudo tem como finalidade permitir
corrigir o estado do rob. Desta forma, implementou-se um procedimento atravs de uma
mquina de estados que permite localizar marcadores e, quando necessrio, corrigir o estado
do rob. Como referido anteriormente, de salientar que o algoritmo de localizao utilizado
Algoritmo de localizao absoluta 73

no simulador SimTwo para a deteco de paredes laterais similar ao utilizado pelo rob real
para a deteco de marcadores por viso artificial, permitindo assim utilizar o algoritmo de
uma forma transparente em ambas as situaes.
Na simulao a localizao absoluta encarrega-se de avaliar a distncia entre o rob e
uma parede lateral mensurada por sensores de infravermelhos. Na situao real, a localizao
absoluta verifica a distncia e a orientao do rob em relao a um referencial de base
estabelecido para a posio dos marcadores artificiais.
Na seco 6.5.1 descrito o modelo matemtico para deteco de linhas e na seco
6.5.2 apresenta-se a estrutura e a descrio do algoritmo de localizao.

6.5.1 Modelo matemtico do mtodo de auto-localizao por linhas

A utilizao do mtodo de auto-localizao por linhas tem como finalidade localizar o


rob no espao onde se encontra. Para este mtodo, utilizam-se duas abordagens em relao
deteco de marcadores. Desta forma, para a simulao, a deteco de marcadores baseia-
se na medio da distncia nas laterais do rob atravs de dois sensores, sensores de
infravermelhos. A partir da informao obtida por cada sensor possvel determinar a
orientao do rob e a sua distncia, em relao parede. Para o rob real, a deteco de
marcadores baseia-se em viso artificial, utilizando o sistema autnomo de viso artificial
para estimar o estado do rob atravs dos marcadores artificiais previamente colocados no
ambiente.
de salientar que este mtodo apenas permite definir a coordenada na direco
perpendicular recta [33]. Na figura 6.18 e 6.19 apresenta-se a descrio do mtodo de auto-
localizao por linhas.

V1 xl

Sensor 2


Sensor 1
d2
V2

d1
y

Figura 6.18 Esquema representativo da medio da distncia do rob a uma parede lateral
74 Localizao e Navegao

V1
d2
V2
d1 d2

Marcador
xl
d1

Marcador

y
xl
x

Figura 6.19 Esquema representativo da medio da distncia do rob a um marcador artificial

Assim, a orientao () do rob parede dada por

(6.12)

em que 2LS a distncia entre os dois sensores ou entre os dois pontos das extremidades do
marcador.

A distncia (x) do rob parede obtm-se a partir de

(6.13)

Na deteco do marcador artificial o sistema de viso utilizado para este trabalho j


fornece o ngulo de orientao do rob e a sua distncia ao marcador no sendo ento
necessrio calcular e x a partir de d1 e d2.

6.5.2 Estrutura e descrio do algoritmo de localizao

Nesta seco apresenta-se o diagrama de estados do processo de localizao absoluta


(figura 6.20). Para cada estado ser fornecida uma descrio das tarefas efectuadas.
Algoritmo de localizao absoluta 75

ANALYSE

T3
T1

T4
IDENTIFY

T2

CORRECT

Figura 6.20 Diagrama de estados do processo de localizao

Tabela 6.5 Transies da mquina de estados do processo de localizao

Transio Condio SimTwo Condio Viso Artificial


T1
T2
T3
T4

O estado ANALYSE representa o primeiro estado do procedimento Udpate_LandMarks.


Neste estado o rob processa a trama recebida pelo SimTwo, caso se esteja a simular o rob,
ou pelo sistema autnomo de viso artificial, caso se esteja na situao de funcionamento
real. A condio para transio de estado (T1) verifica se o rob est perante algum
marcador, avaliando um parmetro facultado pelo sistema autnomo de viso artificial ou
pelo SimTwo, pattern_similarity ou sensor1 e sensor2, respectivamente. Este parmetro no
caso de ser facultado pelo SimTwo representa a distncia medida por cada sensor de
infravermelhos e no caso do funcionamento real do rob representa a semelhana do
marcador detectado com o marcador estabelecido como referncia de marcadores. Assim, se
este parmetro se encontrar dentro de uma gama previamente estabelecida, a condio de
transio (T1) para o estado seguinte assegurada encontrando-se o rob na presena de um
marcador ou obstculo.

No estado IDENTIFY efectua-se uma pesquisa base dados criada com os marcadores
existentes no ambiente do rob (Anexo B), avaliando atravs da posio e orientao do rob
e da posio e orientao dos marcadores artificiais se o objecto detectado realmente um
marcador com o objectivo de se proceder correco do estado do rob. Desta forma,
durante o ciclo de pesquisa efectua-se o clculo da distncia entre a posio do rob e a
posio dos diferentes marcadores existentes na base de dados, estimando atravs desta
distncia qual dos marcadores se encontra mais prximo do rob. Esta distncia mnima final
obtida recorrendo a um ciclo de n iteraes, sendo n o nmero de marcadores existentes na
base de dados. Assim, na primeira iterao do ciclo efectua-se o clculo da distncia do rob
ao primeiro marcador armazenado na base de dados e guarda-se o valor obtido para a
distncia entre os dois. Na iterao seguinte efectua-se novamente o clculo da distncia do
76 Localizao e Navegao

rob em relao ao marcador seguinte, n+1, e compara-se o valor obtido com o guardado
anteriormente para a distncia. Se a nova distncia obtida se apresentar inferior anterior
significa ento que o marcador n+1 se encontra mais prximo do rob do que o
marcador n. Desta forma, o marcador n descartado e o marcador n+1 passa a ser uma
referncia para a possvel identificao do objecto. Este processo realizado sucessivamente
at ao trmino da pesquisa de marcadores na base de dados, procedendo sempre
actualizao da distncia mnima entre o rob e o marcador pela forma descrita
anteriormente. Aps esta pesquisa avalia-se a condio de transio de estado (T2),
verificando-se se a distncia obtida reside dentro de uma gama estabelecida. Se a resposta
for positiva ento o marcador detectado o marcador correcto e a posio e orientao do
rob ser corrigida em funo deste marcador, estado CORRECT.

O estado CORRECT tem como objectivo corrigir a posio e orientao do rob em relao
a um dado marcador. Desta forma, atravs das equaes 5.1 e 5.2 procede-se correco da
posio e orientao do rob.

6.6 Fuso Sensorial

6.6.1 Mdia Pesada

Um dos mais simples e intuitivos mtodos de fuso ao nvel do sinal a mdia pesada da
informao redundante fornecida por um grupo de sensores.
A mdia pesada da medida de sensores com pesos dada por

(6.14)

onde, e se no se encontrar dento de um limite pr-estabelecido.

Os pesos podem ser utilizados para distinguir diferenas de preciso entre sensores, sendo
ainda possvel utilizar-se uma mdia deslizante para combinar uma sequncia de medidas
adquiridas por um nico sensor, atribuindo-se s mais recentes um maior peso.

6.6.2 Filtro de Kalman

Um rob possui a capacidade de se locomover em ambientes estruturados, e reconhecer


tanto a sua posio inicial, quando a dos marcadores do sistema. Com base na informao de
vrios sensores, o filtro de Kalman utilizado para fundir esta informao, permitindo obter
uma estimativa global para o estado do sistema, ou seja, uma estimativa da posio real do
rob em ambientes discretizados, compensando os erros acumulados obtidos pelas
informaes sensoriais. Esta estimativa ter elevada qualidade pois a fuso de informao
realizada tomando em considerao a modelizao dos erros associados a cada tipo de
medidas.
Captulo 7

Resultados

Neste captulo so resumidos e apresentados os resultados obtidos no trabalho


desenvolvido no mbito desta dissertao. Devido escassez de tempo, apenas sero
apresentados os resultados obtidos na simulao do comportamento do rob atravs do
SimTwo.

7.1 Rob em simulao

Os resultados presentes nesta seco dizem respeito ao movimento efectuado pelo rob
de um ponto inicial do mapa, A(0,0) para um ponto final do mesmo, F(8,4). Uma vez que a
trajectria do rob foi planeada para corresponder a um percurso em H, o rob ter que
efectuar duas rotaes, 90 e -90, para permitir que este atinja o destino pretendido.
Nas subseces seguintes apresentam-se os resultados obtidos para este percurso
utilizando apenas a localizao relativa, subseco 7.1.1 e 7.1.2, e a localizao relativa e
absoluta, subseco 7.1.3, 7.1.4 e 7.1.5. de salientar que se apresentam resultados tanto
para a localizao baseada apenas em odometria, como para a localizao baseada em
odometria e marcadores artificiais, aplicando rudo aos encoders com o intuito de verificar o
comportamento do rob a estas no linearidades.

7.1.1 Trajectria baseada em localizao relativa sem rudo

Primeiramente, pretendeu-se verificar o comportamento do rob, recorrendo apenas


informao provida pelos encoders, ou seja, a quantificao da distncia percorrida por cada
roda apenas determinada atravs da mensurao dos impulsos por volta gerados pelos
encoders. O objectivo passa por observar a trajectria descrita pelo rob comparando-a com
a trajectria real observada pelo simulador. Na figura 7.1 apresenta-se os resultados obtidos
para esta trajectria, recorrendo somente localizao relativa.

77
78 Resultados

4,5

4
F (8,4)
3,5

3
y (metros)

2,5

1,5

0,5
A (0,0)
0
-0,5 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 8,5
x (metros)

Pose_SimTwo Pose_Rob

Figura 7.1 Trajectria baseada em odometria

Atravs da figura 7.1 possvel constatar que o rob no atinge o destino pretendido,
embora a sua localizao final no se situe muito distante da observada atravs do simulador.
de salientar que quando o rob efectua uma rotao de 90 ou -90 este acumula erro na
orientao que afectar directamente a sua posio final, contribuindo desta forma para o
desvio em relao ao destino pretendido. Este erro na orientao do rob pode dever-se ao
facto do simulador no permitir determinar o real ponto de contacto entre as rodas e o piso,
afectando a distncia entre rodas, b, sendo esta utilizada para determinar a orientao do
rob. Apesar da posio final obtida atravs do mtodo de localizao baseado em odometria
no corresponder posio final pretendida, possvel observar que a utilizao destes
sensores em conjunto com outros sensores poder tornar a posio e orientao do rob
bastante fidedigna.
Rob em simulao 79

7.1.2 Trajectria baseada em localizao relativa com rudo

Uma vez que o simulador utilizado permite introduzir rudo na informao dos encoders e,
tendo em considerao que este rudo afectar o comportamento do rob, pretendeu-se com
a simulao da figura 7.2 observar de que forma o rudo provido pelos encoders perturbava a
posio e a orientao do rob durante o percurso.

4,5

4
F (8,4)
3,5

2,5
y (metros)

1,5

0,5

A (0,0)
0
-0,5 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 8,5
-0,5
x (metros)

Pose_SimTwo Pose_Rob

Figura 7.2 Trajectria baseada em odometria com rudo aplicado aos encoders

Atravs da anlise da figura 7.2 possvel verificar que o rudo afecta a quantificao das
distncias medidas pelos encoders de cada roda, perturbando o movimento do rob durante o
percurso efectuado. Desta forma, a posio final do rob difere da posio observada pelo
simulador.
Numa trajectria baseada em odometria sem rudo o erro apenas provm da distncia
entre rodas que varia devido ao ponto de contacto com o pavimento tambm variar. Este
facto apenas afecta as rotaes do rob. Na figura 7.2 constata-se que a presena de rudo
tambm inclui erro na distncia percorrida pelo rob.
80 Resultados

7.1.3 Trajectria baseada em odometria com correco da orientao do


rob atravs de marcadores

De forma a aperfeioar o estado do rob durante o percurso estipulado, utilizou-se um


mtodo de localizao absoluta em conjunto com o mtodo baseado em odometria,
possibilitando assim corrigir a posio e orientao do rob com o intuito deste atingir a
posio final pretendida. Deste modo, introduziram-se marcadores previamente estabelecidos
no ambiente do rob, figura 5.9, e facultou-se a posio destes no mapa do rob. Estes
marcadores foram estrategicamente colocados nas zonas de rotao do rob para possibilitar
a correco da sua orientao. O mtodo de localizao absoluta utilizado inerentemente
intermitente, na medida em que os marcadores se encontram espaados no ambiente e,
geralmente, o rob s consegue reconhecer o marcador quando se encontra bastante prximo
deste. Na figura 7.3 apresentam-se os resultados obtidos com a aplicao deste mtodo. de
salientar que primeiramente, apenas se pretendeu corrigir a orientao do rob. Na seco
7.1.4 ser apresentado o resultado da utilizao deste mtodo para a correco da posio e
orientao do rob.

4,5
F (8,4)
4

3,5

2,5
y (metros)

1,5

0,5

0 A (0,0)
-0,5 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 8,5
-0,5
x (metros)

Pose_SimTwo Pose_Rob

Figura 7.3 Trajectria baseada em odometria com correco da orientao do rob atravs de
marcadores

Com base na figura 7.3 possvel verificar que a trajectria descrita pelo rob se
aproxima da trajectria observada pelo simulador. Quando o rob detecta um marcador
actualiza a sua orientao em relao a este. Assim, observa-se que a posio final obtida
para o rob se aproxima da posio pretendida, com um erro na posio do rob inferior a
0,1%.
Rob em simulao 81

7.1.4 Trajectria baseada em odometria com correco do estado do rob


atravs de marcadores

Nesta seco pretende-se apresentar os resultados do comportamento do rob durante a


trajectria pretendida, baseando-se na localizao a partir de marcadores e da odometria.
Na figura 7.4 exibe-se o resultado obtido para o comportamento do rob a partir da
correco da posio e orientao do mesmo em relao aos marcadores detectados no
percurso.

4,5
F (8,4)
4

3,5

2,5
y (metros)

1,5

0,5
A (0,0)
0
-0,5 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 8,5
-0,5
x (metros)

Pose_SimTwo Pose_Rob

Figura 7.4 Trajectria baseada em odometria com correco da orientao e posio do rob atravs
de marcadores

Atravs da figura 7.4 pode-se constatar que a diferena entre o comportamento do rob e
o comportamento observado pelo simulador mnima, pois a principal fonte dos erros no
estado do rob advm de uma incorrecta orientao do mesmo. Desta forma, pode-se
verificar que a posio e orientao do rob em relao a um marcador garantem uma melhor
localizao do mesmo, contribuindo para que a posio final pretendida seja atingida.
82 Resultados

7.1.5 Trajectria baseada em odometria com correco do estado do rob


atravs de marcadores e rudo aplicado aos encoders

Como referido anteriormente, a informao dos encoders afectada por rudo. Desta
forma, nesta seco pretendeu-se analisar a contribuio deste rudo no comportamento do
rob durante a trajectria pretendida e verificar se a posio e orientao do mesmo era
corrigida ao longo do percurso.

4,5
F (8,4)
4

3,5

2,5
y (metros)

1,5

0,5

A (0,0)
0
-0,5 0,5 1,5 2,5 3,5 4,5 5,5 6,5 7,5 8,5
-0,5
x (metros)

Pose_SimTwo Pose_Rob

Figura 7.5 Trajectria baseada em odometria com correco do estado do rob atravs de
marcadores e rudo aplicado aos encoders

Com base na figura 7.5 possvel verificar que a odometria afectada pelo rudo provido
pelos encoders. tambm possvel observar que, apesar deste rudo contribuir para uma
quantificao errnea da distncia percorrida por cada roda, a utilizao de uma localizao
absoluta atravs de marcadores artificiais permite corrigir o estado do rob, garantindo desta
forma que a posio final pretendida atingida.
Pode-se verificar a partir da figura 7.5 a presena de uns saltos na trajectria do rob.
Isto deve-se ao facto de quando detecta o marcador corrige a sua posio em relao a este.
Com a utilizao de um filtro de Kalman este efeito poderia ser atenuado.
Captulo 8

Concluses e Trabalhos Futuros

8.1 Concluses

Nesta dissertao estudou-se e implementou-se um algoritmo de localizao de custo


reduzido baseado na deteco de marcadores artificiais. Desta forma, o sistema de
localizao absoluta assumiu duas abordagens: para o funcionamento real do rob utilizou-se
um sistema autnomo de viso para detectar os marcadores artificias; para o funcionamento
em simulao utilizou-se um sistema de deteco de paredes laterais.

Pode-se concluir aps a finalizao deste trabalho que o controlo e o planeamento de


trajectrias baseadas no conhecimento do clculo odmetrico no deve ser o nico mtodo a
utilizar para estimar a localizao absoluta ou relativa de um rob pois os erros so
cumulativos, tornando-se cada vez maiores durante o movimento do rob. Desta forma, a
utilizao da localizao absoluta para estimar e corrigir a posio absoluta do rob torna-se
uma abordagem imperativa em qualquer sistema autnomo robtico em que a localizao
exacta dos robs seja imprescindvel para a correcta execuo das tarefas.

A utilizao de uma plataforma de simulao assumiu um papel preponderante na


execuo deste trabalho uma vez que, permitiu simular o comportamento do rob e
aperfeioar os algoritmos de deciso e controlo que regem o mecanismo deste sistema,
permitindo tambm detectar de uma forma mais transparente possveis erros introduzidos
durante a implementao do software.

Os resultados experimentais obtidos atravs da simulao comprovam que o sistema de


localizao baseado em marcadores artificiais avalia correctamente a qualidade das medidas
do estado do rob, impedindo que este possua uma falsa certeza da sua localizao. Desta
forma, valida-se a implementao do algoritmo de localizao.

Quanto plataforma de software, a utilizao da comunicao srie RS-232 numa lgica


Daisy Chain, entre a camada de nvel superior e a camada de nvel inferior, revelou-se

83
84 Concluses e Trabalhos Futuros

bastante proveitosa e de grande eficcia, consolidando e comprovando a sua enorme


aplicabilidade pela equipa 5DPO da FEUP/INESCPorto.

8.2 Trabalhos Futuros

Como trabalhos futuros, em primeiro lugar dever-se- testar o comportamento do rob


em funcionamento real e implementar o sistema de deteco de obstculos para permitir que
o rob circule de forma segura pelo ambiente, garantindo que este no colide com
obstculos. Desta forma assegura-se a integridade do sistema.
Prope-se a estimao do estado do rob atravs da fuso da odometria e de marcadores
artificiais com recurso a um filtro de Kalman Estendido (EKF).
Embora se tenha procedido s calibraes da odometria, recomenda-se a utilizao do
mtodo UMBMark que permitir corrigir eficientemente os erros sistemticos inerentes ao
rob e consequentemente melhorar o sistema odomtrico do rob.
A aplicao desenvolvida cumpre com os requisitos, todavia, na medida em que a
plataforma de desenvolvimento Lazarus contempla o funcionamento no sistema operativo
Linux de todo o interesse integrar o software de controlo e deciso do AGV num sistema
operativo Open Source. Desta forma, e uma vez que no foi possvel devido falta dos drivers
do Ecr Tctil, recomenda-se para trabalho futuro a integrao no sistema operativo Linux.
Em relao aplicao desenvolvida, esta apenas necessita de ser recompilada para
possibilitar o correcto funcionamento deste software.
Prope-se o estudo de diferentes tipos de marcadores artificiais com o intuito de
estabelecer a melhor forma de deteco do mesmo.
Para finalizar, aconselha-se o desenvolvimento de um software de viso artificial
integrado na aplicao de controlo e deciso do AGV para deteco de marcadores,
permitindo desta forma reduzir os consumos de energia e aumentar a autonomia do rob.
Referncias

[1] Sousa, A. (2003). Arquitecturas de Sistemas Robticos e Localizao em Tempo Real


atravs de Viso aplicaes no domnio do futebol robtico. Tese de Doutoramento.

[2] Veculos guiados autonomamente. Acedido em:


http://en.wikipedia.org/wiki/Automated_Guided_Vehicle.

[3] Figueiredo, M. (1999). Navegao Autnoma de Robs.

[4] Rocha, R. P. (2000). Estado da arte da robtica mvel em Portugal. Acedido em:
http://mail.isr.uc.pt/~mrl/admin/upload/37.pdf.

[5] Groover, M. P. (2000). Automation, Production Systems, and Computer Integrated


Manufacturing. Prentice-Hall.

[6] Borenstein, J., Everett, H. R., Feng, L. (1996). Where am I? Sensors and Methods for
Mobile Robot Positioning. University of Michigan.

[7] The Basics of Automatic Guided Vehicle Systems. Acedido em:


http://www.agvsystems.com/basics/.

[8] Segurana e Navegao dos AGVs. Acedido em: http://www.ek-


automation.com/products/automated-guided-vehicles/navigation.html

[9] Automatic Guided Vehicle Navigation. Acedido em: http://www.jbtc-


agv.com/Knowledge/Navigation.aspx.

[10] Guidance Options for Automatic Guided Vehicles. Acedido em:


http://www.jervisbwebb.com/Products/guidance_options.aspx?pid=308&qs=1_6_.

[11] Laser Navigation Controls. Acedido em:


http://www.fmcsgvs.com/content/products/nav.htm.

85
86 Referncias

[12] Beccari, G. (1997). Vision-based Line Tracking and Navigation in Structured


Environments. University of Parma (Italy).

[13] Leito, P., Gonalves, J. (2005). Notas de Apoio a Robtica Mvel da Disciplina
Automao e Robtica. Acedido em http://www.ipb.pt/~pleitao.

[14] AGVs Make The Workplace safer. Acedido em:


http://www.hksystems.com/agv/safety.cfm?m=2&s=5.

[15] Costa, A., Simo, P. (2006). Segurana em AGVs. Acedido em:


www.ieeta.pt/lse/str/str-0607/docs/agvs.ppt.

[16] Sobreira, H. (2009). Clever Robot. Tese de mestrado.

[17] Mercedes-Benz - Assistncia ao estacionamento. Acedido em: http://www.mercedes-


benz.pt/content/portugal/mpc/mpc_portugal_website/ptng/home_mpc/passengercars/home
/new_cars/models/b-class/b245/overview/comfort.0006.html

[18] Obstacles detection. Acedido em: http://www.kivasystems.com/

[19] Esteves, J. S. (2005). Metodologia de auto-localizao absoluta em ambientes quase-


estruturados. Tese de Doutoramento.

[20] Moreira, A. P. (2009). Sistemas Robticos Autnomos. 1 diaporama (107 diapositivos).


Acessvel na Faculdade de Engenharia da Universidade do Porto.

[21] Borenstein, J. (1996). Measurement and Correction of Systematic Odometry Errors in


Mobile Robots. IEEE Transactions on Robotics and Automation.

[22] Fonseca, J. F. (1999). Aplicao de tcnicas de fuso sensorial de dados no levantamento


do relevo de objectos. Tese de doutoramento.

[23] Mitchell, H. B. (2007). Multi-Sensor Data Fusion. Springer.

[24] Welch, G., Bishop, G. (2006). An introduction to the Kalman filter. Acedido em:
http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf.

[25] Scorba, M. (1997). Simultaneous Localisation and Map Building. Robotics Research Group
Department of Engineering Science University of Oxford. Tese de doutoramento.

[26] Muratore, J.. Illumination for Machine Vision. Dolan-Jenner Industries. Acedido em:
http://www.pinnaclevision.co.uk/illum02.htm.

[27] Maxon DC Motor. Acedido em: 05 de Janeiro de 2009, em:


http://www.maxonmotor.com/product_overview_details_maxon_dc_motor.html.
87

[28] Omron Componentes Electrnicos. Acedido em: http://omron.pt/.

[29] Maxon sensor. Acedido em: http://shop.maxonmotor.com/.

[30] Sistemas de Viso Artificial. Acedido em: http://www.infaimon.com/.

[31] Stalling, W. (1997). Data and computer communications. Prentice-Hall.

[32] User Datagram Protocol. Acedido em:


http://pt.wikipedia.org/wiki/User_Datagram_Protocol.

[33] Transmission Control Protocol. Acedido em 04 de Janeiro de 2010. URL:


http://pt.wikipedia.org/wiki/Transmission_Control_Protocol.

[34] Vaccaro, R. (1995) Digital Control: A state-space approach. Mcgraw-Hill College.

[35] Costa, P. (2010). Simtwo. Acedido em:


http://paginas.fe.up.pt/~paco/wiki/index.php?n=Main.SimTwo.

[36] Smith, R. (2009). Open dynamics engine. Acedido em: http://www.ode.org/.

[37] Kok, C. (2009). Pascal script. Acedido em: http://wiki.freepascal.org/Pascal_Script.

[38] W3C-WorldWideWeb Consortium (2009). Extensible markup language (xml). Acedido em:
http://www.w3.org/XML/.

[39] DALSA Corporation (2007). Sherlock Machine Vision Software Users Reference Manual.
Infaimon.
88 Referncias
Anexo A

Distncia de um ponto a uma recta

Ponto P3:

89
90 Distncia de um ponto a uma recta

Ponto P1:

Donde:
Anexo B

Mapa de marcadores

A configurao da distribuio de marcadores pelo ambiente para permitir a navegao e


localizao do rob est representada num mapa de marcadores. Este mapa de marcadores,
descrito num ficheiro XML, permitiu a sua utilizao tanto na simulao como na aplicao de
controlo e deciso do AGV.
Esta abordagem tambm teve em considerao a questo de flexibilidade do sistema.
Assim, a alterao da posio de marcadores poder ser realizada por um utilizador sem
recorrer alterao do cdigo fonte desenvolvido para o rob. A aplicao de controlo e
deciso, sempre que iniciada, processa o ficheiro, ficando assim com a base de dados dos
marcadores.
Segue-se a representao da estrutura do mapa de marcadores em XML:

<obstacles>

<cuboid title= '' >

<imovable>

<size x='' y='' z='' >

<pos x='' y='' z='' >

<rot_deg x='' y='' z='' >

<cuboid title= '' >

N marcadores

91

Vous aimerez peut-être aussi