SlideShare uma empresa Scribd logo
1 de 86
Baixar para ler offline
FACULDADE ASSIS GURGAGZ
DJEILY TAMARA BECKER

VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO
ANTROPOMÓRFICO DIDÁTICO

CASCAVEL
2013
FACULDADE ASSIS GURGAGZ
DJEILY TAMARA BECKER

VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO
ANTROPOMÓRFICO DIDÁTICO

Projeto de pesquisa apresentado ao curso de
graduação em Engenharia de Controle e
Automação da Faculdade Assis Gurgacz para
elaboração do Trabalho de Conclusão de Curso.
Orientador: Prof. Esp. Arthur Schuler da Igreja
Co-orientador: Maikon Lucian Lenz

CASCAVEL
2013
FACULDADE ASSIS GURGACZ
DJEILY TAMARA BECKER

VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO
ANTROPOMÓRFICO DIDÁTICO

Trabalho apresentado no Curso de Engenharia de Controle e Automação, da
Faculdade Assis Gurgacz, como requisito parcial para obtenção do título de
Bacharel em Engenharia de Controle e Automação, sob orientação do Professor
Especialista Arthur Schuler da Igreja e co-orientação do Engenheiro Maikon Lucian
Lenz.

BANCA AVALIADORA

____________________________
Arthur Schuller da Igreja
Faculdade Assis Gurgacz

____________________________
Vânio da Maia
Faculdade Assis Gurgacz

____________________________
Ederson Zanchet
Faculdade Assis Gurgacz

Cascavel, 04 de Dezembro de 2013.
DEDICATÓRIA

Dedico este trabalho a Deus que sempre foi meu guia e minha fortaleza em
meio às provações. A minha mãe e minha irmã que sempre estiveram comigo ao
longo desta caminhada e acreditaram em minha determinação e coragem e a todas
as pessoas que de forma direta ou indireta estiveram presentes na realização deste
projeto.
AGRADECIMENTOS

Primeiramente a Deus que me proporcionou sabedoria durante toda minha
formação, principalmente no desenvolvimento deste projeto. Aos meus familiares,
especialmente a minha mãe Maria, por ter me incentivado a dar inicio a esta
graduação e por estar sempre ao meu lado nos momentos que mais precisei. A
minha irmã com quem pude contar em todas as horas e aos meus avós, que foram
sempre compreensíveis nos momentos que estive ausente.
A meus colegas e amigos, Felipe Holz, Maycon Gasoto, Esequiel Leite e
Fabio Rangel, por sempre me ajudarem nos momentos de dúvida e pelo incentivo
que sempre proporcionaram.
A todos os professores que contribuíram em meu processo de formação. Em
especial ao professor Arthur, por ter aceitado fazer parte deste projeto e me
incentivar em solucionar os problemas da melhor maneira. Ao engenheiro Maikon
por ter me orientado e estar sempre disposto a esclarecer as dúvidas que surgiram
no desenvolvimento do projeto. Também ao professor Ederson Zanchet, por ser
atencioso e estar sempre disposto em ajudar toda turma ao longo do curso.
RESUMO

A Robótica é uma área que se encontra em ascensão, a atual demanda econômica
requer linhas de produção cada vez mais eficientes com elevada percepção
sensorial, certamente um dos principais e mais completos sentidos é a visão, pela
riqueza de informação que uma imagem pode conter. Neste contexto, a visão
computacional se torna uma ferramenta chave na área da robótica, todas as
tomadas de decisão do manipulador são baseadas nos detalhes das imagens. O
presente projeto de pesquisa trata da implementação de um sistema de controle de
trajetória de um braço robótico orientado por visão computacional. A aquisição da
imagem ocorre através de uma webcam comum, o objetivo é coletar a mesma e
identificar o objeto desejado pelo usuário, com base nestas informações o
manipulador é orientado até a peça. Para tanto, os dados da imagem são
processados e enviados ao manipulador através da ferramenta de computação
Matlab®.
Palavras chave: Robótica, Visão computacional, Matlab®.
ABSTRACT

Robotics is an area in ascension, the actual economic demanding requires more
efficient production lines with highly sensorial perception, vision is certainly one of the
most principal and complete sense, because of the richness of information that an
image can hold. On this context, computational vision becomes a key source in
robotics, all the decisions of the manipulator are based on image details. The present
research project is about the implementation of a control system of trajectory for a
robotic arm oriented by computational sight. The acquisition of image occurs through
a regular webcam, the objective is to collect an image and identify the object desired
by the user, based on these informations the manipulator is oriented to grab the
piece. For this, the image data are processed and send to the manipulator using the
software Matlab®.
Keywords: Robotics, Computational Vision, Matlab®.
“O sucesso não se atinge somente com qualidades especiais. É
principalmente um trabalho de constância, de método e de organização.”
(J. P. Sergent)
LISTA DE ABREVIAÇÕES

IFR

Federação Internacional de Robótica - (International Federation of
Robotics);

VDMA

Federação Alemã de Engenharia - (Verband Deutscher Maschinen und
Anlagenbau);

RGB

Vermelho, Verde e Azul - (Red, Green and Blue);

YIQ

Luminosidade e Cromaticidade;

CCD

Dispositivo de Carga acoplado - (Charge Coupled Device);

CMOS Semicondutor de Óxido Metálico Complementar - (Complementary Metal
Oxide Semicondutor);
D-H

Jacques Denavit e Richard Hartenberg;

Nm

Nanômetro;

Pixel

Picture Element ;

Voxel

Volumetric Picture Element;

N/m

Newton Metro;

kΩ

Kilo Ohms;

GND

Filtro Graduado de Densidade Neutra (Graduated Neutral DensityFilter);

V

Volt;

A

Ampere;

m

Metros;

cm

Centímetros;

kg.cm

Kilograma Centímetro.
LISTA DE FIGURAS
Figura 1 – Passos da visão computacional. ............................................................. 16
Figura 2 – Comprimento de onda no espectro eletromagnético. .............................. 18
Figura 3 – Representação da cor. ............................................................................ 18
Figura 4 – Representação do Modelo RGB. ............................................................. 19
Figura 5 – Matriz de conversão do modelo RGB para YIQ....................................... 20
Figura 6 – Processo de discretização da imagem. ................................................... 23
Figura 7 – Imagens com mesmo tamanho e resolução diferente. ............................ 24
Figura 8 – Imagens com tamanho diferentes e resolução igual. .............................. 24
Figura 9 – Representação de vizinhança. ................................................................ 25
Figura 10 – Representação de vizinhança tridimensional. ....................................... 26
Figura 11 – (a) Distribuição de pixels. (b) 8-conectividade. (c) m-conectividade ...... 26
Figura 12 – Histograma de imagens. ........................................................................ 28
Figura 13 – Técnica de detecção de limiares simples. (a) Imagem limiar. (b)
Histograma e limiar. (c) Imagem binarizada. ............................................................. 29
Figura 14 – Transformações Geométricas – Translação. ......................................... 30
Figura 15 – Transformações Geométricas – Escala................................................. 31
Figura 16 – Transformações Geométricas – Rotação. ............................................. 31
Figura 17 – Exemplos de Técnica de Iluminação. .................................................... 33
Figura 18 – Representação de elos e juntas de um robô. ........................................ 34
Figura 19 – Volume de trabalho de robôs industriais. (a) Robô antropomórfico. (b)
Robô cartesiano. (c) Robô de coordenadas cilíndricas. (d) Robô de coordenadas
esféricas. (e) Robô SCARA. ...................................................................................... 36
Figura 20 – Notação de Denavit-Hartenberg. ........................................................... 37
Figura 21 – Potenciômetros rotativos. ...................................................................... 40
Figura 22 – Tipos de motores de passo. .................................................................. 41
Figura 23 – Fluxograma do processo ....................................................................... 42
Figura 24 – Vista frontal do braço robótico com os motores do cotovelo (1) e ombro
(2). ............................................................................................................................. 44
Figura 25 – Motor responsável pelo giro da base..................................................... 44
Figura 26 – Nova estrutura do braço robótico. ......................................................... 45
Figura 27 – Potenciômetros...................................................................................... 46
Figura 28 – Média das entradas analógicas. ............................................................ 48
Figura 29 – Sentido de giro e velocidade do motor. ................................................. 48
Figura 30 – Criação da serial.................................................................................... 49
Figura 31 – Comunicação serial Matlab®.................................................................. 50
Figura 32 – Circuito de acionamento da bobina. ...................................................... 51
Figura 33 – Código para acionamento da bobina. .................................................... 52
Figura 34 – Aquisição da imagem em formato RGB. ............................................... 53
Figura 35 – Detecção de limiares da imagem em formato RGB............................... 53
Figura 36 – Imagem dos objetos de interesse. (a) Imagem no formato RGB. (b)
Imagem binarizada. ................................................................................................... 54
Figura 37 – Localização do centroide do objeto. ...................................................... 54
Figura 38 – Conversão do modelo de cores RGB para YIQ. .................................... 55
Figura 39 – Escolha do objeto. ................................................................................. 55
Figura 40 – Sistema de coordenas para o procedimento de D-H. ............................ 56
Figura 41 – Configuração da trajetória do braço robótico. ........................................ 57
Figura 42 – Modelo robô plotado no espaço. ........................................................... 58
Figura 43 – Posição dos links em radianos. ............................................................. 58
Figura 44 – Modelo robô nas posições x=30 cm, y=20 cm e z=20 cm. .................... 59
Figura 45 – Posição da câmera (Webcam). ............................................................. 60
Figura 46 – Referência de pixels por cm. ................................................................. 61
Figura 47 – Distância em X e Y até a área de trabalho. ........................................... 63
Figura 48 – Simulação virtual do braço robótico....................................................... 66
Figura 49 – Identificação do centroide. (a) – Objeto vermelho. (b) – Objeto azul. .... 67
Figura 50 – Representação de Precisão e Repetibilidade. ....................................... 68
Figura 51 – Vista superior do objeto vermelho. (a) – Ilustração em formato RGB. (b)
– Identificação do centroide....................................................................................... 69
Figura 52 – Posicionamento do braço robótico sobre a peça. .................................. 70
LISTA DE TABELAS
Tabela 1 – Tópicos para processamento de imagens. ............................................. 21
Tabela 2 – Relação da porta paralela e as saídas digitais do Arduino®. ................... 47
Tabela 3 – Parâmetros de Denavit-Hartenberg. ....................................................... 56
Tabela 4 – Movimento do braço robótico por coordenadas absolutas. ..................... 66
Tabela 5 – Resultado dos testes de Precisão e Repetibilidade por coordenadas
absolutas. .................................................................................................................. 67
Tabela 6 – Resultados dos testes de Precisão e Repetibilidade por visão
computacional. .......................................................................................................... 71
SUMÁRIO
1

INTRODUÇÃO ............................................................................................... 14

2

FUNDAMENTAÇÃO TEÓRICA ..................................................................... 16

2.1

VISÃO COMPUTACIONAL ............................................................................ 16

2.2

COR ............................................................................................................... 17

2.2.1 O Modelo RGB ............................................................................................... 19
2.2.2 O Modelo YIQ ................................................................................................. 19
2.2.3 O Modelo HSI ................................................................................................. 20
2.3

PROCESSAMENTO DE IMAGENS DIGITAIS ............................................... 20

2.3.1 Aquisição de imagens .................................................................................... 22
2.3.2 Amostragem e Quantização ........................................................................... 22
2.3.3 Resolução espacial de imagens ..................................................................... 23
2.3.4 Vizinhança e Conectividade ........................................................................... 25
2.3.5 Histograma ..................................................................................................... 27
2.3.6 Limiarização ................................................................................................... 28
2.4

TRANSFORMAÇÕES GEOMÉTRICAS ......................................................... 29

2.5

CALIBRAÇÃO ................................................................................................ 32

2.6

ILUMINAÇÃO ................................................................................................. 32

2.7

COMPONENTES DE UM ROBÔ INDUSTRIAL .............................................. 34

2.8

CLASSIFICAÇÃO GEOMÉTRICA DE ROBÔS INDUSTRIAIS ....................... 35

2.9

CINEMÁTICA DE UM BRAÇO ROBÓTICO .................................................... 36

2.9.1 Cinemática Direta ........................................................................................... 37
2.9.2 Cinemática Inversa ......................................................................................... 39
2.10

POTENCIÔMETRO ........................................................................................ 39

2.11

MOTOR DE PASSO ....................................................................................... 40

3

METODOLOGIA ............................................................................................ 42

3.1

ESTRUTURA DO BRAÇO ROBÓTICO .......................................................... 43

3.2

INTERFACE ................................................................................................... 47

3.2.1 Comunicação Serial ....................................................................................... 49
3.3

ACIONAMENTO DA BOBINA......................................................................... 51

3.4

PROCESSAMENTO DE IMAGENS ............................................................... 52

3.5

MODELAGEM CINEMÁTICA ......................................................................... 56

3.6

CONVERSÃO VALORES DE POTENCIÔMETRO ......................................... 58

3.7

LOCALIZAÇÃO OBJETO ............................................................................... 60
4

RESULTADOS OBTIDOS ............................................................................. 65

4.1

MOVIMENTOS DO BRAÇO ROBÓTICO POR COORDENADAS .................. 65

ABSOLUTAS ............................................................................................................. 65
4.2

LOCALIZAÇÃO DO OBJETO ......................................................................... 67

4.3

MOVIMENTOS DO BRAÇO ROBÓTICO POR IMAGEM................................ 68

4.4

TRABALHOS FUTUROS................................................................................ 72

5

CONCLUSÃO ................................................................................................ 73

REFERÊNCIAS ................................................. ERRO! INDICADOR NÃO DEFINIDO.
APÊNDICE A ............................................................................................................ 77
APÊNDICE B ............................................................................................................ 81
APÊNDICE C ............................................................................................................ 82
14

1

INTRODUÇÃO

O

progresso

da

robótica

em

segmentos

industriais

foi

justificado

principalmente pela agilidade e confiabilidade em processos produtivos. Segundo
dados da IFR (International Federation of Robotics – Federação Internacional de
Robótica), o aumento de vendas de robôs em 2011 em relação aos outros anos foi
de 38%, sendo vendidas 166.028 unidades em todo o mundo, principalmente na
indústria automobilística e metalúrgica. Se configurado corretamente, um robô é
capaz de realizar com grande precisão tarefas que envolvem confiabilidade,
repetição e alta periculosidade e por se tratar de um manipulador reprogramável a
necessidade de dispositivos que forneçam percepção sensorial fica evidente. Neste
contexto, a riqueza de informações que uma imagem pode conter torna a visão um
dos mais complexos e importantes sentidos, permitindo que um manipulador ganhe
percepção sensorial de forma ampla.
As aplicações que envolvem o uso de imagens estão presentes em vários
cenários, como: ambientes industriais, sistemas de segurança para transporte,
tecnologia médica, entre outros. Desta maneira, a integração de um sistema de
visão computacional através de mecanismos robóticos resulta em linhas de
produção mais eficientes e velozes.
Uma definição apropriada para a técnica de visão artificial ou visão
computacional, é que pode ser classificada como a ação de um determinado atuador
em função de imagens coletadas em tempo real e devidamente processadas. A
implantação desse tipo de sistema requer estudo e aplicação de técnicas que
abrangem desde a estrutura do local, principalmente no que se refere à iluminação,
aquisição e processamento de imagens, até o controle do atuador final. Segundo a
VDMA (Verband Deutscher Maschinen und Anlagenbau), os continentes Americano
e Asiático em 2011 apresentaram um aumento significativo nos negócios de visão
computacional em relação à Alemanha e o continente Europeu, que são as maiores
potências neste segmento atualmente.
Mesmo com aumento de produtividade e com uma gama maior de produtos
industrializados, é comum ver pessoas em indústrias realizando tarefas de diversos
tipos, como é o caso da inspeção industrial, [1]. A visão humana tem alta capacidade
de adaptação ao meio e facilidade de interação em ambientes não estruturados,
15

reagindo rapidamente às variações do ambiente. Porém, os humanos possuem
limitações físicas e psicológicas, como por exemplo, fadiga e falta de atenção, além
dos riscos elevados que alguns processos podem causar às vidas humanas.
Enquanto sistemas de visão computacional avaliam múltiplas características em alta
velocidade e podem ser inseridos em ambientes de risco, necessitando apenas de
um ambiente com condições controladas.
Outro grande desafio enfrentado em ambientes industriais é a quantidade de
sensores utilizados para um único processo. O uso de vários sensores para o
posicionamento correto do produto acaba gerando uma quantidade elevada de
variáveis a serem analisadas.
Este trabalho apresenta um sistema capaz de capturar imagens com o uso de
uma webcam comum instalada em um ambiente estruturado, as informações destas
serão processadas em tempo real de maneira que seja possível extrair as
informações pertinentes ao objeto. Baseado nessas informações será feita a
integração do sistema da imagem com o controle de trajetória de um manipulador
robótico antropomórfico didático com três graus de liberdade. Para tanto, serão
utilizadas ferramentas incorporadas ao ambiente de computação Matlab®, que
auxiliarão no desenvolvimento da estrutura do processamento de imagens, de
maneira a identificar objetos de cor azul ou vermelha e no cálculo da cinemática
inversa, que irá guiar o manipulador robótico até a peça.
16

2

FUNDAMENTAÇÃO TEÓRICA

2.1

VISÃO COMPUTACIONAL

Visão computacional, também conhecida como visão de máquina é
responsável por extrair informações e características importantes de uma imagem
que tem como principal objetivo auxiliar na tomada de decisões inteligentes feitas
por uma máquina. Esse tipo de processamento de imagens está enquadrado no
nível alto. Visão de alto nível se refere a processos que tendem simular o raciocínio,
utilizando-se de métodos de inteligência artificial. Por outro lado, visão de baixo nível
não necessita de inteligência, reage de forma automática ao processo [12].
Segundo [10], o sistema de visão computacional pode ser dividido em cinco
partes, conforme é apresentado no fluxograma (Figura 1).

Fonte: [10]

Figura 1 – Passos da visão computacional.
17

A.

Sistema óptico: Direciona e dimensiona os feixes luminosos emitidos

pelo objeto para o sensor óptico;
B.

Sistema de Iluminação: Desempenha papel muito importante, pois será

responsável por projetar luz sobre o objeto, que em geral não emitem luz própria
necessária para sensibilizar o sensor óptico;
C.

Sistema de Aquisição: Responde pela tradução do sinal luminoso do

objeto para um sinal elétrico que possa ser identificado pelo processamento;
D.

Sistema de Processamento: Toma as decisões baseado nos sinais

recebidos do sensor;
E.

Sistema de Atuação: Faz a atuação sobre o ambiente que se encontra

o objeto de estudo, baseado em informações fornecidas pelo sistema de
processamento;
F.

Sistema de Transmissão: Transferência dos dados capturados do

sistema de aquisição para o sistema do processador, bem como os sinais de
comando do sistema processador para o sistema óptico, de iluminação, aquisição e
atuação.

2.2

COR

A cor é a luz que percorre o espaço, a natureza dual da luz é definida como
um comportamento de onda e de partícula. O comportamento da luz como onda é
uma radiação eletromagnética que possui uma distribuição espectral de potência
para cada comprimento de onda, [23].
O olho humano é caracterizado por dois sensores, os Bastonetes, sensíveis a
todos os comprimentos de onda ponderados, não possibilitando a distinção de
cores, sendo estes responsáveis por enviar a informação de luminância ao cérebro,
e os Cones que são menos sensíveis à luz, mas permitem a distinção de cores. Este
último é responsável por enviar ao cérebro informação de crominância.
Os humanos percebem luz entre aproximadamente 380nm e 780nm. Luz de
380nm até 500nm parece azul, de 500nm a 600nm parece verde, e de
600nm a 780nm parece vermelho, [23].
18

Fonte: [23]

Figura 2 – Comprimento de onda no espectro eletromagnético.

A cor monocromática ideal possui apenas um único comprimento de onda. A
cor púrpura não é uma cor espectral, contém comprimentos de onda bem próximos a
380nm e outros bem próximos a 780nm. A luz branca possui todos os comprimentos
de onda com energia máxima, [23].
A cor pode ser representada em quatro universos distintos, conforme indica a
Figura 3.

Fonte: [23]

Figura 3 – Representação da cor.

A codificação da cor é representada por 1 byte para cada componente
permitindo 28 bits resultando em 256 possibilidades, assumindo valores de 0 a 255.
Desta forma as três componentes fundamentais das cores totalizam em 2 24 bits, ou
16 milhões de possibilidades. A capacidade humana de percepção é de
aproximadamente 400 mil cores diferentes ou 219 bits, [23].
19

2.2.1 O Modelo RGB

Todos os objetos que emitem luz visível são percebidos pelo olho humano
através da soma das cores espectrais emitidas, esse processo é a combinação
variável em proporção de componentes monocromáticos nas faixas espectrais
associadas às sensações de cor verde, vermelha e azul, que são responsáveis pela
formação de todas as demais cores, [16].
As cores verde, vermelha e azul formam o modelo RGB que é baseado em
um sistema de coordenadas cartesianas. Segundo [15], o modelo RGB pode ser
representado por um cubo como mostra a Figura 4, onde três vértices são as cores
primárias e os outros três as cores secundárias, o vértice junto à origem é preto e o
mais afastado da origem representa a cor branca.

Fonte: [15]

Figura 4 – Representação do Modelo RGB.

Os níveis de cinza se estendem através de uma linha diagonal do cubo que
sai da origem até o vértice mais distante. A faixa de valores de níveis de cinza
geralmente é representada de 0 a 1 ou de 0 a 255, para cada cor do modelo RGB.

2.2.2 O Modelo YIQ

O modelo YIQ se baseia na separação dos sinais de cor RGB em uma
componente de luminosidade (Y) e duas componentes de cromaticidade (I e Q). A
20

transformação do modelo RGB para o sistema YIQ é dada pela multiplicação das
matrizes ilustradas pela Figura 5.

Fonte: [15]

Figura 5 – Matriz de conversão do modelo RGB para YIQ.

O sistema YIQ é usado em transmissão de vídeo, que são representados por
95% de luminância e 5% de crominância. Isso é possível devido à menor
sensibilidade do olho a variações de crominância.

2.2.3 O Modelo HSI

No modelo HSI de cores a componente de intensidade I é retirada da
informação de cor da imagem e as componentes de matiz e saturação são
relacionados com a percepção que os humanos têm das cores, sendo a matiz
responsável por descrever a cor pura e a saturação apresenta um grau de diluição
de uma cor pura por luz branca. Segundo [11], o modelo HSI é uma ferramenta
muito indicada para o desenvolvimento de algoritmos de processamento de imagens
baseado em algumas propriedades do sistema visual humano, como por exemplo,
fazer a detecção automática do amadurecimento de frutas e vegetais por imagem e
inspeção de qualidade de produtos coloridos.

2.3

PROCESSAMENTO DE IMAGENS DIGITAIS

O processamento digital de imagens é responsável por fazer operações do
tipo restauração e realce em uma determinada cena, procedimentos estes que
geralmente são expressos por meio de algoritmos. Segundo [11], o processamento
de imagens é caracterizado por soluções específicas, assim, técnicas que funcionem
21

bem em uma área podem se mostrar totalmente inadequadas em outra. O que a
disponibilidade de hardware e software faz é fornecer um ponto de partida muito
mais avançado que há alguns anos atrás.
Quando uma imagem é processada as informações podem ser extraídas mais
facilmente, podendo ser dividida em dois tipos de informação, a visual que,
compreende aquilo que pode ser visualizado na tela de um computador e descritiva
que é a referência matemática dos objetos visualizados. O sistema visual humano é
extremamente desenvolvido, processa e extrai informações de imagens a todo o
momento e ao inserir máquinas neste contexto o nível de complexidade é elevado,
tornando um sistema totalmente dependente da aplicação envolvida, não existindo
soluções generalistas, [22] [23].
O processamento de imagens utiliza uma matriz de dados para armazenar a
informação de cor em cada ponto da imagem, o sistema de coordenadas pode ser
uma grade de números inteiros que descrevem a posição na matriz, podendo ser
realizado no domínio do espaço ou frequência, [23]. A técnica de detecção de
limiares que será abordada posteriormente é umas das principais para segmentação
de informação, onde a parte de interesse da imagem é realçada. A Tabela 1
apresenta os tópicos que devem ser abordados na compreensão de tratamento de
imagens digitais.
Tabela 1 – Tópicos para processamento de imagens.

