You are on page 1of 20

UNIVERSIDADE FEDERAL DE SERGIPE PR-REITORIA DE PS-GRADUAO E PESQUISA COORDENAO DE PESQUISA

Programa Especial de Incluso em Iniciao Cientfica PIIC POSGRAP/PROEST/UFS

GERAO DE MAPAS POR MEIO DE FUSO DE SENSORES COM APLICAO EM NAVEGAO DE ROBS MVEIS

rea de Concentrao: Robtica

Bolsista: Jos Bonifcio da Silva Jnior N Matrcula: 09110635

Orientador(a): Marco Tlio Chella Departamento de Computao

Relatrio Final Perodo 2011-2012

RESUMO Este o relatrio semestral do projeto de pesquisa intitulado Gerao de mapas por meio de fuso de sensores com aplicao em navegao de robs mveis, financiado pelo COPES, iniciado em 06/09/2011. Neste documento so apresentados os resultados do projeto, bem como as etapas para o seu desenvolvimento. Inicialmente, so apresentados os passos necessrios para calibrar o sensor ultrassnico. Em seguida, mostrada a implementao de um programa, em linguagem Python, que gera um mapa do ambiente a partir dos dados do sensor e salva esses dados em um arquivo para futuras anlises nos algoritmos de fuso de sensor. PALAVRAS CHAVES: Gerao de mapas, fuso de sensores, navegao de robs mveis, Python.

SUMRIO

1. INTRODUO......................................................................... 2. REVISO DA LITERATURA............................................... 3. METODOLOGIA.................................................................... 4. RESULTADOS E DISCUSSO............................................. 5. CONCLUSES........................................................................ 6. REFERNCIAS BIBLIOGRFICAS.................................. 7. ANEXOS..................................................................................

Relatrio Final PIIC 2011/2012

1 INTRODUO
Nas ltimas dcadas tem se assistido a uma constante busca dos seres humanos por meios que facilitem a realizao de certas tarefas. Os robs so exemplos ou frutos dessa constante busca. Concebido, inicialmente, para substituir o homem em tarefas repetitivas, com certo grau de periculosidade e/ou preciso, os robs passaram a ser amplamente difundidos, principalmente nas linhas de montagem da indstria automobilstica (Siegwart & Nourbakhsh, 2004). Nos tempos atuais, eles tambm esto sendo usados para realizar tarefas que exigem certa autonomia, como, entregar comida e remdios em hospitais, interagir com seres humanos, entre outras tarefas. Para se alcanar um bom nvel de autonomia, importante que o rob mvel seja capaz de se locomover de forma inteligente dentro do seu ambiente, essa tarefa chamada navegao (ABNER, 2008). Para o rob navegar dentro de algum ambiente, necessrio que ele tenha a capacidade de obter informaes sobre onde ele est situado e o que existe ao seu redor. Essas informaes podem ser obtidas atravs de sensores como ultrasom, infravermelho, lasers, imagens (com duas cmeras), entre outros. Infelizmente, essas fontes de informaes geralmente fornecem dados incompletos, inconsistentes ou imprecisos, tornando a navegao do rob vulnervel a erros. Alm disso, existe a limitao de que um sensor com boa preciso e confiabilidade tem custo e complexidade muito altos. Uma alternativa que vem se mostrando vivel e promissora a tcnica de fuso de sensores. Essa tcnica envolve a combinao de informaes provenientes de diferentes sensores para captar dados do ambiente cuja obteno est alm da capacidade isolada de cada um dos sensores envolvidos, principalmente quando so considerados confiabilidade e preciso. Alm disso, a fuso de sensores tanto torna o sistema (a navegao) mais tolerante a falhas, como tambm pode fornecer informaes novas, que nenhum dos sensores isoladamente consegue obter (FACELI, 2001). Nesse contexto, este relatrio apresenta os passos iniciais necessrios para a gerao de mapas por meio da fuso de sensores, desde a fundamentao terica, baseada em estudos sobre sensores ultrasnicos, infravermelhos e fuso de sensores, at a implementao de softwares que geram mapas a partir de um sensor de ultrasom, necessrio para a anlise das imprecises do sensor. As informaes do ambiente obtidas pelo sensor tambm so salvas em um arquivo para no decorrer do projeto serem aplicadas nos algoritmos de fuso de sensores.

