PDF Archive

Easily share your PDF documents with your contacts, on the Web and Social Networks.

Send a file File manager PDF Toolbox Search Help Contact



relatorio final pibic(1) .pdf



Original filename: relatorio-final-pibic(1).pdf
Title: Insert Your Title Here
Author: Put All Your Authors Here, Separated by Commas

This PDF 1.5 document has been generated by TeX / pdfTeX-1.40.15, and has been sent on pdf-archive.com on 23/07/2015 at 03:42, from IP address 177.235.x.x. The current document download page has been viewed 286 times.
File size: 3.5 MB (5 pages).
Privacy: public file




Download original PDF file









Document preview


Prot´otipo de um robˆo m´ovel de trac¸a˜ o s´ıncrona para
teste de algoritmos de controle e navegac¸a˜ o
˜ (orientador)
Felipe Costa de Assis, Daniel M. Munoz
Programa de Engenharia Eletrˆonica
Faculdade Gama
Universidade de Bras´ılia
Gama, DF., Brasil
Email: felipecosta.fga@gmail.com, damuz@unb.br
Resumo — Este trabalho descreve a implementac¸a˜ o
em FPGAs de uma arquitetura de hardware para os
m´odulos que comp˜oem um robˆo de trac¸a˜ o s´ıncrona, com
o objetivo de construir um prot´otipo funcional para testes de algoritmos de controle e navegac¸a˜ o a` ser utilizado
por estudantes em tarefas e projetos finais.
Palavras-Chaves: — Robˆo m´ovel, trac¸a˜ o s´ıncrona,
controle e navegac¸a˜ o, FPGAs, aux´ılio did´atico.

I. Introduc¸a˜ o
A navegac¸a˜ o de robˆos m´oveis de pequeno porte ainda e´
uma dificuldade existente na engenharia moderna. Os algoritmos utilizados para tal necessitam de m´aquinas de alta capacidade computacional que operam em altas frequˆencias e
consomem muita energia [1].
O uso de algoritmos embarcados pode ser uma soluc¸a˜ o
para este problema. Utilizando dispositivos FPGAs (Field
Programmable Gate Arrays) podemos implementar as arquiteturas de hardware para a navegac¸a˜ o dos robˆos, aproveitando a alta capacidade de processamento paralelo, baixo
consumo de energia, peso e tamanho que os sistemas embarcados tˆem a` oferecer[2], [3].
Al´em disso, no estudo de sistemas digitais 2 e projetos
com circuitos reconfigur´aveis da FGA-UnB, os estudantes
desenvolvem soluc¸o˜ es para diversos problemas utilizando
FPGAs, o prot´otipo desenvolvido neste trabalho poder´a ser
usado nessas disciplinas, fortalecendo a infraestrutura dispon´ıvel para realizac¸a˜ o de projetos finais e outros trabalhos,
assim como para a elaborac¸a˜ o de projetos de conclus˜ao de
curso.
A placa FPGA Zybo ZynqTM - 7000 utilizada neste projeto e´ equipada com um processador dual-core cortex A9 de
650Mhz e possui controlador de mem´oria DDR3 com 8 canais DMA e de perif´ericos altas e baixas frequˆencias como
Ethernet, USB 2.0 e UART.Na parte l´ogica, a placa possui
28mil c´elulas l´ogicas, 240KB block RAM, 80 DSP slices e
um conversor anal´ogico digital (XADC) 12-bit [4]
A Zybo pussui tamb´em diversos outros perif´ericos e
portas on-board, como HDMI,VGA, MicroSD, EEPRON
externa, sa´ıdas e entradas de audio, bot˜oes, LEDs, e
c 2015, Association for the Advancement of Artificial
Copyright
Intelligence (www.aaai.org). All rights reserved.

m´odulos de expans˜ao.

II. Metodologia
O projeto foi acompanhado atrav´es de reuni˜oes peri´odicas
entre o orientador e o estudante de iniciac¸a˜ o cient´ıfica. A
metodologia do plano de trabalho se divide em quatro etapas: (1) revis˜ao bibliogr´afica e identificac¸a˜ o de t´ecnicas
e algoritmos para controle de velocidade de um robˆo de
trac¸a˜ o s´ıncrona; (2) Construc¸a˜ o do prot´otipo funcional do
robˆo m´ovel; (3) Implementac¸a˜ o da arquitetura proposta para
controle de velocidade, leitura dos encoders e sensores de
distˆancia; (4) Integrac¸a˜ o com o kit de desenvolvimento
FPGA, verificac¸a˜ o e testes do prot´otipo. Adicionalmente, foram usadas as metodologias top-down e bottom-up para o
desenvolvimento das fases do projeto. A modelagem da arquitetura de hardware em FPGA fez uso da abordagem topdown e o desenvolvimento, teste e validac¸a˜ o da arquitetura
de hardware final fez uso da abordagem bottom-up.

