Académique Documents
Professionnel Documents
Culture Documents
Maro de 2010
ii
Resumo
Abstract
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.
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.
ndice
Captulo 1 .......................................................................................... 1
Introduo .......................................................................................... 1
1.1 Enquadramento Geral ............................................................................... 1
1.2 Objectivos............................................................................................. 3
1.3 Organizao do documento ........................................................................ 3
Captulo 2 .......................................................................................... 5
Captulo 3 .........................................................................................13
Captulo 4 ......................................................................................... 23
Captulo 5 ......................................................................................... 45
Captulo 6 .........................................................................................57
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
Referncias ....................................................................................... 85
Anexo A ............................................................................................ 89
Anexo B ............................................................................................ 91
Lista de figuras
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.12 Deteco de obstculos em AGVs atravs de sensores de ultra-sons [18] ....... 12
Figura 4.2 Sistema de traco diferencial com duas rodas livres .............................. 24
Figura 4.5 Esquema de motor, caixa redutora e encoder utilizado para a locomoo ....... 27
Figura 4.18 Esquema sequencial das aces a tomar no ciclo de controlo ..................... 36
Figura 4.24 Folha de clculo para construo grfica da evoluo temporal das
velocidades em ambos os motores ................................................................. 40
Figura 4.30 Resposta ao degrau da velocidade aplicado s duas rodas motrizes do rob .... 44
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 6.3 Movimento circular para determinar a distncia entre rodas ........................ 60
Figura 6.5 Imagem original capturada pela cmara instalada no rob .......................... 63
Figura 6.15 Imagem representativa dos percursos e sentidos a realizar pelo rob ao
longo da trajectria em H ........................................................................ 70
Figura 7.2 Trajectria baseada em odometria com rudo aplicado aos encoders.............. 79
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.2 Resumo dos campos que constituem a trama do protocolo Daisy Bin .............. 34
Tabela 5.1 Classes abrangidas pela estrutura hierarquia mais elevada do SimTwo ........... 49
Tabela 5.4 Propriedades dos objectos mais complexos abrangidos pelo SimTwo.............. 50
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
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.
1
2 Introduo
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.
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.
1
Pode-se caracterizar por um ambiente interno fechado com caractersticas previamente
conhecidas, indoor, ou num ambiente externo no necessariamente conhecido, outdoor.
Objectivos 3
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.
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
Estado da Arte
5
6 Estado da Arte
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
Figura 2.3 Sistema de localizao por laser Figura 2.4 AGV com tecnologia laser [11]
[8]
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
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.
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]
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.
Enquadramento Terico
13
14 Enquadramento Terico
3.1.1.1 Odometria
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].
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.
Sistema
Dados dos Interferncia
sensores de Fuso
Mecanismo de
controlo
(3.1)
(3.2)
(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
(3.5)
(3.6)
(3.7)
(3.8)
(3.9)
Mtodos Estocsticos para fuso sensorial 19
. (3.10)
. (3.11)
Inicializao Equaes do
de estado processo de estimao
Equaes do
processo de actualizao
(3.12)
(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 .
(3.15)
. (3.16)
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.
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.
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.
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.
(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)
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
V1
V2
Rodas livres
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.
4.2.2 Encoders
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.
Figura 4.5 Esquema de motor, caixa redutora e encoder utilizado para a locomoo
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.
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
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:
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.
Master
Rx GND Tx
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
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
Tabela 4.4 Definio de IPs e Mscara de sub-rede para a comunicao baseada no protocolo TCP
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].
Navegao
A B C D
Localizao
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
Evento externo
Descodificao mensagem
Recepo de dados
recebida
Descodificao mensagem
Recepo de dados
recebida
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.
Velocidade
de referncia Erro PWM Velocidade actual
Controlador Rob
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
-200
-300
Tempo (s)
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.
(4.1)
(4.2)
Assim, o sistema modelado e apresentado na figura 4.24 pode ser representado por
(4.3)
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
Ganho DC 4,17
Constante de tempo (s) 0,39
300
Velocidade em impulsos por 10ms
200
100
0
0 1 2 3 4 5 6 7 8
-100
-200
-300
Tempo (s)
Feed-Forward
+
Erro PWM V(s)
Vref(s) + +
Filtro de Controlador Rob
referncia
(4.4)
Kf
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
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
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, 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.
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
a) b) c)
Figura 5.2 Janela de configurao do SimTwo
48 Plataforma de Simulao
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'/>
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
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
Figura 5.7 Estrutura final do rob com visualizao da distribuio de massa pelo corpo do rob
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
<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'/>
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.
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.
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
# CR Vel_Motor_0 CR Vel_Motor_1 CR *
12
CR ou carriage return
56 Plataforma de Simulao
Captulo 6
Localizao e Navegao
57
58 Localizao e Navegao
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
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)
(6.4)
com,
(6.5)
(6.6)
com,
(6.7)
(6.8)
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.
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
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
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.
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
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
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.
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.
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
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
(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.
POINTING
GOING
. (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.
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
. (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.
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.
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
Transio Condio
T1
T2
T3
T4
T5
T6
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.
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.
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
(6.12)
em que 2LS a distncia entre os dois sensores ou entre os dois pontos das extremidades do
marcador.
(6.13)
ANALYSE
T3
T1
T4
IDENTIFY
T2
CORRECT
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.
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)
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.
Resultados
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.
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
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
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
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
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
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
8.1 Concluses
83
84 Concluses e Trabalhos Futuros
[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.
[6] Borenstein, J., Everett, H. R., Feng, L. (1996). Where am I? Sensors and Methods for
Mobile Robot Positioning. University of Michigan.
85
86 Referncias
[13] Leito, P., Gonalves, J. (2005). Notas de Apoio a Robtica Mvel da Disciplina
Automao e Robtica. Acedido em http://www.ipb.pt/~pleitao.
[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.
[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
Ponto P3:
89
90 Distncia de um ponto a uma recta
Ponto P1:
Donde:
Anexo B
Mapa de marcadores
<obstacles>
<imovable>
N marcadores
91