ETAPAS PARA PROCESSAMENTO DE IMAGENS
Aquisição da Imagem

Amostragem e Armazenamento

Melhoramento

Pré-tratamento digital da imagem

Segmentação da informação

Identificação do objeto de interesse

Parametrização

Determinação da grandeza dos objetos

Reconhecimento
Análise quantitativa e aplicação de
ferramenta a outras áreas da ciência

Classificação dos objetos
Associação das grandezas medidas ao
problema

Fonte: do Autor
22

2.3.1 Aquisição de imagens

O processo de conversão de uma cena real tridimensional para uma imagem
analógica denomina-se aquisição de imagens. Os sensores mais difundidos
atualmente para aquisição de imagens são o CCD (Charge Coupled Device –
Dispositivo de Carga acoplado) e o CMOS (Complementary Metal Oxide
Semicondutor – Semicondutor de Óxido Metálico Complementar).
O sensor CCD consiste em uma matriz de células semicondutoras
fotossensíveis (matriz de sensores) que atuam como capacitores, armazenando
carga elétrica proporcional à energia luminosa incidente. O sinal elétrico produzido é
captado por circuitos eletrônicos que produzem um Sinal Composto de Vídeo (SCV)
analógico e monocromático, [9]. Por outro lado, o sensor CMOS faz a leitura digital
diretamente com um único sensor, estes são fabricados em processo semelhante ao
de microprocessadores. Os elementos fotossensíveis dos sensores CMOS estão
diretamente acoplados em resistores, permitindo uma contínua transformação da
quantidade luminosa recebida em um sinal elétrico proporcional, [10]. A tecnologia
do CMOS tem evoluído rapidamente, por isso alguns equipamentos profissionais
compensam a menor sensibilidade do CMOS.

2.3.2 Amostragem e Quantização

Para que uma imagem possa ser processada de forma digital ela precisa ter
sua função

digitalizada tanto espacialmente quanto em amplitude. A

digitalização das coordenadas espaciais

é denominada amostragem da

imagem e a digitalização da amplitude é chamada de quantização, [11].
A amostragem consiste em tomar a informação contínua e analógica do sinal
a distâncias equidistantes ao longo dos eixos vertical e horizontal

da imagem,

uma vez amostrado o plano têm se uma matriz de valores que representa a cor,
enquanto a quantização extrai os valores de intensidade luminosa identificados nos
pontos amostrados.
O processo de amostragem e quantização de uma imagem está intimamente
ligado à resolução da imagem produzida. Quanto maior o número de pontos
23

amostrados na imagem, maior será a resolução espacial desta. Do mesmo modo
que, quanto maior o número de níveis de intensidade luminosa considerados na
imagem para representar a tonalidade de um ponto amostrado, maior será a
resolução de tonalidades da imagem. Assim a organização de uma imagem pode ser
representada facilmente por uma estrutura matricial, onde o número de pixels das
linhas e colunas da matriz é determinado pela amostragem do sinal, e o valor
numérico dos elementos é extraído da quantização, [10].

Fonte: [23]

Figura 6 – Processo de discretização da imagem.

2.3.3 Resolução espacial de imagens

Quando a imagem é digitalizada se torna adimensional, em pixels, sua
qualidade pode ser medida conhecendo-se a razão entre o número destes. A Figura
7 apresenta duas imagens com tamanhos reais iguais e com resoluções (pixels)
diferentes, como o número de pixels é diferente, na tela também aparecerão com
tamanhos diferentes, [23].
24

Fonte: [23]

Figura 7 – Imagens com mesmo tamanho e resolução diferente.

Se duas imagens diferentes em tamanhos reais são capturadas com
resoluções diferentes de tal forma que gerem imagens digitais com o mesmo número
de pixels, quando visualizadas no monitor aparecerão com o mesmo tamanho. A
Figura 8 apresenta as imagens proporcionais ao seu tamanho original capturadas
em resoluções diferentes.

Fonte: [23]

Figura 8 – Imagens com tamanho diferentes e resolução igual.

Para realizar alguma medida sobre os objetos contidos na imagem surge
outro parâmetro, a escala. Pode-se defini-la matematicamente idêntica a resolução,
só que as unidades serão as mais variadas possíveis. Medem-se algumas distâncias
reais na imagem digital e calcula-se a média das razões entre distância e número de
pixels, obtendo-se a escala. A partir desse momento outras distâncias podem ser
feitas na imagem com qualidade aceitável. Se os objetos não estão em um mesmo
plano, as medidas são muito mais complexas e envolvem transformações projetivas,
[23].
25

2.3.4 Vizinhança e Conectividade

O pixel é geralmente representado como um quadrado preenchido com uma
cor que está ao seu centro, é também um elemento de dimensões finitas na
representação de uma imagem digital. Semelhante a um tabuleiro de xadrez a
organização de uma imagem sob a forma de uma matriz é feita em uma simetria
quadrada, facilitando a implementação eletrônica, [23] [24]. Contudo este tipo de
organização provoca dificuldade nas técnicas de processamento, um pixel não
apresenta as mesmas propriedades em todas as direções, possui 4 vizinhos de
borda e 4 vizinhos de diagonal, forçando definir o tipo de conectividade que será
trabalhada. A conectividade entre pixels estabelece quando possuem a mesma
propriedade para pertencer à mesma região ou ao mesmo objeto.
O

método

coordenadas

utilizado

para

definir

uma

entre

pixels

de

é usar uma sub-imagem quadrada ou retangular centrada em

, [12]. Um pixel qualquer denominado
verticais com coordenadas

,

chamada 4-vizinhança. As coordenadas
e

vizinhança

possui vizinhos horizontais e
,

e
,

representam os quatro vizinhos diagonais de

para a
,
. A união da 4-

vizinhança com os vizinhos diagonais formam o conjunto 8-vizinhança que engloba
todos os pixels vizinhos de “p”, como mostra a Figura 9, onde

.

Fonte: [10]

Figura 9 – Representação de vizinhança.

O conceito de vizinhança também pode ser aplicado em imagens
tridimensionais, onde os elementos da matriz são chamados de “voxel”. A definição
26

de vizinhos é dada de acordo com os “voxels” que compartilham fases, arestas ou
vértices, correspondendo a vizinhanças de 6, 18 e 26 (Figura 10).

Fonte: [25]

Figura 10 – Representação de vizinhança tridimensional.

Para estabelecer se dois pixels estão conectados é preciso detectar se eles
são adjacentes e se seus níveis de cinza satisfazem critérios de similaridade, [11]
[12]. A conectividade pode ser estabelecida por meio de três critérios:
A.

4-conectividade: Um par de pixels vizinhos é dito 4-conectado se eles

possuem um lado em comum;
B.

8-conectividade: Um par de pixels vizinhos é dito 8-conectado se eles

possuem um lado ou um canto em comum;
C.

m-conectividade: Abreviação de conectividade mista. Consiste em uma

modificação da 8-conectividade, visando eliminar possíveis duplicidades de conexão
entre dois pixels. Na Figura 11 é apresentada a conectividade entre os pixels, as
linhas representam o caminho entre aquele pixel e os seus vizinhos.

Fonte: [11]

Figura 11 – (a) Distribuição de pixels. (b) 8-conectividade. (c) m-conectividade
27

2.3.5 Histograma

As informações estatísticas da distribuição de cores de uma imagem podem
ser demonstradas através de manipulação de histogramas, uma das técnicas mais
conhecidas para tais análises, [10].
Através de um histograma é possível visualizar o percentual de pixels em uma
imagem que apresentam um determinado nível de cinza, valores que normalmente
são representados por gráficos, que fornecem para cada nível de cinza o percentual
de pixels correspondentes à imagem, desta forma é possível obter informações
quanto à qualidade da imagem, como contraste e brilho médio, [15].
Para análise de um histograma é necessário avaliar três parâmetros, a
tendência central que é a distribuição de frequências de brilho da imagem, a
variabilidade da distribuição de frequências de uma variável e a forma do
histograma, que informa a concentração dos dados.
A distribuição é o valor mais frequente da variável, chamado de moda, que
corresponde à barra mais alta e do valor da média da variável amostrada. A média
está relacionada com uma grandeza que indica algo sobre o nível de refletância dos
alvos presentes na cena. Se os valores digitais estão concentrados, a imagem
mostra pouca variabilidade de brilho. Estatisticamente, a variabilidade é a medida da
variância, a qual dá uma ideia de qual é o contraste da imagem. O contraste
depende do comportamento espectral dos alvos, e varia com o comprimento de
onda, [25].
A classificação de histogramas nas bandas, unimodal, bimodal, simétrico e
assimétrico são definidos pelos parâmetros citados acima. Na Figura 12, em (a), o
histograma apresenta uma forma simétrica com média baixa; em (b), a média é alta;
(c) apresenta uma imagem com uma distribuição mais equilibrada de tons de cinza
escuros e claros em relação à média centrada próxima a 128. No caso (d), o
histograma tem uma forma bimodal e em (e), o histograma apresenta uma forma
assimétrica.
28

Fonte: [25]

Figura 12 – Histograma de imagens.

2.3.6 Limiarização

A técnica de detecção de limiares é responsável por separar o objeto de
interesse do restante da imagem baseado em uma análise da similaridade de níveis
de cinza ou níveis de intensidade luminosa. Operações de limiarização simples
correspondem à bipartição do histograma, fazendo a conversão de pixel cujo tom de
cinza é maior ou igual a um determinado range de valores limiar brancos e os
demais em pretos, tendo assim o nível de intensidade luminosa ao qual se deseja
realizar o ponto de corte, também conhecido como binarização, [10] [15].
Em um modelo RGB existe um range de valores de 0 a 255 tons de cinza,
para cada componente. Tomando como exemplo a componente azul, se um limiar
“T” for definido entre 100 e 150 todas as tonalidades abaixo de 100 e acima de 150
tornam-se informações de fundo da imagem, enquanto os valores entre 100 e 150
se tornam a informação correspondente ao objeto de cor azul, podendo definir o
valor “0” para o fundo da imagem e “1” para o objeto azul, preto e branco
respectivamente. A Figura 13 ilustra a técnica de detecção de limiares simples, como
descrito acima.
29

Fonte: [10]

Figura 13 – Técnica de detecção de limiares simples. (a) Imagem limiar. (b) Histograma e limiar. (c)
Imagem binarizada.

Em imageamento colorido todos os níveis de intensidade podem estar
presentes. Para fazer a detecção dos múltiplos limiares é necessário definir uma
faixa de valores de intensidade luminosa para cada entidade da imagem. Uma que
contém dois valores de limiar (azul e vermelho), define-se que
correspondem ao fundo da imagem, valores em que azul >
correspondem a um determinado objeto e

< azul
> vermelho

> vermelho outro objeto da cena.

Mais valores de limiar podem ser definidos em uma mesma cena, sendo as técnicas
de segmentação baseadas em regiões mais adequadas, [10] [11].

2.4

TRANSFORMAÇÕES GEOMÉTRICAS

O principal efeito da transformação geométrica é alterar a posição espacial
dos pixels que compõe a imagem, [28]. De maneira resumida consiste em operações
matemáticas realizadas através de vetores, permitindo alterar uniformemente o
aspecto de um modelo já armazenado no computador. Sendo estas alterações
responsáveis por alterar os aspectos que a figura irá assumir e não a estrutura do
mesmo, [29].
As transformações geométricas podem ser definidas em três tipos
fundamentais: translação, rotação e escala. A translação é utilizada para definir a
posição de um objeto ou cena. Matematicamente, esta operação consiste em
adicionar constantes de deslocamento a todos os pontos, ou seja, trocando o objeto
ou cena de lugar (Figura 14).
30

Fonte: [28]

Figura 14 – Transformações Geométricas – Translação.

Um ponto de coordenadas (X, Y e Z) para um nova posição usando-se o
deslocamento (X’, Y’ e Z’) pode ser representada pelo uso da Equação 2.1, sendo
(X”, Y” e Z”), as coordenadas do novo ponto.

(2.1)

Para deslocar a imagem no plano, basta somar as coordenadas cartesianas
de cada um de seus pontos em um mesmo vetor (X”, Y”), conforme Equação 2.2,
[28] [29].

(2.2)

A transformação geométrica de escala é utilizada para definir a escala exibida
do objeto ou cena. A operação consiste em multiplicar um valor de escala por todos
os pontos do objeto que terá seu tamanho ampliado ou reduzido. No caso de se
aplicar um fator de escala negativo, o objeto terá os sinais de suas coordenadas
invertidos, gerando como resultado o seu “espelhamento” no eixo que teve o fator de
escala negativo, [29].
A ampliação dos pixels consiste em duplicar os valores destes na direção X e
Y ou em ambas. Ao expandir a imagem por um fator 2 cada pixel é copiado 4 vezes,
resultando em 3 vizinhos (Figura 15). Para reduzir as dimensões da imagem de um
fator de 2 deve-se aplicar o processo inverso, [28].
31

Fonte: [28]

Figura 15 – Transformações Geométricas – Escala.

O espelhamento inverte o sentido dos ângulos preservando seu valor
absoluto. O objetivo é refletir a imagem em torno do eixo X ou Y(Equação 2.3), [28].

(2.3)
Uma imagem pode ser rotacional de um ângulo arbitrário, tanto no sentido
horário quanto no anti-horário (Figura 16). O resultado é um deslocamento que
preserva a distância entre o ponto e o referencial. A operação matemática é
realizada por uma composição de cálculos utilizando o seno e cosseno do ângulo de
rotação a todas as coordenadas de cada ponto que compõem o objeto ou cena.

Fonte: [28]

Figura 16 – Transformações Geométricas – Rotação.

A rotação de cada ponto (X, Y) de uma imagem por um ângulo arbitrário
mapeará este ponto na localidade de coordenadas (X”, Y”), através da equação 2.4.

(2.4)
32

2.5

CALIBRAÇÃO

A calibração de um sistema de visão computacional determina elementos que
correlacionam medidas dos objetos do mundo real que contém informações
tridimensionais com medidas atuais na imagem bidimensional. Fazendo a tradução
dos pixels de uma imagem para uma unidade de medição padrão conhecida, [10]
[13].
A calibração pode ser classificada como intrínseca e extrínseca. Segundo [13]
pode-se dizer que a calibração intrínseca é feita a partir das características
geométricas internas da câmera tais como, distância focal, coordenadas do centro
da imagem, tamanho do pixel e coeficientes de distorção radial, tangencial, entre
outros. Enquanto a calibração extrínseca é caracterizada pelas informações
geométricas externas como, posição e orientação tridimensional do sistema da
câmera em relação a um sistema de coordenadas fixo, tomado como referência.
Quando a calibração é retratada para sistemas de visão aplicado na robótica o
objetivo é determinar a relação entre o sistema de coordenadas da câmera e o
sistema de coordenadas do manipulador robótico.

2.6

ILUMINAÇÃO

A iluminação é fundamental para que a cena capturada pela câmera tenha
qualidade o suficiente para o processamento, uma vez que o objeto não emite luz
própria e que, a câmera captura luz refletida sobre a cena observada.
Existem muitas soluções de visão que requerem inclusive a aplicação de luz
incidente em faixas não visíveis do espectro luminoso, como por exemplo,
as imagens de tomografia médica, algumas imagens astronômicas e
imagens infra-vermelho de curvas de calor, [10].

Existem diversas técnicas de iluminação, direcional, multidirecional, luz de
fundo, difusa, estruturada, entre outras. O emprego de cada uma destas irá
depender do grau de realce que precisa ser obtido no objeto. Segundo [10], um
projeto de iluminação de um sistema de visão é composto do tamanho exato do
campo de visão, fonte luminosa e a geometria, que diz respeito à posição da fonte
33

em relação ao objeto e sensor, eficácia e características necessárias para realçar as
partes desejáveis do objeto de forma homogênea e constantes ao longo do tempo.

Fonte: [12]

Figura 17 – Exemplos de Técnica de Iluminação.

A.

Multidirecional: Emissão de diversos feixes luminosos provindos de

diferentes pontos em relação ao centro do objeto, gerando uma iluminação mais
uniforme de toda sua superfície, as vantagens estão na redução de sombras,
intensidade e uniformidade, em contrapartida pode gerar muito brilho e os custos
são elevados;
B.

Luz de Fundo: O posicionamento da fonte luminosa está atrás do

objeto. Útil para aplicações em metrologia e análise de objetos translúcidos. Propicia
ótimo contraste para detecção de bordas e análise de objetos translúcidos. Como
desvantagem elimina os detalhes superficiais do objeto, por não serem iluminados;
C.

Difusa: Consiste em projetar iluminação perpendicularmente ao eixo

óptico através de um difusor. Suas vantagens estão na redução de sombras e brilho,
apresentação de iluminação uniforme das superfícies planas e desvantagens, na
limitação a pequenas distâncias de trabalho, produz pouca intensidade luminosa,
além de ser de difícil instalação e ter custos mais elevados;
D.

Estruturada: Produz uma linha luminosa sobre a superfície do objeto,

possibilitando uma análise das características geométricas da superfície do objeto
ao movimentar esta linha sobre o mesmo. Vantagens: Destaca informações de
34

relevo e geometria das superfícies, muito usada em aplicações em 3D.
Desvantagens: Requer fontes potentes de iluminação, de difícil calibração e
complexo sistema de movimentação do feixe luminoso, [10].

2.7

COMPONENTES DE UM ROBÔ INDUSTRIAL

Segundo [21], um robô industrial é formado pela integração dos seguintes
itens:
A.

Manipulador Mecânico: O manipulador mecânico é constituído de elos

conectados entre si por meio de juntas. As juntas são responsáveis por permitir
flexibilidade ao robô, com movimentos lineares ou rotacionais.
O número de juntas define quantos graus de liberdade o robô possui.

Fonte: [21]

Figura 18 – Representação de elos e juntas de um robô.

B.

Atuadores: São componentes responsáveis por converter energia do

tipo hidráulica, pneumática e eletromagnética em potência mecânica;
C.

Sensores: São responsáveis por enviar informações como posição e

velocidade dos elos em função do tempo e informações de torque, força e visão
computacional como meio de interação do robô e o ambiente;
D.

Efetuador: Elemento do tipo garra ou ferramenta conectado ao robô e

ao meio que o cerca.
35

2.8

CLASSIFICAÇÃO GEOMÉTRICA DE ROBÔS INDUSTRIAIS

A classificação geométrica dos robôs descreve o movimento que ele executa,
definidas quanto ao tipo de junta (rotação, translação) que são comumente
denominados sistemas geométricos coordenados, [19].
A.

Robô Antropomórfico: Tipo de configuração que permite maior

flexibilidade ao robô é composto de no mínimo três juntas de rotação;
B.

Robô de Coordenadas Cartesianas: Constituído de três juntas

prismáticas com movimentos de translação. O volume de trabalho gerado é
retangular;
C.

Robô

de

Coordenadas

Cilíndricas:

Formado

por

duas

juntas

prismáticas e uma de rotação, movimentos de duas translações e uma rotação. O
volume de trabalho gerado é cilíndrico;
D.

Robô de Coordenadas Esféricas: Uma junta prismática e duas de

rotação constituem o robô, movimentos de uma translação e duas rotações. O
volume de trabalho gerado é aproximadamente uma esfera;
E.

Robô SCARA: Muito usado na montagem de placa de circuitos

eletrônicos, formado por duas juntas de rotação dispostas em paralelo para se ter
movimento num plano e uma junta prismática perpendicular a este plano, com
movimentos de uma translação e duas rotações. O volume de trabalho gerado é
aproximadamente cilíndrico;
F.

Robô Paralelo: Configuração tipo plataforma e mecanismos em forma

de cadeia cinemática fechada. Seu volume de trabalho é semi-esférico, [21].
36

Fonte: [21]

Figura 19 – Volume de trabalho de robôs industriais. (a) Robô antropomórfico. (b) Robô cartesiano.
(c) Robô de coordenadas cilíndricas. (d) Robô de coordenadas esféricas. (e) Robô SCARA.

2.9

CINEMÁTICA DE UM BRAÇO ROBÓTICO

O movimento de um corpo ou conjunto de corpos levando em consideração a
ausência de sua massa e forças atuantes sobre estes, pode ser definido como
cinemática, [19].
O modelo geométrico de um robô expressa a posição e orientação de um
elemento terminal em relação a um sistema de coordenadas fixo, em relação à base
[20], em outras palavras, uma das extremidades (base) é fixa, enquanto a outra é
livre para se movimentar no espaço.
Um manipulador é formado por um conjunto de elos conectados por
articulações, sendo que cada elo possui um grau de liberdade, translação ou
rotação. Em 1955 Jacques Denavit e Richard Hartenberg propuseram uma forma
sistemática de descrever a geometria de um conjunto de elos com “N” graus de
liberdade.
37

Fonte: [20]

Figura 20 – Notação de Denavit-Hartenberg.

Na Figura 20 é possível notar que um eixo de uma junta estabelece a
conexão de dois elos. Estes eixos de juntas devem ter duas normais conectadas
neles, uma para cada um dos elos. A posição relativa destes dois elos conectados
(elo j-1 e elo j) é dada por “dj”, que é a distância medida ao longo do eixo da junta
entre suas normais. O ângulo de junta “θj” entre as normais é medido em um plano
normal ao eixo da junta.
Um elo “j” só pode estar conectado a dois elos no máximo. Do ponto de vista
cinemático estes mantêm uma configuração fixa entre suas juntas que podem ser
definidos por dois parâmetros “aj” e “αj”, chamados respectivamente, comprimento e
ângulo de torção do elo “j”. Desta forma (aj, αj) determinam a estrutura dos elos e os
parâmetros da junta, enquanto (dj, θj) definem a posição relativa de elos vizinhos
[21].

2.9.1 Cinemática Direta

A posição de um manipulador no espaço onde se encontra é descrita pela
cinemática direta. A posição e velocidade podem ser obtidas a partir da matriz de
transformação homogênea que por sua vez é estabelecida a partir dos parâmetros
de DH (Denavit – Hartenberg).
38

Segundo [19], um ponto qualquer “P” expresso ao
coordenadas, pode ser expresso no

sistema de

sistema de coordenadas como

com os seguintes itens:
A.
eixo

Rotação no eixo

de um ângulo

alinhando o eixo

com o

;
B.

eixos

Translação de uma distância de ai ao longo do eixo
e

C.

na coincidência;

Translação ao longo do eixo

duas origens com o eixo
D.

trazendo os

a uma distância de

trazendo as

na coincidência;

Rotação no eixo

de um ângulo de

para trazer os dois sistemas

de coordenadas na coincidência;
As operações citadas acima podem ser descritas por uma matriz de
transformação homogênea de rotação – translação sendo o produto das quatro
matrizes o resultado da matriz homogênea composta, também conhecida como
matriz de transformação de DH, conforme é apresentado na Equação 2.5.

[

][

][

][

]
(2.5)

[

]

Onde:

e

= Constantes;

= Variável de junta para uma junta rotativa.
As juntas prismáticas possuem uma característica diferente, portanto sua
matriz de transformação é representada pela Equação 2.6.
39

[

]

(2.6)

Onde:
e α = Constantes;
= Junta prismática variável;

2.9.2 Cinemática Inversa

As juntas de um robô precisam ter um movimento de referência (angular) para
um dado movimento de referência do elemento terminal, em outras palavras,
encontrar os ângulos de juntas partindo das referências do objeto a ser capturado
pelo manipulador.
Os métodos analíticos e numéricos iterativos trazem soluções para obtenção
da inversão do modelo geométrico. Quando a definição do modelo de DH traz a
maioria de seus resultados nulos, ou seja, quando se tem um robô simples, o
método analítico é mais indicado, pois apresenta todas as soluções possíveis. O
método numérico iterativo conduz para uma solução entre todas as existentes.
Dentre os métodos numéricos iterativos tem-se o método recursivo, que faz uso do
cálculo do modelo geométrico direto da matriz jacobiana inversa, [19].

2.10 POTENCIÔMETRO

O potenciômetro é uma resistência elétrica com precisão elevada que possui
três terminais, sendo dois destes ligados a duas entradas de tensão do circuito
elétrico e o terceiro terminal, ligado à saída do circuito, é ajustável ao longo de um
elemento da resistência situado entre os dois terminais fixos, dividindo deste modo a
resistência em duas componentes (Figura 21). O potenciômetro é utilizado para
variar a tensão aplicada no circuito, uma vez que a posição do terminal móvel
determina qual a porcentagem da tensão de entrada que é aplicada neste.
40

