Post on 07-Jul-2018
transcript
8/18/2019 3D scan with kinnect
1/74
RELATÓRIO FINAL DA UNIDADE CURRICULAR DE PROJETO DA
LICENCIATURA EM ENGENHARIA ELETROTÉCNICA, RAMO DE ENERGIA E
AUTOMAÇ ÃO
Departamento de Engenharia Eletrotécnica
3D Scanning com Kinect acoplada a Robô
Autores:
João Filipe Cordeiro Valente
Lúıs Emanuel Ferreira Cristovão
Orientadores:
Carlos Simpl´ıcio
Fernando Martins
Leiria, julho de 2015
8/18/2019 3D scan with kinnect
2/74
ii
8/18/2019 3D scan with kinnect
3/74
Agradecimentos
Durante a realização deste projeto pudemos contar com a ajuda de docentes de curso,
empresas, colegas e familiares.
Em primeiro lugar um agradecimento especial aos orientadores de projeto, professores
Fernando Martins e Carlos Simpĺıcio, por todo o apoio prestado durante o decorrer do
presente ano letivo.
Aos responsáveis pelo Centro de Eletrónica da Escola Superior de Tecnologia e Gestão,
Marco Santos e Sofia Gualdino, pela cooperação demonstrada, indispensável à realização
de determinadas tarefas.
Agradecimentos às empresas PROFACTOR, PROVIDGADGET e PETOOLS por todo
o material disponibilizado para a realização de partes integrantes do presente projeto.
Por fim, um agradecimento aos familiares e colegas, pelo apoio e incentivo demonstrado
durante todo o processo de desenvolvimento do projeto.
iii
8/18/2019 3D scan with kinnect
4/74
iv
8/18/2019 3D scan with kinnect
5/74
Resumo
Atualmente existe um mercado em crescimento para modelos tridimensionais (3D) de
objetos. Dáı surgiu uma proposta de projeto para desenvolver um sistema que efetuasse
o scan de objetos, para criar tais modelos, utilizando uma câmara de baixo custo.
Foi desenvolvido um sistema para digitalização 3D, constitúıdo por uma plataforma ro-
tativa, onde é colocado o objeto, uma câmara acoplada a um braço robótico e um com-
putador pessoal (PC) que controla todo o sistema. É efetuada uma descrição do sistema
tanto a ńıvel de hardware como de software .
O sistema desenvolvido permite construir modelos completos (3D + cor) percorrendo uma
trajectoria de varrimento ajustada à dimensão do objeto.
v
8/18/2019 3D scan with kinnect
6/74
vi
8/18/2019 3D scan with kinnect
7/74
Índice
Agradecimentos iii
Resumo v
Lista de Figuras ix
Lista de Tabelas xi
Lista de Siglas xiii
1 Introdução 1
1.1 Enquadramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Visão geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Estrutura do relatório . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Conceitos sobre aquisição 3D 5
2.1 Métodos de aquisição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Contato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 Fotometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3 Luz estruturada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.4 Time of flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Tratamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Hardware do sistema 11
3.1 Sistema de aquisição de informação 3D . . . . . . . . . . . . . . . . . . . . 11
3.2 Robô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Plataforma rotativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.1 Estrutura da plataforma . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.2 Moto-redutor trif́asico . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.3 Variador eletrónico de velocidade . . . . . . . . . . . . . . . . . . . 153.3.4 Encoder incremental . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.5 Hardware de comando . . . . . . . . . . . . . . . . . . . . . . . . . 16
vii
8/18/2019 3D scan with kinnect
8/74
3.4 Referenciais e sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . 18
4 Software do sistema 21
4.1 Software desenvolvido para o PC . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.1 Aquisição e tratamento de dados do modelo 3D . . . . . . . . . . . 23
4.1.1.1 Inicialização da estrutura de dados e do sensor . . . . . . 23
4.1.1.2 Processo de calibração da plataforma . . . . . . . . . . . . 24
4.1.1.3 Processo para deteção da altura de um objeto . . . . . . . 24
4.1.1.4 Processos de scan . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1.5 Destruição da estrutura de dados e do sensor . . . . . . . 29
4.1.2 Controlo do robô e da plataforma rotativa . . . . . . . . . . . . . . 29
4.2 Software desenvolvido para o robô . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 Software desenvolvido para a plataforma rotativa . . . . . . . . . . . . . . 314.4 Comunicações executadas e seu conteúdo . . . . . . . . . . . . . . . . . . . 33
4.4.1 Fluxo de dados computador – robô . . . . . . . . . . . . . . . . . . 33
4.4.2 Fluxo de dados computador – plataforma rotativa . . . . . . . . . . 35
4.5 Descrição da interface da aplicação . . . . . . . . . . . . . . . . . . . . . . 36
5 Testes e resultados 41
5.1 Teste com diferentes tipos de luz . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Teste com diferentes resoluções . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Teste com objeto de superf́ıcie brilhante . . . . . . . . . . . . . . . . . . . 44
6 Conclusões e trabalho futuro 47
Bibliografia 49
Apêndice A Suporte Kinect para garra do robô 51
Apêndice B Desenvolvimento da plataforma 53
B.1 Estrutura projetada para plataforma . . . . . . . . . . . . . . . . . . . . . 53B.2 Placa para controlar o de motor de passo . . . . . . . . . . . . . . . . . . . 57
B.3 Placa para controlar o variador eletŕonico de velocidade e encoder . . . . . 59
8/18/2019 3D scan with kinnect
9/74
Lista de Figuras
1.1 Sistema desenvolvido e ambiente envolvente. . . . . . . . . . . . . . . . . . 2
2.1 Métodos de scan 3D por contato. . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Método de scan 3D por fotometria [1]. . . . . . . . . . . . . . . . . . . . . 6
2.3 Exemplo de modelo obtido através de luz estruturada. . . . . . . . . . . . 7
2.4 Conceito de funcionamento de câmaras do tipo TOF [2]. . . . . . . . . . . 7
2.5 Imagens obtidas através de uma câmara regular e do tipo TOF. . . . . . . 8
2.6 Exemplo de diferentes nuvens de pontos. . . . . . . . . . . . . . . . . . . . 8
3.1 Indentificação dos diferentes sensores da Kinect [3]. . . . . . . . . . . . . . 12
3.2 Imagens obtidas pela Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Sistema de controlo do braço robótico. . . . . . . . . . . . . . . . . . . . . 13
3.4 Suporte da câmara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5 Diagrama de blocos da plataforma rotativa. . . . . . . . . . . . . . . . . . 14
3.6 Plataforma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.7 Variador eletrónico de velocidade (YASKAWAYA J1000). . . . . . . . . . . 15
3.8 Encoder incremental (OMRON – E6B2-CWZ6C) [4]. . . . . . . . . . . . . 16
3.9 Pulsos gerados pelo encoder [4]. . . . . . . . . . . . . . . . . . . . . . . . . 16
3.10 Diagrama de blocos da PCB. . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.11 Esquema elétrico da PCB. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.12 Caixa de derivação com Arduino Uno e PCB. . . . . . . . . . . . . . . . . 18
3.13 Sistemas de coordenadas do robô e sua ferramenta. . . . . . . . . . . . . . 18
3.14 Sistema de coordenadas da Kinect . . . . . . . . . . . . . . . . . . . . . . . 19
3.15 Sistema de coordenadas do objeto/volume referenciado à câmara. . . . . . 19
4.1 Diagrama de blocos geral do sistema. . . . . . . . . . . . . . . . . . . . . . 21
4.2 Fluxograma do software desenvolvido para o computador. . . . . . . . . . . 22
4.3 Diagrama de blocos de inicialização da estrura de dados e sensor. . . . . . 23
4.4 Imagens obtidas no processo de calibração da plataforma. . . . . . . . . . . 24
4.5 Método utilizado para deteção de altura do objeto. . . . . . . . . . . . . . 254.6 Fluxograma das opções após scan principal efetuado. . . . . . . . . . . . . 26
4.7 Processo para diminuição do número triângulos [5]. . . . . . . . . . . . . . 27
ix
8/18/2019 3D scan with kinnect
10/74
4.8 Exemplo de identificação de triângulos. . . . . . . . . . . . . . . . . . . . . 27
4.9 Método para reposicionar corretamente a câmara. . . . . . . . . . . . . . . 28
4.10 Diagrama de blocos de destruição da estrutura de dados e do sensor. . . . 29
4.11 Fluxograma do software desenvolvido para o controlador do robô. . . . . . 31
4.12 Fluxograma do software desenvolvido para a plataforma rotativa. . . . . . 32
4.13 Diagrama de blocos das comunicações efetuadas. . . . . . . . . . . . . . . . 33
4.14 Fluxograma para a comunicação computador - robô. . . . . . . . . . . . . . 34
4.15 Fluxograma para a comunicação computador - plataforma rotativa. . . . . 35
4.16 Visualização menu principal da aplicação. . . . . . . . . . . . . . . . . . . 36
4.17 Visualização do processo de calibração plataforma. . . . . . . . . . . . . . . 37
4.18 Visualização do processo de deteção da altura máxima do objeto. . . . . . 37
4.19 Visualização do menu do processo de scan . . . . . . . . . . . . . . . . . . . 38
4.20 Visualização do processo de scan a decorrer. . . . . . . . . . . . . . . . . . 38
4.21 Visualização do menu e do modelo por fechar. . . . . . . . . . . . . . . . . 39
4.22 Visualização menu guardar. . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1 Exemplo de um modelo 3D enviado. . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Resultados obtidos com diferentes iluminações. . . . . . . . . . . . . . . . . 42
5.3 Diferenças entre modelos com resoluções distintas. . . . . . . . . . . . . . . 43
5.4 Objeto brilhante utilizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5 Resultado obtido com objeto brilhante. . . . . . . . . . . . . . . . . . . . . 45
8/18/2019 3D scan with kinnect
11/74
Lista de Tabelas
4.1 Formato das strings enviadas pelo computador. . . . . . . . . . . . . . . . 33
4.2 Exemplos da string enviada pelo PC para reposicionamento do robô. . . . 34
4.3 Formato da string enviada pelo PC após criar sensor. . . . . . . . . . . . . 35
5.1 Valores obtidos dos diferentes testes efetuados. . . . . . . . . . . . . . . . . 43
5.2 Valores obtidos com diferentes resoluções. . . . . . . . . . . . . . . . . . . . 43
5.3 Tempos obtidos com diferentes resoluções. . . . . . . . . . . . . . . . . . . 44
xi
8/18/2019 3D scan with kinnect
12/74
xii
8/18/2019 3D scan with kinnect
13/74
Lista de Siglas
2D Duas dimensões
3D Três dimensões
3DS 3D studio max file
RAPID Linguagem de programação desenvolvida em 1994 por ABB
ABB Asea Brown Boveri
bps bits per second
C++ Linguagem de programação C mais mais
CA Corrente alternada
CAD Computer Aided Design
CC Corrente cont́ınua
CMOS Complementary Metal-Oxide Semiconductor
DAC Digital to Analog Converter
fps frames per second
Hz Hertz
mm miĺımetros
ms milissegundos
OBJ Wave front file
PC Personal Computer
PCB Printed Circuit Board
PLY Poligon File Format
xiii
8/18/2019 3D scan with kinnect
14/74
RGB Red Green Blue
RGBA Red Green Blue Alpha
rpm rotations per minute
STL Stereolithografy file
TOF Time of flight
USB Universal Serial Bus
VEV Variador eletŕonico de velocidade
8/18/2019 3D scan with kinnect
15/74
Caṕıtulo 1
Introdução
O presente projeto tinha como objetivo desenvolver um sistema para efetuar o scan 3D
de uma pessoa ou ob jeto, através de uma câmara 3D de baixo custo, com o aux́ılio de um
braço robótico e de uma plataforma rotativa.
1.1 Enquadramento
Na época corrente em que o mercado da criação e desenvolvimento de objetos tridimensi-
onais (3D) está em constante crescimento [6] [7], surgem a cada dia novas ideias, processos
e desenvolvimentos nesta mesma área com diferentes objetivos, desde o entretenimento
até à medicina. Existem assim diversas aplicações que podem ser dadas aos modelos 3D,
sendo algumas delas as seguintes:
- Impressão de objetos 3D;
- Compras/vendas através da internet;
- Produção de próteses;
- Produção de equipamentos feitos por medida.
Com a necessidade de replicação de objetos já criados, o processo de digitalização 3Dtorna-se mais rápido e simples em relação à modelação 3D por CAD , surgindo assim por
vezes como alternativa.
1
8/18/2019 3D scan with kinnect
16/74
2 Caṕıtulo 1. Introdução
1.2 Motivação
Este projeto torna-se bastante interessante e desafiante, pois com recurso a uma câmara
de baixo custo e de fácil acesso, pretende-se obter um modelo o mais próximo posśıvel
da realidade. A utilização de um braço robótico e de uma plataforma rotativa permite
tornar autónomo o processo de scan , evitando que o utilizador tenha que percorrer o
objeto ”manualmente”.
1.3 Visão geral do sistema
O sistema desenvolvido para efetuar o scan 3D de uma pessoa/objeto e o seu ambiente
envolvente, está representado na figura 1.1.
Figura 1.1: Sistema desenvolvido e ambiente envolvente.
Este sistema é constitúıdo por: um PC (a azul), um robô (controlador e braço robótico,
a amarelo), uma câmara de baixo custo (Kinect [8], a verde) e uma plataforma rotativa
(a vermelho). Do ambiente envolvente, o aspeto de maior importância é o estado das
persianas, ou seja, se estas estão abertas ou fechadas.
1.4 Estrutura do relatório
O restante relatório está estruturado da seguinte forma:
- No caṕıtulo 2 é feito um enquadramento teórico sobre alguns dos métodos que
8/18/2019 3D scan with kinnect
17/74
1.4. Estrutura do relatório 3
existem atualmente para a aquisição de modelos 3D. É explicada como é tratada a
informação obtida para criação de uma superf́ıcie e como esta pode ser melhorada;
- No capı́tulo 3 é descrito todo o hardware constituinte do sistema, desde a compo-
nente de aquisição de imagem até a plataforma que permite a rotação do objeto;
- No capı́tulo 4 é descrito todo o software desenvolvido para cada componente inte-
grante do sistema, bem como estes estão interligados;
- No caṕıtulo 5 são apresentados os testes e os respetivos resultados obtidos;
- Por fim, no caṕıtulo 6 são apresentadas as conclusões do presente projeto.
8/18/2019 3D scan with kinnect
18/74
4
8/18/2019 3D scan with kinnect
19/74
Caṕıtulo 2
Conceitos sobre aquisição 3D
2.1 Métodos de aquisição
No mercado existem diferentes métodos para aquisição de modelos 3D. Cada tipo de
tecnologia tem as suas vantagens, desvantagens e custos associados. As metodologias
mais utilizadas são descritas de seguida.
2.1.1 Contato
O método por contato obtém os valores dos pontos 3D de uma superf́ıcie de um objeto
atrav́es de uma sonda movimentada por meios mecânicos móveis. A sonda percorre a
superf́ıcie do objeto em estudo e através da informação da sua posição, são calculadas as
coordenadas da superf́ıcie. Na figura 2.1 estão representados dois exemplos deste tipo de
tecnologia.
(a) (b)
Figura 2.1: Métodos de scan 3D por contato.(a) sistema autónomo [1] e (b) sistema manual [9].
5
8/18/2019 3D scan with kinnect
20/74
6 Caṕıtulo 2. Conceitos sobre aquisição 3D
A principal vantagem deste método é a precisão dos modelos que obtém, enquanto que as
principais desvantagens são a velocidade do processo, o facto de não poder ser utilizado
em todas as superf́ıcies devido aos estragos que pode criar no objeto e a sua capacidade
de digitalização limitada.
2.1.2 Fotometria
O método de fotometria consiste em obter ao mesmo tempo várias fotografias 2D de
diferentes ângulos em relação ao objeto, de modo a criar um modelo 3D atrav́es do
reconhecimento de pontos comuns entre as imagens. Este tipo de sistema é composto
normalmente por um conjunto entre 50 a 120 câmaras fotográficas como representado na
figura 2.2.
Figura 2.2: Método de scan 3D por fotometria [1].
A grande vantagem deste processo é que a informação obtida para a construção de um
modelo 3D é praticamente instantânea, com uma qualidade que depende das câmaras
que são utilizadas. A desvantagem é que para obter o modelo 3D é necessário criar o
mesmo manualmente através de software , o que pode ser um processo moroso devido àquantidade de informação que é necessário aglomerar e também por requerer um elevado
número de câmaras fotográficas.
2.1.3 Luz estruturada
O método de luz estruturada consiste na pro jeção de um padrão conhecido, normalmente
listado com faixas da mesma espessura, sobre a superf́ıcie do objeto. Analisando a de-formação do padrão é posśıvel construir o modelo 3D matematicamente, sendo necessário
utilizar diferentes perspetivas. O método em questão está representado na figura 2.3.
8/18/2019 3D scan with kinnect
21/74
2.1. Métodos de aquisição 7
(a) (b)
Figura 2.3: Exemplo de modelo obtido através de luz estruturada.(a) padrão projetado no objeto e (b) modelo 3D obtido [1].
Tem como vantagens uma boa precisão do modelo obtido, boa resolução ao longo de dois
eixos e é seguro para a visão humana. Quanto às desvantagens, destaca-se o facto de
não poder ser usado em qualquer śıtio, pois este tipo de sistema é senśıvel a iluminações
externas e não pode ser usado em superf́ıcies brilhantes [10].
É importante referir que a câmara constituinte do projeto utiliza este método de aquisição
de informação 3D.
2.1.4 Time of flight
O prinćıpio do método TOF é baseado no funcionamento de um radar, o qual calcula a
distância a que o objeto se encontra da câmara atrav́es do valor da velocidade da luz.
O emissor ao emitir um pulso de luz, desencadeia a contagem do tempo que o mesmo
demora a percorrer a distância (emissor ->objeto ->detetor). A distância entre o detetor
e a superf́ıcie é calculada como indicado na figura 2.4. As diferenças entre as imagens
obtidas através de uma câmara comum e uma do tipo TOF estão representadas na figura2.5.
Figura 2.4: Conceito de funcionamento de câmaras do tipo TOF [2].
8/18/2019 3D scan with kinnect
22/74
8 Caṕıtulo 2. Conceitos sobre aquisição 3D
(a) (b)
Figura 2.5: Imagens obtidas através de uma câmara regular e do tipo TOF.(a)câmara regular e (b) câmara tipo TOF [2].
A vantagem deste método é que a solução implementada é simples e compacta, com a
grande vantagem de ser posśıvel medir um cenário completo até uma velocidade 100 fps.
A principal desvantagem é que no caso de utilizar mais do que uma câmara em simultâneo,
pode criar interferência entre elas.
2.2 Tratamento de dados
A partir dos dados obtidos através dos métodos referidos, é posśıvel retirar uma nuvem
de pontos, sendo esta a forma mais comum de representar computacionalmente modelos
geométricos tridimensionais, pois é de fácil manipulação.
(a) (b)
Figura 2.6: Exemplo de diferentes nuvens de pontos.(a) informação (3D) e (b) informação (3D + COR).
8/18/2019 3D scan with kinnect
23/74
2.2. Tratamento de dados 9
Uma nuvem de pontos basicamente é constitúıda por um conjunto de pontos definidos
pelas coordenadas (XYZ), podendo ser constitúıdos também com cor e transparência
(RGBA), como representa a figura 2.6.
A partir da nuvem de pontos é criado um mapa de voxels , contendo a nuvem de pontos
nesse mapa. Os algoritmos bastantes utilizados são o Marching Cubes [11] para criar
a superf́ıcie e a reconstrução de Poisson [12] para tratamento da mesma, no qual as
bibliotecas utilizadas ReconstructMe [13] se baseiam.
8/18/2019 3D scan with kinnect
24/74
10
8/18/2019 3D scan with kinnect
25/74
Caṕıtulo 3
Hardware do sistema
Neste capı́tulo será descrito sucintamente todo o trabalho desenvolvido a nı́vel do hardware
requerido para o processo. Todo o hardware envolvido é controlado por uma unidade
central de controlo (PC), com as seguintes caracteŕısticas:
- Processador: Intel Celeron CPU G550 – 2.60 GHz;
- Memória Ram: 8 GB DDR3;
- Placa Gráfica: NVIDIA QUADRO K600 - 1GB DDR3.
De seguida são apresentadas as especificações e caracteŕısticas de todos os elementos
constituintes do sistema, nomeadamente o sitema de aquisição de informação 3D, robô e
a plataforma rotativa.
3.1 Sistema de aquisição de informação 3D
O projeto implementado recorre a uma câmara Kinect como sistema de aquisição de
imagens tridimensionais, cujo o método de aquisição de informação 3D utilizado é por luz
estruturada como está referido no subcapı́tulo 2.1.3. A câmara é constituı́da por diferentes
módulos sendo eles:
- Um projetor infravermelhos;
- Uma câmara RGB com uma resolução de 640*480 pixels ;
- Uma câmara do tipo CMOS com uma resolução de 320*240 pixels ;
11
8/18/2019 3D scan with kinnect
26/74
12 Caṕıtulo 3. Hardware do sistema
- Um conjunto de 4 microfones;
- Um acelerómetro.
Os diferentes módulos utilizados da câmara, estão representados e diferenciados na figura
3.1, pois a informação obtida através dos microfones e do acelerómetro não é utilizada no
projeto em questão. Este dispositivo tem a capacidade de capturar imagens à velocidade
de 30 fps. A câmara emite uma matriz de pontos infravermelhos, sendo estes capturados
Figura 3.1: Indentificação dos diferentes sensores da Kinect [3].
por uma câmara do tipo CMOS. Através da deformação do padrão projetado, é calculada
a distância entre a câmara e o objeto. As imagens tridimensionais são constrúıdas a partir
das imagens capturadas pela câmara CMOS com aux́ılio do padrão projetado. A figura3.2 representa o resultado obtido através de cada sensor da câmara.
(a) (b) (c)
Figura 3.2: Imagens obtidas pela Kinect .(a) matriz projetada, (b) câmara RGB e (c) câmara CMOS.
3.2 Robô
O movimento vertical e o ângulo de inclinação da câmara referente ao objeto é efetu-ado através do robô ABB – IRB2400-16kg, constitúıdo por um controlador e um braço
robótico.
8/18/2019 3D scan with kinnect
27/74
3.2. Robô 13
O controlador é o dispositivo intermédio entre o PC e o braço robótico como está repre-
sentado na figura 3.3, sendo este responsável por executar o programa criado.
Figura 3.3: Sistema de controlo do braço robótico.
O braço robótico cont́em no seu extremo uma garra mecânica. De forma a ser posśıvel
acoplar a câmara ao braço robótico e para que esta não fosse danificada com os movimentos
do robô, foi criado um suporte para acoplar a câmara à garra já existente no robô. O
suporte foi maquinado em alumı́nio, de modo a que seja suficientemente resistente à força
exercida pela garra. Na figura 3.4 está representado o projeto do suporte, bem como o
seu resultado final.
Figura 3.4: Suporte da câmara.(a) projeto e (b) resultado final.
É importante referir que no projeto do suporte foi tido em conta que, futuramente, po-
deriam ser inclúıdas outras câmaras. O suporte está devidamente preparado para serposśıvel acoplar diferentes câmaras à garra do robô, inclusive o novo modelo da Kinect
(v2) [14].
8/18/2019 3D scan with kinnect
28/74
8/18/2019 3D scan with kinnect
29/74
3.3. Plataforma rotativa 15
Figura 3.6: Plataforma.(a) projeto e (b) resultado final.
3.3.2 Moto-redutor trifásico
Por forma a suportar as cargas que a plataforma tem de rodar foi utilizado um moto-
redutor trifásico com um rácio 100:1 (100 voltas no veio do motor equivale a 1 volta no veio
da plataforma) (“DITRA” MRVC-40, R.1/100) [15] com uma potência de 120 Watts . O
motor tem como velocidade de sincronismo 1350 rpm com uma frequência de alimentação
50 Hz (disponibilizada por distribuidor de energia). Como objetivo final, pretende-se que
a plataforma rode a uma velocidade média de 3 rpm. Com o aux́ılio da caixa redutora
escolhida, o veio da plataforma tem uma velocidade nominal de 13,5 rpm à frequência de
50 Hz.
3.3.3 Variador eletrónico de velocidade
O VEV permite variar a velocidade do veio da plataforma entre as [0;13,5] rpm atrav́es
do valor da frequência de alimentação do motor, controlada com um sinal analógico de
[0;10] V. A marca do variador usado, representado na figura 3.7, é YASKAWAYA, sendo
o modelo da gama J1000 [16].
Figura 3.7: Variador eletrónico de velocidade (YASKAWAYA J1000).
8/18/2019 3D scan with kinnect
30/74
16 Caṕıtulo 3. Hardware do sistema
3.3.4 Encoder incremental
O encoder incremental é usado para a medição da velocidade e da posição de rotação da
plataforma, sendo utilizado um OMRON – E6B2-CWZ6C acoplado diretamente no veiodo moto-redutor, como representado na figura 3.8.
Figura 3.8: Encoder incremental (OMRON – E6B2-CWZ6C) [4].
O encoder é composto por três saı́das digitais, A, B e Z. Este encoder tem uma resolução
de 1000 pulsos por volta nas sáıdas A e B e 1 pulso por volta na saı́da Z, como representa
a figura 3.9.
Figura 3.9: Pulsos gerados pelo encoder [4].
3.3.5 Hardware de comando
O hardware de comando da plataforma é composto por um Arduino (unidade de proces-
samento de dados) e por uma PCB.
A figura 3.10 mostra o diagrama de blocos da placa desenvolvida e a figura 3.11 apresenta
o esquema elétrico do circuito desenvolvido. Este circuito tem as seguintes funções:
1 - Alimentação do encoder ;
2 - Receção dos sinais provenientes do encoder ;
8/18/2019 3D scan with kinnect
31/74
3.3. Plataforma rotativa 17
3 - Conversão de um sinal digital de 8 bits proveniente do Arduino para um sinal
analógico;
4 - Condicionamento do sinal analógico da zona do DAC para uma gama de valores de
[0;10] V;
5 - Plano de massa comum entre os três dispositivos (encoder , Arduino e VEV);
6 - Alimentação do circuito de condicionamento de sinal através do valor fornecido pelo
VEV (10 V);
7 - Controlo do VEV através de sinal analógico de [0;10] V.
Figura 3.10: Diagrama de blocos da PCB.
Figura 3.11: Esquema elétrico da PCB.
O Arduino Uno é alimentado a 5V através da porta USB, pela qual também recebe
informação do PC. Na figura 3.12 está representada a caixa com a unidade de controlo
da plataforma.
8/18/2019 3D scan with kinnect
32/74
18 Caṕıtulo 3. Hardware do sistema
Figura 3.12: Caixa de derivação com Arduino Uno e PCB.
3.4 Referenciais e sistemas de coordenadas
O sistema implementado usa vários referenciais de coordenadas. Como representa a fi-
gura 3.13, no robô são utilizados dois referenciais diferentes, sendo que as deslocações da
ferramenta estão associadas ao referencial 1 e as rotações ao referencial 2.
Figura 3.13: Sistemas de coordenadas do robô e sua ferramenta.
O sistema de coordenadas da câmara está representado na figura 3.14. Neste caso os eixos
X C e Y C servem para localizar os pixels das imagens 2D obtidas pelos sensores RGB eprofundidade. O eixo Z C serve para obter a distância a que se encontra cada pixel da
imagem de profundidade. Cruzando a informação dos dois tipos de imagens referidos
8/18/2019 3D scan with kinnect
33/74
3.4. Referenciais e sistemas de coordenadas 19
anteriormente, obtém-se uma nuvem de pontos com informação de cor.
Figura 3.14: Sistema de coordenadas da Kinect .
As funções usadas pelas bibliotecas ReconstructMe requerem a definição de um volume
que engloba o objeto a medir. No centro deste volume está definido um sistema de
coordenadas com uma orientação relativa ao sistema de coordenadas da câmara tal como
indica a figura 3.15. A origem do sistema de coordenadas é definido após a primeira
aquisição da imagem de profundidade.
Figura 3.15: Sistema de coordenadas do objeto/volume referenciado à câmara.
8/18/2019 3D scan with kinnect
34/74
20
8/18/2019 3D scan with kinnect
35/74
Caṕıtulo 4
Software do sistema
Neste capı́tulo será descrito o software desenvolvido, desde o modo como é efetuada toda
a comunicação entre blocos do hardware, até à descrição do funcionamento da aplicação
criada. Da mesma forma, serão também apresentados e descritos os fluxogramas das três
componentes principais (PC, robô e plataforma). A figura 4.1 apresenta o diagrama de
blocos geral do sistema, onde se pode verificar que o PC é a componente de onde são
enviados e recebidos todos os dados necessários para comandar o resto dos elementos
associados ao sistema.
Figura 4.1: Diagrama de blocos geral do sistema.
21
8/18/2019 3D scan with kinnect
36/74
22 Caṕıtulo 4. Software do sistema
4.1 Software desenvolvido para o PC
O software desenvolvido para o PC, desde a aquisi ção e tratamento do modelo 3D até ao
controlo do robô e da plataforma rotativa, será descrito neste subcapı́tulo.
Figura 4.2: Fluxograma do software desenvolvido para o computador.
Para a comunicação, aquisição e tratamento de dados foi necessário desenvolver umaaplicação de forma a interligar tudo. Neste módulo a programação foi efetuada em lingua-
gem C++. Na figura 4.2 está representado o fluxograma geral do software desenvolvido,
8/18/2019 3D scan with kinnect
37/74
4.1. Software desenvolvido para o PC 23
o qual será descrito nos subcapı́tulos seguintes.
4.1.1 Aquisição e tratamento de dados do modelo 3D
A aquisição e tratamento de dados obtidos através da câmara são realizados usando as
bibliotecas da ReconstructMe .
4.1.1.1 Inicialização da estrutura de dados e do sensor
Como é mostrado na figura 4.2, para todos os processos criados é necessário o uso da
câmara. O processo de inicialização da câmara / sensor é igual para todas as funciona-lidades desenvolvidas, logo, por cada vez que é executada alguma delas, o processo de
inicialização da estrutura de dados e do sensor é o representado na figura 4.3.
Figura 4.3: Diagrama de blocos de inicialização da estrura de dados e sensor.
A descrição do processo de inicialização do sensor segue a seguinte ordem:
- É criada a classe (contexto), onde é guardada toda a informação relativa à câmara
nomeadamente as opções gerais (resolução usada na obtenção de imagens, dimensão
inicial do volume a criar, obtenção de cor, etc.), a criação do volume (mapa de
voxels ), a criação do sensor, da superf́ıcie e da janela de visualização do processo.
- As opções carregadas para a classe referida anteriormente são obtidas através de um
ficheiro de texto (options.txt), sendo que os únicos dados que variam na execuçãoda aplicação são as dimensões do volume a criar, devido ao facto deste depender
da funcionalidade escolhida pelo utilizador. As opções podem ser modificadas pelo
utilizador no ficheiro, fora da aplicação.
- Com base nas opções (resolução e dimensões definidas), é criado o volume, ou seja,
o mapa de voxels que vai conter a nuvem de pontos e toda a informação acerca de
cada voxel (coordenadas, normal e cor dos pontos).
- É criado o sensor com a informação da câmara utilizada. Também é definido osistema de coordenadas associado ao objeto/volume, como representado na figura
3.15.
8/18/2019 3D scan with kinnect
38/74
24 Caṕıtulo 4. Software do sistema
4.1.1.2 Processo de calibração da plataforma
Antes de qualquer digitalização é conveniente que a plataforma rotativa e a câmara es-
tejam centradas. Para efetuar esta verificação implementou-se um método que auxilia acalibração da plataforma. Para este método é necessário posicionar no centro da plata-
forma um elemento referenciador. Após o elemento estar posicionado e com o aux́ılio de
uma janela composta por uma linha vertical ao centro (criada com recurso das bibliotecas
OpenCV [17]) e a imagem RGB, obtida através da câmara, é necessário mover a plata-
forma manualmente até que esta esteja alinhada com a linha central da imagem. Desta
forma, os eixos verticais da plataforma e da câmara ficam alinhados, como representado
na figura 4.4(b).
(a) (b)
Figura 4.4: Imagens obtidas no processo de calibração da plataforma.(a) plataforma descalibrada e (b) plataforma calibrada.
4.1.1.3 Processo para deteção da altura de um objeto
Implementou-se igualmente um método para detetar a altura do objeto. Com este
pretende-se definir a altura máxima do volume que é criado para o processo de scan
do objeto. Para proceder a essa medi̧cão é movimentado o robô verticalmente desde o
ponto mı́nimo, dando uma inclinação à câmara de 21.5o, como representado na figura
4.5, uma vez que o seu ângulo de visão é de 43o. Quando a câmara deixa de visualizar o
objeto, é gravado o valor do eixo Z 1 do robô como altura máxima do volume.
4.1.1.4 Processos de scan
O processo de scan pode ser efetuado ao objeto/pessoa de corpo inteiro ou apenas ao
busto. Entre o scan do objeto/pessoa e do busto existe unicamente a diferença do volume
8/18/2019 3D scan with kinnect
39/74
4.1. Software desenvolvido para o PC 25
(a) (b)
Figura 4.5: Método utilizado para deteção de altura do objeto.(a) altura da câmara sem inclinação e (b) com inclinação.
criado para o processo, sendo que para o objeto/pessoa completo é criado um volume com
a altura máxima definida. Caso seja o scan de um busto, a altura do volume é por defeito
600 miĺımetros (mm). Todo o resto do processo é igual, tendo a seguinte ordem:
- É gerada uma janela de visualização de imagens para ser posśıvel seguir o processo
em tempo real. Nessa janela apenas foram adicionados dois tipos de imagens a
visualizar, sendo elas a imagem RGB e a que cont́em a evolução da reconstrução
(modelo 3D). Seria posśıvel também colocar a imagem de profundidade mas, visto
que da ótica do utilizador da aplicação não é uma informação de extrema relevância,
optou-se por não a apresentar.
- Para obter as imagens é iniciado um ciclo de scan , sendo que esse só termina quando é
fechada a janela de visualização ou quando o scan completo é efetuado. Por cada vez
que se volta ao ińıcio do ciclo, é obtida a informação dos novos pontos da superf́ıcie
e da posição da câmara. Com esta nova informação é efetuada a atualização dovolume.
- Após o scan estar efetuado, é gerada uma superf́ıcie com toda a informação contida
no volume anteriormente criado. Através de uma ”limpeza”da superfı́cie, os pontos
isolados são eliminados.
Através do processo descrito, a superf́ıcie obtida é bastante completa. Todavia, em função
do trajeto de scan utilizado e do problema das oclusões, poderão existir zonas desconhe-cidas levando à existência de buracos na superf́ıcie do modelo. Nesta fase do processo o
utilizador pode visualizar a superf́ıcie do modelo 3D de diferentes perspetivas, pois tem
8/18/2019 3D scan with kinnect
40/74
26 Caṕıtulo 4. Software do sistema
a possibilidade de rodar e fazer zoom da mesma, através de uma nova janela. Após essa
análise são propostas três opções:
- Fechar a superfı́cie através do método de Poisson ;
- Fechar a superf́ıcie através do reposicionamento do sistema em relação à zona des-
conhecida;
- Não fechar o modelo obtido.
Está representado o fluxograma das opções apresentadas na figura 4.6.
Figura 4.6: Fluxograma das opções após scan principal efetuado.
Caso o utilizador selecione a opção de fechar a superfı́cie através do método de Poisson , é
utilizada uma função dispońıvel nas bibliotecas da ReconstructMe que aplica esse métodona superf́ıcie obtida. Quando o processo termina é perguntado ao utilizador se deseja
guardar o modelo final.
8/18/2019 3D scan with kinnect
41/74
4.1. Software desenvolvido para o PC 27
Se o utilizador escolher a segunda opção, é desencadeado um novo processo que consiste na
procura de zonas desconhecidas da superf́ıcie (buracos), de modo a que seja reposicionada
a câmara e a plataforma para ser efetuada uma nova leitura sobre essa mesma zona. Este
método desencadeia-se da seguinte forma:
- Inicialmente é aplicado um processo para diminuir o número de triângulos da su-
perf́ıcie criada (só para efeitos de análise), pois na fase de procura dos buracos não
é importante a resolução do modelo, mas sim a rapidez da mesma. Na figura 4.7,
está representado o processo descrito.
Figura 4.7: Processo para diminuição do número triângulos [5].
- Com o número de triângulos reduzido é feita uma procura por todos os triângulos,
comparando as arestas entre eles. Num vetor auxiliar é guardada a informação, do
número de arestas vizinhas que cada triângulo contém.
- É efetuada uma pesquisa sobre o vetor auxiliar, dos triângulos que tenham duas ou
menos arestas vizinhas. Os triângulos identificados com essas condições encontram-
se no extremo de uma zona desconhecida, como representados a vermelho na figura
4.8.
Figura 4.8: Exemplo de identificação de triângulos.
- Durante a pesquisa referida anteriormente, para todos os triângulos que são identifi-
cados, são colocadas as respetivas coordenadas e as normais dos pontos constituintes
do triângulo num mapa de voxels auxiliar. Esse mapa tem as mesmas dimensõesque o volume inicial, diferindo somente o tamanho de cada voxel , sendo este maior.
Como os voxels são maiores, vão conter um número maior de pontos.
8/18/2019 3D scan with kinnect
42/74
28 Caṕıtulo 4. Software do sistema
- Após todos os triângulos serem analisados é efetuada uma procura sobre o novo mapa
criado, para determinar o voxel com maior número de pontos guardados. Importa
referir que o voxel com o maior número de pontos não engloba necessariamente a
zona desconhecida de maior dimensão. Este é o método adotado para selecionar
zonas desconhecidas.
Com uma zona desconhecida encontrada, a câmara e a plataforma são reposicionadas
através da média dos valores guardados no voxel encontrado.
Na figura 4.9 está representado o método utilizado para reposicionar corretamente a
câmara. Verificar a figura 3.15 onde estão identificados os sistemas de coordenadas.
Figura 4.9: Método para reposicionar corretamente a câmara.
Para calcular o reposicionamento da plataforma é aplicada a equação 4.1.
Ângulo de rotação da plataforma(Z’) = atan
X 1
Y 1
(4.1)
Caso o valor obtido através de 4.1 seja inferior a 0o, é somado 360o pois a plataforma só
roda no sentido horário.
Para reposicionar a câmara é necessário mover o robô segundo o eixo dos Z’s, mas antes
é necessário saber qual a distância a percorrer. Para tal é aplicado o seguinte racioćınio
com as equações 4.2, 4.3, 4.4, 4.5 e 4.6 .
θ = atan
NormalZ 1
NormalY 1
(4.2)
α = 90o − θ (4.3)
A = L× tan(θ) (4.4)
8/18/2019 3D scan with kinnect
43/74
4.1. Software desenvolvido para o PC 29
C = 230× cos(α) = 230 × sin(θ) (4.5)
B = A + Z 1 (4.6)
Na equação 4.5, o valor 230 é a distância aproximada da falange do robô à câmara. Através
da soma de C com B obtém-se a altura final, e com o valor de θ o ângulo que a câmara
deve tomar.
Após ser executada a reposição, é efetuada uma nova leitura, cuja a finalidade é a atua-
lização do volume. É de referir que este processo de procura só é efetuado para uma única
zona desconhecida, ou seja, caso existam mais zonas e o utilizador as deseje fechar através
deste método, o processo irá ser executado novamente, com a nova superf́ıcie atualizada
e assim sucessivamente.
Por fim a terceira opção permite ao utilizador sair do processo de scan sem que o modelo
3D obtido seja completamente fechado. De seguida é colocada a questão se o utiliza-
dor deseja gravar o modelo, o qual é gravado em quatro formatos diferentes: PLY, STL,
OBJ e 3DS. Os dois primeiros formatos são os formatos mais utilizados, correspondendo
respetivamente, ao modelo com cor e ao modelo em escala de cinza.
4.1.1.5 Destruição da estrutura de dados e do sensor
Ao terminar qualquer um dos processos referidos anteriormente é necessário destruir todos
os dados guardados, para que estes não interfiram com futuros processos. Esse processo
é idêntico ao de criar a estrutura de dados e do sensor como está representado na figura
4.10.
Figura 4.10: Diagrama de blocos de destruição da estrutura de dados e do sensor.
4.1.2 Controlo do robô e da plataforma rotativa
Para o controlo do robô e da plataforma rotativa foi criada uma classe que cont́em os
seguintes métodos/funções:
- Função de iniciação da comunicação: função na qual são definidas quais as
portas a utilizar para o robô e a plataforma, bem como as configurações das mesmas
8/18/2019 3D scan with kinnect
44/74
30 Caṕıtulo 4. Software do sistema
(BaudRate , etc.).
- Função que envia a informação: função que envia a informação (descritas no
subcapı́tulo 4.4.1) para o robô e plataforma, consoante a função que se pretende
realizar.
- Função de interrupção: função utilizada unicamente para receber a informação
enviada pelo robô. Foi criada esta interrupção para garantir que o PC não perde a
informação enviada pelo robô. Sendo assim, a interrupção desperta sempre que o
robô envia alguma informação, ficando esta guardada numa variável.
4.2 Software desenvolvido para o robô
De seguida será descrito todo o software desenvolvido para o controlador do robô.
A programação deste módulo está realizada em linguagem RAPID .
O fluxograma associado ao robô está representado na figura 4.11.
O robô está programado para efetuar movimentos lineares em Z e para rodar a ferramenta,
de modo a dar a inclinação pretendida à câmara. Inicialmente são definidos os limites
que o robô pode atingir no eixo dos Z’s, em relação ao referencial situado na sua base, de
modo a funcionar sempre dentro do seu volume de trabalho, sendo eles:
- Limite mı́nimo igual a 450 mm, pois não é necessário atingir valores inferiores,
devido ao ângulo de visão da câmara;
- Limite máximo igual a 1980 mm.
Para efetuar o alinhamento da plataforma com a câmara, o robô é movido para o ponto
fixo com uma inclinação na ferramenta de 0o sendo esta a posição home .
Para efetuar a medição da altura do objeto, inicialmente é garantido que a câmara se en-contra na posição home e que o sensor já está criado. É dada uma inclinação à ferramenta
de 21.5o, e a partir dáı o controlo do robô é efetuado através do PC, o qual dá ordem
ao robô para este se movimentar 50mm no eixo dos Z’s, enquanto o objeto est á dentro
do campo de visão da câmara. Após o objeto deixar de ser visualizado, o robô guarda e
devolve para o PC o valor atual da sua posição em Z. Por fim, este é reposicionado ao
centro da cota máxima do objeto com uma inclinação na ferramenta de 0o.
Quando é iniciado um scan de corpo completo ou de um busto o processo é idêntico, sendo
a única diferença o ponto de partida. Um scan completo é iniciado numa cota igual à docentro do objeto e o do busto tem inı́cio numa cota 300 mm abaixo do valor da altura
do objeto. O restante processo é semelhante para ambos os casos. Quando o movimento
8/18/2019 3D scan with kinnect
45/74
4.3. Software desenvolvido para a plataforma rotativa 31
Figura 4.11: Fluxograma do software desenvolvido para o controlador do robô.
pré-definido do robô chega ao fim é enviada a informação que já foi efetuado o scan .
O processo de reposicionamento da câmara para obter uma zona desconhecida, passa por,
o robô receber a informação da nova posição e inclinação, efetuando o movimento desejadoe após isto, indicar ao PC que a câmara está reposicionada.
4.3 Software desenvolvido para a plataforma rota-
tiva
O software desenvolvido para a plataforma rotativa será descrito neste subcapı́tulo. Aprogramação deste módulo é baseada em linguagem Wiring [18] [19]. Na figura 4.12 está
representado o funcionamento geral do software desenvolvido.
8/18/2019 3D scan with kinnect
46/74
32 Caṕıtulo 4. Software do sistema
Figura 4.12: Fluxograma do software desenvolvido para a plataforma rotativa.
É associada uma interrupção ao pin da sáıda A do encoder para efetuar a contagem de
pulsos emitidos pelo mesmo, de modo a ser posśıvel medir o ângulo da rotação efetuado
e o controlo da malha.
Está implementado um sistema de controlo de malha fechada para ser posśıvel manter
velocidade de rotação constante com diferentes cargas. Para efetuar o controlo da malha,
o valor de setpoint da velocidade de rotação da plataforma está definido como 3 rpm. A
velocidade referida anteriormente é equivalente a um número de pulsos por segundo do
encoder . Através da diferença do setpoint com a contagem de pulsos efetuada é posśıvelcontrolar o valor do DAC. A plataforma ao receber o valor de um ângulo em graus,
converte-o para um valor equivalente em pulsos do encoder (360o equivale a 1000 pulsos).
Se o valor recebido for igual a 0o e a plataforma estiver a ser controlada por malha fechada,
é calculada a diferença entre o ponto atual e o ponto inicial de rotação, rodando apenas
essa diferença calculada.
Através da interrupção que é despertada a uma cadência de 100 ms, é controlado todo
o processo de rotação: gerar as rampas de aceleração e desaceleração, ligar/desligar ou
efetuar o controlo da malha e escrever o valor digital para as sáıdas associadas ao DAC. OVEV usado tem a funcionalidade de criação de rampas pré-definidas, as quais não foram
usadas pois a precisão do ângulo de rotação efetuado obtido era inferior.
8/18/2019 3D scan with kinnect
47/74
4.4. Comunicações executadas e seu conteúdo 33
4.4 Comunicações executadas e seu conteúdo
As comunicações executadas entre o PC, controlador do robô e a plataforma rotativa,
assim como seu conteúdo serão descritas neste subcaṕıtulo. A informação trocada entre
todos os dispositivos é efetuada através de comunicação série. A comunicação efetuada
entre o PC e o controlador do robô é bidirecional, entre o PC e a plataforma rotativa é
unidirecional tal como mostra a figura 4.13.
Figura 4.13: Diagrama de blocos das comunicações efetuadas.
4.4.1 Fluxo de dados computador – robô
O protocolo comunicação entre o PC e o robô está descrito na figura 4.14. Inicialmente
ambos os dispositivos são inicializados, ou seja, é definido qual o canal usado e a velocidade
de comunicação como 9600 bps.
Durante o decorrer de toda a aplicação é necessário o uso do robô para diferentes tarefas.
Quando é iniciado um processo é enviada a ordem contida numa string , constituı́da por
29 caracteres, de forma a adaptar-se para todas as situações do projeto. Na tabela 4.1
estão representadas as diversas strings para os diferentes processos, a verde está indicado
o ı́ndice posição da string .
Tabela 4.1: Formato das strings enviadas pelo computador.
8/18/2019 3D scan with kinnect
48/74
34 Caṕıtulo 4. Software do sistema
Figura 4.14: Fluxograma para a comunicação computador - robô.
A única string que contém informação diferente é a que pertence à função de reposicio-
namento da câmara, contendo 5 caracteres para cada eixo de deslocação. São necessários
5 caracteres devido à existência de sinal e por poder haver deslocações superiores a 1000
mm. A inclinação da câmara ocupa 4 caracteres, 3 destinados para o ângulo e 1 para o
sentido de rotação. Na tabela 4.2 estão representados exemplos de alguns posśıveis casos.
É importante referir que o robô só está a receber informação, proveniente do PC, para
deslocações no eixo dos Z’s e inclinação da câmara. O protocolo encontra-se preparado
para trabalhos futuros de modo efetuar posicionamento nos restantes eixos.
Tabela 4.2: Exemplos da string enviada pelo PC para reposicionamento do robô.
Após o robô se reposicionar para a função que foi requerida, este envia uma string contendo
8/18/2019 3D scan with kinnect
49/74
4.4. Comunicações executadas e seu conteúdo 35
“EMPOS”, para o PC poder continuar o processo.
O PC ao receber a informação referida anteriormente, efetua a inicialização da estrutura
de dados e do sensor referido no subcapı́tulo 4.1.1. Após essa ação estar conclúıda envia
uma string a informar que o sensor está criado, representada na tabela 4.3.
Tabela 4.3: Formato da string enviada pelo PC após criar sensor.
Por fim ao ser executada a função pelo robô, é enviada uma string com “FINAL”, exceto
no processo de deteção da altura onde apenas é retornado o valor da altura do objeto.
4.4.2 Fluxo de dados computador – plataforma rotativa
Na figura 4.15 está representada a comunicação entre o PC e a plataforma.
Figura 4.15: Fluxograma para a comunicação computador - plataforma rotativa.
O PC envia para a plataforma o número de graus que a pretende rodar, estando estasempre disponı́vel a receber um valor. Cada vez que recebe um valor, este é substitúıdo
pelo anterior e executada nova ordem.
8/18/2019 3D scan with kinnect
50/74
36 Caṕıtulo 4. Software do sistema
A comunicação com a plataforma é unidirecional, ou seja, apenas recebe valores, pois não
é necessário o PC receber informação proveniente desta.
4.5 Descrição da interface da aplicação
Com a aplicação desenvolvida, pretende-se que esta seja intuitiva para o utilizador, con-
tendo uma breve explicação do que cada opção faz. No menu principal é dado a escolher
uma das três funcionalidades principais ou então a possibilidade de fechar a aplicação.
Como mostra a figura 4.16, é possı́vel verificar as opções com a respetiva informação sobre
o processo assinalado.
Figura 4.16: Visualização menu principal da aplicação.(a) calibrar plataforma, (b) detetar altura máxima, (c) iniciar scan e (d)sair.
Ao ser selecionada a opção “Calibrar Plataforma” do menu principal, surgem duas janelas
distintas (figura 4.17): a janela do programa e uma nova janela para efetuar a inspeçãovisual se a plataforma está centrada com a câmara. O utilizador pode encerrar o processo
através da opção “Voltar”, como apresentado na janela principal do programa.
8/18/2019 3D scan with kinnect
51/74
4.5. Descrição da interface da aplicação 37
Figura 4.17: Visualização do processo de calibração plataforma.(a) janela principal do programa e (b) janela de inspeção.
Ao ser selecionada a opção “Calibrar Altura” do menu principal, surge uma janela como
representado na figura 4.18, que permite ao utilizador cancelar o processo de deteção de
altura do objeto. Caso o processo não seja cancelado, ao ser finalizado é retornado para
o menu principal.
Figura 4.18: Visualização do processo de deteção da altura máxima do objeto.
Ao ser selecionada a opção “Iniciar Scan ” do menu principal, surge um novo menu que
permite selecionar o tipo de scan que é pretendido, ou então voltar ao menu inicial, como
representado na figura 4.19.
Durante qualquer processo de scan são apresentadas duas janelas distintas, como repre-
senta a figura 4.20, a janela do programa principal e uma outra para visualização daevolução processo. Durante o scan é posśıvel ao utilizador parar o processo, sendo que
quando esta opção for escolhida, a reconstrução do volume irá deixar de ser atualizada,
8/18/2019 3D scan with kinnect
52/74
38 Caṕıtulo 4. Software do sistema
Figura 4.19: Visualização do menu do processo de scan .(a) scan completo e (b) scan do busto.
pois não são obtidas imagens enquanto este não se retomar. Após o mesmo ser retomado,
a reconstrução do objeto continua normalmente. Para além de parar e retomar o scan
também existe uma opção ”Reset volume”, em que esta elimina toda a informação obtida
até ao momento, recomeçando de novo.
Figura 4.20: Visualização do processo de scan a decorrer.(a) janela principal do programa e (b) janela visualização da evolução.
Após qualquer processo de scan ser conclúıdo, surge uma outra janela onde se pode ins-
pecionar o modelo obtido. Esta permite ao utilizador escolher como é fechado o modelo,
podendo ser através do reposicionamento do sistema desenvolvido ou então com a recons-
trução de Poisson , como representado na figura 4.21.
Quando o procedimento estiver conclúıdo ou a opção ”Não fechar modelo”seja selecionada,
8/18/2019 3D scan with kinnect
53/74
4.5. Descrição da interface da aplicação 39
Figura 4.21: Visualização do menu e do modelo por fechar.(a) janela principal do programa e (b) janela inspeção do modelo.
ficamos apenas com a janela principal sendo apresentado ao utilizador a possibilidade de
guardar o modelo obtido, como representado na figura 4.22.
Figura 4.22: Visualização menu guardar.
8/18/2019 3D scan with kinnect
54/74
40
8/18/2019 3D scan with kinnect
55/74
Caṕıtulo 5
Testes e resultados
Neste capı́tulo são apresentados testes em termos de desempenho, diferenças de resolução
e limitações do sistema. Em todos os testes efetuados, foi utilizado o PC descrito no
capı́tulo 3.
É importante referir que durante o decorrer do projeto, foram efetuados testes exaustivos
ao sistema desenvolvido, nomeadamente no evento ”Dia Aberto 2015”[20] realizado nos
dias 18,19 e 21 de março de 2015. Durante o evento foram criados 79 modelos 3D de
pessoas. Foi adicionada uma base aos modelos, como mostra a figura 5.1,de forma a estes
serem enviados para as respetivas pessoas com uma referência do Instituto Politécnico de
Leiria.
Figura 5.1: Exemplo de um modelo 3D enviado.
41
8/18/2019 3D scan with kinnect
56/74
42 Caṕıtulo 5. Testes e resultados
Com os testes realizados foram detetadas principalmente duas falhas:
- A velocidade da plataforma não era constante, sendo por vezes lenta ao ponto de
parar ou rápida de mais. Para resolver esse problema está implementado o controlode malha fechada no software da plataforma.
- Durante o scan, caso a pessoa fosse pequena, em certa altura esta deixava de estar no
campo de visão da câmara, pois o percurso efetuado pelo robô não estava adequado
ao caso. Como solução está implementado o método para detetar a altura máxima
do objeto/pessoa.
5.1 Teste com diferentes tipos de luz
Foram efetuados diversos testes com luz ambiente e luz localizada, pois consoante a sua
intensidade e localização os resultados obtidos diferem, utilizando sempre o mesmo objeto.
Como luz localizada, foi utilizado um holofote posicionado na parte de trás da câmara.
Na figura 5.2 estão os resultados obtidos com diferentes tipos de iluminação.
(a) (b) (c) (d)
Figura 5.2: Resultados obtidos com diferentes iluminações.Persianas: (a - b) fechadas, (c - d) abertas; Luz auxiliar: (a) e (c) OFF, (b) e (d) ON.
O scan feito para os modelos obtidos em (a) e (b), foi efetuado com as persianas das
janelas fechadas. Para os modelos (c) e (d) as persianas estavam abertas. Como se pode
verificar, existe uma clara diferença na cor do modelo. Para tentar melhorar, foi colocado
o holofote em contraluz, ou seja, na parte de trás da câmara, uma vez que esta está
voltada para a luz vinda das janelas, modelos em (b) e (d). Foram obtidos melhoresresultados em ambas as situações, mas os resultados de quando as persianas estavam
abertas continuam a ser de qualidade inferior. Posto isto, o ambiente onde foram obtidos
8/18/2019 3D scan with kinnect
57/74
5.2. Teste com diferentes resoluções 43
Tabela 5.1: Valores obtidos dos diferentes testes efetuados.
melhores resultados, relativamente à cor do modelo obtido, é com as persianas fechadas e
com o holofote na parte de trás da câmara. A informação de cor só se torna importante
consuante a aplicação que é dada ao modelo 3D obtido.
5.2 Teste com diferentes resoluções
No teste com diferentes resoluções foram realizados dois scans, um com a resolução mı́nima
((128×128×128) voxels ) e outro com a resolução máxima ((512×512×512) voxels ). Na
figura 5.3 estão representados os dois modelos obtidos, seguido da tabela 5.2 onde se pode
verificar que a diferença do número de triângulos entre as resoluções é grande.
(a) (b)
Figura 5.3: Diferenças entre modelos com resoluções distintas.(a) resolução mı́nima e (b) resolução máxima.
Tabela 5.2: Valores obtidos com diferentes resoluções.
De forma a testar o tempo de execução dos processos, foi efetuado o scan completo. Foi
escolhido o scan completo devido ao facto deste ter um maior volume para an álise e por
8/18/2019 3D scan with kinnect
58/74
44 Caṕıtulo 5. Testes e resultados
o percurso do robô ser o mais longo, logo este processo torna-se o mais demorado. O
modelo utilizado para esta medição foi uma pessoa com uma altura aproximadamente de
1.65 m, obtendo os tempos que estão descritos na tabela 5.3.
Tabela 5.3: Tempos obtidos com diferentes resoluções.
Através da tabela 5.3 podemos verificar que a resolução apenas influencia os tempos de
gerar a superf́ıcie e de procurar um buraco. Isto deve-se ao facto da diferença de triângulos
entre um e outro ser elevada.
5.3 Teste com objeto de superf́ıcie brilhante
Como foi referido no subcapı́tulo 2.1.3, outro problema da luz estruturada são as su-
perf́ıcies brilhantes. De forma a comprovar o problema foi utilizado como objeto brilhante
uma placa de acŕılico preta, como representa a figura 5.4.
Figura 5.4: Objeto brilhante utilizado.
Após ser realizado um scan com o objeto brilhante, verifica-se que em toda a zona da
placa não foi obtida nenhuma informação 3D, tal como representado na figura 5.5.
8/18/2019 3D scan with kinnect
59/74
5.3. Teste com objeto de superf́ıcie brilhante 45
(a) (b)
Figura 5.5: Resultado obtido com objeto brilhante.
(a) imagem RGB com o objeto e (b) modelo 3D obtido com buraco.
8/18/2019 3D scan with kinnect
60/74
46
8/18/2019 3D scan with kinnect
61/74
Caṕıtulo 6
Conclusões e trabalho futuro
A realização deste projeto revelou-se um grande desafio uma vez que não era do nosso co-
nhecimento o funcionamento de reconstrução 3D. Através das pesquisas efetuadas adquiriu-
se uma base de bibliotecas, o que foi bastante importante no desenvolvimento do projeto.
Após as pesquisas efetuadas, foi constrúıdo um suporte para a câmara 3D de forma a
acopla-la à ferramenta do robô industrial. Este suporte foi projetado e constrúıdo a pen-
sar em trabalhos futuros, pois permite adaptar diferentes câmaras.
Para a familiarização com a câmara 3D, foram encontrados durante as pesquisas alguns
programas que nos facilitaram na compreensão do funcionamento da mesma.
De modo a ser posśıvel rodar o modelo, foi constrúıda uma plataforma rotativa com re-
curso a um motor e a um Arduino Uno, para poder ser controlada pelo PC.
A aquisição, integração e geração 3D é efetuada com recurso às bibliotecas da Recons-
tructMe . Estas bibliotecas auxiliaram bastante o desenvolvimento do programa a ńıvel
da manipulação da informação 3D adquirida.
Para o funcionamento do robô foram criadas duas trajetórias (scan completo e scan busto),
que se adequam à altura do objeto.
Sabendo que a tecnologia está em constante desenvolvimento e evolução, segue algum do
trabalho que consideramos ser uma mais-valia numa próxima evolução do projeto:
- Utilização de uma câmara de melhor qualidade, como por exemplo a Kinect V2.
Esta câmara tem uma melhor resolução e é mais precisa;
- Criação de uma interface gráfica, criando um ambiente gráfico mais apelativo e
integrando todas as janelas numa só, entre outras possibilidades;
- Otimização do processo da procura de buracos, pois por vezes ainda é suscet́ıvel a
erros.
47
8/18/2019 3D scan with kinnect
62/74
48 Caṕıtulo 6. Conclusões e trabalho futuro
A ńıvel pessoal, este projeto tornou-se bastante enriquecedor, pois para além das com-
petências aplicadas, foram desenvolvidas e cimentadas novas capacidades no âmbito de
pesquisa e seleção de informação, trabalho em equipa e interação com empresas exteriores,
sendo estas competências uma mais-valia para o nosso futuro.
8/18/2019 3D scan with kinnect
63/74
Bibliografia
[1] Consultado em 21-07-2015. [Online]. Available: http://home.lagoa.com/2014/04/
whats-the-right-3d-scanner-for-you/
[2] Consultado em 21-07-2015. [Online]. Available: http://campar.in.tum.de/twiki/
pub/Chair/TeachingSs11Kinect/2011-DSensors LabCourse Kinect.pdf
[3] Consultado em 21-07-2015. [Online]. Available: https://wholesgame.com/news/
kinect-to-remain-an-important-aspect-of-xbox/
[4] Consultado em 21-07-2015. [Online]. Available: http://www.ia.omron.com/product/
item/e6b27057d/index.html
[5] Consultado em 21-07-2015. [Online]. Available: http://www.cs.carleton.edu/cs comps/0405/shape/decimation.html
[6] Consultado em 21-07-2015. [Online]. Available: https://www.youtube.com/watch?
v=1GigJGPl5pc
[7] Consultado em 21-07-2015. [Online]. Available: https://www.youtube.com/watch?
v=wFVzYU1HzSQ
[8] Consultado em 21-07-2015. [Online]. Available: https://msdn.microsoft.com/en-us/
library/hh438998.aspx
[9] Consultado em 21-07-2015. [Online]. Available: http://www.kreon3d.com/
applications/
[10] Consultado em 21-07-2015. [Online]. Available: http://blog.shapegrabber.com/
2012/06/optical-3d-scanning-laser-beam-or-structured-light.html
[11] Consultado em 21-07-2015. [Online]. Available: http://www.cs.jhu.edu/∼misha/
MyPapers/SGP07a.pdf
[12] Consultado em 21-07-2015. [Online]. Available: http://www.cs.jhu.edu/∼misha/
MyPapers/SGP06.pdf
49
http://home.lagoa.com/2014/04/whats-the-right-3d-scanner-for-you/http://home.lagoa.com/2014/04/whats-the-right-3d-scanner-for-you/http://campar.in.tum.de/twiki/pub/Chair/TeachingSs11Kinect/2011-DSensors_LabCourse_Kinect.pdfhttp://campar.in.tum.de/twiki/pub/Chair/TeachingSs11Kinect/2011-DSensors_LabCourse_Kinect.pdfhttps://wholesgame.com/news/kinect-to-remain-an-important-aspect-of-xbox/https://wholesgame.com/news/kinect-to-remain-an-important-aspect-of-xbox/http://www.ia.omron.com/product/item/e6b27057d/index.htmlhttp://www.ia.omron.com/product/item/e6b27057d/index.htmlhttp://www.cs.carleton.edu/cs_comps/0405/shape/decimation.htmlhttp://www.cs.carleton.edu/cs_comps/0405/shape/decimation.htmlhttps://www.youtube.com/watch?v=1GigJGPl5pchttps://www.youtube.com/watch?v=1GigJGPl5pchttps://www.youtube.com/watch?v=wFVzYU1HzSQhttps://www.youtube.com/watch?v=wFVzYU1HzSQhttps://msdn.microsoft.com/en-us/library/hh438998.aspxhttps://msdn.microsoft.com/en-us/library/hh438998.aspxhttp://www.kreon3d.com/applications/http://www.kreon3d.com/applications/http://blog.shapegrabber.com/2012/06/optical-3d-scanning-laser-beam-or-structured-light.htmlhttp://blog.shapegrabber.com/2012/06/optical-3d-scanning-laser-beam-or-structured-light.htmlhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP06.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://www.cs.jhu.edu/~misha/MyPapers/SGP07a.pdfhttp://blog.shapegrabber.com/2012/06/optical-3d-scanning-laser-beam-or-structured-light.htmlhttp://blog.shapegrabber.com/2012/06/optical-3d-scanning-laser-beam-or-structured-light.htmlhttp://www.kreon3d.com/applications/http://www.kreon3d.com/applications/https://msdn.microsoft.com/en-us/library/hh438998.aspxhttps://msdn.microsoft.com/en-us/library/hh438998.aspxhttps://www.youtube.com/watch?v=wFVzYU1HzSQhttps://www.youtube.com/watch?v=wFVzYU1HzSQhttps://www.youtube.com/watch?v=1GigJGPl5pchttps://www.youtube.com/watch?v=1GigJGPl5pchttp://www.cs.carleton.edu/cs_comps/0405/shape/decimation.htmlhttp://www.cs.carleton.edu/cs_comps/0405/shape/decimation.htmlhttp://www.ia.omron.com/product/item/e6b27057d/index.htmlhttp://www.ia.omron.com/product/item/e6b27057d/index.htmlhttps://wholesgame.com/news/kinect-to-remain-an-important-aspect-of-xbox/https://wholesgame.com/news/kinect-to-remain-an-important-aspect-of-xbox/http://campar.in.tum.de/twiki/pub/Chair/TeachingSs11Kinect/2011-DSensors_LabCourse_Kinect.pdfhttp://campar.in.tum.de/twiki/pub/Chair/TeachingSs11Kinect/2011-DSensors_LabCourse_Kinect.pdfhttp://home.lagoa.com/2014/04/whats-the-right-3d-scanner-for-you/http://home.lagoa.com/2014/04/whats-the-right-3d-scanner-for-you/
8/18/2019 3D scan with kinnect
64/74
50 Bibliografia
[13] Consultado em 21-07-2015. [Online]. Available: http://reconstructme.net/
reconstructme-sdk/
[14] Consultado em 21-07-2015. [Online]. Available: https://www.microsoft.com/en-us/
kinectforwindows/
[15] Consultado em 21-07-2015. [Online]. Available: http://reyvarsur.com/wp-content/
uploads/2014/08/Ditra motores electricos.pdf
[16] Consultado em 21-07-2015. [Online]. Available: https://www.yaskawa.com/pycprd/
products/industrial-ac-drives/microdrives/j1000-drive/tab0/link00
[17] Consultado em 21-07-2015. [Online]. Available: http://opencv.org/
[18] Consultado em 21-07-2015. [Online]. Available: https://en.wikipedia.org/wiki/Wiring (development platform)
[19] Consultado em 21-07-2015. [Online]. Available: http://wiring.org.co/cgi-bin/yabb/
YaBB.pl?num=1271536738
[20] Consultado em 21-07-2015. [Online]. Available: http://www.diaaberto.estg.ipleiria.
pt
http://reconstructme.net/reconstructme-sdk/http://reconstructme.net/reconstructme-sdk/https://www.microsoft.com/en-us/kinectforwindows/https://www.microsoft.com/en-us/kinectforwindows/http://reyvarsur.com/wp-content/uploads/2014/08/Ditra_motores_electricos.pdfhttp://reyvarsur.com/wp-content/uploads/2014/08/Ditra_motores_electricos.pdfhttps://www.yaskawa.com/pycprd/products/industrial-ac-drives/microdrives/j1000-drive/tab0/link00https://www.yaskawa.com/pycprd/products/industrial-ac-drives/microdrives/j1000-drive/tab0/link00http://opencv.org/https://en.wikipedia.org/wiki/Wiring_(development_platform)https://en.wikipedia.org/wiki/Wiring_(development_platform)http://wiring.org.co/cgi-bin/yabb/YaBB.pl?num=1271536738http://wiring.org.co/cgi-bin/yabb/YaBB.pl?num=1271536738http://www.diaaberto.estg.ipleiria.pt/http://www.diaaberto.estg.ipleiria.pt/http://www.diaaberto.estg.ipleiria.pt/http://www.diaaberto.estg.ipleiria.pt/http://wiring.org.co/cgi-bin/yabb/YaBB.pl?num=1271536738http://wiring.org.co/cgi-bin/yabb/YaBB.pl?num=1271536738https://en.wikipedia.org/wiki/Wiring_(development_platform)https://en.wikipedia.org/wiki/Wiring_(development_platform)http://opencv.org/https://www.yaskawa.com/pycprd/products/industrial-ac-drives/microdrives/j1000-drive/tab0/link00https://www.yaskawa.com/pycprd/products/industrial-ac-drives/microdrives/j1000-drive/tab0/link00http://reyvarsur.com/wp-content/uploads/2014/08/Ditra_motores_electricos.pdfhttp://reyvarsur.com/wp-content/uploads/2014/08/Ditra_motores_electricos.pdfhttps://www.microsoft.com/en-us/kinectforwindows/https://www.microsoft.com/en-us/kinectforwindows/http://reconstructme.net/reconstructme-sdk/http://reconstructme.net/reconstructme-sdk/
8/18/2019 3D scan with kinnect
65/74
Apêndice A
Suporte Kinect para garra do robô
51
8/18/2019 3D scan with kinnect
66/74
8/18/2019 3D scan with kinnect
67/74
8/18/2019 3D scan with kinnect
68/74
Página 1
DESENHO ASSISTIDO POR COMPUTADOR - CAD
ESCALA
1/5
ORIENTADORES
Professor Fernando Martins
Março 2015
PROJ.
DES.
VERIF.
APROV.
ALUNOS:
acoplada a Robô
PLATAFORMA ROTATIVA
Professor Carlos Simplício
DESENHO Nº 1
Projeto de Licenciatura3D Scanning com Kinect
João Valente Nº2103373
Luís Cristóvão Nº2103373
8/18/2019 3D scan with kinnect
69/74
Página 2
DESENHO ASSISTIDO POR COMPUTADOR - CAD
ESCALA
1/5
ORIENTADORES
Professor Fernando Martins
Março 2015
PROJ.
DES.
VERIF.
APROV.
ALUNOS:
DESENHO Nº 2acoplada a Robô
PLATAFORMA ROTATIVA
Professor Carlos Simplício
Projeto de Licenciatura3D Scanning com Kinect
João Valente Nº2103373
Luís Cristóvão Nº2103373
8/18/2019 3D scan with kinnect
70/74
8/18/2019 3D scan with kinnect
71/74
B.2. Placa para controlar o de motor de passo 57
B.2 Placa para controlar o de motor de passo
8/18/2019 3D scan with kinnect
72/74
Página 1
ORIENTADORES
Professor Fernando Martins
PROJ.
DES.
VERIF.
APROV.
ALUNOS:
acoplada a RobôProfessor Carlos Simplício
Fevereiro 2015
ESCALA
DESENHO ASSISTIDO POR COMPUTADOR - ALTIUM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TLP521-4
Arduino Pin2
Arduino Pin4
Arduino Pin3
Arduino Pin6
Arduino GND
174
R1
174
R2
174
R3
174
R4
U5
BDX33C
U7BDX33C
U1
BDX33C
U3
BDX33C
U6
BDX33C
U8
BDX33C
U2
BDX33C
U4
BDX33C
220
R5
220
R6
220
R7
220
R8
220
R10
220
R9
220
R11
220
R12
VCC
VCC
GND
GND
BLUE/WHITE BLUE
RED/WHITE RED
Esquema Placa Motor Passo Bipolar
DESENHO Nº4
Projeto de Licenciatura3D Scanning com Kinect
João Valente Nº2103373
Luís Cristóvão Nº2103373
8/18/2019 3D scan with kinnect
73/74
B.3. Placa para controlar o variador eletŕonico de velocidade e encoder 59
B.3 Placa para controlar o variador eletrónico de ve-
locidade e encoder
8/18/2019 3D scan with kinnect
74/74
Arduino Pin 4
Arduino Pin 5
Arduino Pin 6
Arduino Pin 7
Arduino Pin 8
Arduino Pin 9
Arduino Pin 10
Arduino Pin 11
22K R1
22K R2
22K R3
22K R4
22K R5
22K R6
22K R7
22K R8
8
1
4
3
2
8
4
75
6
U2BOPA2241
10K R9
10K R10
10K R11
10K R12
10K R13
10K R14
10K R15
10K R16
GND
33K R20
10K R17
GND
GND
VEV GND
VEV V+
VEV A1
10V
GND
10V
10V
GND
Arduino GND
Arduino 5V5V
Encoder OUT A
Encoder OUT B
Encoder 0(Common)
Encoder 5V
750R18
750R19
GND
5VArduino Pin 2
Arduino Pin 3
5V
U1AOPA2241