Relatrio Final PIIC 2011/2012

2 REVISO DA LITERATURA 2.1 - Caractersticas do sensor de ultrasom


O ultrasom um som que possui uma frequncia superior que o ser humano consegue ouvir, tipicamente superior a 20.000 Hz. Os sistemas de deteco de obstculos por ultrasons, tal como o nome indica, tm a finalidade de localizar obstculos atravs de ultrasons, numa determinada rea. Os sistemas ultrasnicos j existentes tm na ecoalizao a principal base para o clculo das posies relativas dos obstculos. A ecoalizao consiste na determinao do tempo de voo decorrente entre a emisso do sinal por parte do emissor e a chegada dos seus ecos ao receptor. Como se pode verificar observando a Figura 1, o tempo de voo ser o tempo necessrio para percorrer duas vezes a distncia r, sendo r a distncia entre o emissor/receptor e o objeto. Para o caso em anlise a distncia percorrida d de d 2r , onde d TV c e c 343,m/s a 20 C (Lima,2009).

Figura 1: Esquema da ecoalizao (Adaptado de Lima,2009)

Relatrio Final PIIC 2011/2012

Mas nem todos os objetos presentes em um ambiente tem o potencial de refletir as ondas sonoras. O comportamento reflexivo das superfcies depende da textura dos objetos. Se a frequncia espacial (baseada no comprimento de onda da superfcie) da textura muito maior que a frequncia do feixe ultrasnico, a superfcie apresenta uma reflexo especular, caso contrrio a reflexo difusa (ABNER,2008). A reflexo dita especular quando o feixe incidente totalmente refletido para fora do alcance do receptor, produzindo falsas leituras (Figura 2). As reflexes especulares tambm so chamadas de mltiplas reflexes (ABNER,2008). Se o feixe refletido alcanar o sensor ocorre a reflexo difusa.

Figura 2: Reflexo especular (Adaptado de [9])

Como podemos ver na figura 2, as reflexes especulares tambm ocorre quando o ngulo do feixe incidente e a superfcie do objeto pequeno. Para um sensor ultrasom o ideal que o feixe incidente faa um ngulo de 90 (ou prximo a isso) com a superfcie, para que ocorra uma reflexo difusa.

2.2 Sensor de ultrasom SRF04


O sensor de ultrasom usado neste projeto o SRF04 que pode ser visto na figura abaixo.

Figura 3: Sensor de ultrasom SRF04. Relatrio Final PIIC 2011/2012

2.2.1 Conexo do sensor


Ele um sensor de fcil uso e suas conexes devem ser feitas conforme a figura 3.

Figura 4: Conexes do SRF04 (Traduzido do datasheet do sensor [8]).

2.2.2 Funcionamento do sensor Um pulso de 10 s deve ser fornecido ao pino de Entrada do pulso de disparo (Figura 3) para ativar o sensor e iniciar a medio. O emissor envia 8 ciclos de ultrasom a 40 kHz e o receptor fica na espero do eco desses ultrasons. O pino de Sada do pulso de eco ser outro pulso de 100 s a 18 ms, onde um pulso de 36 ms de durao indicaria que o obstculo est fora do alcance do sensor (4m no mximo). A figura abaixo mostra o diagrama de tempo completo do SRF04.

Relatrio Final PIIC 2011/2012

Figura 5: Diagrama de tempo do SRF04 (Adaptado do datasheet do sensor).

A figura 5 mostra como se comporta o feixe de onda do SRF04.

Figura 6: Padro do feixe de onda do sensor.

Relatrio Final PIIC 2011/2012