Fonte: [30]

Figura 21 – Potenciômetros rotativos.

O eixo indicado na Figura 21 corresponde ao cursor móvel do potenciômetro.
Neste caso, o potenciômetro possui uma volta, o que significa que 100% da
resistência correspondem a variar o cursor em 270 graus. Existem outros
potenciômetros rotativos que permitem que seja dada mais de uma volta, [30].

2.11 MOTOR DE PASSO

O motor de passo é um dispositivo eletromecânico que tem por objetivo
converter pulsos elétricos em movimentos mecânicos gerando variações angulares
discretas. A rotação dos motores é diretamente relacionada aos impulsos elétricos
que são recebidos. A velocidade de giro do motor é dada pela frequência de pulsos
recebidos e o tamanho do ângulo rotacionado é diretamente relacionado com o
número de pulsos aplicados, [31].
Este tipo de motor é recomendado para tarefas que necessitem de precisão,
podendo ser usado em aplicações onde é necessário controlar fatores tais como:
ângulo de rotação, velocidade, posição e sincronismo. Ao contrário da maioria dos
motores elétricos, este não exerce torque elevado, é indicado principalmente para
impressoras, scanners, robôs, câmeras de vídeo, automação industrial entre outros
dispositivos eletrônicos que requerem precisão, [31].
Os motores de passo possuem um número fixo de polos magnéticos que
determinam o número de passos por revolução, os mais comuns possuem de 3 a 72
passos, significando que ele leva de 3 a 72 passos/revolução para completar uma
volta. Quanto a sua estrutura, podem ser apresentados alguns tipos:
41

A.

Relutância Variável: Possui um motor de ferro com múltiplos dentes e

um rotor com enrolamentos. A rotação é iniciada quando os dentes do estator são
atraídos para os polos deste energizado;
B.

Imã Permanente: Baixo custo e resolução, este motor possui 48-24

passos/revolução, seu rotor não possui dentes e é construído com imãs
permanentes. Se comparado ao motor de relutância variável este motor possui uma
melhor característica de torque;
C.

Híbrido: O custo deste motor é mais alto que do motor de imã

permanente por possuir maior desempenho no que se trata de resolução de passo,
torque e velocidade. O rotor é multi-dentado e contem um imã permanente ao redor
de seu eixo. Este possui 100-400 passos por volta, [31].

Fonte: [31]

Figura 22 – Tipos de motores de passo.
42

3

METODOLOGIA
O Fluxograma apresentado na Figura 23 exemplifica os passos que serão

descritos na metodologia proposta neste trabalho.
INÍCIO
.
Colocar o robô

Escolha do objeto

Inicializa a câmera

na posição inicial

(azul ou vermelho)

para captura da

pré-definida.

via teclado.

imagem.

Capturar o objeto e

Processar a imagem

direciona-lo a uma

baseada na técnica de

posição pré-definida.

identificação de
limiares

Objeto certo

Enviar os valores de

mensagem sonora

potenciômetros para

ou na tela =

referência dos motores e

“OBJETO OK”

consequente
posicionamento do robô
ao objeto.

Encontrar o
centroide do objeto
identificado

Fazer a conversão de
radianos fornecida pela
cinemática inversa para

Realizar a transformação

graus e referência dos

dos pixels da imagem

potenciômetros.

para unidade conhecida
pelo robô (métrica).

Determinar os ângulos
de junta através da
cinemática inversa dada
à referência do objeto no
volume de trabalho.

Fazer a conversão da porta
Realizar a cinemática

paralela existente para

direta para obter a

serial. Realizar a

posição do robô no

comunicação do Arduino

espaço.

com Matlab .

Fonte: do Autor

Figura 23 – Fluxograma do processo

®
43

3.1

ESTRUTURA DO BRAÇO ROBÓTICO

A estrutura física do manipulador robótico bem como sua interface de
acionamento já estavam disponíveis para implementação da visão computacional,
resultado de um trabalho anterior [27], onde seu objetivo principal foi a construção
física do braço robótico, este trabalho leva como titulo Robô Didático Antropomórfico
Controlado via Matlab®.
O manipulador robótico possui uma estrutura com três eixos, o deslocamento
de cada um destes é realizado por motores de passo e sua referência de posição é
dada por potenciômetros. Através do cálculo de momento, de acordo com as forças
exercidas nas extremidades do braço, foi calculado o torque necessário dos motores
que ficariam acoplados ao ombro e ao cotovelo do mesmo [27]. O torque necessário
para o motor acoplado ao ombro foi elevado, pois o mesmo precisa exercer força
suficiente para suportar os dois eixos (ombro e cotovelo), necessitando de um torque
de 6.606 N/m, enquanto o cotovelo de 1.314 N/m. Todos os cálculos de momento
podem ser visualizados em [27]. Para o cotovelo foi adquirido um motor de passo
que suporta até 30 Kg.cm, ou 2.94 N/m, o suficiente para trabalhar com a primeira
parte do braço. Enquanto para o motor do ombro que possui um torque de 6,606
N/m, foi adquirido um motor reduzido, devido ao tamanho e custo. Este fornece 40
Kg.cm ou 3.922 N/m, podendo operar em pequenos intervalos até 60 Kg.cm ou 6
N/m. A Figura 24 apresenta os eixos com os motores acoplados, ombro a direita e
cotovelo a esquerda.
44

2

1

Fonte: [27]

Figura 24 – Vista frontal do braço robótico com os motores do cotovelo (1) e ombro (2).

O motor responsável pelo giro da base foi acoplado à uma polia de alumínio
ao eixo da base e sua transmissão foi feita por uma correia. Este motor está fixado
na parte inferior da mesa (Figura 25). A relação polia do motor x polia do eixo, foi de
2:1 para aumentar e garantir a força do motor no giro da base e também para
melhorar a precisão dos movimentos [27].

Fonte: [27]

Figura 25 – Motor responsável pelo giro da base.

Por se tratar de uma estrutura que passou por diversos testes de movimento,
a caixa de transmissão do segundo eixo foi danificada, sem reparação. Como
mencionado no trabalho [27] o peso que o segundo eixo teria que suportar era
elevado, sobrecarregando tanto o motor como o sistema de transmissão.
45

Segundo [27], É (sic) importante frisar, que a redução deste motor opera em
seu limite máximo, já que está sendo submetido a cargas mais elevadas
que o indicado, e talvez por conta disto a vida útil do mecanismo seja
reduzida em grandes proporções.

Devido a este problema uma nova estrutura foi elaborada a fim de dar
continuidade à metodologia proposta. Para tanto, foi desenvolvido um sistema de
transmissão com parafuso rosca sem fim, que é um tipo de engrenagem, onde o
movimento

circular

gerado

pelo

parafuso

movimenta

uma coroa

ou

um pinhão teoricamente sem fim, também foi trocado a estrutura do elo do cotovelo
por uma de acrílico, a fim de reduzir o peso. Na Figura 26 é apresentada a nova
estrutura.

Fonte: do Autor

Figura 26 – Nova estrutura do braço robótico.

Foram utilizados potenciômetros comuns lineares com resistência de 10KΩ
para posicionamento dos motores, estes foram montados em chapa de alumínio e
fixados a estrutura de cada eixo (Figura 27).
46

Fonte: [27]

Figura 27 – Potenciômetros.

A placa que controla os motores do braço robótico é da marca Toshiba® e
modelo TB6560AHQ, responsável por fazer o acionamento dos três motores de
forma simultânea via porta paralela do computador. Atualmente o controle de
acionamento, direção e movimento dos motores estão sendo feitos por este drive e o
Matlab®.
Inicialmente o controle dos motores era realizado através dos pinos da porta
paralela, Passo (STEP), Direção e Habilita. A placa drive utilizada para fazer o
controle dos motores não permite comunicação de outra maneira. No projeto citado
anteriormente

foram

descritos

problemas

em

relação

à

velocidade

de

processamento alcançada, devido ao uso de computadores com menor capacidade
para processar os dados executados no Matlab ®, não usando por completo o
desempenho dos motores. Neste contexto, o presente projeto utilizou de
comunicação via porta serial, onde o Arduino® ficou como interface entre a placa
drive de acionamento e o Matlab, por meio de sua comunicação serial. Para tanto,
foram utilizadas nove saídas digitais e o pino de aterramento deste, cada motor
utiliza três saídas digitais, (Step, Direção e Habilita). A Tabela 2 estabelece a relação
entre porta paralela e as saídas digitais do Arduino®.
47

®

Tabela 2 – Relação da porta paralela e as saídas digitais do Arduino .

FUNÇÃO
Step Y
Direção X
Habilita Z
Step Z
Direção Z
Direção Y
Habilita Y
Step X
Habilita X
GND

CONVERSÃO PORTA PARALELA PARA SERIAL
PORTA
DIGITAIS
PARALELA
ARDUINO
PINO 1
9
PINO 2
4
PINO 3
7
PINO 4
8
PINO 5
11
PINO 6
5
PINO 7
6
PINO 8
10
PINO 14
3
PINO 24
GND

Fonte: do Autor.

3.2

INTERFACE

Com as saídas digitais da placa de prototipagem Arduino® conectadas aos
respectivos pinos da porta paralela, foi possível estabelecer um protocolo de
comunicação serial, para realização desta tarefa foi utilizado o ambiente de
computação Matlab® e o ambiente de programação Arduino®.
Através do Arduino® e de seu ambiente de programação foram realizadas as
leituras das entradas analógicas, que recebe o valor dos três potenciômetros e envia
o comando para as saídas digitais, como finalidade de acionamento dos motores.
Uma média das entradas analógicas foi executada, a fim de trazer maior
confiabilidade da leitura. A Figura 28 ilustra a condição estabelecida para realizar a
média das entradas analógicas.
48

Fonte: do Autor

Figura 28 – Média das entradas analógicas.

A referência obtida pelo potenciômetro resultará no posicionamento do motor,
desta forma é preciso estabelecer uma condição que receba a leitura da posição do
potenciômetro e envie a posição desejada. Na Figura 29 é apresentada a rotina
responsável por acionar um dos motores em sentido horário e anti-horário, conforme
o posicionamento do potenciômetro no respectivo eixo.

Fonte: do Autor

Figura 29 – Sentido de giro e velocidade do motor.

Sendo
RX: Referência para fazer o sentido do giro;
DX: Direção do giro do motor;
SX: Velocidade do motor;
49

Se AX que é a leitura do potenciômetro no respectivo eixo for menor que a
referência fornecida, o motor faz o giro para um lado, senão para o outro lado. O
mesmo procedimento realizado para o eixo X é realizado no eixo Y e Z.

3.2.1 Comunicação Serial
Foi necessário criar dois bytes para receber e enviar os valores de cada
potenciômetro, que pode variar de 0 a 1023 (Figura 30).

Fonte: do Autor

Figura 30 – Criação da serial.

O código que recebe os valores desejados dos potenciômetros para
posicionamento do braço robótico está no ambiente de programação Matlab®,
conforme indicado na Figura 31.
50

Fonte: do Autor

®

Figura 31 – Comunicação serial Matlab .

Sendo:
XA, YA e ZA: Envia valores desejados para posicionamento do braço
robótico, com base nos valores dos potenciômetros;
“b” e “c”: Formam 2 bytes para enviar os valores de XA para a serial;
“d” e “e”: Formam 2 bytes para enviar os valores de YA para a serial;
“f” e “g”: Formam 2 bytes para enviar os valores de ZA para a serial;
XR, YR e ZR: Recebe a leitura das analógicas com o valor da posição dos
potenciômetros.
51

3.3

ACIONAMENTO DA BOBINA

Como a estrutura atual do braço robótico não possui efetuador final foi
necessário colocar uma bobina na extremidade do cotovelo a fim de imantar a peça
que já foi construída com uma chapa de ferro na parte superior.
A bobina utilizada possui 700 voltas de enrolamento e a corrente que esta
suportada é de aproximadamente 3A, [33]. Desta forma foi elaborado um circuito de
acionamento, onde foi utilizado um TIP 120, um resistor de 1KΩ e um diodo roda
livre, foi utilizada uma fonte de alimentação 5V/2,5A. A Figura 32 apresenta o circuito
responsável por fazer o acionamento.

Fonte: do Autor

Figura 32 – Circuito de acionamento da bobina.

Para acionamento foi feito uso da saída digital 12 do Arduino® e o pino de
GND. O comando responsável por ligar e desligar a bobina está incorporado ao
código de comando dos motores e comunicação serial (Figura 33).
52

Fonte: do Autor

Figura 33 – Código para acionamento da bobina.

3.4

PROCESSAMENTO DE IMAGENS

Para a aquisição e processamento de imagens foi desenvolvido um sistema
que captura uma foto e faz a sua detecção de limiares. A técnica de limiarização é
responsável por agrupar diferentes objetos e regiões da imagem conforme a
similaridade de tonalidades entre os mesmos. Através de uma amostra de imagem
de cor vermelha e outra de cor azul, foi possível identificar a intensidade luminosa
(níveis de cinza) de cada elemento RGB por meio do comando Imtool da toolbox
Image Processing do Matlab®, então foi elaborado um range de valores para
intensidade luminosa de cada cor e através da varredura de linhas e colunas da
matriz que compõe a imagem capturada foi possível identificar o exato local do
objeto desejado. Os comandos utilizados para realizar este procedimento são os
mesmos para ambas as cores, exceto pelo range de valores, que foi encontrado
através da intensidade luminosa de cada cor.
Com o comando getsnapshop do Matlab® foi feito a aquisição da imagem em
formato RGB, a partir da entrada vid (Figura 34).
53

Fonte: do Autor

Figura 34 – Aquisição da imagem em formato RGB.

A Figura 35 apresenta a rotina utilizada para fazer a detecção de limiares da
imagem. Quando encontrados valores de interesse na imagem capturada, que são
definidos pela intensidade luminosa de cada componente RGB, estes são
preenchidos com número “1” e o restante da imagem com o número “0”, branco e
preto respectivamente.

Fonte: do Autor

Figura 35 – Detecção de limiares da imagem em formato RGB.

Com o comando graythresh seguido de im2bw, da toolbox Image Processing
do Matlab® é possível obter os mesmo resultados da rotina citada acima, porém este
transforma a imagem em escala de cinza para depois fazer a limiarização, fugindo
de um dos objetivos do trabalho, que é fazer o reconhecimento das cores vermelho e
azul.
54

A imagem no modelo RGB é apresentada na Figura 36 – a, enquanto b
apresenta o resultado obtido pela rotina que faz a detecção de limiares da imagem,
transformando esta em binarizada.

Fonte: do Autor

Figura 36 – Imagem dos objetos de interesse. (a) Imagem no formato RGB. (b) Imagem binarizada.

Com o objeto de interesse identificado do restante da imagem, o próximo
passo foi encontrar o seu centro geométrico. Para tanto, foi realizado o
preenchimento de buracos na imagem binária, através do comando imfill do Matlab®.
O centroide do objeto foi encontrado através do comando regionprops, que é
responsável por encontrar diversas propriedades de uma imagem, tais como: área,
perímetro, centroide, orientação, entre outros. Neste trabalho foi utilizada somente a
propriedade que identifica o centroide (Centroid, 1-por-Q vector), descrito por dois
elementos, coordenada horizontal (x) e a coordenada vertical (y) do centroide. A
Figura 37 apresenta a rotina capaz de identificar o centroide através da imagem
binarizada.

Fonte: do Autor

Figura 37 – Localização do centroide do objeto.
55

As variações da iluminação no ambiente tornam os níveis de intensidade
luminosa das componentes RGB instáveis, variando conforme a intensidade de luz
no ambiente. A fim de minimizar tais perdas foi realizada a conversão do formato
RGB para YIQ, este modelo se baseia na separação dos sinais de cor RGB em um
sinal de luminosidade (Y), e dois sinais de cromaticidade ou diferença de cor (I Q). A
conversão foi realizada por meio do comando NTSC do Matlab®. Com a conversão
do formato é possível trabalhar com um range de valores diferente para cada objeto,
agora com as características de luminosidade e cromaticidade separadas em três
canais distintos. A rotina que realiza o procedimento é a mesma usada para o
modelo RBG, diferenciando apenas na conversão para YIQ e no range de valores
para cada cor (Figura 38).

Fonte: do Autor

Figura 38 – Conversão do modelo de cores RGB para YIQ.

A escolha do objeto foi feita via teclado, o usuário deve pressionar (1) para
escolher o objeto vermelho e (2) para escolher o objeto azul, conforme ilustra a
Figura 39.

Fonte: do Autor

Figura 39 – Escolha do objeto.
56

3.5

MODELAGEM CINEMÁTICA

A evolução no tempo das coordenadas das juntas de um robô representa o
modelo cinemático de um sistema articulado no espaço tridimensional. Para facilitar
a definição dos parâmetros associados a cada elo, ou também chamado de link, o
primeiro passo foi definir os sistemas de coordenadas para cada um destes. A
Figura 40 apresenta os sistemas de coordenadas referentes a cada junta de 1 a 3.

Fonte: [do Autor]

Figura 40 – Sistema de coordenadas para o procedimento de D-H.

A simulação da trajetória de movimentos do braço robótico, foi feita através da
Toolbox Robotics do Matlab®. Considerando estes sistemas de coordenadas de
acordo com a análise de posicionamento e seguindo o algoritmo proposto por
Denavit-Hartenberg obtêm-se os parâmetros cinemáticos para cada link, como
ilustrado na Tabela 3.
Tabela 3 – Parâmetros de Denavit-Hartenberg.

LINK1
LINK2
LINK3
Fonte: Do autor

THETA
0
0
0

DI
0.47
0
0

AI
0
0.375
0.300

ALPHA
pi/2
0
0

R/P
0
0
0

Nome
BASE
OMBRO
COTOVELO
57

A rotina que permite obter a posição do objeto desejado no espaço é
apresentada na Figura 41. O comando ikine da toolbox Robotics fornece a posição
dentro do volume de trabalho para cada link do braço robótico, com base nas
informações das coordenadas X, Y e Z fornecidas em unidade métrica.

Fonte: [do Autor]

Figura 41 – Configuração da trajetória do braço robótico.

A função “Link” é responsável por criar cada elo do braço robótico. Cada Link
é composto dos parâmetros definidos no algoritmo de DH.
Onde:
Theta: Ângulo de junta;
Di: Deslocamento do elo;
Ai: Comprimento do elo;
Alpha: Torção do elo;
R/P: Tipo de junta, “0” para rotativa e “1” para prismática;
A função “SerialLink” cria o robô com base nos parâmetros definidos para
cada link. Para criar a matriz de transformação homogênea (cinemática direta), foi
utilizada a função “Transl”, enquanto a cinemática inversa foi definida pela função
“R.ikine” com base nos parâmetros da cinemática direta. O modelo robô é plotado no
espaço pelo comando “R.plot” (Figura 42).
58

1

Z

0.5

3

2

y

x
z

0
robot
1

-0.5
-1
1
0.5

1
0.5

0

0

-0.5
Y

-1

-0.5
-1
X

Fonte: [do Autor]

Figura 42 – Modelo robô plotado no espaço.

3.6

CONVERSÃO VALORES DE POTENCIÔMETRO

Ao simular a cinemática inversa são retornados valores em radianos da
posição que cada link deve assumir no espaço, representados pela variável “qi”,
sendo -0.5880 a posição para base, 0.2017 posição para o ombro e 1.4042 do
cotovelo. O robô físico deve assumir as distâncias correspondentes ao solicitado nas
coordenadas X, Y e Z. Os valores devem ser fornecidos em metros (Figura 43).

Fonte: [do Autor]

Figura 43 – Posição dos links em radianos.

O efetuador final do braço deve parar nas posições solicitadas 30, 20 e 20 cm
para X, Y e Z respectivamente. A Figura 44 apresenta a simulação virtual do braço
59

robótico para os valores solicitados, o robô físico deve assumir uma posição
semelhante a esta representada na Figura 44.

1

0.5

Z

3

2

x
y z

0

robot
1
-0.5

-1
1
0.5

1
0.5

0

0

-0.5
Y

-0.5
-1

-1

X

.;

Fonte: do Autor

Figura 44 – Modelo robô nas posições x=30 cm, y=20 cm e z=20 cm.

Como a referência para posicionamento do robô foi fornecida pelos valores
dos potenciômetros em cada link, foi necessário fazer a conversão de radianos
recebidos pelo comando Ikine para graus e em seguida para valor adequado no
potenciômetro. A conversão de radianos para graus foi feita pela relação de regra de
três, sendo a equação 3.1 realizada para os três links com seus valores respectivos.

(

)

3.1

Onde:
kx = Valor recebido do comando Ikine em radiano;
180/π = Relação de conversão de radianos para graus;
convradgrX = Recebe o valor da conversão em graus.
Para realizar a conversão de graus para os valores de potenciômetro, foi
necessário realizar leituras nos três potenciômetros, resgatando o valor em 0º e 90º,
para que possa ser feita uma relação de graus e um determinado valor de
potenciômetro, por exemplo, se a leitura realizada em 0º for de 700 em valor de
potenciômetro e a leitura realizada em 90º for de 378 também em valor de
60

potenciômetro, então a diferença entre estes que foi de 322 fornece o parâmetro de
conversão de graus pra valores de potenciômetros, conforme indicado na Equação
3.2.

(

)

3.2

Onde:
convradgrX = Recebe o valor da conversão em graus;
322/90 = Relação para transformar graus em valores de potenciômetro;
convgrpotX = Recebe o valor da conversão em valores de potenciômetros.

3.7

LOCALIZAÇÃO OBJETO

Com o objeto identificado do restante da imagem e com a referência do
centroide é possível fornecer parâmetros para identificação da peça em relação à
base do braço robótico. O primeiro passo foi fixar a câmera em direção ao volume de
trabalho do robô, a Figura 45 apresenta o ponto em que a webcam foi alocada. Ao
fixar a câmera neste ponto foi realizada a captura de uma foto a fim de fazer a
relação de pixels por unidade métrica.

Fonte: do Autor

Figura 45 – Posição da câmera (Webcam).
61

A webcam utilizada possui uma resolução de 240 x 320pixels. Do ponto fixo
da câmera para esta resolução, foi encontrado o valor de 33 cm em 240pixels, que
representa o eixo Y do sistema de coordenadas da câmera e 44 cm em 320 pixels,
representando o eixo X (Figura 46).

Fonte: do Autor

Figura 46 – Referência de pixels por cm.

Essa relação permitiu estabelecer o exato ponto do centroide em referência
métrica. Se para 320 pixels a referência métrica é de 44 cm, quantos cm serão
estabelecidos ao encontrar o centroide. A equação 3.3 expressa a coordenada X da
imagem. Será tomado como exemplo o centroide na coordenada X com 50 pixels.

(

)

(

)

3.3

Sendo:
Centroids(1) = O centroide do objeto identificado na coordenada X da
imagem;
44/320 = Relação de transformação em unidade métrica;
100 = Conversão para valor em metros;
ConvertcoordX = Recebe valor em metros do centroide.
62

Centroide na coordenada Y com 103 pixels (Equação 3.4).

(

)
3.4
(

)

Sendo:
Centroids(2) = O centroide do objeto identificado na coordenada Y da
imagem;
33/240 = Relação de transformação em unidade métrica;
100 = Conversão para valor em metros;
ConvertcoordY = Recebe valor em metros do centroide.

Após converter os valores em pixels para unidade métrica conhecida pelo
braço robótico é necessário cruzar os sistemas de coordenadas deste e da imagem
coletada. O braço robótico possui um sistema de coordenadas no plano 3D, sendo
necessário trabalhar em X, Y e Z para seu posicionamento. Enquanto a imagem
possui um sistema de coordenadas somente no plano 2D, X e Y.
63

Fonte: do Autor

Figura 47 – Distância em X e Y até a área de trabalho.

A Figura 47 apresenta a distância da base do braço robótico que será tomada
como referência para que seja feito a integração dos dois sistemas de coordenadas,
até o inicio da área de trabalho, em X e Y. Devido ao posicionamento adotado para
realizar a tarefa os sistemas de coordenadas ficaram invertidos (Equação 3.5).
–
–

(3.5)

Onde:
ConvertcoordY = Recebe valor em metros do centroide em Y;
-0.20 = Distância da base do braço robótico até a área de trabalho em Y;
coordimgX = Recebe valor que será a referência da coordenada X do braço
robótico;
ConvertcoordX = Recebe valor em metros do centroide em X;
-0.38 = Distância da base do braço robótico até a área de trabalho em X;
64