III. Desenvolvimento
Sensor de Distˆancia
Na construc¸a˜ o do prot´otipo foi utilizado o sensor infravermelho GP2Y0A02YK, da fabricante SHARP, com corrente de alimentac¸a˜ o de 33mA, tens˜ao de alimentac¸a˜ o entre
4,5 e 5,5V e alcance de medic¸a˜ o de 20 a` 150cm. O sensor
possui sa´ıda anal´ogica e resposta com comportamento exponencial decrescente e latˆencia de 39ms. Este sensor pode
ser utilizado em projetos futuros em conjunto do conversor anal´ogico digital existente na placa para aprimorar o
prot´otipo, ou em algor´ıtmos de navegac¸a˜ o em que seja necess´ario a medic¸a˜ o de distˆancias.

Encoder de quadradura
O encoder de quadratura e´ um dispositivo usado para medir movimento e posic¸a˜ o. Atrav´es de sensores o´ pticos, o
encoder fornece sinais el´etricos sempre que um ponto pr´edeterminado da roda passa por eles, criando assim um trem
de pulsos que pode ser traduzidos em posic¸a˜ o e movimento.
Para se calcular a velocidade de rotac¸a˜ o de uma roda
utilizando o encoder de quadratura e´ utilizada uma l´ogica
que consiste em contar as mudanc¸as de estado no sensor

Essa relac¸a˜ o e´ quantificada em porcentagem. Se o tempo
ligado for o mesmo que o tempo desligado, dissemos que a
raz˜ao c´ıclica (duty-cicle) e´ de 50%, logo, o valor entregue a`
carga ser´a metade da m´axima. Temos ent˜ao a liberdade de
entregar a` carga qualquer porcentagem do valor m´aximo.

Figura 1: Sensor Infravermelho[5].
o´ ptico em um determinado espac¸o de tempo. Sabendo quantas mudanc¸as de estado acontecem em 1 rotac¸a˜ o completa
da roda, podemos estimar com precis˜ao consider´avel a velocidade da roda em rotac¸o˜ es por minuto (RPM), ou outras
unidades.
Neste prot´otipo, a roda possui 12 dentes que causam 24
mudanc¸as de estado (subidas e descidas de pulso), ou seja,
em 24 mudanc¸as de estado na sa´ıda do encoder de quadratura tˆem-se 1 rotac¸a˜ o completa da roda.
O encoder utilizado e´ o Pololu enc01a, sua voltagem de
operac¸a˜ o e´ entre 4.5 e 5.5V e seu consumo de corrente e´ de
14mA.

Figura 3: Placa md08a[7].

Figura 4: T´ıpica modulac¸a˜ o por largura de pulso[8].

Arquitetura de Hardware proposta
Figura 2: Formas de onda obtidas com o encoder[6].

A Fig. (5) representa a arquitetura geral de Hardware que
e´ composta por trˆes m´odulos: Gerador de PWM, Medic¸a˜ o
da velocidade de rotac¸a˜ o das rotas e c´alculo da velocidade
linear e aˆ ngular.

Controlador dos motores
A placa pololu md08a e´ respons´avel pelo controle das rodas do robˆo, utilizando como seu processador o chip Toshiba
TB6612FNG. Esta placa e´ capaz de controlar duas rodas biderecionais independentemente ou um motor de passo bipolar. A voltagem recomendada para os motores e´ entre 4.5 e
13.5V e sua voltagem l´ogica e´ entre 2.7 e 5.5V. Possui uma
corrente m´axima de sa´ıda de 3A por canal e a frequˆencia
m´axima de PWM e´ de 100KHz. Por fim, a placa possui capacitores de filtro em ambas linhas de alimentac¸a˜ o e protec¸a˜ o
contra corrente reversa nos motores.
O controle da velocidade das rodas e´ feito atrav´es de
modulac¸a˜ o por largura de pulso, do inglˆes pulse-width modulation (PWM), que envolve a modulac¸a˜ o da raz˜ao c´ıclica
de uma fonte de alimentac¸a˜ o para controlar o valor entregue a` um motor ou carga. Tal t´ecnica consiste em ”ligar e
desligar”a alimentac¸a˜ o em pequenos intervalos de tempo,
podendo-se definir a relac¸a˜ o entre o tempo ligado e desligado, e assim a alimentac¸a˜ o entregue para a carga