3 METODOLOGIA No primeiro ms do projeto foi necessrio fazer um levantamento bibliogrfico sobre o tema proposto para que o aluno pudesse entender a problemtica do projeto e tambm ter uma base para o desenvolvimento dos programas que geram mapas por meio de fuso de sensores. Nesse estgio foi necessria a leitura dos datasheets dos sensores ultrassnico [8] e infravermelho [6] e de dissertaes de mestrado[1][2][3][5][7]. Nos meses seguintes, dois softwares foram implementados. O primeiro recebe os dados diretamente do sensor ultrasom e gera uma imagem mostrando os obstculos detectados por ele. Alm disso, ele grava esses dados em um arquivo no formato csv [10] (Figura 4) para que depois seja possvel reutilizar esses dados nos algoritmos de fuso de sensores. O segundo software abre um arquivo no formato csv, com dados do sensor, e gera um grfico a partir desses dados. Para isso, os seguintes materiais foram utilizados: - Computadores do departamento. - Placa com microcontrolador e comunicao USB. -Sensor de ultrassom SRF04 e servomotor conectados a placa microcontrolador.

Figura 7: Sensor ultrasom e servomotor conectados a placa microcontrolador deste trabalho.


Relatrio Final PIIC 2011/2012

10

- Firmware para aquisio dos dados do sensor e controle do servomotor. - Rgua para a calibrao do sensor. Para a implementao dos softwares foi usada a linguagem de programao Python e suas bibliotecas: a biblioteca grfica Matplotlib [4], necessria para gerar o mapa do ambiente, a biblioteca de arquivos csv, necessria para ler e gravar os dados do sensor em um arquivo csv e algumas outras bibliotecas bsicas como math, para operaes matemticas, e time, para contar o tempo de disparo do sensor. Esses softwares foram necessrios pois so eles que mostram o mapa do ambiente gerado pelo sensor ultrasom e suas imperfeies. Seu desenvolvimento ocorreu da forma explicada a seguir. O sensor faz um disparo de onda ultrasom, ela reflete em algum obstculo e volta para o receptor. Um microcontrolador associado ao sensor conta quanto tempo a onda levou para sair do emissor e voltar para o receptor. Esse o chamado tempo de voo do sensor ultrasnico. Para construir um mapa do ambiente necessrio transformar o tempo de voo em distancia do sensor ao objeto. Essa etapa, chamada de calibrao do sensor, foi executada da seguinte forma: um anteparo foi colocado a X 1 cm do sensor, medido previamente com a rgua, e atravs do programa para a aquisio dos dados do sensor obteve-se o tempo de ida e volta, T1 , para essa distncia fixa. O passo anterior foi repetido e obteve-se um segundo tempo de ida e volta, T2 , para uma distncia fixa X 2 . Como a resposta do sensor linear possvel aplicar os valores obtidos na equao da reta ( X aT b ) e formular uma equao que converte tempo em distncia. Os valores obtidos nas medies e a equao de converso podem ser vistos abaixo: Medida 1
X 1 29,5cm T1 6343 ms

Medida 2
X 2 38,5cm T2 7874 ms

Substituindo X 1 e T1 na equao da reta, temos que:


29 ,5 a6343 b
b 29,5 6343a

(1)
Relatrio Final PIIC 2011/2012

11

Substituindo X 2 e T2 na equao da reta, temos que:


38,5 a7874 b

(2)

Substituindo o valor de b, encontrado em (1), na equao (2):


38,5 7874a 29,5 6343a 38,5 1531a 29,5

1531a 9 a 0,00588 b 7,8

Logo, a equao que converte tempo (milissegundos) em distncia (centmetros) para o sensor :
d 0,00588t 7,8

(3)

Com o sensor calibrado, possvel construir um mapa do ambiente. Nesta etapa do projeto, usado um pouco de trigonometria alm da programao em linguagem python. O servomotor rotaciona o sensor em 180 graus e faz 30 disparos de onda ultrasom obtendo 30 medidas em ngulos diferentes. Fazendo uma regra de trs obtm-se o valor do ngulo, em graus, para cada medida. 180 graus ------- 30 medidas X graus -------- 1 medida X = 6 graus Ou seja, o motor juntamente com o sensor variam de 6 em 6 graus at completarem os 180 graus. Na medida 1 o ngulo 0 (zero) graus, na medida 2 o ngulo 6 graus, na medida 3 o ngulo 12 graus, e assim sucessivamente. Com isso, dois dados importantes para a construo do mapa foi obtido: a distncia do sensor at o anteparo ( d ) e o ngulo do sensor ( ). Agora, basta aplicar as relaes trigonomtricas de um triangulo retngulo [11]
CatetoOposto d sen CatetoAdjacente d cos