coordimgY = Recebe valor que será a referência da coordenada Y do braço
robótico.
Para coordenada Z foi estabelecida uma distância fixa de 10cm, que é a
altura do objeto desejado. Como a câmera é fixa e a área de trabalho é estruturada
em relação à base do robô, não foi necessário estabelecer relação com o sistema de
coordenadas da imagem para esta coordenada.
65

4

RESULTADOS OBTIDOS

Os resultados obtidos foram coletados com base na metodologia proposta.
Foram realizados diversos testes de movimento do braço robótico por coordenadas
absolutas, através da ferramenta Robotics Toolbox do Matlab®, posteriormente
foram realizados testes de localização do centroide do objeto, que permitiu validar o
funcionamento do processamento de imagens, com os resultados das duas partes
de interesse, finalmente foi possível estabelecer uma relação de precisão e
repetibilidade dos movimentos do braço robótico baseado em visão computacional.

4.1

MOVIMENTOS DO BRAÇO ROBÓTICO POR COORDENADAS

ABSOLUTAS

A modelagem do robô foi realizada por meio da ferramenta RoboticsToolbox.
Com o auxílio desta é possível criar um modelo robô virtual que é plotado no espaço
através do comando teach, este comando possibilita realizar todos os movimentos
dentro do volume de trabalho do braço robótico, permitindo variar cada eixo do
braço, sendo a base representada por q1, o ombro por q2 e o cotovelo por q3
(Figura 48).
O modelo do robô é definido pelos parâmetros de D-H, conforme descrito na
metodologia deste trabalho. O robô virtual foi gerado em um ponto inicial
referenciado na extremidade do braço, onde foram obtidos os valores de 0.675, 0 e
0.470 para as coordenadas X, Y e Z respectivamente. Esta condição foi adotada no
modelo físico, possibilitando obter o correto posicionamento dos eixos.
66

Fonte: do Autor

Figura 48 – Simulação virtual do braço robótico.

Foram realizados 10 movimentos por coordenadas absolutas. Ao término do
movimento foi possível perceber que o gráfico representado pela Figura 48 do
modelo robô ficava muito semelhante ao físico. A tabela 4 apresenta os valores
coletados nos testes.
Tabela 4 – Movimento do braço robótico por coordenadas absolutas.

Movimentos

1
2
3
4
5
6
7
8
9

Posição Desejada
(cm)
X
Y
Z
-40,2 -20,5 10,9
-25
36,9
35,8
30,5
-40,8 40,8
-11,5
24,5
69,8
39,5
29
50,9
-17,8
35
85,8
-9
-35
90
-26,8
-11
91
-15,6
34,7
80,5

Posição Final (cm)
X
-39,5
-23
31
12,8
38,3
-16,2
-10,1
-27,7
-16,9

Y
-18,9
-35
-42
-26,1
27,1
36,2
-36,1
-10,3
33,2

Z
12,3
38
42,5
71
52
85,1
91
89,7
81,4

Erro (cm)
X
0,7
2
0,5
1,3
1,2
1,6
1,1
0,9
1,3

Y
1,6
1,9
1,2
1,6
1,9
1,2
1,1
0,7
1,5

Z
1,4
2,2
1,7
1,2
1,1
0,7
1
1,3
0,9
67

10

30,6

28,7

34,5

31,2

29,9

34,7

0,6

1,2

0,2

Fonte: do Autor

Tabela 5 – Resultado dos testes de Precisão e Repetibilidade por coordenadas absolutas.

PRECISÃO

REPETIBILIDADE

85%

90%

Fonte: do Autor

Como apresentado na Tabela 5 à posição final do braço robótico não teve um
resultado perfeito, alcançando aproximadamente 85% de precisão em seu
posicionamento final. Os testes realizados sem o uso da visão neste tópico fornecem
informações importantes na validação que será realizada posteriormente, na qual a
referência das coordenadas X, Y e Z para posicionamento do braço robótico é
fornecida pela imagem.

4.2

LOCALIZAÇÃO DO OBJETO

Para validar a parte do processamento de imagens, foram coletadas imagens
da peça em vários pontos da cena. O objetivo é identificar o objeto pelo método de
detecção de limiares e encontrar o seu centroide, conforme descrito na metodologia.
A Figura 49 representa a identificação dos objetos vermelho e azul.

(a)

(b)

Fonte: do Autor

Figura 49 – Identificação do centroide. (a) – Objeto vermelho. (b) – Objeto azul.

Como é possível perceber o ponto centroide é localizado em diversos pontos
da imagem para ambos os objetos, alcançando o objetivo proposto na etapa que
contempla o processamento de imagens e localização do centroide no objeto.
68

4.3

MOVIMENTOS DO BRAÇO ROBÓTICO POR IMAGEM

Os testes de controle de trajetória do braço robótico foram realizados com
base na metodologia a fim de medir a repetibilidade e precisão alcançada por este
em conjunto com o sistema de visão computacional. A repetibilidade é a capacidade
de o efetuador terminal atingir um ponto previamente determinado diversas vezes
seguido. Um manipulador robótico com baixa repetibilidade terá como consequência
problemas de precisão no posicionamento de sua extremidade. Enquanto a precisão
indica o grau de aproximação do órgão terminal com relação a um determinado
ponto dentro do volume de trabalho (Figura 50), [32].

Fonte: [32]

Figura 50 – Representação de Precisão e Repetibilidade.

Os resultados encontrados nos métodos anteriores forneceram parâmetros
importantes para realizar os testes de controle de trajetória do braço robótico
referenciado por visão computacional. Como foi possível analisar, os resultados de
posição por coordenadas absolutas apresentaram alguns erros, devido à baixa
precisão dos sensores, enquanto os resultados do processamento de imagens e
69

localização do centroide alcançaram o objetivo de forma satisfatória. Neste contexto,
é possível validar as partes que compõe o processo com eficácia.
O teste consiste em colocar o objeto de cor vermelha em seis pontos
diferentes da área de trabalho, isso possibilitou validar a precisão do sistema.
Enquanto a repetibilidade foi analisada executando o movimento quatro vezes para
cada ponto. A Figura 51 apresenta a vista superior com o objeto de cor vermelha nos
seis pontos que foram testados na área de trabalho.

Fonte: do Autor

Figura 51 – Vista superior do objeto vermelho. (a) – Ilustração em formato RGB. (b) – Identificação do
centroide.
70

Fonte: do Autor

Figura 52 – Posicionamento do braço robótico sobre a peça.

O processamento de imagens mostrou-se satisfatório e cumpriu o proposto
neste projeto, que consistia em encontrar o objeto em qualquer ponto da área de
trabalho e detectar o centroide.
O posicionamento do braço robótico, não teve perfeição ao término do
movimento, apresentando alguns erros, devido aos sensores potenciômetros
lineares que foram utilizados. Estes sensores não são os mais indicados para esta
finalidade, onde a precisão e repetibilidade do efetuador final devem possuir um
índice alto de confiabilidade, [32].
As variações de posicionamento do braço robótico não permitiram que a pega
da peça fosse efetuada com sucesso, como os erros variam de 0.5 a 2 cm (Tabela
4) nas três coordenas e a bobina que está acoplada ao efetuador final não possui
uma área grande de contato, não foi possível realizar a captura do objeto para todos
os casos. Desta forma os resultados coletados foram com base no posicionamento
do efetuador final e não na captura da peça. Na Tabela 6 são apresentados os
71

resultados de precisão e repetibilidade do posicionamento do braço robótico por
visão computacional.
Tabela 6 – Resultados dos testes de Precisão e Repetibilidade por visão computacional.

POSIÇÃO

PRECISÃO

REPETIBILIDADE

1

60%

90%

2

90%

100%

3

90%

100%

4

75%

85%

5

92%

100%

6

90%

95%

Fonte: do Autor

Os objetivos propostos neste trabalho foram alcançados e os resultados
considerados satisfatórios. O objeto para ambas as cores foi encontrado com
sucesso na imagem coletada, enquanto o posicionamento do braço referenciado por
visão computacional alcançou em alguns casos 100% de repetibilidade.
72

4.4

TRABALHOS FUTUROS

Ao longo do desenvolvimento deste projeto foram enfrentadas dificuldades
quanto à estrutura física do braço robótico, com isso surge necessidade de
melhorias ou até mesmo troca de partes que compõe a estrutura deste, enquanto na
parte de tratamento de imagens é possível aprimorar os métodos utilizados.
Quanto à estrutura do braço robótico pode-se sugerir a substituição do motor
do segundo eixo (ombro) por um motor com maior capacidade de torque, tendo em
vista que este já foi dimensionado para suportar uma carga no limite de sua
capacidade. Realizar a troca dos sensores potenciômetros por encoders,
minimizando os erros no posicionamento do braço. Ainda em sua estrutura sugerese colocar um efetuar final tipo garra.
No que diz respeito ao controle de posicionamento do braço robótico a
implementação de uma sintonia PID traria mais qualidade aos movimentos.
A parte que contempla a visão computacional pode ser aperfeiçoada tanto na
estrutura do local quanto no reconhecimento dos objetos. Neste projeto a câmera
utilizada foi fixada em um ponto dentro do volume de trabalho do braço robótico, em
alguns ambientes que fazem uso de visão computacional existe a necessidade de
ter um ambiente estruturado para a aquisição das imagens, como é o caso da
inspeção industrial, porém em alguns locais a câmera precisa acompanhar a
estrutura que está executando as tarefas. Neste contexto sugere-se trabalhar com a
câmera em qualquer ponto da cena ou colocá-la na extremidade do robô. No que se
refere ao reconhecimento do objeto pode ser elaborado um sistema que seja capaz
de reconhecer formas ou tamanhos deste.
Por fim, sugere-se fazer uso da placa Beagle Bone, que é uma plataforma de
prototipagem, para executar a leitura dos sensores, processamento de dados e
controle dos motores.
73

5

CONCLUSÃO
As estatísticas apresentadas ao longo deste trabalho evidenciam que as

aplicações que envolvem o uso de imagens tiveram um crescimento acentuado nos
últimos anos. A informação que uma única matriz de dados é capaz de fornecer
torna os sistemas artificiais de visão uma ferramenta revolucionária em processos
industriais, capazes de informar os detalhes ínfimos de uma cena, daí a importância
deste segmento na robótica industrial.
No decorrer deste projeto foi possível discutir amplamente sobre as duas
áreas propostas. Na visão computacional foram abordados assuntos que
compreendem desde o princípio construtivo das cores até o processamento de
imagens, que apesar de difícil tratamento permitiu a identificação dos pontos de
interesse na imagem, avaliados pela cor do objeto desejado. No segmento da
robótica foi discutida a importância dos componentes usados para o modelo físico do
robô. A escolha das partes que o compõe a estrutura deste deve ser feita
criteriosamente, a fim de evitar problemas quanto à precisão, conforme pode ser
visto no decorrer deste trabalho. Outro ponto importante, foi a implementação da
modelagem cinemática na estrutura física do braço robótico, fazendo a comparação
do posicionamento da simulação virtual com o da estrutura real. Do mesmo modo
que foi possível mensurar a integração dos sistemas de coordenadas da câmera e
do braço robótico.
Acrescentam-se ainda as vantagens em utilizar o software de computação
Matlab®. Com uma linguagem de fácil entendimento permitiu que o desenvolvedor
deste projeto interagisse rapidamente com as suas funcionalidades, além de possuir
as ferramentas de auxílio para o processamento de imagens e modelagem
cinemática do braço robótico.
De uma forma geral os objetivos propostos neste trabalho foram alcançados
com sucesso. A aquisição e processamento de imagens foram avaliados pela
detecção e binarização do objeto de desejo na cena, ao passo que todas as
tomadas de decisão do braço robótico foram referenciadas pela imagem.
Por fim, a área da visão computacional aplicada à robótica permitiu um
grande aprendizado ao longo do desenvolvimento deste projeto de pesquisa, e
certamente abre novas oportunidades para futuros trabalhos.
74

REFERÊNCIAS

[1]
STIVANELLO, M. E. Inspeção Industrial Através de Visão Computacional.
2004. Dissertação (Bacharelado em Ciência da Computação) – Universidade
Regional de Blumenau Centro de Ciências Exatas e Naturais, Blumenau.
[2]
Imatic
Sistemas
industriais
de
Visão.
<www.imatic.com.br/svisao.htm> acesso em: 24 mar. 2013.

Disponível

em

[3]
VIECILI, E, B; ALCANTRA, M, F; ROMÃO, A; HOUNSELL, M, S; PILLON, M,
A; HEINEN, M, R. Desenvolvimento de um Robô Móvel com Visão para Propósitos
Educacionais. 2012. Dissertação (Universidade do Estado de Santa Catarina) –
Departamento de Ciência da Computação, Joinville.
[4]
Siemens.
Disponível
em
<www.siemens.com/innovation/en/publikationen/publications_pof/pof_fall_2006/susta
inable_city_development/facts_and_forecasts.htm> acesso em 30 mar. 2013.
[5]
Verband Deutscher Maschinen und
em<www.vdma.org> acesso em: 24 mar. 2013.

Anlagenbeu

[6]
European
Machine
Vision
Association
<www.emva.org> acesso em: 24 mar. 2013.

EMVA.

VDMA.

Disponível

Disponível

em

[7]
Packagers Choose Machine Vision Quality Inspection to Red Waste and
Boost ROI. 2010, São Paulo.
[8]
International Federation Robotics. Disponível em <www.ifr.org> acesso em:
07 abr. 2013.
[9]
FOREST, R, L. Sistema de Visão Robótica para Reconhecimento de
Contornos de Componentes na Aplicação de Processos Industriais. 2006.
Dissertação (Universidade Federal do Rio Grande do Sul) – Programa de Pós
Graduação em Engenharia Mecânica, Porto Alegre.
[10] STEMMER, M, R; ORTH, A; ROLOFF, M, L; DESCHAMPS, F; PAVIM, A, X.
Apostila de Sistema de Visão. 2005. Sistemas Industriais Inteligentes, Florianópolis.
[11] GONZALEZ, R, C; WOODS, R, E. Processamento de Imagens Digitais.
São Paulo: Edgard Blucher Ltda, 2000.
[12] GRASSI, M, V. Desenvolvimento e Aplicação de Sistema de Visão para Robô
Industrial de Manipulação. 2005. Dissertação (Universidade Federal do Rio Grande
do Sul) – Programa de Pós Graduação em Engenharia Mecânica, Porto Alegre.
[13] RODRIGUES, D, L. Procedimento Automático para calibração de Sistemas de
Visão Robótica para Operações Pick-and-Place. 1997. Dissertação (Divisão de Pós graduação do Instituto Tecnológico de Aeronáutica) – Engenharia Mecânica
Aeronáutica, São José dos Campos.
75

[14] Campos, M, F; NETO, V, F. Visão Computacional Calibração de Câmeras.
2007. (Universidade Federal de Minas Gerais) – Departamento de Ciência da
Computação, Minas Gerais.
[15] FILHO, O, M; NETO, H, V. Processamento Digital de Imagens. Rio de
Janeiro: Brasport, 1999.
[16] QUEIROZ, J, E; GOMES, H, M. Introdução ao processamento Digital de
Imagens. 2001. Artigo (Universidade Federal de Campina Grande) – Departamento
de Sistemas da Computação, Campina Grande.
[17] Amalgama.blog.br. Disponível em <www.amalgama.blog.br/02/2013/custo-damao-de-obra-crescimento-do-brasil/> acesso em: 31 mai. 2013.
[18]

A4TECH. Disponível em <www.a4tech.com> acesso em: 27 abr. 2013.

[19]

ROSÁRIO, J, M. Princípios de Mecatrônica. São Paulo: Pearson, 2006.

[20] CORKE, P. Robotics, Vision and Control Fundamental Algorithms in
MATLAB®. Brisbane: Springer, 2011.
[21] ROMANO, V, F. Robótica Industrial: Aplicação na Indústria da
Manufatura e de Processos. Rio de Janeiro: Edgard Blucher, 2002.
[22] RODRIGUES, E. Aplicação de Visão Computacional para Extração de
Características em Imagem do Olho Humano. 2007. Artigo (Escola de Engenharia de
São Carlos, da Universidade de São Paulo) – Curso de Engenharia de Computação
com ênfase em Sistemas Embarcados, São Carlos.
[23] SCURI, A, E. Fundamentos de Imagens Digitais. 2002. Artigo. (Tecgraf/ PUC
– Rio), Rio de Janeiro.
[24] ALBUQUERQUE, M, P. Processamento de Imagens: Métodos e Análises.
Artigo. Centro Brasileiro de Pesquisas Físicas – CBPF/MCT, Rio de Janeiro.
[25] MENDES, R. A Tomografia Computadorizada de Raios X Como Método não
Destrutivo de Análise Volumétrica de Concreto: Estudo de Caso em Testemunho de
Concreto da Usina Hidroelétrica Mourão. 2010. Artigo. (Universidade Federal do
Paraná) - Setor de Tecnologia, Curitiba.
[26] MENESES, P, M; ALMEIDA, T. Introdução ao Processamento de Imagens
de Sensoriamento Remoto. Brasília: UNB, 2012.
[27] BELINI, D, R, T. Robô Didático Antropomórfico Controlado Via MATLAB®
2012. Dissertação. (Faculdade Assis Gurgacz) - Engenharia de Controle e
Automação, Cascavel.
[28] SILVA, A. C. Algoritmos para Diagnóstico Assistido de Nódulos Pulmonares
Solitários em Imagens de Tomografia Computadorizada. PUC – RIO, 2004.
76

[29] MANSSOUR, H, I; COHEN, M. Introdução a Computação Gráfica. Artigo.
2006. Pontifícia Universidade Católica do Paraná - Faculdade de Informática, Porto
Alegre.
[30] Drexel University Electrical & Computer Engineering. Disponível em
<http://www.ece.drexel.edu/courses/ECE-E432/Lab2_Sources.html> acesso em 23
out. 2013.
[31] BRITES, G, F; SANTOS, A, P, V. Motor de passo. Artigo. 2008. (Universidade
Federal Fluminense) - Centro Tecnológico, Niterói.
[32] CARRARA, V. Apostila de Robótica. Precisão e Repetibilidade. 2006.
Universidade Braz Cubas, Mogi das Cruzes.
[33] LENZ, M, L; ADUR, M. Levitador Magnético. 2012. Faculdade Assis Gurgacz Engenharia de Controle e Automação, Cascavel.
77

APÊNDICE A – Processamento de imagens, cinemática inversa, conversão de
valores e envio de comandos para a comunicação serial.
Function Mestre = IntegSistema ()
clearall;
clc;
closeall;
disp('BEM VINDO AO CONTROLE DO BRAÇO ROBÓTICO');
%BRAÇO ROBÓTICO NA POSIÇÃO INICIAL;
XA=435;
YA=260;
ZA=645;
disp('funcao');
[XR, YR, ZR] = ComiArdu(XA, YA, ZA, 3);
disp('BRAÇO ROBÓTICO NA POSIÇÃO INICIAL')
%SELEÇÃO DO OBJETO DE COR VERMELHA OU AZUL;
select = input('Digite (1) para escolher objeto vermelho ou (2) para
escolher objeto azul: ');
closeall;
%CAPTURA A FOTO;
functionsaida = foto()
vid=videoinput('winvideo',1);
preview(vid);
pause(2);
saida=getsnapshot(vid)
closepreview(vid);
end
% LOCALIZAÇÃO OBJETO DE COR AZUL
function saida1 = Azul(bimage)
saida1=0;
image(bimage);
rgb2ntsc(bimage);%Converte imagem do formato RGB para formato YIQ.
a = rgb2ntsc(bimage);
L=240; % Declara linhas da matriz que compõe a imagem;
C=320; % Declara colunas da matriz que compõe a imagem;
bin= zeros(L,C); % Preenche todas as linhas e colunas com zero;
for linha = 1:L % Faz a varredura das linhas que compõe a matriz da
imagem;
for coluna = 1:C % Faz a varredura das colunas que compõe a matriz da
imagem;
ca1=alinha,coluna,1); % Separa as linhas e colunas do canal 1 da imagem em
formato YIQ;
ca2=a(linha,coluna,2); % Separa as linhas e colunas do canal 2 da imagem em
formato YIQ;
ca3=a(linha,coluna,3); % Separa as linhas e colunas do canal 3 da imagem em
formato YIQ;
if 0.20 <ca1 && ca1<0.25 && ca2==0 && 0 <ca3 && ca3<0.10 % Range de
valoresque compõe o objeto de cor azul em formato YIQ;
bin (linha, coluna) = 1; %Preenche o que foi encontrado dentro do range de
valores declarado com o número 1.
end
end
end
78

% LOCALIZAÇÃO DO CENTROIDE DO OBJETO AZUL;
imtool(bin);% Mostra a imagem com as coordenadas x e y;
cent = imfill(bin,'holes'); % Preencheburacosnaimagem;
cent1 =regionprops(cent, 'centroid');
centroids = cat(1, cent1.Centroid);
imtool(bin);
hold(imgca,'on');
plot(imgca,centroids(:,1), centroids(:,2), 'r*'); % Preenche com um ponto
vermelho onde foi localizado o conetroide;
hold(imgca,'off');
end
% LOCALIZAÇÃO DO OBJETO VERMELHO;
function saida1 = Vermelho(rimage)
saida1=0;
image(rimage);
rgb2ntsc(rimage);
a = rgb2ntsc(rimage);
L=240;
C=320;
bin=zeros(L,C);
for linha = 1:L
for coluna = 1:C
ca1=a(linha,coluna,1);
ca2=a(linha,coluna,2);
ca3=a(linha,coluna,3);
if 0.20 <ca1 && ca1<0.45 && 0.07 <ca2 && ca2<0.45 && 0 <ca3 && ca3<0.12
bin (linha, coluna)=1;
end
end
end
% LOCALIZAÇÃO DO CENTROIDE DO OBJETO VERMELHO;
imtool(bin);
cent = imfill(bin,'holes');
cent1 =regionprops(cent, 'centroid');
centroids = cat(1, cent1.Centroid)
imtool(bin);
hold(imgca,'on')
plot(imgca,centroids(:,1), centroids(:,2), 'r*')
hold(imgca,'off')

tempimg = foto();
if (select == 1)
bincent = Vermelho(tempimg);
% Reprodução do áudio;
[y, Fs] = wavread('c:vermelho.wav');% Leitura do áudio;
sound(y, Fs);% Reprodução do áudio;
elseif (select == 2)
bincent = Azul(tempimg);
% Reprodução do áudio;
[y, Fs] = wavread('c:azul.wav');
sound(y, Fs);
else
disp ('############ cor selecionada inválida ############')
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico
Visao computacional aplicada em um braco robotico didatico

Mais conteúdo relacionado

Semelhante a Visao computacional aplicada em um braco robotico didatico

Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Levi Germano
 
Almeida marisley hirinea_de
Almeida marisley hirinea_deAlmeida marisley hirinea_de
Almeida marisley hirinea_deFares Mafros
 
Almeida marisley hirinea_de
Almeida marisley hirinea_deAlmeida marisley hirinea_de
Almeida marisley hirinea_demafrooos
 
TCC Técnico em Mecatrônica
TCC Técnico em MecatrônicaTCC Técnico em Mecatrônica
TCC Técnico em Mecatrônicamoises medeiros
 
Tcc daivison campos ferreira
Tcc daivison campos ferreiraTcc daivison campos ferreira
Tcc daivison campos ferreiraDaivisonCampos
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDIBruno Gastaldi
 
The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.Erotide Pereira
 
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfMONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfElsioChiburre1
 
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...Wilson Silva Sousa
 
tccfinal
tccfinaltccfinal
tccfinalrjunkes
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores UmbertoXavierdaSilva
 
Inseto robo
Inseto roboInseto robo
Inseto roboedycar5
 
Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Dyego Torres
 
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularProjeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularDiego Varalda
 
2013 artur bontempolima
2013 artur bontempolima2013 artur bontempolima
2013 artur bontempolimaJosh Santos
 

Semelhante a Visao computacional aplicada em um braco robotico didatico (20)

Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)
 
Almeida marisley hirinea_de
Almeida marisley hirinea_deAlmeida marisley hirinea_de
Almeida marisley hirinea_de
 
Almeida marisley hirinea_de
Almeida marisley hirinea_deAlmeida marisley hirinea_de
Almeida marisley hirinea_de
 