Figura 5: Arquitetura de Hardware proposta.

M´odulo 1: Gerador de PWM
A arquitetura de hardware para a gerac¸a˜ o do PWM segue
a seguinte l´ogica: E´ realizada uma contagem dos pulsos de
um sinal de Clock at´e que certo valor m´axima seja atingido,
e um sinal de sa´ıda (A onda PWM desejada) fica em n´ıvel
alto at´e o valor desejado da contagem. Para uma contagem
de 8 bits, temos 256 valores de comparac¸a˜ o( 0 a 255). Assim
temos 0 representando 0% da raz˜ao c´ıclica e 255 representando 100% da mesma. Em VHDL, realiza-se comparac¸o˜ es
entre o valor da contagem e o valor de entrada, quando o valor desejado e´ atingido a sa´ıda deixa de ser alta(1) e torna-se
baixa(0), criando assim a onda PWM desejada, com a raz˜ao
c´ıclica necess´aria.

M´odulo 3: C´alculo da velocidade linear e angular do robˆo
Para se obter a trajet´oria que o robˆo se movimenta e´
necess´ario determinar sua velocidade angular e linear.
Primeiramente se obtˆem a distˆancia percorrida por cada
roda em um certo intervalo de tempo, multiplicando sua
circunferˆencia pelo valor obtido com o uso dos encoders de
quadradura
SL = 2πrθL
SR = 2πrθR
Onde:
• r : Raio da roda
• θL : Valor do encoder da roda esquerda
• θ : Valor do encoder da roda direita
• SR = Distˆancia percorrida pela roda direita
• SL = Distˆancia percorrida pela roda esquerda
Ou seja, sabe-se a distˆancia que o robˆo caminhou, que e´
dada por:
S = (SR + SL)/2

Figura 6: Esquem´atico do m´odulo de gerac¸a˜ o de PWM.