(4) (5)

para achar os eixos x e y do ponto detectado pelo sensor.

Relatrio Final PIIC 2011/2012

12

Figura 3:Ilustrao da deteco de um ponto atravs do sensor. A Figura 2 ilustra a deteco de um ponto. O programa gerador do mapa detecta 30 pontos com o ngulo do sensor variando de 0 a 180 graus. Para facilitar a anlise do mapa e a comparao entre um obstculo e os pontos detectados pelo sensor, foram implementadas no prprio software retas que simulam o obstculo em sua forma real. A figura 3, em Resultados, mostra um ensaio feito com um obstculo em forma de U. Alm de criar um mapa do ambiente esse software capaz de salvar os dados em um arquivo no formato csv (Figura 4). Para isso acontecer necessrio que um arquivo naquele formato seja criado em algum diretrio do computador. Em seguida, o diretrio onde o arquivo foi criado deve ser especificado no cdigo fonte do software. Cada medida do sensor est sendo armazenada em um vetor (dist). Quando todas as medies acabarem dist estar completo e atravs do mtodo writerow podemos escrever os valores de dist no arquivo especificado. O cdigo-fonte desse software pode ser visto em Anexos, na seo 7.1. O segundo software semelhante ao primeiro. A grande diferena que em vez de gerar um mapa diretamente a partir dados do sensor, ele abre um arquivo no formato csv com 31 medidas de distncias e a partir delas gera um mapa. Esse arquivo deve est salvo no computador. O diretrio onde o arquivo est deve ser especificado no cdigo-fonte do software. No cdigo-fonte, um vetor recebe as 31 strings do arquivo. Em seguida elas so convertidas para float e as operaes trigonomtricas necessrias para a criao do mapa so realizadas com base nesses 31 valores. O cdigo-fonte desse software pode ser visto em Anexos, na seo 8.2. 4 RESULTADOS E DISCUSSES
Relatrio Final PIIC 2011/2012

13

A figura abaixo mostra um ensaio feito utilizando o software que gera o mapa diretamente do sensor.

Figura 4: Mapa do ambiente. Os 31 pontos pretos so exatamente os pontos detectados pelo sensor. A linha azul simula o obstculo desse ensaio em sua forma real e o ponto azul central simula a posio do rob. Essa imagem mostra que o sensor de ultrasom capaz de detectar razoavelmente bem um obstculo. Porm quando esse obstculo tem dobras ou quinas, como o caso da figura, a deteco ruim. A figura 4 foi obtida em outro ensaio feito com o mesmo software. Esse arquivo contm 31 linhas (a imagem s mostra 24) e 2 colunas. A primeira coluna indica a ordem da medida e a segunda indica a distncia detectada pelo sensor, por exemplo: a primeira linha do arquivo mostra que na primeira medida a distncia detectada pelo sensor foi de 21,31776 cm.

Relatrio Final PIIC 2011/2012

14

Figura 5: Arquivo no formato csv gerado a partir dos dados sensoriais.

5 CONCLUSO Com este projeto foi possvel desenvolver um software capaz de gerar um mapa do ambiente atravs dos dados de um sensor ultrasom e armazenar esses dados em um arquivo, para serem testados nos algoritmos de fuso de sensores futuramente. Tambm obteve-se um segundo software que gera um mapa a partir desses arquivos. Os prximos passos do projeto so: integrar o sensor infravermelho ao sistema com ultrasom e gerar um mapa de maior qualidade fundindo as informaes dos dois sensores. 6 BIBLIOGRAFIA
Relatrio Final PIIC 2011/2012

15