TCC Técnico em Mecatrônica
TCC Técnico em MecatrônicaTCC Técnico em Mecatrônica
TCC Técnico em Mecatrônica
 
Monografia Arduino
Monografia ArduinoMonografia Arduino
Monografia Arduino
 
PDI - Notas De Aula
PDI - Notas De AulaPDI - Notas De Aula
PDI - Notas De Aula
 
Tcc daivison campos ferreira
Tcc daivison campos ferreiraTcc daivison campos ferreira
Tcc daivison campos ferreira
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
 
The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.The mathematics used by technicians in the automotive electronics industry.
The mathematics used by technicians in the automotive electronics industry.
 
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdfMONOGRAFIA_SegurançaCibernéticaRedes.pdf
MONOGRAFIA_SegurançaCibernéticaRedes.pdf
 
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...
TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel utilizando Visão Compu...
 
Dm ivo costa_2009_ant
Dm ivo costa_2009_antDm ivo costa_2009_ant
Dm ivo costa_2009_ant
 
TCC-BrunoAzevedoCosta
TCC-BrunoAzevedoCostaTCC-BrunoAzevedoCosta
TCC-BrunoAzevedoCosta
 
tccfinal
tccfinaltccfinal
tccfinal
 
Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores Desenvolvimento de um Sistema de Controle para Quadrirrotores
Desenvolvimento de um Sistema de Controle para Quadrirrotores
 
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
 
Inseto robo
Inseto roboInseto robo
Inseto robo
 
Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-Tcc final fernandopolastrini_2016_ee-
Tcc final fernandopolastrini_2016_ee-
 
Projeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modularProjeto, controle e análise de um manipulador robótico modular
Projeto, controle e análise de um manipulador robótico modular
 
2013 artur bontempolima
2013 artur bontempolima2013 artur bontempolima
2013 artur bontempolima
 

Último

Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxJMTCS
 
Sistema de Bibliotecas UCS - A descoberta da terra
Sistema de Bibliotecas UCS  - A descoberta da terraSistema de Bibliotecas UCS  - A descoberta da terra
Sistema de Bibliotecas UCS - A descoberta da terraBiblioteca UCS
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoCelianeOliveira8
 
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxAULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxGislaineDuresCruz
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024GleyceMoreiraXWeslle
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdfCarlosRodrigues832670
 
Orientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxOrientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxJMTCS
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxAntonioVieira539017
 
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzparte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzAlexandrePereira818171
 
atividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãoatividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãodanielagracia9
 
Mini livro sanfona - Povos Indigenas Brasileiros
Mini livro sanfona  - Povos Indigenas BrasileirosMini livro sanfona  - Povos Indigenas Brasileiros
Mini livro sanfona - Povos Indigenas BrasileirosMary Alvarenga
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
A população Brasileira e diferença de populoso e povoado
A população Brasileira e diferença de populoso e povoadoA população Brasileira e diferença de populoso e povoado
A população Brasileira e diferença de populoso e povoadodanieligomes4
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...Martin M Flynn
 

Último (20)

Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
“O AMANHÃ EXIGE O MELHOR DE HOJE”       _“O AMANHÃ EXIGE O MELHOR DE HOJE”       _
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
 
Sistema de Bibliotecas UCS - A descoberta da terra
Sistema de Bibliotecas UCS  - A descoberta da terraSistema de Bibliotecas UCS  - A descoberta da terra
Sistema de Bibliotecas UCS - A descoberta da terra
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e feminino
 
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptxAULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
AULA-06---DIZIMA-PERIODICA_9fdc896dbd1d4cce85a9fbd2e670e62f.pptx
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
 
Orientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxOrientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptx
 
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
 
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzparte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
parte indígena.pptxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
 
atividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetizaçãoatividades diversas 1° ano alfabetização
atividades diversas 1° ano alfabetização
 
Mini livro sanfona - Povos Indigenas Brasileiros
Mini livro sanfona  - Povos Indigenas BrasileirosMini livro sanfona  - Povos Indigenas Brasileiros
Mini livro sanfona - Povos Indigenas Brasileiros
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
A população Brasileira e diferença de populoso e povoado
A população Brasileira e diferença de populoso e povoadoA população Brasileira e diferença de populoso e povoado
A população Brasileira e diferença de populoso e povoado
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
 