M´odulo 2: Medic¸a˜ o da velocidade de rotac¸a˜ o das rodas
Para se traduzir o trem de pulsos obtido atrav´es do encoder de quadradura em VHDL cria-se um contador que e´ incrementado sempre que ocorre uma mudanc¸a de estado em
sua entrada, que est´a conectada a` saida do encoder, depois
de um tempo pr´e-determinado essa contagem volta para 0,
recomec¸ando o processo. O resultado dessa operac¸a˜ o e´ o valor bin´ario do n´umero de mudanc¸as de estado pela unidade
de tempo determinada, que e´ utilizada para a obtenc¸a˜ o da
velocidade linear e aˆ ngular das rodas.

Tudo que se sabe at´e o momento e´ a distˆancia caminhada
pelo robˆo, mas ainda e´ necess´ario saber a sua inclinac¸a˜ o.
Assumindo que sua trajet´oria e´ circular podemos dizer que
Sl e SR representam um arco de c´ırculo (de φ radianos)
multiplicado pelo raio de curva de cada roda. Se o raio de
curva do centro do rˆobo e´ c e o ponto central do ve´ıculo
e´ a metade da distˆancia entre as rodas ( ou d/2), caso
uma curva para a esquerda seja feita o raio de curva da
roda direita ser´a (c+d/2) e o da roda esquerda ser´a (c−d/2)
SR = φ(c + d/2)
SL = φ(c − d/2)
Subtraindo as equac¸o˜ es, obtˆem-se:
SR − SL = φd
E resolvendo para φ:
φ = (SR − SL)/d
Usando VL,R para as velocidades das rodas ao inv´es da
distˆancia percorrida e θL,R em rotac¸o˜ es por segundo:
V R = 2πrθR
V L = 2πrθL

Figura 7: Esquem´atico do m´odulo de medic¸a˜ o da velocidade
de rotac¸a˜ o das rodas

E agora pode-se expressar estas equac¸o˜ es em forma matricial:

Onde:
• v : Velocidade linear do robˆo
• ω : Velocidade angular do robˆo
• θ L,R : Velocidade de cada roda em rotac¸o˜ es por segundo
• r : Raio da roda

Figura 9: Prot´otipo constru´ıdo.

• d : Distˆancia entre as rodas
Dessa matriz s˜ao destacadas as duas equac¸o˜ es que s˜ao
necess´arias:
v = πr(θR + θL)
ω = (πr)/d(θL − θR)
Para a implementac¸a˜ o dessas equac¸o˜ es em VHDL na
FPGA utiliza-se diversos somat´orios e multiplicadores. Inicialmente obtˆem-se a velocidade de cada roda em rotac¸o˜ es
por segundo, multiplicando o valor entregue pelo encoder de
quadradura por 60. Ent˜ao realiza-se as outras operac¸o˜ es de
acordo com as equac¸o˜ es.
Os m´odulos somadores e multiplicadores foram gerador
atrav´es da ferramenta ISE Core Generator, onde e´ poss´ıvel
criar m´odulos padr˜oes para diversas operac¸o˜ es matem´aticas.

Recurso de hardware
Flip-Flops
Look-up Tables
Digital Signal Processing

Total utilizado
214
213
4

Total dispon´ıvel
35200
17600
45

Tabela 1: Total de recursos de hardware utilizados e dispon´ıveis para a implementac¸a˜ o na FPGA

do robˆo e´ de 3.624ns e a frequˆencia m´axima de operac¸a˜ o e´
de 539.367MHz , ambos os dados foram informados pela
ferramenta ISE design suite.

Recursos de hardware utilizados
Na tab. (I) s˜ao apresentados os resultados de s´ıntese para
a arquitetura completa com os modulos que foram sintetizados considerando o consumo de registradores de Flip-Flops
(FFs), Digital Signal Processing (DSPS) e Look-up Tables
(LUTs) e tamb´em o total de recursos dispon´ıveis na FPGA.
A arquitetura utilizou tamb´em 2 RAM blocks.

V. Conclus˜ao

Figura 8: Esquem´atico do modulo do c´alculo da velocidade
linear e angular do robˆo

IV. Resultados
Prot´otipo finalizado
A Fig. (8) mostra o prot´otipo construido, os sensores podem ser utilizados para testes ou em projetos futuros para
aprimoramento do robˆo.

Tempo de execuc¸a˜ o e frequˆencia de operac¸a˜ o
O tempo de execuc¸a˜ o da arquitetura de hardware completa com os m´odulos que foram sintetizados para o controle

Neste trabalho foi realizada a construc¸a˜ o de um prot´otipo
de um robˆo m´ovel de trac¸a˜ o s´ıncrona para teste de algoritmos de controle e navegac¸a˜ o por parte dos alunos de sistemas digitais 2. As arquiteturas implementadas permitem
que o robˆo realize movimentos simples a partir do controle
cinem´atico, retornando os valores de velocidade das rodas
atrav´es da leitura dos encoders de quadratura.
Os m´odulos implementados realizam tal feito com baixo
tempo de execuc¸a˜ o e baixo consumo de processamento.
Os recursos oferecidos pela FPGA s˜ao suficientes para a
implementac¸a˜ o da soluc¸a˜ o, n˜ao sendo necess´ario nenhum
outro acr´escimo de unidade de processamento
Por fim, os dispositivos FPGA s˜ao uma soluc¸a˜ o ao problema apresentado, apresentando alto desempenho e alta
capacidade de processamento, al´em da portabilidade necess´aria para o uso em um robˆo m´ovel.
Para trabalhos futuros, prop˜oe-se a criac¸a˜ o de arquiteturas
para processar os dados dos sensores utilizando os conversores ADC presentes na FPGA

Referˆencias
[1] Braunl T., “Embedded Robotics. Mobile Robot Design and Applications with Embedded Systems”, 2a Ed.,
Springer-Verlag, 2003.
[2] Sass, R., and Schmidt, A., “Embedded Systems Design with Platform FPGA, Principles and Practices”, Morganm Kaufmann, 2010.
[3] Meyer-Baese, U., “Digital Signal Processing with Field Programmable Gate Arrays”, Springer-Verlag, 2004.
[4] Zybo reference manual, DIGILENT, February 2014
[5] GP2Y0A02YK, 2nd ed., SHARP, September 2001.
[6]https://developer.mbed.org/cookbook/QEI , acessado
em 16 de julho de 2015
[7]https://www.pololu.com/product/713/pictures , acessado em 16 de julho de 2015
[8]http://www.protostack.com/blog/2011/06/atmega168apulse-width-modulation-pwm/ , acessado em 17 de julho de
2015


Related documents


PDF Document relatorio final pibic 1
PDF Document exerc cios complementares
PDF Document estabilidade
PDF Document java basico
PDF Document von neumann
PDF Document manual para iniciantes ragnahope


Related keywords