[1] ABNER,A. Mapeamento com Sonar Usando Grade de Ocupao Baseado em Modelagem Probabilstica. 2008. 62 f. Dissertao (Mestrado em Engenharia Eltrica e de Computao) Universidade Federal do Rio Grande do Norte, Natal. 2008. [2] FACELI, K. Combinao de mtodos de inteligncia artificial para fuso de sensores. 2001. 174 f. Dissertao (Mestrado em Cincias de Computao e Matemtica Computacional) Universidade de So Paulo, So Carlos. 2001. [3] LIMA, M. L. O. Sonar ultra-snico para pequenos robots. 2009. 93 f. Dissertao (Mestrado em Engenharia Electrnica e de Telecomunicaes) Universidade de Aveiro. 2009. [4] matplotlib. Artist tutorial, 08/12/2011, <http://matplotlib.sourceforge.net/users/artists.html>. [5] Research Institute for Applied Knowledge Processing (FAW). A Novel Ultrasonic Sensing System for Autonomous Mobile Systems, 29/01/2012. <http://www.morpha.de/download/publications/FAW-SENSORS2002.pdf>. [6] Sharp. GP2Y0A02YK0F, 09/09/2011. < http://www.sharpsma.com/webfm_send/1487>. [7] Siegwart, Roland & Illah R. Nourbakhsh (2004), Introduction to Autonomous Mobile Robot, 1 edio, MIT Press, Cambridge, Massachusetts, EUA. [8] SRF04 Ultra - Sonic Ranger. Technical Specification, 09/09/2011. <http://www.robotstorehk.com/srf04tech.pdf>. [9]UFRJ. Reflexo especular e reflexo difusa. <http://omnis.if.ufrj.br/~marta/cederj/otica/02-5.pdf>. [10] Wikipdia. Comma-separated Values, 14/01/2012, <http://pt.wikipedia.org/wiki/Comma-separated_values>. [11] Wikipdia. Tringulo Retngulo, 27/11/2011, <http://pt.wikipedia.org/wiki/Tri%C3%A2ngulo_ret%C3%A2ngulo>. Outros artigos e livros consultados no decorrer do projeto

Relatrio Final PIIC 2011/2012

16

[12] LAWITZKY, G.; FEITEN, W.; MLLER, M. Sonar Sensing For LowCost Indoor Mobility. Robotics and Autonomous Systems, Munich, Germany, p. 149-157, 1995. [13] LIGGINS, M. E.; HALL, D. L.; LLINAS, J. Handbook of multisensory data fusion: theory and practice. 2 Ed. CRC Press, 2009. 849 p. [14] NAKAMURA, T.; TAKAMURA, S.; ASADA, M. Behavior-Based Map Representation for a Sonar-based Mobile Robot by Statistical Methods. Osaka, Japo, v.1, p. 276 283, 4-8 Nov 1996.

7 ANEXOS 7.1 Principais partes do cdigo-fonte do software gerador de mapas do ambiente. As bibliotecas necessrias para a execuo do software podem ser vistas da linha 2 at a linha 6.

A linha 9 faz a varivel sensor receber o valor obtido pelo sensor atravs da biblioteca ultrasom e a linha 10 faz a comunicao serial entre a placa de microcontrolador e o computador atravs da porta COM7.

A linha 12 abre o arquivo t.csv para escrita, que se encontra no diretrio C:\Documents and Settings\m\Desktop, e delimita os dados com vrgula.

Na linha 23, cont_angulo um contador que vai de 0,1,2,3... at 30, e a cada incremento desse contador o servomotor gira 6 graus. A linha 24 faz com que o programa pare por 2 segundos para que o microcontrolador do sensor
Relatrio Final PIIC 2011/2012

17

tenha tempo de fazer os seus devidos processamentos. Observao: O cdigo da linha 23 at a linha 43 est dentro de um lao que executa 31 vezes.

Na linha 25 a varivel leitura recebe uma medida do sensor, uma string que representa o tempo de voo da onda em milissegundos.