Visao computacional aplicada em um braco robotico didatico

  • 1. FACULDADE ASSIS GURGAGZ DJEILY TAMARA BECKER VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO ANTROPOMÓRFICO DIDÁTICO CASCAVEL 2013
  • 2. FACULDADE ASSIS GURGAGZ DJEILY TAMARA BECKER VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO ANTROPOMÓRFICO DIDÁTICO Projeto de pesquisa apresentado ao curso de graduação em Engenharia de Controle e Automação da Faculdade Assis Gurgacz para elaboração do Trabalho de Conclusão de Curso. Orientador: Prof. Esp. Arthur Schuler da Igreja Co-orientador: Maikon Lucian Lenz CASCAVEL 2013
  • 3. FACULDADE ASSIS GURGACZ DJEILY TAMARA BECKER VISÃO COMPUTACIONAL APLICADA EM UM BRAÇO ROBÓTICO ANTROPOMÓRFICO DIDÁTICO Trabalho apresentado no Curso de Engenharia de Controle e Automação, da Faculdade Assis Gurgacz, como requisito parcial para obtenção do título de Bacharel em Engenharia de Controle e Automação, sob orientação do Professor Especialista Arthur Schuler da Igreja e co-orientação do Engenheiro Maikon Lucian Lenz. BANCA AVALIADORA ____________________________ Arthur Schuller da Igreja Faculdade Assis Gurgacz ____________________________ Vânio da Maia Faculdade Assis Gurgacz ____________________________ Ederson Zanchet Faculdade Assis Gurgacz Cascavel, 04 de Dezembro de 2013.
  • 4. DEDICATÓRIA Dedico este trabalho a Deus que sempre foi meu guia e minha fortaleza em meio às provações. A minha mãe e minha irmã que sempre estiveram comigo ao longo desta caminhada e acreditaram em minha determinação e coragem e a todas as pessoas que de forma direta ou indireta estiveram presentes na realização deste projeto.
  • 5. AGRADECIMENTOS Primeiramente a Deus que me proporcionou sabedoria durante toda minha formação, principalmente no desenvolvimento deste projeto. Aos meus familiares, especialmente a minha mãe Maria, por ter me incentivado a dar inicio a esta graduação e por estar sempre ao meu lado nos momentos que mais precisei. A minha irmã com quem pude contar em todas as horas e aos meus avós, que foram sempre compreensíveis nos momentos que estive ausente. A meus colegas e amigos, Felipe Holz, Maycon Gasoto, Esequiel Leite e Fabio Rangel, por sempre me ajudarem nos momentos de dúvida e pelo incentivo que sempre proporcionaram. A todos os professores que contribuíram em meu processo de formação. Em especial ao professor Arthur, por ter aceitado fazer parte deste projeto e me incentivar em solucionar os problemas da melhor maneira. Ao engenheiro Maikon por ter me orientado e estar sempre disposto a esclarecer as dúvidas que surgiram no desenvolvimento do projeto. Também ao professor Ederson Zanchet, por ser atencioso e estar sempre disposto em ajudar toda turma ao longo do curso.
  • 6. RESUMO A Robótica é uma área que se encontra em ascensão, a atual demanda econômica requer linhas de produção cada vez mais eficientes com elevada percepção sensorial, certamente um dos principais e mais completos sentidos é a visão, pela riqueza de informação que uma imagem pode conter. Neste contexto, a visão computacional se torna uma ferramenta chave na área da robótica, todas as tomadas de decisão do manipulador são baseadas nos detalhes das imagens. O presente projeto de pesquisa trata da implementação de um sistema de controle de trajetória de um braço robótico orientado por visão computacional. A aquisição da imagem ocorre através de uma webcam comum, o objetivo é coletar a mesma e identificar o objeto desejado pelo usuário, com base nestas informações o manipulador é orientado até a peça. Para tanto, os dados da imagem são processados e enviados ao manipulador através da ferramenta de computação Matlab®. Palavras chave: Robótica, Visão computacional, Matlab®.
  • 7. ABSTRACT Robotics is an area in ascension, the actual economic demanding requires more efficient production lines with highly sensorial perception, vision is certainly one of the most principal and complete sense, because of the richness of information that an image can hold. On this context, computational vision becomes a key source in robotics, all the decisions of the manipulator are based on image details. The present research project is about the implementation of a control system of trajectory for a robotic arm oriented by computational sight. The acquisition of image occurs through a regular webcam, the objective is to collect an image and identify the object desired by the user, based on these informations the manipulator is oriented to grab the piece. For this, the image data are processed and send to the manipulator using the software Matlab®. Keywords: Robotics, Computational Vision, Matlab®.
  • 8. “O sucesso não se atinge somente com qualidades especiais. É principalmente um trabalho de constância, de método e de organização.” (J. P. Sergent)
  • 9. LISTA DE ABREVIAÇÕES IFR Federação Internacional de Robótica - (International Federation of Robotics); VDMA Federação Alemã de Engenharia - (Verband Deutscher Maschinen und Anlagenbau); RGB Vermelho, Verde e Azul - (Red, Green and Blue); YIQ Luminosidade e Cromaticidade; CCD Dispositivo de Carga acoplado - (Charge Coupled Device); CMOS Semicondutor de Óxido Metálico Complementar - (Complementary Metal Oxide Semicondutor); D-H Jacques Denavit e Richard Hartenberg; Nm Nanômetro; Pixel Picture Element ; Voxel Volumetric Picture Element; N/m Newton Metro; kΩ Kilo Ohms; GND Filtro Graduado de Densidade Neutra (Graduated Neutral DensityFilter); V Volt; A Ampere; m Metros; cm Centímetros; kg.cm Kilograma Centímetro.
  • 10. LISTA DE FIGURAS Figura 1 – Passos da visão computacional. ............................................................. 16 Figura 2 – Comprimento de onda no espectro eletromagnético. .............................. 18 Figura 3 – Representação da cor. ............................................................................ 18 Figura 4 – Representação do Modelo RGB. ............................................................. 19 Figura 5 – Matriz de conversão do modelo RGB para YIQ....................................... 20 Figura 6 – Processo de discretização da imagem. ................................................... 23 Figura 7 – Imagens com mesmo tamanho e resolução diferente. ............................ 24 Figura 8 – Imagens com tamanho diferentes e resolução igual. .............................. 24 Figura 9 – Representação de vizinhança. ................................................................ 25 Figura 10 – Representação de vizinhança tridimensional. ....................................... 26 Figura 11 – (a) Distribuição de pixels. (b) 8-conectividade. (c) m-conectividade ...... 26 Figura 12 – Histograma de imagens. ........................................................................ 28 Figura 13 – Técnica de detecção de limiares simples. (a) Imagem limiar. (b) Histograma e limiar. (c) Imagem binarizada. ............................................................. 29 Figura 14 – Transformações Geométricas – Translação. ......................................... 30 Figura 15 – Transformações Geométricas – Escala................................................. 31 Figura 16 – Transformações Geométricas – Rotação. ............................................. 31 Figura 17 – Exemplos de Técnica de Iluminação. .................................................... 33 Figura 18 – Representação de elos e juntas de um robô. ........................................ 34 Figura 19 – Volume de trabalho de robôs industriais. (a) Robô antropomórfico. (b) Robô cartesiano. (c) Robô de coordenadas cilíndricas. (d) Robô de coordenadas esféricas. (e) Robô SCARA. ...................................................................................... 36 Figura 20 – Notação de Denavit-Hartenberg. ........................................................... 37 Figura 21 – Potenciômetros rotativos. ...................................................................... 40 Figura 22 – Tipos de motores de passo. .................................................................. 41 Figura 23 – Fluxograma do processo ....................................................................... 42 Figura 24 – Vista frontal do braço robótico com os motores do cotovelo (1) e ombro (2). ............................................................................................................................. 44 Figura 25 – Motor responsável pelo giro da base..................................................... 44 Figura 26 – Nova estrutura do braço robótico. ......................................................... 45 Figura 27 – Potenciômetros...................................................................................... 46 Figura 28 – Média das entradas analógicas. ............................................................ 48
  • 11. Figura 29 – Sentido de giro e velocidade do motor. ................................................. 48 Figura 30 – Criação da serial.................................................................................... 49 Figura 31 – Comunicação serial Matlab®.................................................................. 50 Figura 32 – Circuito de acionamento da bobina. ...................................................... 51 Figura 33 – Código para acionamento da bobina. .................................................... 52 Figura 34 – Aquisição da imagem em formato RGB. ............................................... 53 Figura 35 – Detecção de limiares da imagem em formato RGB............................... 53 Figura 36 – Imagem dos objetos de interesse. (a) Imagem no formato RGB. (b) Imagem binarizada. ................................................................................................... 54 Figura 37 – Localização do centroide do objeto. ...................................................... 54 Figura 38 – Conversão do modelo de cores RGB para YIQ. .................................... 55 Figura 39 – Escolha do objeto. ................................................................................. 55 Figura 40 – Sistema de coordenas para o procedimento de D-H. ............................ 56 Figura 41 – Configuração da trajetória do braço robótico. ........................................ 57 Figura 42 – Modelo robô plotado no espaço. ........................................................... 58 Figura 43 – Posição dos links em radianos. ............................................................. 58 Figura 44 – Modelo robô nas posições x=30 cm, y=20 cm e z=20 cm. .................... 59 Figura 45 – Posição da câmera (Webcam). ............................................................. 60 Figura 46 – Referência de pixels por cm. ................................................................. 61 Figura 47 – Distância em X e Y até a área de trabalho. ........................................... 63 Figura 48 – Simulação virtual do braço robótico....................................................... 66 Figura 49 – Identificação do centroide. (a) – Objeto vermelho. (b) – Objeto azul. .... 67 Figura 50 – Representação de Precisão e Repetibilidade. ....................................... 68 Figura 51 – Vista superior do objeto vermelho. (a) – Ilustração em formato RGB. (b) – Identificação do centroide....................................................................................... 69 Figura 52 – Posicionamento do braço robótico sobre a peça. .................................. 70
  • 12. LISTA DE TABELAS Tabela 1 – Tópicos para processamento de imagens. ............................................. 21 Tabela 2 – Relação da porta paralela e as saídas digitais do Arduino®. ................... 47 Tabela 3 – Parâmetros de Denavit-Hartenberg. ....................................................... 56 Tabela 4 – Movimento do braço robótico por coordenadas absolutas. ..................... 66 Tabela 5 – Resultado dos testes de Precisão e Repetibilidade por coordenadas absolutas. .................................................................................................................. 67 Tabela 6 – Resultados dos testes de Precisão e Repetibilidade por visão computacional. .......................................................................................................... 71
  • 13. SUMÁRIO 1 INTRODUÇÃO ............................................................................................... 14 2 FUNDAMENTAÇÃO TEÓRICA ..................................................................... 16 2.1 VISÃO COMPUTACIONAL ............................................................................ 16 2.2 COR ............................................................................................................... 17 2.2.1 O Modelo RGB ............................................................................................... 19 2.2.2 O Modelo YIQ ................................................................................................. 19 2.2.3 O Modelo HSI ................................................................................................. 20 2.3 PROCESSAMENTO DE IMAGENS DIGITAIS ............................................... 20 2.3.1 Aquisição de imagens .................................................................................... 22 2.3.2 Amostragem e Quantização ........................................................................... 22 2.3.3 Resolução espacial de imagens ..................................................................... 23 2.3.4 Vizinhança e Conectividade ........................................................................... 25 2.3.5 Histograma ..................................................................................................... 27 2.3.6 Limiarização ................................................................................................... 28 2.4 TRANSFORMAÇÕES GEOMÉTRICAS ......................................................... 29 2.5 CALIBRAÇÃO ................................................................................................ 32 2.6 ILUMINAÇÃO ................................................................................................. 32 2.7 COMPONENTES DE UM ROBÔ INDUSTRIAL .............................................. 34 2.8 CLASSIFICAÇÃO GEOMÉTRICA DE ROBÔS INDUSTRIAIS ....................... 35 2.9 CINEMÁTICA DE UM BRAÇO ROBÓTICO .................................................... 36 2.9.1 Cinemática Direta ........................................................................................... 37 2.9.2 Cinemática Inversa ......................................................................................... 39 2.10 POTENCIÔMETRO ........................................................................................ 39 2.11 MOTOR DE PASSO ....................................................................................... 40 3 METODOLOGIA ............................................................................................ 42 3.1 ESTRUTURA DO BRAÇO ROBÓTICO .......................................................... 43 3.2 INTERFACE ................................................................................................... 47 3.2.1 Comunicação Serial ....................................................................................... 49 3.3 ACIONAMENTO DA BOBINA......................................................................... 51 3.4 PROCESSAMENTO DE IMAGENS ............................................................... 52 3.5 MODELAGEM CINEMÁTICA ......................................................................... 56 3.6 CONVERSÃO VALORES DE POTENCIÔMETRO ......................................... 58 3.7 LOCALIZAÇÃO OBJETO ............................................................................... 60
  • 14. 4 RESULTADOS OBTIDOS ............................................................................. 65 4.1 MOVIMENTOS DO BRAÇO ROBÓTICO POR COORDENADAS .................. 65 ABSOLUTAS ............................................................................................................. 65 4.2 LOCALIZAÇÃO DO OBJETO ......................................................................... 67 4.3 MOVIMENTOS DO BRAÇO ROBÓTICO POR IMAGEM................................ 68 4.4 TRABALHOS FUTUROS................................................................................ 72 5 CONCLUSÃO ................................................................................................ 73 REFERÊNCIAS ................................................. ERRO! INDICADOR NÃO DEFINIDO. APÊNDICE A ............................................................................................................ 77 APÊNDICE B ............................................................................................................ 81 APÊNDICE C ............................................................................................................ 82
  • 15. 14 1 INTRODUÇÃO O progresso da robótica em segmentos industriais foi justificado principalmente pela agilidade e confiabilidade em processos produtivos. Segundo dados da IFR (International Federation of Robotics – Federação Internacional de Robótica), o aumento de vendas de robôs em 2011 em relação aos outros anos foi de 38%, sendo vendidas 166.028 unidades em todo o mundo, principalmente na indústria automobilística e metalúrgica. Se configurado corretamente, um robô é capaz de realizar com grande precisão tarefas que envolvem confiabilidade, repetição e alta periculosidade e por se tratar de um manipulador reprogramável a necessidade de dispositivos que forneçam percepção sensorial fica evidente. Neste contexto, a riqueza de informações que uma imagem pode conter torna a visão um dos mais complexos e importantes sentidos, permitindo que um manipulador ganhe percepção sensorial de forma ampla. As aplicações que envolvem o uso de imagens estão presentes em vários cenários, como: ambientes industriais, sistemas de segurança para transporte, tecnologia médica, entre outros. Desta maneira, a integração de um sistema de visão computacional através de mecanismos robóticos resulta em linhas de produção mais eficientes e velozes. Uma definição apropriada para a técnica de visão artificial ou visão computacional, é que pode ser classificada como a ação de um determinado atuador em função de imagens coletadas em tempo real e devidamente processadas. A implantação desse tipo de sistema requer estudo e aplicação de técnicas que abrangem desde a estrutura do local, principalmente no que se refere à iluminação, aquisição e processamento de imagens, até o controle do atuador final. Segundo a VDMA (Verband Deutscher Maschinen und Anlagenbau), os continentes Americano e Asiático em 2011 apresentaram um aumento significativo nos negócios de visão computacional em relação à Alemanha e o continente Europeu, que são as maiores potências neste segmento atualmente. Mesmo com aumento de produtividade e com uma gama maior de produtos industrializados, é comum ver pessoas em indústrias realizando tarefas de diversos tipos, como é o caso da inspeção industrial, [1]. A visão humana tem alta capacidade de adaptação ao meio e facilidade de interação em ambientes não estruturados,
  • 16. 15 reagindo rapidamente às variações do ambiente. Porém, os humanos possuem limitações físicas e psicológicas, como por exemplo, fadiga e falta de atenção, além dos riscos elevados que alguns processos podem causar às vidas humanas. Enquanto sistemas de visão computacional avaliam múltiplas características em alta velocidade e podem ser inseridos em ambientes de risco, necessitando apenas de um ambiente com condições controladas. Outro grande desafio enfrentado em ambientes industriais é a quantidade de sensores utilizados para um único processo. O uso de vários sensores para o posicionamento correto do produto acaba gerando uma quantidade elevada de variáveis a serem analisadas. Este trabalho apresenta um sistema capaz de capturar imagens com o uso de uma webcam comum instalada em um ambiente estruturado, as informações destas serão processadas em tempo real de maneira que seja possível extrair as informações pertinentes ao objeto. Baseado nessas informações será feita a integração do sistema da imagem com o controle de trajetória de um manipulador robótico antropomórfico didático com três graus de liberdade. Para tanto, serão utilizadas ferramentas incorporadas ao ambiente de computação Matlab®, que auxiliarão no desenvolvimento da estrutura do processamento de imagens, de maneira a identificar objetos de cor azul ou vermelha e no cálculo da cinemática inversa, que irá guiar o manipulador robótico até a peça.
  • 17. 16 2 FUNDAMENTAÇÃO TEÓRICA 2.1 VISÃO COMPUTACIONAL Visão computacional, também conhecida como visão de máquina é responsável por extrair informações e características importantes de uma imagem que tem como principal objetivo auxiliar na tomada de decisões inteligentes feitas por uma máquina. Esse tipo de processamento de imagens está enquadrado no nível alto. Visão de alto nível se refere a processos que tendem simular o raciocínio, utilizando-se de métodos de inteligência artificial. Por outro lado, visão de baixo nível não necessita de inteligência, reage de forma automática ao processo [12]. Segundo [10], o sistema de visão computacional pode ser dividido em cinco partes, conforme é apresentado no fluxograma (Figura 1). Fonte: [10] Figura 1 – Passos da visão computacional.
  • 18. 17 A. Sistema óptico: Direciona e dimensiona os feixes luminosos emitidos pelo objeto para o sensor óptico; B. Sistema de Iluminação: Desempenha papel muito importante, pois será responsável por projetar luz sobre o objeto, que em geral não emitem luz própria necessária para sensibilizar o sensor óptico; C. Sistema de Aquisição: Responde pela tradução do sinal luminoso do objeto para um sinal elétrico que possa ser identificado pelo processamento; D. Sistema de Processamento: Toma as decisões baseado nos sinais recebidos do sensor; E. Sistema de Atuação: Faz a atuação sobre o ambiente que se encontra o objeto de estudo, baseado em informações fornecidas pelo sistema de processamento; F. Sistema de Transmissão: Transferência dos dados capturados do sistema de aquisição para o sistema do processador, bem como os sinais de comando do sistema processador para o sistema óptico, de iluminação, aquisição e atuação. 2.2 COR A cor é a luz que percorre o espaço, a natureza dual da luz é definida como um comportamento de onda e de partícula. O comportamento da luz como onda é uma radiação eletromagnética que possui uma distribuição espectral de potência para cada comprimento de onda, [23]. O olho humano é caracterizado por dois sensores, os Bastonetes, sensíveis a todos os comprimentos de onda ponderados, não possibilitando a distinção de cores, sendo estes responsáveis por enviar a informação de luminância ao cérebro, e os Cones que são menos sensíveis à luz, mas permitem a distinção de cores. Este último é responsável por enviar ao cérebro informação de crominância. Os humanos percebem luz entre aproximadamente 380nm e 780nm. Luz de 380nm até 500nm parece azul, de 500nm a 600nm parece verde, e de 600nm a 780nm parece vermelho, [23].
  • 19. 18 Fonte: [23] Figura 2 – Comprimento de onda no espectro eletromagnético. A cor monocromática ideal possui apenas um único comprimento de onda. A cor púrpura não é uma cor espectral, contém comprimentos de onda bem próximos a 380nm e outros bem próximos a 780nm. A luz branca possui todos os comprimentos de onda com energia máxima, [23]. A cor pode ser representada em quatro universos distintos, conforme indica a Figura 3. Fonte: [23] Figura 3 – Representação da cor. A codificação da cor é representada por 1 byte para cada componente permitindo 28 bits resultando em 256 possibilidades, assumindo valores de 0 a 255. Desta forma as três componentes fundamentais das cores totalizam em 2 24 bits, ou 16 milhões de possibilidades. A capacidade humana de percepção é de aproximadamente 400 mil cores diferentes ou 219 bits, [23].
  • 20. 19 2.2.1 O Modelo RGB Todos os objetos que emitem luz visível são percebidos pelo olho humano através da soma das cores espectrais emitidas, esse processo é a combinação variável em proporção de componentes monocromáticos nas faixas espectrais associadas às sensações de cor verde, vermelha e azul, que são responsáveis pela formação de todas as demais cores, [16]. As cores verde, vermelha e azul formam o modelo RGB que é baseado em um sistema de coordenadas cartesianas. Segundo [15], o modelo RGB pode ser representado por um cubo como mostra a Figura 4, onde três vértices são as cores primárias e os outros três as cores secundárias, o vértice junto à origem é preto e o mais afastado da origem representa a cor branca. Fonte: [15] Figura 4 – Representação do Modelo RGB. Os níveis de cinza se estendem através de uma linha diagonal do cubo que sai da origem até o vértice mais distante. A faixa de valores de níveis de cinza geralmente é representada de 0 a 1 ou de 0 a 255, para cada cor do modelo RGB. 2.2.2 O Modelo YIQ O modelo YIQ se baseia na separação dos sinais de cor RGB em uma componente de luminosidade (Y) e duas componentes de cromaticidade (I e Q). A
  • 21. 20 transformação do modelo RGB para o sistema YIQ é dada pela multiplicação das matrizes ilustradas pela Figura 5. Fonte: [15] Figura 5 – Matriz de conversão do modelo RGB para YIQ. O sistema YIQ é usado em transmissão de vídeo, que são representados por 95% de luminância e 5% de crominância. Isso é possível devido à menor sensibilidade do olho a variações de crominância. 2.2.3 O Modelo HSI No modelo HSI de cores a componente de intensidade I é retirada da informação de cor da imagem e as componentes de matiz e saturação são relacionados com a percepção que os humanos têm das cores, sendo a matiz responsável por descrever a cor pura e a saturação apresenta um grau de diluição de uma cor pura por luz branca. Segundo [11], o modelo HSI é uma ferramenta muito indicada para o desenvolvimento de algoritmos de processamento de imagens baseado em algumas propriedades do sistema visual humano, como por exemplo, fazer a detecção automática do amadurecimento de frutas e vegetais por imagem e inspeção de qualidade de produtos coloridos. 2.3 PROCESSAMENTO DE IMAGENS DIGITAIS O processamento digital de imagens é responsável por fazer operações do tipo restauração e realce em uma determinada cena, procedimentos estes que geralmente são expressos por meio de algoritmos. Segundo [11], o processamento de imagens é caracterizado por soluções específicas, assim, técnicas que funcionem
  • 22. 21 bem em uma área podem se mostrar totalmente inadequadas em outra. O que a disponibilidade de hardware e software faz é fornecer um ponto de partida muito mais avançado que há alguns anos atrás. Quando uma imagem é processada as informações podem ser extraídas mais facilmente, podendo ser dividida em dois tipos de informação, a visual que, compreende aquilo que pode ser visualizado na tela de um computador e descritiva que é a referência matemática dos objetos visualizados. O sistema visual humano é extremamente desenvolvido, processa e extrai informações de imagens a todo o momento e ao inserir máquinas neste contexto o nível de complexidade é elevado, tornando um sistema totalmente dependente da aplicação envolvida, não existindo soluções generalistas, [22] [23]. O processamento de imagens utiliza uma matriz de dados para armazenar a informação de cor em cada ponto da imagem, o sistema de coordenadas pode ser uma grade de números inteiros que descrevem a posição na matriz, podendo ser realizado no domínio do espaço ou frequência, [23]. A técnica de detecção de limiares que será abordada posteriormente é umas das principais para segmentação de informação, onde a parte de interesse da imagem é realçada. A Tabela 1 apresenta os tópicos que devem ser abordados na compreensão de tratamento de imagens digitais. Tabela 1 – Tópicos para processamento de imagens. ETAPAS PARA PROCESSAMENTO DE IMAGENS Aquisição da Imagem Amostragem e Armazenamento Melhoramento Pré-tratamento digital da imagem Segmentação da informação Identificação do objeto de interesse Parametrização Determinação da grandeza dos objetos Reconhecimento Análise quantitativa e aplicação de ferramenta a outras áreas da ciência Classificação dos objetos Associação das grandezas medidas ao problema Fonte: do Autor
  • 23. 22 2.3.1 Aquisição de imagens O processo de conversão de uma cena real tridimensional para uma imagem analógica denomina-se aquisição de imagens. Os sensores mais difundidos atualmente para aquisição de imagens são o CCD (Charge Coupled Device – Dispositivo de Carga acoplado) e o CMOS (Complementary Metal Oxide Semicondutor – Semicondutor de Óxido Metálico Complementar). O sensor CCD consiste em uma matriz de células semicondutoras fotossensíveis (matriz de sensores) que atuam como capacitores, armazenando carga elétrica proporcional à energia luminosa incidente. O sinal elétrico produzido é captado por circuitos eletrônicos que produzem um Sinal Composto de Vídeo (SCV) analógico e monocromático, [9]. Por outro lado, o sensor CMOS faz a leitura digital diretamente com um único sensor, estes são fabricados em processo semelhante ao de microprocessadores. Os elementos fotossensíveis dos sensores CMOS estão diretamente acoplados em resistores, permitindo uma contínua transformação da quantidade luminosa recebida em um sinal elétrico proporcional, [10]. A tecnologia do CMOS tem evoluído rapidamente, por isso alguns equipamentos profissionais compensam a menor sensibilidade do CMOS. 2.3.2 Amostragem e Quantização Para que uma imagem possa ser processada de forma digital ela precisa ter sua função digitalizada tanto espacialmente quanto em amplitude. A digitalização das coordenadas espaciais é denominada amostragem da imagem e a digitalização da amplitude é chamada de quantização, [11]. A amostragem consiste em tomar a informação contínua e analógica do sinal a distâncias equidistantes ao longo dos eixos vertical e horizontal da imagem, uma vez amostrado o plano têm se uma matriz de valores que representa a cor, enquanto a quantização extrai os valores de intensidade luminosa identificados nos pontos amostrados. O processo de amostragem e quantização de uma imagem está intimamente ligado à resolução da imagem produzida. Quanto maior o número de pontos
  • 24. 23 amostrados na imagem, maior será a resolução espacial desta. Do mesmo modo que, quanto maior o número de níveis de intensidade luminosa considerados na imagem para representar a tonalidade de um ponto amostrado, maior será a resolução de tonalidades da imagem. Assim a organização de uma imagem pode ser representada facilmente por uma estrutura matricial, onde o número de pixels das linhas e colunas da matriz é determinado pela amostragem do sinal, e o valor numérico dos elementos é extraído da quantização, [10]. Fonte: [23] Figura 6 – Processo de discretização da imagem. 2.3.3 Resolução espacial de imagens Quando a imagem é digitalizada se torna adimensional, em pixels, sua qualidade pode ser medida conhecendo-se a razão entre o número destes. A Figura 7 apresenta duas imagens com tamanhos reais iguais e com resoluções (pixels) diferentes, como o número de pixels é diferente, na tela também aparecerão com tamanhos diferentes, [23].
  • 25. 24 Fonte: [23] Figura 7 – Imagens com mesmo tamanho e resolução diferente. Se duas imagens diferentes em tamanhos reais são capturadas com resoluções diferentes de tal forma que gerem imagens digitais com o mesmo número de pixels, quando visualizadas no monitor aparecerão com o mesmo tamanho. A Figura 8 apresenta as imagens proporcionais ao seu tamanho original capturadas em resoluções diferentes. Fonte: [23] Figura 8 – Imagens com tamanho diferentes e resolução igual. Para realizar alguma medida sobre os objetos contidos na imagem surge outro parâmetro, a escala. Pode-se defini-la matematicamente idêntica a resolução, só que as unidades serão as mais variadas possíveis. Medem-se algumas distâncias reais na imagem digital e calcula-se a média das razões entre distância e número de pixels, obtendo-se a escala. A partir desse momento outras distâncias podem ser feitas na imagem com qualidade aceitável. Se os objetos não estão em um mesmo plano, as medidas são muito mais complexas e envolvem transformações projetivas, [23].
  • 26. 25 2.3.4 Vizinhança e Conectividade O pixel é geralmente representado como um quadrado preenchido com uma cor que está ao seu centro, é também um elemento de dimensões finitas na representação de uma imagem digital. Semelhante a um tabuleiro de xadrez a organização de uma imagem sob a forma de uma matriz é feita em uma simetria quadrada, facilitando a implementação eletrônica, [23] [24]. Contudo este tipo de organização provoca dificuldade nas técnicas de processamento, um pixel não apresenta as mesmas propriedades em todas as direções, possui 4 vizinhos de borda e 4 vizinhos de diagonal, forçando definir o tipo de conectividade que será trabalhada. A conectividade entre pixels estabelece quando possuem a mesma propriedade para pertencer à mesma região ou ao mesmo objeto. O método coordenadas utilizado para definir uma entre pixels de é usar uma sub-imagem quadrada ou retangular centrada em , [12]. Um pixel qualquer denominado verticais com coordenadas , chamada 4-vizinhança. As coordenadas e vizinhança possui vizinhos horizontais e , e , representam os quatro vizinhos diagonais de para a , . A união da 4- vizinhança com os vizinhos diagonais formam o conjunto 8-vizinhança que engloba todos os pixels vizinhos de “p”, como mostra a Figura 9, onde . Fonte: [10] Figura 9 – Representação de vizinhança. O conceito de vizinhança também pode ser aplicado em imagens tridimensionais, onde os elementos da matriz são chamados de “voxel”. A definição
  • 27. 26 de vizinhos é dada de acordo com os “voxels” que compartilham fases, arestas ou vértices, correspondendo a vizinhanças de 6, 18 e 26 (Figura 10). Fonte: [25] Figura 10 – Representação de vizinhança tridimensional. Para estabelecer se dois pixels estão conectados é preciso detectar se eles são adjacentes e se seus níveis de cinza satisfazem critérios de similaridade, [11] [12]. A conectividade pode ser estabelecida por meio de três critérios: A. 4-conectividade: Um par de pixels vizinhos é dito 4-conectado se eles possuem um lado em comum; B. 8-conectividade: Um par de pixels vizinhos é dito 8-conectado se eles possuem um lado ou um canto em comum; C. m-conectividade: Abreviação de conectividade mista. Consiste em uma modificação da 8-conectividade, visando eliminar possíveis duplicidades de conexão entre dois pixels. Na Figura 11 é apresentada a conectividade entre os pixels, as linhas representam o caminho entre aquele pixel e os seus vizinhos. Fonte: [11] Figura 11 – (a) Distribuição de pixels. (b) 8-conectividade. (c) m-conectividade
  • 28. 27 2.3.5 Histograma As informações estatísticas da distribuição de cores de uma imagem podem ser demonstradas através de manipulação de histogramas, uma das técnicas mais conhecidas para tais análises, [10]. Através de um histograma é possível visualizar o percentual de pixels em uma imagem que apresentam um determinado nível de cinza, valores que normalmente são representados por gráficos, que fornecem para cada nível de cinza o percentual de pixels correspondentes à imagem, desta forma é possível obter informações quanto à qualidade da imagem, como contraste e brilho médio, [15]. Para análise de um histograma é necessário avaliar três parâmetros, a tendência central que é a distribuição de frequências de brilho da imagem, a variabilidade da distribuição de frequências de uma variável e a forma do histograma, que informa a concentração dos dados. A distribuição é o valor mais frequente da variável, chamado de moda, que corresponde à barra mais alta e do valor da média da variável amostrada. A média está relacionada com uma grandeza que indica algo sobre o nível de refletância dos alvos presentes na cena. Se os valores digitais estão concentrados, a imagem mostra pouca variabilidade de brilho. Estatisticamente, a variabilidade é a medida da variância, a qual dá uma ideia de qual é o contraste da imagem. O contraste depende do comportamento espectral dos alvos, e varia com o comprimento de onda, [25]. A classificação de histogramas nas bandas, unimodal, bimodal, simétrico e assimétrico são definidos pelos parâmetros citados acima. Na Figura 12, em (a), o histograma apresenta uma forma simétrica com média baixa; em (b), a média é alta; (c) apresenta uma imagem com uma distribuição mais equilibrada de tons de cinza escuros e claros em relação à média centrada próxima a 128. No caso (d), o histograma tem uma forma bimodal e em (e), o histograma apresenta uma forma assimétrica.
  • 29. 28 Fonte: [25] Figura 12 – Histograma de imagens. 2.3.6 Limiarização A técnica de detecção de limiares é responsável por separar o objeto de interesse do restante da imagem baseado em uma análise da similaridade de níveis de cinza ou níveis de intensidade luminosa. Operações de limiarização simples correspondem à bipartição do histograma, fazendo a conversão de pixel cujo tom de cinza é maior ou igual a um determinado range de valores limiar brancos e os demais em pretos, tendo assim o nível de intensidade luminosa ao qual se deseja realizar o ponto de corte, também conhecido como binarização, [10] [15]. Em um modelo RGB existe um range de valores de 0 a 255 tons de cinza, para cada componente. Tomando como exemplo a componente azul, se um limiar “T” for definido entre 100 e 150 todas as tonalidades abaixo de 100 e acima de 150 tornam-se informações de fundo da imagem, enquanto os valores entre 100 e 150 se tornam a informação correspondente ao objeto de cor azul, podendo definir o valor “0” para o fundo da imagem e “1” para o objeto azul, preto e branco respectivamente. A Figura 13 ilustra a técnica de detecção de limiares simples, como descrito acima.
  • 30. 29 Fonte: [10] Figura 13 – Técnica de detecção de limiares simples. (a) Imagem limiar. (b) Histograma e limiar. (c) Imagem binarizada. Em imageamento colorido todos os níveis de intensidade podem estar presentes. Para fazer a detecção dos múltiplos limiares é necessário definir uma faixa de valores de intensidade luminosa para cada entidade da imagem. Uma que contém dois valores de limiar (azul e vermelho), define-se que correspondem ao fundo da imagem, valores em que azul > correspondem a um determinado objeto e < azul > vermelho > vermelho outro objeto da cena. Mais valores de limiar podem ser definidos em uma mesma cena, sendo as técnicas de segmentação baseadas em regiões mais adequadas, [10] [11]. 2.4 TRANSFORMAÇÕES GEOMÉTRICAS O principal efeito da transformação geométrica é alterar a posição espacial dos pixels que compõe a imagem, [28]. De maneira resumida consiste em operações matemáticas realizadas através de vetores, permitindo alterar uniformemente o aspecto de um modelo já armazenado no computador. Sendo estas alterações responsáveis por alterar os aspectos que a figura irá assumir e não a estrutura do mesmo, [29]. As transformações geométricas podem ser definidas em três tipos fundamentais: translação, rotação e escala. A translação é utilizada para definir a posição de um objeto ou cena. Matematicamente, esta operação consiste em adicionar constantes de deslocamento a todos os pontos, ou seja, trocando o objeto ou cena de lugar (Figura 14).
  • 31. 30 Fonte: [28] Figura 14 – Transformações Geométricas – Translação. Um ponto de coordenadas (X, Y e Z) para um nova posição usando-se o deslocamento (X’, Y’ e Z’) pode ser representada pelo uso da Equação 2.1, sendo (X”, Y” e Z”), as coordenadas do novo ponto. (2.1) Para deslocar a imagem no plano, basta somar as coordenadas cartesianas de cada um de seus pontos em um mesmo vetor (X”, Y”), conforme Equação 2.2, [28] [29]. (2.2) A transformação geométrica de escala é utilizada para definir a escala exibida do objeto ou cena. A operação consiste em multiplicar um valor de escala por todos os pontos do objeto que terá seu tamanho ampliado ou reduzido. No caso de se aplicar um fator de escala negativo, o objeto terá os sinais de suas coordenadas invertidos, gerando como resultado o seu “espelhamento” no eixo que teve o fator de escala negativo, [29]. A ampliação dos pixels consiste em duplicar os valores destes na direção X e Y ou em ambas. Ao expandir a imagem por um fator 2 cada pixel é copiado 4 vezes, resultando em 3 vizinhos (Figura 15). Para reduzir as dimensões da imagem de um fator de 2 deve-se aplicar o processo inverso, [28].
  • 32. 31 Fonte: [28] Figura 15 – Transformações Geométricas – Escala. O espelhamento inverte o sentido dos ângulos preservando seu valor absoluto. O objetivo é refletir a imagem em torno do eixo X ou Y(Equação 2.3), [28]. (2.3) Uma imagem pode ser rotacional de um ângulo arbitrário, tanto no sentido horário quanto no anti-horário (Figura 16). O resultado é um deslocamento que preserva a distância entre o ponto e o referencial. A operação matemática é realizada por uma composição de cálculos utilizando o seno e cosseno do ângulo de rotação a todas as coordenadas de cada ponto que compõem o objeto ou cena. Fonte: [28] Figura 16 – Transformações Geométricas – Rotação. A rotação de cada ponto (X, Y) de uma imagem por um ângulo arbitrário mapeará este ponto na localidade de coordenadas (X”, Y”), através da equação 2.4. (2.4)
  • 33. 32 2.5 CALIBRAÇÃO A calibração de um sistema de visão computacional determina elementos que correlacionam medidas dos objetos do mundo real que contém informações tridimensionais com medidas atuais na imagem bidimensional. Fazendo a tradução dos pixels de uma imagem para uma unidade de medição padrão conhecida, [10] [13]. A calibração pode ser classificada como intrínseca e extrínseca. Segundo [13] pode-se dizer que a calibração intrínseca é feita a partir das características geométricas internas da câmera tais como, distância focal, coordenadas do centro da imagem, tamanho do pixel e coeficientes de distorção radial, tangencial, entre outros. Enquanto a calibração extrínseca é caracterizada pelas informações geométricas externas como, posição e orientação tridimensional do sistema da câmera em relação a um sistema de coordenadas fixo, tomado como referência. Quando a calibração é retratada para sistemas de visão aplicado na robótica o objetivo é determinar a relação entre o sistema de coordenadas da câmera e o sistema de coordenadas do manipulador robótico. 2.6 ILUMINAÇÃO A iluminação é fundamental para que a cena capturada pela câmera tenha qualidade o suficiente para o processamento, uma vez que o objeto não emite luz própria e que, a câmera captura luz refletida sobre a cena observada. Existem muitas soluções de visão que requerem inclusive a aplicação de luz incidente em faixas não visíveis do espectro luminoso, como por exemplo, as imagens de tomografia médica, algumas imagens astronômicas e imagens infra-vermelho de curvas de calor, [10]. Existem diversas técnicas de iluminação, direcional, multidirecional, luz de fundo, difusa, estruturada, entre outras. O emprego de cada uma destas irá depender do grau de realce que precisa ser obtido no objeto. Segundo [10], um projeto de iluminação de um sistema de visão é composto do tamanho exato do campo de visão, fonte luminosa e a geometria, que diz respeito à posição da fonte
  • 34. 33 em relação ao objeto e sensor, eficácia e características necessárias para realçar as partes desejáveis do objeto de forma homogênea e constantes ao longo do tempo. Fonte: [12] Figura 17 – Exemplos de Técnica de Iluminação. A. Multidirecional: Emissão de diversos feixes luminosos provindos de diferentes pontos em relação ao centro do objeto, gerando uma iluminação mais uniforme de toda sua superfície, as vantagens estão na redução de sombras, intensidade e uniformidade, em contrapartida pode gerar muito brilho e os custos são elevados; B. Luz de Fundo: O posicionamento da fonte luminosa está atrás do objeto. Útil para aplicações em metrologia e análise de objetos translúcidos. Propicia ótimo contraste para detecção de bordas e análise de objetos translúcidos. Como desvantagem elimina os detalhes superficiais do objeto, por não serem iluminados; C. Difusa: Consiste em projetar iluminação perpendicularmente ao eixo óptico através de um difusor. Suas vantagens estão na redução de sombras e brilho, apresentação de iluminação uniforme das superfícies planas e desvantagens, na limitação a pequenas distâncias de trabalho, produz pouca intensidade luminosa, além de ser de difícil instalação e ter custos mais elevados; D. Estruturada: Produz uma linha luminosa sobre a superfície do objeto, possibilitando uma análise das características geométricas da superfície do objeto ao movimentar esta linha sobre o mesmo. Vantagens: Destaca informações de
  • 35. 34 relevo e geometria das superfícies, muito usada em aplicações em 3D. Desvantagens: Requer fontes potentes de iluminação, de difícil calibração e complexo sistema de movimentação do feixe luminoso, [10]. 2.7 COMPONENTES DE UM ROBÔ INDUSTRIAL Segundo [21], um robô industrial é formado pela integração dos seguintes itens: A. Manipulador Mecânico: O manipulador mecânico é constituído de elos conectados entre si por meio de juntas. As juntas são responsáveis por permitir flexibilidade ao robô, com movimentos lineares ou rotacionais. O número de juntas define quantos graus de liberdade o robô possui. Fonte: [21] Figura 18 – Representação de elos e juntas de um robô. B. Atuadores: São componentes responsáveis por converter energia do tipo hidráulica, pneumática e eletromagnética em potência mecânica; C. Sensores: São responsáveis por enviar informações como posição e velocidade dos elos em função do tempo e informações de torque, força e visão computacional como meio de interação do robô e o ambiente; D. Efetuador: Elemento do tipo garra ou ferramenta conectado ao robô e ao meio que o cerca.
  • 36. 35 2.8 CLASSIFICAÇÃO GEOMÉTRICA DE ROBÔS INDUSTRIAIS A classificação geométrica dos robôs descreve o movimento que ele executa, definidas quanto ao tipo de junta (rotação, translação) que são comumente denominados sistemas geométricos coordenados, [19]. A. Robô Antropomórfico: Tipo de configuração que permite maior flexibilidade ao robô é composto de no mínimo três juntas de rotação; B. Robô de Coordenadas Cartesianas: Constituído de três juntas prismáticas com movimentos de translação. O volume de trabalho gerado é retangular; C. Robô de Coordenadas Cilíndricas: Formado por duas juntas prismáticas e uma de rotação, movimentos de duas translações e uma rotação. O volume de trabalho gerado é cilíndrico; D. Robô de Coordenadas Esféricas: Uma junta prismática e duas de rotação constituem o robô, movimentos de uma translação e duas rotações. O volume de trabalho gerado é aproximadamente uma esfera; E. Robô SCARA: Muito usado na montagem de placa de circuitos eletrônicos, formado por duas juntas de rotação dispostas em paralelo para se ter movimento num plano e uma junta prismática perpendicular a este plano, com movimentos de uma translação e duas rotações. O volume de trabalho gerado é aproximadamente cilíndrico; F. Robô Paralelo: Configuração tipo plataforma e mecanismos em forma de cadeia cinemática fechada. Seu volume de trabalho é semi-esférico, [21].
  • 37. 36 Fonte: [21] Figura 19 – Volume de trabalho de robôs industriais. (a) Robô antropomórfico. (b) Robô cartesiano. (c) Robô de coordenadas cilíndricas. (d) Robô de coordenadas esféricas. (e) Robô SCARA. 2.9 CINEMÁTICA DE UM BRAÇO ROBÓTICO O movimento de um corpo ou conjunto de corpos levando em consideração a ausência de sua massa e forças atuantes sobre estes, pode ser definido como cinemática, [19]. O modelo geométrico de um robô expressa a posição e orientação de um elemento terminal em relação a um sistema de coordenadas fixo, em relação à base [20], em outras palavras, uma das extremidades (base) é fixa, enquanto a outra é livre para se movimentar no espaço. Um manipulador é formado por um conjunto de elos conectados por articulações, sendo que cada elo possui um grau de liberdade, translação ou rotação. Em 1955 Jacques Denavit e Richard Hartenberg propuseram uma forma sistemática de descrever a geometria de um conjunto de elos com “N” graus de liberdade.
  • 38. 37 Fonte: [20] Figura 20 – Notação de Denavit-Hartenberg. Na Figura 20 é possível notar que um eixo de uma junta estabelece a conexão de dois elos. Estes eixos de juntas devem ter duas normais conectadas neles, uma para cada um dos elos. A posição relativa destes dois elos conectados (elo j-1 e elo j) é dada por “dj”, que é a distância medida ao longo do eixo da junta entre suas normais. O ângulo de junta “θj” entre as normais é medido em um plano normal ao eixo da junta. Um elo “j” só pode estar conectado a dois elos no máximo. Do ponto de vista cinemático estes mantêm uma configuração fixa entre suas juntas que podem ser definidos por dois parâmetros “aj” e “αj”, chamados respectivamente, comprimento e ângulo de torção do elo “j”. Desta forma (aj, αj) determinam a estrutura dos elos e os parâmetros da junta, enquanto (dj, θj) definem a posição relativa de elos vizinhos [21]. 2.9.1 Cinemática Direta A posição de um manipulador no espaço onde se encontra é descrita pela cinemática direta. A posição e velocidade podem ser obtidas a partir da matriz de transformação homogênea que por sua vez é estabelecida a partir dos parâmetros de DH (Denavit – Hartenberg).
  • 39. 38 Segundo [19], um ponto qualquer “P” expresso ao coordenadas, pode ser expresso no sistema de sistema de coordenadas como com os seguintes itens: A. eixo Rotação no eixo de um ângulo alinhando o eixo com o ; B. eixos Translação de uma distância de ai ao longo do eixo e C. na coincidência; Translação ao longo do eixo duas origens com o eixo D. trazendo os a uma distância de trazendo as na coincidência; Rotação no eixo de um ângulo de para trazer os dois sistemas de coordenadas na coincidência; As operações citadas acima podem ser descritas por uma matriz de transformação homogênea de rotação – translação sendo o produto das quatro matrizes o resultado da matriz homogênea composta, também conhecida como matriz de transformação de DH, conforme é apresentado na Equação 2.5. [ ][ ][ ][ ] (2.5) [ ] Onde: e = Constantes; = Variável de junta para uma junta rotativa. As juntas prismáticas possuem uma característica diferente, portanto sua matriz de transformação é representada pela Equação 2.6.
  • 40. 39 [ ] (2.6) Onde: e α = Constantes; = Junta prismática variável; 2.9.2 Cinemática Inversa As juntas de um robô precisam ter um movimento de referência (angular) para um dado movimento de referência do elemento terminal, em outras palavras, encontrar os ângulos de juntas partindo das referências do objeto a ser capturado pelo manipulador. Os métodos analíticos e numéricos iterativos trazem soluções para obtenção da inversão do modelo geométrico. Quando a definição do modelo de DH traz a maioria de seus resultados nulos, ou seja, quando se tem um robô simples, o método analítico é mais indicado, pois apresenta todas as soluções possíveis. O método numérico iterativo conduz para uma solução entre todas as existentes. Dentre os métodos numéricos iterativos tem-se o método recursivo, que faz uso do cálculo do modelo geométrico direto da matriz jacobiana inversa, [19]. 2.10 POTENCIÔMETRO O potenciômetro é uma resistência elétrica com precisão elevada que possui três terminais, sendo dois destes ligados a duas entradas de tensão do circuito elétrico e o terceiro terminal, ligado à saída do circuito, é ajustável ao longo de um elemento da resistência situado entre os dois terminais fixos, dividindo deste modo a resistência em duas componentes (Figura 21). O potenciômetro é utilizado para variar a tensão aplicada no circuito, uma vez que a posição do terminal móvel determina qual a porcentagem da tensão de entrada que é aplicada neste.
  • 41. 40 Fonte: [30] Figura 21 – Potenciômetros rotativos. O eixo indicado na Figura 21 corresponde ao cursor móvel do potenciômetro. Neste caso, o potenciômetro possui uma volta, o que significa que 100% da resistência correspondem a variar o cursor em 270 graus. Existem outros potenciômetros rotativos que permitem que seja dada mais de uma volta, [30]. 2.11 MOTOR DE PASSO O motor de passo é um dispositivo eletromecânico que tem por objetivo converter pulsos elétricos em movimentos mecânicos gerando variações angulares discretas. A rotação dos motores é diretamente relacionada aos impulsos elétricos que são recebidos. A velocidade de giro do motor é dada pela frequência de pulsos recebidos e o tamanho do ângulo rotacionado é diretamente relacionado com o número de pulsos aplicados, [31]. Este tipo de motor é recomendado para tarefas que necessitem de precisão, podendo ser usado em aplicações onde é necessário controlar fatores tais como: ângulo de rotação, velocidade, posição e sincronismo. Ao contrário da maioria dos motores elétricos, este não exerce torque elevado, é indicado principalmente para impressoras, scanners, robôs, câmeras de vídeo, automação industrial entre outros dispositivos eletrônicos que requerem precisão, [31]. Os motores de passo possuem um número fixo de polos magnéticos que determinam o número de passos por revolução, os mais comuns possuem de 3 a 72 passos, significando que ele leva de 3 a 72 passos/revolução para completar uma volta. Quanto a sua estrutura, podem ser apresentados alguns tipos:
  • 42. 41 A. Relutância Variável: Possui um motor de ferro com múltiplos dentes e um rotor com enrolamentos. A rotação é iniciada quando os dentes do estator são atraídos para os polos deste energizado; B. Imã Permanente: Baixo custo e resolução, este motor possui 48-24 passos/revolução, seu rotor não possui dentes e é construído com imãs permanentes. Se comparado ao motor de relutância variável este motor possui uma melhor característica de torque; C. Híbrido: O custo deste motor é mais alto que do motor de imã permanente por possuir maior desempenho no que se trata de resolução de passo, torque e velocidade. O rotor é multi-dentado e contem um imã permanente ao redor de seu eixo. Este possui 100-400 passos por volta, [31]. Fonte: [31] Figura 22 – Tipos de motores de passo.
  • 43. 42 3 METODOLOGIA O Fluxograma apresentado na Figura 23 exemplifica os passos que serão descritos na metodologia proposta neste trabalho. INÍCIO . Colocar o robô Escolha do objeto Inicializa a câmera na posição inicial (azul ou vermelho) para captura da pré-definida. via teclado. imagem. Capturar o objeto e Processar a imagem direciona-lo a uma baseada na técnica de posição pré-definida. identificação de limiares Objeto certo Enviar os valores de mensagem sonora potenciômetros para ou na tela = referência dos motores e “OBJETO OK” consequente posicionamento do robô ao objeto. Encontrar o centroide do objeto identificado Fazer a conversão de radianos fornecida pela cinemática inversa para Realizar a transformação graus e referência dos dos pixels da imagem potenciômetros. para unidade conhecida pelo robô (métrica). Determinar os ângulos de junta através da cinemática inversa dada à referência do objeto no volume de trabalho. Fazer a conversão da porta Realizar a cinemática paralela existente para direta para obter a serial. Realizar a posição do robô no comunicação do Arduino espaço. com Matlab . Fonte: do Autor Figura 23 – Fluxograma do processo ®
  • 44. 43 3.1 ESTRUTURA DO BRAÇO ROBÓTICO A estrutura física do manipulador robótico bem como sua interface de acionamento já estavam disponíveis para implementação da visão computacional, resultado de um trabalho anterior [27], onde seu objetivo principal foi a construção física do braço robótico, este trabalho leva como titulo Robô Didático Antropomórfico Controlado via Matlab®. O manipulador robótico possui uma estrutura com três eixos, o deslocamento de cada um destes é realizado por motores de passo e sua referência de posição é dada por potenciômetros. Através do cálculo de momento, de acordo com as forças exercidas nas extremidades do braço, foi calculado o torque necessário dos motores que ficariam acoplados ao ombro e ao cotovelo do mesmo [27]. O torque necessário para o motor acoplado ao ombro foi elevado, pois o mesmo precisa exercer força suficiente para suportar os dois eixos (ombro e cotovelo), necessitando de um torque de 6.606 N/m, enquanto o cotovelo de 1.314 N/m. Todos os cálculos de momento podem ser visualizados em [27]. Para o cotovelo foi adquirido um motor de passo que suporta até 30 Kg.cm, ou 2.94 N/m, o suficiente para trabalhar com a primeira parte do braço. Enquanto para o motor do ombro que possui um torque de 6,606 N/m, foi adquirido um motor reduzido, devido ao tamanho e custo. Este fornece 40 Kg.cm ou 3.922 N/m, podendo operar em pequenos intervalos até 60 Kg.cm ou 6 N/m. A Figura 24 apresenta os eixos com os motores acoplados, ombro a direita e cotovelo a esquerda.
  • 45. 44 2 1 Fonte: [27] Figura 24 – Vista frontal do braço robótico com os motores do cotovelo (1) e ombro (2). O motor responsável pelo giro da base foi acoplado à uma polia de alumínio ao eixo da base e sua transmissão foi feita por uma correia. Este motor está fixado na parte inferior da mesa (Figura 25). A relação polia do motor x polia do eixo, foi de 2:1 para aumentar e garantir a força do motor no giro da base e também para melhorar a precisão dos movimentos [27]. Fonte: [27] Figura 25 – Motor responsável pelo giro da base. Por se tratar de uma estrutura que passou por diversos testes de movimento, a caixa de transmissão do segundo eixo foi danificada, sem reparação. Como mencionado no trabalho [27] o peso que o segundo eixo teria que suportar era elevado, sobrecarregando tanto o motor como o sistema de transmissão.
  • 46. 45 Segundo [27], É (sic) importante frisar, que a redução deste motor opera em seu limite máximo, já que está sendo submetido a cargas mais elevadas que o indicado, e talvez por conta disto a vida útil do mecanismo seja reduzida em grandes proporções. Devido a este problema uma nova estrutura foi elaborada a fim de dar continuidade à metodologia proposta. Para tanto, foi desenvolvido um sistema de transmissão com parafuso rosca sem fim, que é um tipo de engrenagem, onde o movimento circular gerado pelo parafuso movimenta uma coroa ou um pinhão teoricamente sem fim, também foi trocado a estrutura do elo do cotovelo por uma de acrílico, a fim de reduzir o peso. Na Figura 26 é apresentada a nova estrutura. Fonte: do Autor Figura 26 – Nova estrutura do braço robótico. Foram utilizados potenciômetros comuns lineares com resistência de 10KΩ para posicionamento dos motores, estes foram montados em chapa de alumínio e fixados a estrutura de cada eixo (Figura 27).
  • 47. 46 Fonte: [27] Figura 27 – Potenciômetros. A placa que controla os motores do braço robótico é da marca Toshiba® e modelo TB6560AHQ, responsável por fazer o acionamento dos três motores de forma simultânea via porta paralela do computador. Atualmente o controle de acionamento, direção e movimento dos motores estão sendo feitos por este drive e o Matlab®. Inicialmente o controle dos motores era realizado através dos pinos da porta paralela, Passo (STEP), Direção e Habilita. A placa drive utilizada para fazer o controle dos motores não permite comunicação de outra maneira. No projeto citado anteriormente foram descritos problemas em relação à velocidade de processamento alcançada, devido ao uso de computadores com menor capacidade para processar os dados executados no Matlab ®, não usando por completo o desempenho dos motores. Neste contexto, o presente projeto utilizou de comunicação via porta serial, onde o Arduino® ficou como interface entre a placa drive de acionamento e o Matlab, por meio de sua comunicação serial. Para tanto, foram utilizadas nove saídas digitais e o pino de aterramento deste, cada motor utiliza três saídas digitais, (Step, Direção e Habilita). A Tabela 2 estabelece a relação entre porta paralela e as saídas digitais do Arduino®.
  • 48. 47 ® Tabela 2 – Relação da porta paralela e as saídas digitais do Arduino . FUNÇÃO Step Y Direção X Habilita Z Step Z Direção Z Direção Y Habilita Y Step X Habilita X GND CONVERSÃO PORTA PARALELA PARA SERIAL PORTA DIGITAIS PARALELA ARDUINO PINO 1 9 PINO 2 4 PINO 3 7 PINO 4 8 PINO 5 11 PINO 6 5 PINO 7 6 PINO 8 10 PINO 14 3 PINO 24 GND Fonte: do Autor. 3.2 INTERFACE Com as saídas digitais da placa de prototipagem Arduino® conectadas aos respectivos pinos da porta paralela, foi possível estabelecer um protocolo de comunicação serial, para realização desta tarefa foi utilizado o ambiente de computação Matlab® e o ambiente de programação Arduino®. Através do Arduino® e de seu ambiente de programação foram realizadas as leituras das entradas analógicas, que recebe o valor dos três potenciômetros e envia o comando para as saídas digitais, como finalidade de acionamento dos motores. Uma média das entradas analógicas foi executada, a fim de trazer maior confiabilidade da leitura. A Figura 28 ilustra a condição estabelecida para realizar a média das entradas analógicas.
  • 49. 48 Fonte: do Autor Figura 28 – Média das entradas analógicas. A referência obtida pelo potenciômetro resultará no posicionamento do motor, desta forma é preciso estabelecer uma condição que receba a leitura da posição do potenciômetro e envie a posição desejada. Na Figura 29 é apresentada a rotina responsável por acionar um dos motores em sentido horário e anti-horário, conforme o posicionamento do potenciômetro no respectivo eixo. Fonte: do Autor Figura 29 – Sentido de giro e velocidade do motor. Sendo RX: Referência para fazer o sentido do giro; DX: Direção do giro do motor; SX: Velocidade do motor;
  • 50. 49 Se AX que é a leitura do potenciômetro no respectivo eixo for menor que a referência fornecida, o motor faz o giro para um lado, senão para o outro lado. O mesmo procedimento realizado para o eixo X é realizado no eixo Y e Z. 3.2.1 Comunicação Serial Foi necessário criar dois bytes para receber e enviar os valores de cada potenciômetro, que pode variar de 0 a 1023 (Figura 30). Fonte: do Autor Figura 30 – Criação da serial. O código que recebe os valores desejados dos potenciômetros para posicionamento do braço robótico está no ambiente de programação Matlab®, conforme indicado na Figura 31.
  • 51. 50 Fonte: do Autor ® Figura 31 – Comunicação serial Matlab . Sendo: XA, YA e ZA: Envia valores desejados para posicionamento do braço robótico, com base nos valores dos potenciômetros; “b” e “c”: Formam 2 bytes para enviar os valores de XA para a serial; “d” e “e”: Formam 2 bytes para enviar os valores de YA para a serial; “f” e “g”: Formam 2 bytes para enviar os valores de ZA para a serial; XR, YR e ZR: Recebe a leitura das analógicas com o valor da posição dos potenciômetros.
  • 52. 51 3.3 ACIONAMENTO DA BOBINA Como a estrutura atual do braço robótico não possui efetuador final foi necessário colocar uma bobina na extremidade do cotovelo a fim de imantar a peça que já foi construída com uma chapa de ferro na parte superior. A bobina utilizada possui 700 voltas de enrolamento e a corrente que esta suportada é de aproximadamente 3A, [33]. Desta forma foi elaborado um circuito de acionamento, onde foi utilizado um TIP 120, um resistor de 1KΩ e um diodo roda livre, foi utilizada uma fonte de alimentação 5V/2,5A. A Figura 32 apresenta o circuito responsável por fazer o acionamento. Fonte: do Autor Figura 32 – Circuito de acionamento da bobina. Para acionamento foi feito uso da saída digital 12 do Arduino® e o pino de GND. O comando responsável por ligar e desligar a bobina está incorporado ao código de comando dos motores e comunicação serial (Figura 33).
  • 53. 52 Fonte: do Autor Figura 33 – Código para acionamento da bobina. 3.4 PROCESSAMENTO DE IMAGENS Para a aquisição e processamento de imagens foi desenvolvido um sistema que captura uma foto e faz a sua detecção de limiares. A técnica de limiarização é responsável por agrupar diferentes objetos e regiões da imagem conforme a similaridade de tonalidades entre os mesmos. Através de uma amostra de imagem de cor vermelha e outra de cor azul, foi possível identificar a intensidade luminosa (níveis de cinza) de cada elemento RGB por meio do comando Imtool da toolbox Image Processing do Matlab®, então foi elaborado um range de valores para intensidade luminosa de cada cor e através da varredura de linhas e colunas da matriz que compõe a imagem capturada foi possível identificar o exato local do objeto desejado. Os comandos utilizados para realizar este procedimento são os mesmos para ambas as cores, exceto pelo range de valores, que foi encontrado através da intensidade luminosa de cada cor. Com o comando getsnapshop do Matlab® foi feito a aquisição da imagem em formato RGB, a partir da entrada vid (Figura 34).
  • 54. 53 Fonte: do Autor Figura 34 – Aquisição da imagem em formato RGB. A Figura 35 apresenta a rotina utilizada para fazer a detecção de limiares da imagem. Quando encontrados valores de interesse na imagem capturada, que são definidos pela intensidade luminosa de cada componente RGB, estes são preenchidos com número “1” e o restante da imagem com o número “0”, branco e preto respectivamente. Fonte: do Autor Figura 35 – Detecção de limiares da imagem em formato RGB. Com o comando graythresh seguido de im2bw, da toolbox Image Processing do Matlab® é possível obter os mesmo resultados da rotina citada acima, porém este transforma a imagem em escala de cinza para depois fazer a limiarização, fugindo de um dos objetivos do trabalho, que é fazer o reconhecimento das cores vermelho e azul.
  • 55. 54 A imagem no modelo RGB é apresentada na Figura 36 – a, enquanto b apresenta o resultado obtido pela rotina que faz a detecção de limiares da imagem, transformando esta em binarizada. Fonte: do Autor Figura 36 – Imagem dos objetos de interesse. (a) Imagem no formato RGB. (b) Imagem binarizada. Com o objeto de interesse identificado do restante da imagem, o próximo passo foi encontrar o seu centro geométrico. Para tanto, foi realizado o preenchimento de buracos na imagem binária, através do comando imfill do Matlab®. O centroide do objeto foi encontrado através do comando regionprops, que é responsável por encontrar diversas propriedades de uma imagem, tais como: área, perímetro, centroide, orientação, entre outros. Neste trabalho foi utilizada somente a propriedade que identifica o centroide (Centroid, 1-por-Q vector), descrito por dois elementos, coordenada horizontal (x) e a coordenada vertical (y) do centroide. A Figura 37 apresenta a rotina capaz de identificar o centroide através da imagem binarizada. Fonte: do Autor Figura 37 – Localização do centroide do objeto.
  • 56. 55 As variações da iluminação no ambiente tornam os níveis de intensidade luminosa das componentes RGB instáveis, variando conforme a intensidade de luz no ambiente. A fim de minimizar tais perdas foi realizada a conversão do formato RGB para YIQ, este modelo se baseia na separação dos sinais de cor RGB em um sinal de luminosidade (Y), e dois sinais de cromaticidade ou diferença de cor (I Q). A conversão foi realizada por meio do comando NTSC do Matlab®. Com a conversão do formato é possível trabalhar com um range de valores diferente para cada objeto, agora com as características de luminosidade e cromaticidade separadas em três canais distintos. A rotina que realiza o procedimento é a mesma usada para o modelo RBG, diferenciando apenas na conversão para YIQ e no range de valores para cada cor (Figura 38). Fonte: do Autor Figura 38 – Conversão do modelo de cores RGB para YIQ. A escolha do objeto foi feita via teclado, o usuário deve pressionar (1) para escolher o objeto vermelho e (2) para escolher o objeto azul, conforme ilustra a Figura 39. Fonte: do Autor Figura 39 – Escolha do objeto.
  • 57. 56 3.5 MODELAGEM CINEMÁTICA A evolução no tempo das coordenadas das juntas de um robô representa o modelo cinemático de um sistema articulado no espaço tridimensional. Para facilitar a definição dos parâmetros associados a cada elo, ou também chamado de link, o primeiro passo foi definir os sistemas de coordenadas para cada um destes. A Figura 40 apresenta os sistemas de coordenadas referentes a cada junta de 1 a 3. Fonte: [do Autor] Figura 40 – Sistema de coordenadas para o procedimento de D-H. A simulação da trajetória de movimentos do braço robótico, foi feita através da Toolbox Robotics do Matlab®. Considerando estes sistemas de coordenadas de acordo com a análise de posicionamento e seguindo o algoritmo proposto por Denavit-Hartenberg obtêm-se os parâmetros cinemáticos para cada link, como ilustrado na Tabela 3. Tabela 3 – Parâmetros de Denavit-Hartenberg. LINK1 LINK2 LINK3 Fonte: Do autor THETA 0 0 0 DI 0.47 0 0 AI 0 0.375 0.300 ALPHA pi/2 0 0 R/P 0 0 0 Nome BASE OMBRO COTOVELO
  • 58. 57 A rotina que permite obter a posição do objeto desejado no espaço é apresentada na Figura 41. O comando ikine da toolbox Robotics fornece a posição dentro do volume de trabalho para cada link do braço robótico, com base nas informações das coordenadas X, Y e Z fornecidas em unidade métrica. Fonte: [do Autor] Figura 41 – Configuração da trajetória do braço robótico. A função “Link” é responsável por criar cada elo do braço robótico. Cada Link é composto dos parâmetros definidos no algoritmo de DH. Onde: Theta: Ângulo de junta; Di: Deslocamento do elo; Ai: Comprimento do elo; Alpha: Torção do elo; R/P: Tipo de junta, “0” para rotativa e “1” para prismática; A função “SerialLink” cria o robô com base nos parâmetros definidos para cada link. Para criar a matriz de transformação homogênea (cinemática direta), foi utilizada a função “Transl”, enquanto a cinemática inversa foi definida pela função “R.ikine” com base nos parâmetros da cinemática direta. O modelo robô é plotado no espaço pelo comando “R.plot” (Figura 42).
  • 59. 58 1 Z 0.5 3 2 y x z 0 robot 1 -0.5 -1 1 0.5 1 0.5 0 0 -0.5 Y -1 -0.5 -1 X Fonte: [do Autor] Figura 42 – Modelo robô plotado no espaço. 3.6 CONVERSÃO VALORES DE POTENCIÔMETRO Ao simular a cinemática inversa são retornados valores em radianos da posição que cada link deve assumir no espaço, representados pela variável “qi”, sendo -0.5880 a posição para base, 0.2017 posição para o ombro e 1.4042 do cotovelo. O robô físico deve assumir as distâncias correspondentes ao solicitado nas coordenadas X, Y e Z. Os valores devem ser fornecidos em metros (Figura 43). Fonte: [do Autor] Figura 43 – Posição dos links em radianos. O efetuador final do braço deve parar nas posições solicitadas 30, 20 e 20 cm para X, Y e Z respectivamente. A Figura 44 apresenta a simulação virtual do braço
  • 60. 59 robótico para os valores solicitados, o robô físico deve assumir uma posição semelhante a esta representada na Figura 44. 1 0.5 Z 3 2 x y z 0 robot 1 -0.5 -1 1 0.5 1 0.5 0 0 -0.5 Y -0.5 -1 -1 X .; Fonte: do Autor Figura 44 – Modelo robô nas posições x=30 cm, y=20 cm e z=20 cm. Como a referência para posicionamento do robô foi fornecida pelos valores dos potenciômetros em cada link, foi necessário fazer a conversão de radianos recebidos pelo comando Ikine para graus e em seguida para valor adequado no potenciômetro. A conversão de radianos para graus foi feita pela relação de regra de três, sendo a equação 3.1 realizada para os três links com seus valores respectivos. ( ) 3.1 Onde: kx = Valor recebido do comando Ikine em radiano; 180/π = Relação de conversão de radianos para graus; convradgrX = Recebe o valor da conversão em graus. Para realizar a conversão de graus para os valores de potenciômetro, foi necessário realizar leituras nos três potenciômetros, resgatando o valor em 0º e 90º, para que possa ser feita uma relação de graus e um determinado valor de potenciômetro, por exemplo, se a leitura realizada em 0º for de 700 em valor de potenciômetro e a leitura realizada em 90º for de 378 também em valor de
  • 61. 60 potenciômetro, então a diferença entre estes que foi de 322 fornece o parâmetro de conversão de graus pra valores de potenciômetros, conforme indicado na Equação 3.2. ( ) 3.2 Onde: convradgrX = Recebe o valor da conversão em graus; 322/90 = Relação para transformar graus em valores de potenciômetro; convgrpotX = Recebe o valor da conversão em valores de potenciômetros. 3.7 LOCALIZAÇÃO OBJETO Com o objeto identificado do restante da imagem e com a referência do centroide é possível fornecer parâmetros para identificação da peça em relação à base do braço robótico. O primeiro passo foi fixar a câmera em direção ao volume de trabalho do robô, a Figura 45 apresenta o ponto em que a webcam foi alocada. Ao fixar a câmera neste ponto foi realizada a captura de uma foto a fim de fazer a relação de pixels por unidade métrica. Fonte: do Autor Figura 45 – Posição da câmera (Webcam).
  • 62. 61 A webcam utilizada possui uma resolução de 240 x 320pixels. Do ponto fixo da câmera para esta resolução, foi encontrado o valor de 33 cm em 240pixels, que representa o eixo Y do sistema de coordenadas da câmera e 44 cm em 320 pixels, representando o eixo X (Figura 46). Fonte: do Autor Figura 46 – Referência de pixels por cm. Essa relação permitiu estabelecer o exato ponto do centroide em referência métrica. Se para 320 pixels a referência métrica é de 44 cm, quantos cm serão estabelecidos ao encontrar o centroide. A equação 3.3 expressa a coordenada X da imagem. Será tomado como exemplo o centroide na coordenada X com 50 pixels. ( ) ( ) 3.3 Sendo: Centroids(1) = O centroide do objeto identificado na coordenada X da imagem; 44/320 = Relação de transformação em unidade métrica; 100 = Conversão para valor em metros; ConvertcoordX = Recebe valor em metros do centroide.
  • 63. 62 Centroide na coordenada Y com 103 pixels (Equação 3.4). ( ) 3.4 ( ) Sendo: Centroids(2) = O centroide do objeto identificado na coordenada Y da imagem; 33/240 = Relação de transformação em unidade métrica; 100 = Conversão para valor em metros; ConvertcoordY = Recebe valor em metros do centroide. Após converter os valores em pixels para unidade métrica conhecida pelo braço robótico é necessário cruzar os sistemas de coordenadas deste e da imagem coletada. O braço robótico possui um sistema de coordenadas no plano 3D, sendo necessário trabalhar em X, Y e Z para seu posicionamento. Enquanto a imagem possui um sistema de coordenadas somente no plano 2D, X e Y.
  • 64. 63 Fonte: do Autor Figura 47 – Distância em X e Y até a área de trabalho. A Figura 47 apresenta a distância da base do braço robótico que será tomada como referência para que seja feito a integração dos dois sistemas de coordenadas, até o inicio da área de trabalho, em X e Y. Devido ao posicionamento adotado para realizar a tarefa os sistemas de coordenadas ficaram invertidos (Equação 3.5). – – (3.5) Onde: ConvertcoordY = Recebe valor em metros do centroide em Y; -0.20 = Distância da base do braço robótico até a área de trabalho em Y; coordimgX = Recebe valor que será a referência da coordenada X do braço robótico; ConvertcoordX = Recebe valor em metros do centroide em X; -0.38 = Distância da base do braço robótico até a área de trabalho em X;
  • 65. 64 coordimgY = Recebe valor que será a referência da coordenada Y do braço robótico. Para coordenada Z foi estabelecida uma distância fixa de 10cm, que é a altura do objeto desejado. Como a câmera é fixa e a área de trabalho é estruturada em relação à base do robô, não foi necessário estabelecer relação com o sistema de coordenadas da imagem para esta coordenada.
  • 66. 65 4 RESULTADOS OBTIDOS Os resultados obtidos foram coletados com base na metodologia proposta. Foram realizados diversos testes de movimento do braço robótico por coordenadas absolutas, através da ferramenta Robotics Toolbox do Matlab®, posteriormente foram realizados testes de localização do centroide do objeto, que permitiu validar o funcionamento do processamento de imagens, com os resultados das duas partes de interesse, finalmente foi possível estabelecer uma relação de precisão e repetibilidade dos movimentos do braço robótico baseado em visão computacional. 4.1 MOVIMENTOS DO BRAÇO ROBÓTICO POR COORDENADAS ABSOLUTAS A modelagem do robô foi realizada por meio da ferramenta RoboticsToolbox. Com o auxílio desta é possível criar um modelo robô virtual que é plotado no espaço através do comando teach, este comando possibilita realizar todos os movimentos dentro do volume de trabalho do braço robótico, permitindo variar cada eixo do braço, sendo a base representada por q1, o ombro por q2 e o cotovelo por q3 (Figura 48). O modelo do robô é definido pelos parâmetros de D-H, conforme descrito na metodologia deste trabalho. O robô virtual foi gerado em um ponto inicial referenciado na extremidade do braço, onde foram obtidos os valores de 0.675, 0 e 0.470 para as coordenadas X, Y e Z respectivamente. Esta condição foi adotada no modelo físico, possibilitando obter o correto posicionamento dos eixos.
  • 67. 66 Fonte: do Autor Figura 48 – Simulação virtual do braço robótico. Foram realizados 10 movimentos por coordenadas absolutas. Ao término do movimento foi possível perceber que o gráfico representado pela Figura 48 do modelo robô ficava muito semelhante ao físico. A tabela 4 apresenta os valores coletados nos testes. Tabela 4 – Movimento do braço robótico por coordenadas absolutas. Movimentos 1 2 3 4 5 6 7 8 9 Posição Desejada (cm) X Y Z -40,2 -20,5 10,9 -25 36,9 35,8 30,5 -40,8 40,8 -11,5 24,5 69,8 39,5 29 50,9 -17,8 35 85,8 -9 -35 90 -26,8 -11 91 -15,6 34,7 80,5 Posição Final (cm) X -39,5 -23 31 12,8 38,3 -16,2 -10,1 -27,7 -16,9 Y -18,9 -35 -42 -26,1 27,1 36,2 -36,1 -10,3 33,2 Z 12,3 38 42,5 71 52 85,1 91 89,7 81,4 Erro (cm) X 0,7 2 0,5 1,3 1,2 1,6 1,1 0,9 1,3 Y 1,6 1,9 1,2 1,6 1,9 1,2 1,1 0,7 1,5 Z 1,4 2,2 1,7 1,2 1,1 0,7 1 1,3 0,9
  • 68. 67 10 30,6 28,7 34,5 31,2 29,9 34,7 0,6 1,2 0,2 Fonte: do Autor Tabela 5 – Resultado dos testes de Precisão e Repetibilidade por coordenadas absolutas. PRECISÃO REPETIBILIDADE 85% 90% Fonte: do Autor Como apresentado na Tabela 5 à posição final do braço robótico não teve um resultado perfeito, alcançando aproximadamente 85% de precisão em seu posicionamento final. Os testes realizados sem o uso da visão neste tópico fornecem informações importantes na validação que será realizada posteriormente, na qual a referência das coordenadas X, Y e Z para posicionamento do braço robótico é fornecida pela imagem. 4.2 LOCALIZAÇÃO DO OBJETO Para validar a parte do processamento de imagens, foram coletadas imagens da peça em vários pontos da cena. O objetivo é identificar o objeto pelo método de detecção de limiares e encontrar o seu centroide, conforme descrito na metodologia. A Figura 49 representa a identificação dos objetos vermelho e azul. (a) (b) Fonte: do Autor Figura 49 – Identificação do centroide. (a) – Objeto vermelho. (b) – Objeto azul. Como é possível perceber o ponto centroide é localizado em diversos pontos da imagem para ambos os objetos, alcançando o objetivo proposto na etapa que contempla o processamento de imagens e localização do centroide no objeto.
  • 69. 68 4.3 MOVIMENTOS DO BRAÇO ROBÓTICO POR IMAGEM Os testes de controle de trajetória do braço robótico foram realizados com base na metodologia a fim de medir a repetibilidade e precisão alcançada por este em conjunto com o sistema de visão computacional. A repetibilidade é a capacidade de o efetuador terminal atingir um ponto previamente determinado diversas vezes seguido. Um manipulador robótico com baixa repetibilidade terá como consequência problemas de precisão no posicionamento de sua extremidade. Enquanto a precisão indica o grau de aproximação do órgão terminal com relação a um determinado ponto dentro do volume de trabalho (Figura 50), [32]. Fonte: [32] Figura 50 – Representação de Precisão e Repetibilidade. Os resultados encontrados nos métodos anteriores forneceram parâmetros importantes para realizar os testes de controle de trajetória do braço robótico referenciado por visão computacional. Como foi possível analisar, os resultados de posição por coordenadas absolutas apresentaram alguns erros, devido à baixa precisão dos sensores, enquanto os resultados do processamento de imagens e
  • 70. 69 localização do centroide alcançaram o objetivo de forma satisfatória. Neste contexto, é possível validar as partes que compõe o processo com eficácia. O teste consiste em colocar o objeto de cor vermelha em seis pontos diferentes da área de trabalho, isso possibilitou validar a precisão do sistema. Enquanto a repetibilidade foi analisada executando o movimento quatro vezes para cada ponto. A Figura 51 apresenta a vista superior com o objeto de cor vermelha nos seis pontos que foram testados na área de trabalho. Fonte: do Autor Figura 51 – Vista superior do objeto vermelho. (a) – Ilustração em formato RGB. (b) – Identificação do centroide.
  • 71. 70 Fonte: do Autor Figura 52 – Posicionamento do braço robótico sobre a peça. O processamento de imagens mostrou-se satisfatório e cumpriu o proposto neste projeto, que consistia em encontrar o objeto em qualquer ponto da área de trabalho e detectar o centroide. O posicionamento do braço robótico, não teve perfeição ao término do movimento, apresentando alguns erros, devido aos sensores potenciômetros lineares que foram utilizados. Estes sensores não são os mais indicados para esta finalidade, onde a precisão e repetibilidade do efetuador final devem possuir um índice alto de confiabilidade, [32]. As variações de posicionamento do braço robótico não permitiram que a pega da peça fosse efetuada com sucesso, como os erros variam de 0.5 a 2 cm (Tabela 4) nas três coordenas e a bobina que está acoplada ao efetuador final não possui uma área grande de contato, não foi possível realizar a captura do objeto para todos os casos. Desta forma os resultados coletados foram com base no posicionamento do efetuador final e não na captura da peça. Na Tabela 6 são apresentados os
  • 72. 71 resultados de precisão e repetibilidade do posicionamento do braço robótico por visão computacional. Tabela 6 – Resultados dos testes de Precisão e Repetibilidade por visão computacional. POSIÇÃO PRECISÃO REPETIBILIDADE 1 60% 90% 2 90% 100% 3 90% 100% 4 75% 85% 5 92% 100% 6 90% 95% Fonte: do Autor Os objetivos propostos neste trabalho foram alcançados e os resultados considerados satisfatórios. O objeto para ambas as cores foi encontrado com sucesso na imagem coletada, enquanto o posicionamento do braço referenciado por visão computacional alcançou em alguns casos 100% de repetibilidade.
  • 73. 72 4.4 TRABALHOS FUTUROS Ao longo do desenvolvimento deste projeto foram enfrentadas dificuldades quanto à estrutura física do braço robótico, com isso surge necessidade de melhorias ou até mesmo troca de partes que compõe a estrutura deste, enquanto na parte de tratamento de imagens é possível aprimorar os métodos utilizados. Quanto à estrutura do braço robótico pode-se sugerir a substituição do motor do segundo eixo (ombro) por um motor com maior capacidade de torque, tendo em vista que este já foi dimensionado para suportar uma carga no limite de sua capacidade. Realizar a troca dos sensores potenciômetros por encoders, minimizando os erros no posicionamento do braço. Ainda em sua estrutura sugerese colocar um efetuar final tipo garra. No que diz respeito ao controle de posicionamento do braço robótico a implementação de uma sintonia PID traria mais qualidade aos movimentos. A parte que contempla a visão computacional pode ser aperfeiçoada tanto na estrutura do local quanto no reconhecimento dos objetos. Neste projeto a câmera utilizada foi fixada em um ponto dentro do volume de trabalho do braço robótico, em alguns ambientes que fazem uso de visão computacional existe a necessidade de ter um ambiente estruturado para a aquisição das imagens, como é o caso da inspeção industrial, porém em alguns locais a câmera precisa acompanhar a estrutura que está executando as tarefas. Neste contexto sugere-se trabalhar com a câmera em qualquer ponto da cena ou colocá-la na extremidade do robô. No que se refere ao reconhecimento do objeto pode ser elaborado um sistema que seja capaz de reconhecer formas ou tamanhos deste. Por fim, sugere-se fazer uso da placa Beagle Bone, que é uma plataforma de prototipagem, para executar a leitura dos sensores, processamento de dados e controle dos motores.
  • 74. 73 5 CONCLUSÃO As estatísticas apresentadas ao longo deste trabalho evidenciam que as aplicações que envolvem o uso de imagens tiveram um crescimento acentuado nos últimos anos. A informação que uma única matriz de dados é capaz de fornecer torna os sistemas artificiais de visão uma ferramenta revolucionária em processos industriais, capazes de informar os detalhes ínfimos de uma cena, daí a importância deste segmento na robótica industrial. No decorrer deste projeto foi possível discutir amplamente sobre as duas áreas propostas. Na visão computacional foram abordados assuntos que compreendem desde o princípio construtivo das cores até o processamento de imagens, que apesar de difícil tratamento permitiu a identificação dos pontos de interesse na imagem, avaliados pela cor do objeto desejado. No segmento da robótica foi discutida a importância dos componentes usados para o modelo físico do robô. A escolha das partes que o compõe a estrutura deste deve ser feita criteriosamente, a fim de evitar problemas quanto à precisão, conforme pode ser visto no decorrer deste trabalho. Outro ponto importante, foi a implementação da modelagem cinemática na estrutura física do braço robótico, fazendo a comparação do posicionamento da simulação virtual com o da estrutura real. Do mesmo modo que foi possível mensurar a integração dos sistemas de coordenadas da câmera e do braço robótico. Acrescentam-se ainda as vantagens em utilizar o software de computação Matlab®. Com uma linguagem de fácil entendimento permitiu que o desenvolvedor deste projeto interagisse rapidamente com as suas funcionalidades, além de possuir as ferramentas de auxílio para o processamento de imagens e modelagem cinemática do braço robótico. De uma forma geral os objetivos propostos neste trabalho foram alcançados com sucesso. A aquisição e processamento de imagens foram avaliados pela detecção e binarização do objeto de desejo na cena, ao passo que todas as tomadas de decisão do braço robótico foram referenciadas pela imagem. Por fim, a área da visão computacional aplicada à robótica permitiu um grande aprendizado ao longo do desenvolvimento deste projeto de pesquisa, e certamente abre novas oportunidades para futuros trabalhos.
  • 75. 74 REFERÊNCIAS [1] STIVANELLO, M. E. Inspeção Industrial Através de Visão Computacional. 2004. Dissertação (Bacharelado em Ciência da Computação) – Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais, Blumenau. [2] Imatic Sistemas industriais de Visão. <www.imatic.com.br/svisao.htm> acesso em: 24 mar. 2013. Disponível em [3] VIECILI, E, B; ALCANTRA, M, F; ROMÃO, A; HOUNSELL, M, S; PILLON, M, A; HEINEN, M, R. Desenvolvimento de um Robô Móvel com Visão para Propósitos Educacionais. 2012. Dissertação (Universidade do Estado de Santa Catarina) – Departamento de Ciência da Computação, Joinville. [4] Siemens. Disponível em <www.siemens.com/innovation/en/publikationen/publications_pof/pof_fall_2006/susta inable_city_development/facts_and_forecasts.htm> acesso em 30 mar. 2013. [5] Verband Deutscher Maschinen und em<www.vdma.org> acesso em: 24 mar. 2013. Anlagenbeu [6] European Machine Vision Association <www.emva.org> acesso em: 24 mar. 2013. EMVA. VDMA. Disponível Disponível em [7] Packagers Choose Machine Vision Quality Inspection to Red Waste and Boost ROI. 2010, São Paulo. [8] International Federation Robotics. Disponível em <www.ifr.org> acesso em: 07 abr. 2013. [9] FOREST, R, L. Sistema de Visão Robótica para Reconhecimento de Contornos de Componentes na Aplicação de Processos Industriais. 2006. Dissertação (Universidade Federal do Rio Grande do Sul) – Programa de Pós Graduação em Engenharia Mecânica, Porto Alegre. [10] STEMMER, M, R; ORTH, A; ROLOFF, M, L; DESCHAMPS, F; PAVIM, A, X. Apostila de Sistema de Visão. 2005. Sistemas Industriais Inteligentes, Florianópolis. [11] GONZALEZ, R, C; WOODS, R, E. Processamento de Imagens Digitais. São Paulo: Edgard Blucher Ltda, 2000. [12] GRASSI, M, V. Desenvolvimento e Aplicação de Sistema de Visão para Robô Industrial de Manipulação. 2005. Dissertação (Universidade Federal do Rio Grande do Sul) – Programa de Pós Graduação em Engenharia Mecânica, Porto Alegre. [13] RODRIGUES, D, L. Procedimento Automático para calibração de Sistemas de Visão Robótica para Operações Pick-and-Place. 1997. Dissertação (Divisão de Pós graduação do Instituto Tecnológico de Aeronáutica) – Engenharia Mecânica Aeronáutica, São José dos Campos.
  • 76. 75 [14] Campos, M, F; NETO, V, F. Visão Computacional Calibração de Câmeras. 2007. (Universidade Federal de Minas Gerais) – Departamento de Ciência da Computação, Minas Gerais. [15] FILHO, O, M; NETO, H, V. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999. [16] QUEIROZ, J, E; GOMES, H, M. Introdução ao processamento Digital de Imagens. 2001. Artigo (Universidade Federal de Campina Grande) – Departamento de Sistemas da Computação, Campina Grande. [17] Amalgama.blog.br. Disponível em <www.amalgama.blog.br/02/2013/custo-damao-de-obra-crescimento-do-brasil/> acesso em: 31 mai. 2013. [18] A4TECH. Disponível em <www.a4tech.com> acesso em: 27 abr. 2013. [19] ROSÁRIO, J, M. Princípios de Mecatrônica. São Paulo: Pearson, 2006. [20] CORKE, P. Robotics, Vision and Control Fundamental Algorithms in MATLAB®. Brisbane: Springer, 2011. [21] ROMANO, V, F. Robótica Industrial: Aplicação na Indústria da Manufatura e de Processos. Rio de Janeiro: Edgard Blucher, 2002. [22] RODRIGUES, E. Aplicação de Visão Computacional para Extração de Características em Imagem do Olho Humano. 2007. Artigo (Escola de Engenharia de São Carlos, da Universidade de São Paulo) – Curso de Engenharia de Computação com ênfase em Sistemas Embarcados, São Carlos. [23] SCURI, A, E. Fundamentos de Imagens Digitais. 2002. Artigo. (Tecgraf/ PUC – Rio), Rio de Janeiro. [24] ALBUQUERQUE, M, P. Processamento de Imagens: Métodos e Análises. Artigo. Centro Brasileiro de Pesquisas Físicas – CBPF/MCT, Rio de Janeiro. [25] MENDES, R. A Tomografia Computadorizada de Raios X Como Método não Destrutivo de Análise Volumétrica de Concreto: Estudo de Caso em Testemunho de Concreto da Usina Hidroelétrica Mourão. 2010. Artigo. (Universidade Federal do Paraná) - Setor de Tecnologia, Curitiba. [26] MENESES, P, M; ALMEIDA, T. Introdução ao Processamento de Imagens de Sensoriamento Remoto. Brasília: UNB, 2012. [27] BELINI, D, R, T. Robô Didático Antropomórfico Controlado Via MATLAB® 2012. Dissertação. (Faculdade Assis Gurgacz) - Engenharia de Controle e Automação, Cascavel. [28] SILVA, A. C. Algoritmos para Diagnóstico Assistido de Nódulos Pulmonares Solitários em Imagens de Tomografia Computadorizada. PUC – RIO, 2004.
  • 77. 76 [29] MANSSOUR, H, I; COHEN, M. Introdução a Computação Gráfica. Artigo. 2006. Pontifícia Universidade Católica do Paraná - Faculdade de Informática, Porto Alegre. [30] Drexel University Electrical & Computer Engineering. Disponível em <http://www.ece.drexel.edu/courses/ECE-E432/Lab2_Sources.html> acesso em 23 out. 2013. [31] BRITES, G, F; SANTOS, A, P, V. Motor de passo. Artigo. 2008. (Universidade Federal Fluminense) - Centro Tecnológico, Niterói. [32] CARRARA, V. Apostila de Robótica. Precisão e Repetibilidade. 2006. Universidade Braz Cubas, Mogi das Cruzes. [33] LENZ, M, L; ADUR, M. Levitador Magnético. 2012. Faculdade Assis Gurgacz Engenharia de Controle e Automação, Cascavel.
  • 78. 77 APÊNDICE A – Processamento de imagens, cinemática inversa, conversão de valores e envio de comandos para a comunicação serial. Function Mestre = IntegSistema () clearall; clc; closeall; disp('BEM VINDO AO CONTROLE DO BRAÇO ROBÓTICO'); %BRAÇO ROBÓTICO NA POSIÇÃO INICIAL; XA=435; YA=260; ZA=645; disp('funcao'); [XR, YR, ZR] = ComiArdu(XA, YA, ZA, 3); disp('BRAÇO ROBÓTICO NA POSIÇÃO INICIAL') %SELEÇÃO DO OBJETO DE COR VERMELHA OU AZUL; select = input('Digite (1) para escolher objeto vermelho ou (2) para escolher objeto azul: '); closeall; %CAPTURA A FOTO; functionsaida = foto() vid=videoinput('winvideo',1); preview(vid); pause(2); saida=getsnapshot(vid) closepreview(vid); end % LOCALIZAÇÃO OBJETO DE COR AZUL function saida1 = Azul(bimage) saida1=0; image(bimage); rgb2ntsc(bimage);%Converte imagem do formato RGB para formato YIQ. a = rgb2ntsc(bimage); L=240; % Declara linhas da matriz que compõe a imagem; C=320; % Declara colunas da matriz que compõe a imagem; bin= zeros(L,C); % Preenche todas as linhas e colunas com zero; for linha = 1:L % Faz a varredura das linhas que compõe a matriz da imagem; for coluna = 1:C % Faz a varredura das colunas que compõe a matriz da imagem; ca1=alinha,coluna,1); % Separa as linhas e colunas do canal 1 da imagem em formato YIQ; ca2=a(linha,coluna,2); % Separa as linhas e colunas do canal 2 da imagem em formato YIQ; ca3=a(linha,coluna,3); % Separa as linhas e colunas do canal 3 da imagem em formato YIQ; if 0.20 <ca1 && ca1<0.25 && ca2==0 && 0 <ca3 && ca3<0.10 % Range de valoresque compõe o objeto de cor azul em formato YIQ; bin (linha, coluna) = 1; %Preenche o que foi encontrado dentro do range de valores declarado com o número 1. end end end
  • 79. 78 % LOCALIZAÇÃO DO CENTROIDE DO OBJETO AZUL; imtool(bin);% Mostra a imagem com as coordenadas x e y; cent = imfill(bin,'holes'); % Preencheburacosnaimagem; cent1 =regionprops(cent, 'centroid'); centroids = cat(1, cent1.Centroid); imtool(bin); hold(imgca,'on'); plot(imgca,centroids(:,1), centroids(:,2), 'r*'); % Preenche com um ponto vermelho onde foi localizado o conetroide; hold(imgca,'off'); end % LOCALIZAÇÃO DO OBJETO VERMELHO; function saida1 = Vermelho(rimage) saida1=0; image(rimage); rgb2ntsc(rimage); a = rgb2ntsc(rimage); L=240; C=320; bin=zeros(L,C); for linha = 1:L for coluna = 1:C ca1=a(linha,coluna,1); ca2=a(linha,coluna,2); ca3=a(linha,coluna,3); if 0.20 <ca1 && ca1<0.45 && 0.07 <ca2 && ca2<0.45 && 0 <ca3 && ca3<0.12 bin (linha, coluna)=1; end end end % LOCALIZAÇÃO DO CENTROIDE DO OBJETO VERMELHO; imtool(bin); cent = imfill(bin,'holes'); cent1 =regionprops(cent, 'centroid'); centroids = cat(1, cent1.Centroid) imtool(bin); hold(imgca,'on') plot(imgca,centroids(:,1), centroids(:,2), 'r*') hold(imgca,'off') tempimg = foto(); if (select == 1) bincent = Vermelho(tempimg); % Reprodução do áudio; [y, Fs] = wavread('c:vermelho.wav');% Leitura do áudio; sound(y, Fs);% Reprodução do áudio; elseif (select == 2) bincent = Azul(tempimg); % Reprodução do áudio; [y, Fs] = wavread('c:azul.wav'); sound(y, Fs); else disp ('############ cor selecionada inválida ############')