Escolar Documentos
Profissional Documentos
Cultura Documentos
So Paulo
2012
So Paulo
2012
( ) aprovados
( ) reprovados
1) Examinador (a):
_______________________________
2) Examinador (a):
_______________________________
3) Presidente:
_______________________________
AGRADECIMENTOS
Antes de tudo, agradecemos a nossos pais, pelos ensinamentos sobre a
vida, e por todas as oportunidades oferecidas.
Agradecemos a nosso orientador Fbio Miranda, que nos ajudou neste
processo de desenvolvimento do projeto, e nos auxiliou com grande
profissionalismo.
Agradecemos a professora Joyce Bevilacqua, que nos ensinou muito
mais do que ementas acadmicas.
Agradecemos
Brbara
Giacchetto,
pela
ajuda
oferecida
na
prototipagem do rob.
Gostaramos tambm de agradecer a todos que de alguma forma
contriburam comeste projeto, e nos deram foras para terminar este trabalho.
Entre estas pessoas, um agradecimento especial para Evelyn Carlin e Munyra
Guarnieri, cujas palavras de apoio serviram como inspirao durante este
processo criativo.
RESUMO
Este trabalho tm como propsito o desenvolvimento de um rob semiautnomo do modelo LEGO NXT, que utiliza de um smartphone baseado no
sistema Android como o principal sensor ao meio externo, e principal fonte de
processamento. A cmera do smartphone utilizada como receptor de
imagens, e so aplicados mtodos de viso computacional para atribuir uma
autonomia ao rob.
ABSTRACT
This work has implications for the development of a semi-autonomous robot
LEGO NXT model, which uses a smartphone based on Android system as the
primary sensor to the external environment, and main source of processing.
The smartphone camera is used as the image receptor, and apply computer
vision methods to assign an autonomy to the robot.
SUMRIO
1. Introduo ................................................................................................ 12
1.1
Objetivos ............................................................................................. 15
1.2
Concepo .......................................................................................... 49
12
1. Introduo
A robtica promove diversos benefcios sociedade. Os robs podem,
normalmente, realizar trabalhos repetitivos e enfadonhos para um humano,
dificilmente cometendo erros. A nveis industriais, um rob um trabalhador
incansvel, usado em linhas de produo, reduzindo custos e aumentando a
produtividade do processo.
Segundo DA SILVA(2003) a robtica esta com desafios cada vez maiores.
No bastam apenas serem capazes de desviarem de obstculos e evitarem
colises. Os robs mveis de hoje devem ser dotados de alguma "inteligncia"
que lhes possibilite, por exemplo, reconhecer um dentre vrios objetos. (DA
SILVA, LUCIANO ROTTAVA. Anlise e programao de robs mveis
autnomos na plataforma Eyebot).
O ato de desenvolver um rob autnomo complexo em si, e requer o
envolvimento de muitas reas da computao, desde arquitetura de software
para a composio do controle lgico do rob, at Inteligncia Artificial, para a
composio de algoritmos para automao do mesmo. Alguns destes
processos requerem conhecimentos especficos sobre robtica, principalmente
para a arquitetura de prottipos robticos e o tratamento de linguagens de
baixo nvel. Trabalhar com projetos robticos proporciona o entendimento
destas demais reas.
A grande maioria dos robs que so autnomos (robs que no necessitam
da interveno humana para execuo de suas tarefas) necessita de sensores
para a deteco do ambiente a sua volta, executando aes baseando-se nos
resultados destes sensores.
O rob Baxter (2008, Rethink Robots), por exemplo, foi construdo para se
adaptar ao ambiente que foi designado, podendo efetuar uma srie de
habilidades, como empacotamento e desempacotamento, empilhamento ou
desempilhamento de itens em superfcies mveis ou fixas, operaes
maquinarias
muitas
outras
atividades.
13
Estes processos s podem ser desempenhados devido aos demais
sensores inclusos em Baxter, como um sistema de deteco de presena
humana atravs de um sonar, identificao de objetos por cmeras, sensor de
peso e fora nas juntas dos braos e outros sensores menores.
14
Como concorrente direto da Apple, em 2008, a Google lanou seu sistema
Android, para competir com o iOS (o sistema da Apple). Seu sistema baseado
na plataforma Linux deu mais liberdade a seus desenvolvedores, e permitiu ser
utilizado em diversos modelos de celulares.
A evoluo eminente dos smartphones garantiu que os aparelhos se
tornassem um dispositivo essencial para profissionais que necessitem de
informaes a fcil acesso, alm de recursos de processamento e outras
utilidades prticas. Hoje em dia, os smartphones possuem capacidades
comparveis a notebooks de fcil acesso. O Galaxy SIII, por exemplo, um
dos smartphones atuais mais avanados, quando comparado a suas
especificaes tcnicas. Quando comparado a primeira gerao do iPhone,
possvel ver a grande evoluo que os smartphones sofreram nos ltimos
anos.
iPhone (primeira
gerao)
SIII
fio
1800 / 1900)
1800 / 1900), 3G
(HSDPA 850, 900, 1900,
2100) e 4G (LTE)
Resoluo do display
Memria
pixels de densidade).
externa, e 4/8/16 GB de
memria interna.
16/32/65 GB de memria
interna, e 1GB de
memria RAM.
15
Cmera
2MP e resoluo de
1600x1200 pixels.
Vdeo
No grava.
Gravao de vdeos em
1080p, a 30 frames por
segundo.
CPU
GPU
PowerVR MBX
Mali-400MP
1.1 Objetivos
Este trabalho tem como propsito o desenvolvimento de um rob semiautnomo, que utilizar um smartphone como principal fonte de
processamento, alm de ser o principal sensor ao meio externo, utilizando sua
cmera como guia para se orientar por trilhas ou caminhos, a fim de se chegar
a um destino.
O rob utilizado neste trabalho do modelo LEGO NXT. Seu prottipo foi
arquitetado para que o rob conseguisse se locomover em pisos retos, sem
muitas variaes de terreno. O rob conectado via bluetooth a um
smartphone com o sistema Android embarcado. A utilizao de um celular com
Android se deu devido a facilidade com desenvolvimento para o mesmo, alm
do domnio sobre a linguagem Java.
16
Este tipo de projeto pode ser utilizado em diversos problemas da sociedade.
Entre eles, o auxlio a pessoas com deficincia visual para se locomoverem em
ambientes fechados, onde o rob pode ser capaz de guiar pessoas com
problemas de viso em ambientes fechados.
Para este problema de guia de pessoas com deficincia visual, a empresa
japonesa NSK desenvolveu em 2011 um rob capaz de guiar pessoas cegas
em ambientes pblicos. Este rob possui uma srie de cmeras interligadas, e
o aparelho Kinect (o sensor de movimentos da Microsoft, usado para jogos)
como seu principal sensor.
Figura 2 - O rob da empresa NSK, capaz de identificar escadas e guiar pessoas com deficincia
visual (www.nsk.com).
17
robs com sensores mais complexos, baseados nos recursos integrados a
smartphones atuais.
18
2. Fundamentos Conceituais
Neste trabalho, que trata da construo de um rob semi-autnomo capaz
de se locomover em ambientes fechados atravs de tcnicas de viso
computacional, so empregados conceitos bsicos sobre robtica, utilizados
para a construo de um rob do tipo land rover um rob capaz de se
locomover em terrenos planos, com pouca variao.
Tambm so empregadas tcnicas de automao robtica, para permitir
que o rob tome decises a partir da resposta de seus sensores. Alm disto,
tambm so utilizadas tcnicas de viso computacional sobre o
desenvolvimento para sistemas Android, permitindo o rob de se orientar
atravs da cmera do celular.
A seguir, sero expostos conceitos relevantes de cada um destes
assuntos, de maneira a permitir contextualizar melhor o trabalho.
19
Figura 4 - Televox, o rob desenvolvido por Wenlex, capaz de executar funes bsicas, de acordo
com seu operador. (http://cyberneticzoo.com/wp-content/uploads/Televox-Wendling1930(1).jpg)
20
Em 1940 e 1983, o escritor Isaac Asimov publicou os livros I, Robot e
Machines That Think onde descreveu as leis da robtica como parte de um
universo futurista. O objetivo destas leis seriam proteger os seres humanos de
qualquer dano que possa ser causado pelas maquinas inteligentes, e
acabaram servindo como os primeiros resqucios da inteligncia artificial de um
rob. So elas:
1. Lei Zero: Um rob no pode fazer mal humanidade e nem, por inao,
permitir que ela sofra algum mal.
2. Primeira Lei: Um rob no pode fazer mal a um ser humano nem, por
inao, permitir que algum mal lhe acontea.
3. Segunda Lei: Um rob deve obedecer s ordens dos seres humanos,
exceto quando estas contrariem a primeira lei.
4. Terceira Lei: Um rob deve proteger sua integridade fsica, exceto
quando isto contrariar a primeira ou a segunda lei.
Os robs tele operados continuaram a serem desenvolvidos at 1954, onde
George Devol projetou o primeiro rob automtico, um brao mecnico, capaz
de ser programado para repetir tarefas como agarrar ou levantar peso. A partir
deste brao mecnico, foi desenvolvido o Unimate, o primeiro rob comercial
de uso industrial. Este rob comeou a funcionar na linha de produo da
General Motors, em 1961, e trabalhava pegando pedaos quentes de metal e
colando as peas nos chassis dos carros.
21
22
Ronald Arkin desenvolveu a arquitetura hibrida AuRA (Autonomous Robot
Architecture), para navegao robtica, baseado em tcnicas tradicionais de
inteligncia artificial.
A NASA passou a pesquisar robs para auxlio em misses espaciais.
Grande parte destes robs se baseiam em braos robticos, para coleta de
materiais espaciais, ou land rovers, capazes de se locomover por terrenos
diferenciados, coletando o mximo de informao.
Em 1997, a NASA enviou o rob Sojourner para Marte, com a misso de
explorao dos terrenos do planeta, medindo as propriedades do solo e realizar
analises qumicas de suas rochas. O veculo possui 6 rodas para locomoo,
com uma cmera frontal para captao de imagens, e uma placa solar para
armazenamento de energia.
Em 2012, a NASA enviou o rob Curiosity, tambm a Marte, com o
objetivo principal de determinar se Marte, em algum momento, j suportou vida
em seu terreno, alm de determinar a existncia de gua, e estudar o clima e a
geologia do planeta, ajudando a preparar futuras exploraes humanas no
local.
23
24
anlise do ambiente de Marte, tais como a umidade, presso,
temperatura, velocidade do vento e radiao ultravioleta;
25
26
Figura 9 - O Axel Rover, desenvolvido pela NASA para maior versatilidade na locomoo dos
terrenos de Marte.
No caso de robs com trs rodas, podem existir diferentes formas para o
controle de direo. A forma mais comum se baseia na utilizao de apenas 1
roda para o controle de direo, enquanto outras duas movimentam o rob
para frente ou para trs.
Com quatro rodas, o mais comum haverem duas rodas frontais para o
controle de direo (ambas se movendo para a mesma direo), enquanto as
rodas traseiras so usadas para mover o rob para frente ou para trs.
27
Figura 10 - O EOD-Robot um exemplo de rob com esteira, construdo para poupar vida de
soldados em batalha.
28
Figura 11 - O Asimo um exemplo de rob com duas pernas, projetado para possuir uma
aparncia prxima da humana.
29
30
Figura 14 - Exemplo de rob AGV, que utiliza referncia ptica para locomoo
(http://www.koroberi.com/images/rmt/ADAM_From_RMT_Robotics.jpg).
31
CALADO, S, Automatic Guided Vehicle), estes sistemas podem ser
classificados da seguinte forma:
saber a
na
inspeo
de
tubulaes,
cirurgias
delicadas,
vigilncia
32
sensores, e manterem sua arquitetura fechada, no permitindo sua modificao
para trabalhos que no estejam previamente programados.
O rob Baxter, da empresa Rethink Robotics, se encaixa neste modelo.
O rob capaz de executar diversas tarefas humanas que exigem repetio.
Para sua automoo, so inclusos diversos tipos de sensores, como detectores
de peso e sensores de proximidade humana. Este rob pode ser usado em
trabalhos como empilhamento e desempilhamento, operao maquinaria,
empacotamento e outras atividades que exijam repetio de esforo.
Outro exemplo de rob de servio o chamado Da Vinci. Desenvolvido
pela empresa americana Intuitive Surgical, o rob capaz de realizar cirurgias
com mais de um instrumento, com incises de poucos milmetros. Este rob
no autnomo, e necessita da operao de um cirurgio, que visualiza em
seu display os locais onde as incises so realizadas.
33
experimentais como um
pequeno
prottipo,
ou
usados em
projetos
acadmicos.
Entre estes robs, esta o ASURO, desenvolvido para propsitos
educacionais pelo Instituto de Robtica e Mecatrnica do Centro Aeroespacial
alemo. Trata-se de um rob simples de baixo custo, muito flexvel, com
estrutura fsica aberta, utilizando a linguagem C como linguagem de
programao.
34
(MIT) e o LEGO Group. Em 2009, foi lanada a verso 2.0, com diversos novos
recursos, e uma nova variedade de peas.
O LEGO NXT permite que usurios que no tenham familiaridade com a
rea da robtica possam criar prottipos com maior facilidade. Suas peas
possuem encaixes prprios, e seus kits possuem manuais de iniciantes, com
exemplos de modelos a serem construdos.
Figura 17 - O modelo LEGO NXT muito utilizado por usurios que no tenham conhecimento
tcnico na rea da robtica (http://www.tuvie.com/wp-content/uploads/lego-mindstorms-nxt-2.0robots4.jpg).
35
O NXT acompanha um software bsico de desenvolvimento, chamado NXTG. Este software promove a criao de rotinas robticas, atravs do uso de
uma linguagem grfica, onde o usurio pode arrastar blocos de cdigo prontos,
criando uma lgica simples para o rob.
Porm, o NXT-G limitado para qualquer tipo de lgica que no esteja
previamente programada. Devido a isto, existem firmwares criados para
utilizao de outras linguagens para desenvolvimento de aplicaes de controle
do NXT. Entre estas firmwares, esta a leJOS, que permite o uso da linguagem
36
Java para desenvolvimento da lgica do rob. A leJOS ainda inclui uma
biblioteca previamente programada em Java, que auxilia no desenvolvimento
de funes bsicas do rob, como navegao, mapeamento ou locomoo.
37
necessidade de interveno humana. (DE SOUZA, FELIPPE, Automoo
Industrial e Robtica).
Robs autnomos podem tomar decises e realizar tarefas especificas em
ambientes desestruturados sem a interveno humana. Diferentes tipos de
robs podem ser autnomos em diferentes formas e nveis. Alguns robs em
utilizados em indstrias como da categoria AGV (Automated Guided Vehicle)
possu certa autonomia em ambientes fechados e controlados por marcaes
que transmitem ao rob informaes relevantes para que possa determinar
suas aes.
Existem diferentes tipos de automao, que introduzem tcnicas diferentes
para a realizao de determinada tarefa:
2.4.1 Sensores
Os sensores so essenciais em robs autnomos. Eles permitem que
um dispositivo robtico mvel perceba e interaja com o ambiente em que se
encontra.
38
Na maioria das vezes, os sensores so utilizados para aes como
deteco de coliso, distncia e desvio de obstculos. Neste projeto, os
sensores utilizados permitiram que o rob pudesse se locomover, identificando
obstculos a sua frente. Alguns destes sensores so detalhados a seguir.
39
Este sensor utilizado neste projeto para deteco de obstculos a sua
frente. O sensor ultrassnico vivel para diversos tipos de aplicaes
robticas que necessitem de automoo.
2.4.1.2 Laser
Este sensor utilizado para medir a distncia e opera de maneira
parecida com o sensor ultrasnico. A partir da emisso de um feixe de luz
determina a distncia de um objeto a partir da medio do tempo de reflexo
desta luz pelo objeto. Tambm pode ser utilizado junto com espelhos, onde
controla-se o ngulo do espelho at que o feixe atinja o sensor, podendo ento
ser calculada a distncia por triangulao.
Este sensor detecta uma distncia maior e mais preciso que o sensor
ultrasnico, pois possu menor disperso no sinal emitido. Contudo a
velocidade da luz mais rpida que a do som, exigindo um processamento
mas rpido o que torna este sistema mais caro.
Este sensor no utilizado neste projeto, uma vez que o sensor
ultrassnico ja utilizado para detectar obstculos. Uma possvel aplicao do
sensor de Laser seria a verificao de que o rob no corra o risco de cair de
40
ambientes mais altos (como degrais, por exemplo). Porm, neste projeto, o
rob dever estar sempre se guiando por trilhas e caminhos seguros,
descartando o uso deste sensor.
41
de vdeo ao j complexo hardware traz complicadores, por exemplo, o
tratamento e processamento destas imagens capturadas vo requerer rotinas
elaboradas para a extrao de informaes teis (Orth, 2001).
Viso computacional, nada mais do que um conjunto de tcnicas e
mtodos que permitem que um sistema consiga interpretar imagens. A
interpretao de uma imagem pode ser representada computacionalmente pela
transformao de um conjunto de dados digitais representando uma imagem
em um conjunto de dados.
O sistema de viso computacional, segundo TRINDADE (Tcnicas de
Viso Computacional para Rastreamento de Olhar em Vdeos, 2009), pode ser
dividido em etapas, classificadas da seguinte forma:
de
uma
imagem
transforma-las
em
modelos
42
um caminho ou trajeto para ser seguido pelo rob. O que se segue so
detalhes das tcnicas de viso computacional utilizadas.
43
Figura 22 - O uso do padro HSV permite dividir melhor as cores em uma imagem
(http://www.shervinemami.info/blobsSkinDetector.jpg).
44
O Lane Detection permite destacar visualmente a pista ao qual o rob deve
seguir. Este mesmo processo utilizado para o desenvolvimento de mtodos
de segurana em pistas, alm da reduo do tempo de transporte. Existem
exemplos de implementao do algoritmo de Lane Detection em dispositivos
mveis para um processo automotivo, como o uso de um iPhone para deteco
de pistas (REN, F. HUANG, J. TERAUCHI, M. JIANG, R. KETTLE, R. Lane
Detection on the iPhone), capaz de reconhecer rotas em auto estradas.
nveis.
Uma vez que a funo esteja atribuda, calculado a derivada da funo
45
deste sinal, utilizando a funo Gaussiana, para aproximar o operador que
otimiza o produto do raio do sinal e localizao.
46
Com o Vanish Point estabelecido, basta destacar as retas que esto
paralelas e cruzam neste ponto, a fim de estabelecer uma rota para o rob.
O mtodo de Lane Detection utilizado neste projeto a fim de permitir que o
rob
serem
seguidas, melhorando
seu
2.6 Smartphone
Um smartphone nada mais do que um celular com capacidades de
processamento superiores, permitindo a execuo de aplicativos e programas
por intermeio de um sistema operacional.
Os smartphones de hoje em dia possuem caractersticas comparveis a
de um notebook, com processadores capazes de executar mltiplas tarefas. O
Samsung Galaxy SIII, por exemplo, o smartphone atual mais poderoso do
mercado, possuindo um processador quad-core de 1.4 Ghz, e at 1Gb de
memria RAM.
47
plataformas vigentes de cada sistema operacional. Para isto, cada sistema
possui seu prprio kit de desenvolvimento (SDK), permitindo que haja o
desenvolvimento de aplicaes para aquela plataforma.
2.6.1 Android
O Android o sistema operacional da Google, feito para smartphones. Sua
principal caracterstica esta no fato de ser um software livre para uso,
permitindo que diferentes tipos de smartphones a integrem. Por possuir um
kernel baseado no sistema Linux, o Android se tornou um dos sistemas
favoritos entre os desenvolvedores, que passaram no s a se forcar no
desenvolvimento de aplicaes, mas tambm no desenvolvimento de novos
recursos para o sistema.
Desde sua primeira verso, lanada em 2008, o Android se tornou o
principal concorrente do iOS, o sistema operacional mobile da Apple. Devido a
esta concorrncia, o sistema vm recebido diversas atualizaes, trazendo
novos recursos, alm de melhorias em seu sistema. Sua atual verso, a 4.2
(chamada de Jelly Bean), traz melhorias na performance da CPU, alm de
reduo na latncia do toque e a possibilidade de um buffering triplo.
O desenvolvimento de aplicaes para o Android feitas a partir da
linguagem Java, utilizando o kit de desenvolvimento para o sistema, integrado
com uma IDE de desenvolvimento Java, como o Eclipse. Os desenvolvedores
possuem liberdade para testarem seus aplicativos em seus prprios
dispositivos, desde que os mesmos utilizem o Android como sistema
operacional. Para distribuio, o Android disponibiliza sua loja virtual, chamada
de Google Play, onde os desenvolvedores podem distribuir seus aplicativos
livremente, podendo ou no atribuir preos de compra para os mesmos (caso
isto seja feito, o Google recebe uma porcentagem para cada venda do
aplicativo).
O desenvolvimento interno utilizando o SDK para Android utiliza um
conceito chamado MVC (model view controller), permitindo dividir a
codificao em camadas distintas.
48
49
3. Sobre o Projeto
Este captulo aborda questes sobre o desenvolvimento do projeto, sua
concepo, arquitetura, dificuldades e solues encontradas.
3.1
Concepo
O projeto deu incio com a ideia do desenvolvimento de um rob capaz
Figura 26 - O projeto pode ser utilizado para orientao de pessoas com deficincia visual a se
locomoverem em ambientes fechados, como universades e outros espaos.
50
Figura 27 - O celular ficar a frente do rob, captando suas imagens e as processando para
determinar suas aes.
desenvolvimento
do
projeto
foi
dividido
em
trs
partes:
51
velocidade, enquanto possvel faze-lo girar em seu prprio eixo, acionando os
motores em direes diferentes.
Alguns eixos foram adicionados para suporte da pea, alm de uma roda
traseira, conectada apenas por uma aste, que fica solta para garantir o suporte
do rob.
A frente do prottipo, foi construdo um suporte para encaixe do
smartphone, de forma que a cmera do disposto fique sempre voltada a sua
frente.
52
Figura 29 - O rob suportado por uma aste traseira, e possui um suporte a sua frente, a fim de
segurar o smartphone.
53
2. Um endereo interno para leitura ou escrita.
A documentao "Appendix 7-LEGO MINDSTORMS NXT Ultrasonic
Sensor I2C communication protocol" do sensor ultrassnico IC protocolo de
comunicao, diz que seu endereo IC definido como padro 0x02 e o
pacote deste protocolo composto por 3 bytes sendo:
54
Com o protocolo de comunicao especificado, foi possvel enviar
instrues para locomoo do rob atravs do celular. Com esta base, foi
possvel desenvolver os prximos mdulos de controle do rob.
A aplicao de controle possui uma interface simples, e necessita da
interao inicial do usurio para conexo com o rob. Para tal, ao abrir o
aplicativo, o usurio tem a opo de pressionar o boto Conectar, acionando
o dispositivo bluetooth do celular e pesquisando pelos demais dispositivos
bluetooth prximos.
55
56
57
Figura 215 - Atravs do controle manual, o usurio tem a opo de controlar o rob atravs da
interao com os botes do aplicativo.
Para cada boto pressionado, uma instruo enviada para o rob via o
canal Bluetooth, indicando a ao desejada. Este processo permitiu o
mapeamento das instrues a serem passadas para o rob, alm de permitir
testar suas funes bsicas de locomoo, arquitetando mtodos padres para
estas aes.
de tcnicas de viso
58
A proposta deste projeto considerou o desenvolvimento da autonomia do
rob de uma forma que o ambiente em que ele atuasse no sofresse muitas
adaptaes para seu funcionamento. Devido a isto, o uso de tcnicas de viso
computacional foram de extrema necessidade, fazendo com que o rob
consiga detectar seu caminho sem muita dificuldade. Com os 3 sub-mdulos
atuando juntos, a aplicao de controle capaz de identificar rotas e caminhos
a serem seguidos pelo rob.
O desenvolvimento destes mdulos utilizam de recursos da biblioteca
OpenCV. Ela permite realizar tratamentos especficos em imagens, variando
entre filtros, calibrao de cmera, reconhecimento de objetos e outros
recursos.
Ao selecionar a opo de controle autnomo a partir da aplicao de
controle, a mesma passa a exibir uma nova tela com as imagens capturadas
diretamente da cmera do smartphone.
Figura 36 - Aps selecionar o uso do mdulo de controle autnomo, o aplicativo passa a exibir as
imagens captadas pela cmera do smartphone.
59
mtodos do OpenCV permitiram processar a imagem de cada quadro
capturado, aplicando filtros ou detectando padres.
A atuao de cada mdulo detalhada melhor na imagem abaixo.
60
Este mdulo de deteco de linhas por cores utiliza mtodos de Color
Blob Detection. Utilizando a interao do smartphone, o usurio pode
selecionar um ponto especfico da tela. Ao fazer isto, utilizamos o mtodo
inRange do OpenCV para detectar uma cor especfica, escolhida pelo usurio,
passando uma imagem nos padres HSV para o mtodo. Este mtodo retorna
uma imagem binarizada, onde os pontos que contm a cor esto na faixa de
cores HSV.
Figura 38 - O retorno do mtodo inRange uma imagem binarizada, com as cores no padro HSV.
61
Este mdulo permite que a cmera do celular detecte uma linha no cho,
ou em especfico, um trajeto a ser seguido. Para tal, desenhamos um trajeto
em uma cor visvel para a cmera do celular, possibilitando a deteco do
contorno. Sendo assim, a partir do momento em que o usurio pressiona o
dedo em cima da linha na tela do celular, o algoritmo passa a exibir os
contornos ao redor do caminho desenhado.
Figura 39 - Com o uso do mtodo findCountours permite encontrar os contornos ao redor das
reas da cor escolhida.
62
63
Em seguida, utilizado o filtro de Canny, a fim de detectar as bordas da
imagem. Utilizando o mtodo Canny da biblioteca OpenCV, possvel obter o
retorno da imagem com suas bordas destacadas.
64
Com o retorno do mtodo HoughLines, so obtidos os pontos que foram as
retas, a fim de desenha-las na tela, para identificao das rotas.
Figura 42 O retorno do mtodo HoughLines permite exibir as linhas das possveis rotas.
65
Figura 43 Deteco de uma possvel rota.
Quando pelo menos uma das retas que formam a pista encontrada,
calculado a velocidade de cada motor do rob, possibilitando sua locomoo.
Esta velocidade dada pela seguinte frmula:
(
(
)
)
(
(
)
)
66
67
4. Resultados
Neste projeto, foram construdos diversos tipos de prottipos para a
validao da tecnologia implementada. O prottipo inicial se baseou na
utilizao do mdulo de controle manual, onde a partir da interao do
smartphone, pudemos controlar o rob na direo desejada. Um dos
problemas encontrados neste mdulo foi o tratamento da conexo bluetooth.
Caso a mesma no fosse fechada corretamente aps seu uso, a aplicao
passava a exibir mensagens de erro, impossibilitando seu uso em diante.
Com o prottipo inicial fechado, foi possvel trabalhar no desenvolvimento
da autonomia do rob. O mdulo de deteco de linhas por cores foi
desenvolvido com o propsito da deteco de trajetos e rotas baseado em
cores especficas. Na primeira verso deste mdulo, o aplicativo acionava
ambos os motores em uma velocidade constante sobre a linha, girando sobre o
prprio eixo quando a necessidade de realizar curvas.
Para fins de testes, foram impressos trajetos de linhas pretas, para que o
rob conseguisse se locomover. O rob conseguiu se locomover em linha reta
como esperado quando identificado a rota, porm, teve problemas quando o
trajeto possua curvas, ou o rob sasse de uma trajetria linear. Desta forma,
foi identificado a necessidade de regular a velocidade dos motores baseado no
nmero de pontos encontrados no trajeto, garantindo uma melhor locomoo
do rob.
Com o desenvolvimento do mdulo de deteco de pistas, a movimentao
do rob passou a garantir melhores resultados, se locomovendo com uma
maior preciso, especialmente nas curvas. Quando ambos os mdulos atuam
juntos, o rob atingiu maiores velocidades, sem perder sua rota no trajeto.
O desempenho da locomoo do rob tambm influenciado pela luz
ambiente. Em alguns testes, houveram objetos de cores similares ou iguais a
cor da rota utilizada, onde o rob identificou alguns pontos de semelhana, e
perdendo seu trajeto. Isto se tornou comum quando a rota utilizou de cores
escuras, prximas da cor preta, e com um ambiente com uma grande
68
concentrao de sombras. Para tal, foram utilizadas cores claras para a
confeco de um trajeto para testes.
O mdulo de deteco de smbolos permite que o rob consiga identificar
quando chegar a seu caminho. A princpio, este processo seria realizado via o
reconhecimento de QR Code, porm, foi identificado uma maior complexidade
neste processo, e comparado ao tempo final de entrega do projeto, a
identificao de smbolos utilizando a biblioteca OpenCV se tornou uma sada
vivel. Desta maneira, o rob pra ao identificar um nmero de crculos prdeterminados.
69
5. Concluso
O objetivo do projeto foi alcanado com xito. Este consistia no
desenvolvimento da autonomia robtica baseando-se na integrao de um
smartphone com sistema Android, utilizando sua cmera como o principal
sensor externo.
As demais etapas do desenvolvimento foram concludas completamente. A
primeira etapa consistia no desenvolvimento de uma aplicao para o sistema
Android capaz de mandar instrues para locomoo do rob. Nesta etapa, foi
identificado a necessidade da construo de um protocolo de comunicao
com o rob, a fim de que as instrues enviadas via o canal Bluetooth
possibilitasse acionar os motores do rob.
A segunda etapa consistiu no desenvolvimento da locomoo autnoma do
rob. Para tal, foram pesquisados mtodos para seguimento autnomo, e
identificado a necessidade da identificao de uma trajetria. Desta forma,
foram aplicadas tcnicas de viso computacional, utilizando a biblioteca
OpenCV, a fim de construir os mdulos de deteco de cores (para trajetrias
previamente marcadas) e identificao de pistas (para localizao de
ambientes de locomoo, como corredores). Estes mdulos demandaram um
maior tempo de desenvolvimento, devido suas complexidades e ajustes para
adaptao dos mtodos ao projeto.
A ltima etapa consistiu no desenvolvimento de um sistema de
reconhecimento de smbolos, necessrio para indicar aplicao de controle a
chegada do rob a seu destino. De incio, foi proposta a idia de
desenvolvimento de um sistema reconhecedor de QR Codes, porm, devido a
complexidade e tempo escasso para desenvolvimento deste mdulo, foi
desenvolvido um sub-mdulo capaz de reconhecer crculos, identificando sua
chegada com um nmero pr-determinado destes smbolos.
Este projeto abre novas possibilidades para caminhos da robtica,
integrando o celular Android como uma fonte principal de processamento,
possibilitando utilizar seus recursos para abrir novas possibilidades a robs.
70
Alm disto, tambm impe uma soluo de baixo custo para sistemas de
automao robtica, permitindo o uso de linguagens de baixo nvel para seu
desenvolvimento, como a linguagem Java.
71
6. Bibliografia
DA SILVA, LUCIANO ROTTAVA. Anlise e programao de robs mveis
autnomos na plataforma Eyebot. Disponvel em:
<http://www.das.ufsc.br/~rottava/download/dissertacao.pdf>.
DE SOUZA, FELIPPE. Automao Industrial e Robtica. Disponvel em:
<http://webx.ubi.pt/~felippe/texts3/autom_ind_cap1.pdf>.
BROOKS, R. A., Achieving Artificial Intelligence Through Building Robots, MIT
AI Lab Memo No. 899, May 1986. Disponvel em:
<http://people.csail.mit.edu/brooks/papers/aim-899.pdf>
http://www.newtoncbraga.com.br/index.php/robotica/4018-rp0001.html
http://asimo.honda.com/
RAMOS, B. RAMOS, R. CALADO, S, Automatic Guided Vehicle. Disponvel
em: < http://users.isr.ist.utl.pt/~pjcro/cadeiras/api0405/pdf_files/G03_SEM.pdf>
http://thenxtstep.blogspot.com.br/
http://mindstorms.lego.com
SHIH, Bih-Yaw. CHEN, Chen-Yuan. CHOU Wei-Chung. Obstacle avoidance
using a path correction method for autonomous control of a biped intelligent
robot. 2010.
CUBEK, RICHARD. A Color Blob Based Robot Vision, 2010. Disponvel em:
<http://amser.hsweingarten.de/cms/administrator/components/com_intranet/uploads/paper/70/p
a_cubek.pdf>.
[2] MELO, Leonimer Flvio de. Proposta de Simulador Virtual para Sistemas
de Navegao de Robs Mveis Utilizando Conceitos de Prototipagem Rpida,
2007. 293p. Tese (Doutorado) Faculdade de Engenharia Mecnica,
Universidade Estadual de Campinas, Campinas.
72
Orth, A. Desenvolvimento de um sistema de viso para medir o desgaste de
anco de ferramentas de corte. Dissertao de Mestrado, Universidade Federal
de Santa Catarina, 2001.
REN, F. HUANG, J. TERAUCHI, M. JIANG, R. KETTLE, R. Lane Detection on
the iPhone
Suzuki, S. and Abe, K., Topological Structural Analysis of Digitized Binary
Images by Border Following. CVGIP 30 1, pp 32-46 (1985)