A linha 26 converte leitura em um nmero real e atribui varivel a. J na linha 27 ocorre a converso de tempo de voo para distncia atravs da equao 3 (Ver em Metodologia).

Na linha 28 a varivel H, de hipotenusa, recebe o valor convertido e o vetor dist armazena esse valor na linha 29.

Agora comeam as operaes trigonomtricas necessrias para identificar as coordenadas x e y dos pontos detectados. Na linha 37 a varivel ANG, de ngulo, recebe o contador que faz o servomotor girar (cont_angulo) e multiplica-o por 6, ou seja ANG varia de 6 em 6 graus at 180. A linha 38 converte ANG para radianos e armazena em THETA.

Nas linhas 40 e 41 as variveis C_O, de cateto oposto, e C_A, de cateto adjacente, recebem os valores descritos nas equaes 4 e 5, respectivamente (Ver em Metodologia).

O cateto adjacente o x do ponto e o cateto oposto o y do ponto (ver na figura 3). Dois vetores (x e y) armazenam cada ponto detectado, visto que so 31 pontos.
Relatrio Final PIIC 2011/2012

18

A linha 50 inicia um lao que executa x vezes, onde x o tamanho de dist, dado pela funo len. Nesse caso o tamanho de dist 31, fixo. O mtodo writerow escreve na linha cont+1, do arquivo, a ordem da medida dada por cont+1 e a distncia medida pelo sensor, dada por dist indexada por cont (ver na Figura 5).

O lao iniciado na linha 60 pega todos os valores armazenados nos vetores x e y anteriormente e gera um grfico ( o mapa do ambiente ), com os 31 pontos detectados, atravs da funo scatter do Matplotlib (biblioteca pylab). Os parmetros dessa funo so: posio x do ponto, posio y do ponto, a cor do ponto, o tamanho e marker, contendo o estilo da figura que vai est representando o ponto no grfico e o ngulo que essa figura deve aparecer, por exemplo: se o estilo for uma reta ela pode aparecer na horizontal, na vertical ou com qualquer inclinao. Nesse caso o estilo 3 um crculo, sendo assim no importa a inclinao dele.

A linha 64 coloca um ponto na forma de crculo na posio (0,0) do grfico. Esse ponto simula a posio do rob.

As linhas 67 e 68 so responsveis por desenhar a forma do obstculo real no grfico. Cada par ordenado ((-30,27), (-30,0), (-30,27), (30,27), (30,27), (30,0)) um ponto no mapa e o mtodo plot(x,y), na linha 69, tem a funo de ligar esses pontos atravs de retas azuis (Ver na Figura 4).

7.2 Principais partes do cdigo-fonte do gerador de mapas do ambiente a partir de um arquivo no formato csv.
Relatrio Final PIIC 2011/2012

19

Esse cdigo semelhante ao anterior mas algumas mudanas ocorrem. Os dados que vo construir o mapa so oriundos de um arquivo csv no formato da Figura 5 e no diretamente do sensor. Portanto, as linhas 9,10,23,24 no so necessrias aqui pois elas esto relacionadas com o sensor ultrasom. A linha 7 abre o arquivo t.csv para leitura, que se encontra no diretrio C:\Documents and Settings\m\Desktop, e est delimitado por vrgula.

O lao da linha 9 executa 31 vezes (o nmero de linhas do arquivo csv). Nessa linha as variveis posio e resultado recebem a ordem da medida e a distncia, respectivamente. A linha 10 imprime os valores de posio e resultado para cada linha do arquivo. A linha 21 armazena resultado no vetor vetd, de vetor de distncias.

A linha 21 tem a mesma funo da linha 25 do software anterior, a diferena que l leitura recebia o dado direto do sensor e depois deveria ser convertido em distncia (centmetros) e aqui leitura recebe o dado do vetor vetd que recebeu os dados do arquivo e eles j esto convertidos em distncia.

O resto do cdigo, como as operaes trigonomtricas e a parte grfica , idntico ao cdigo anterior.

Relatrio Final PIIC 2011/2012

20

Relatrio Final PIIC 2011/2012

You might also like