Sunteți pe pagina 1din 74

RELATORIO

FINAL DA UNIDADE CURRICULAR DE PROJETO DA

LICENCIATURA EM ENGENHARIA ELETROTECNICA,


RAMO DE ENERGIA E

AUTOMAC
AO

Departamento de Engenharia Eletrotecnica

3D Scanning com Kinect acoplada a Rob


o

Autores:
o Filipe Cordeiro Valente
Joa
o
Lus Emanuel Ferreira Cristova
Orientadores:
Carlos Simplcio
Fernando Martins

Leiria, julho de 2015

ii

Agradecimentos
Durante a realizacao 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 Simplcio, por todo o apoio prestado durante o decorrer do
presente ano letivo.
Aos responsaveis pelo Centro de Eletronica da Escola Superior de Tecnologia e Gestao,
Marco Santos e Sofia Gualdino, pela cooperacao demonstrada, indispensavel `a realizacao
de determinadas tarefas.
Agradecimentos a`s empresas PROFACTOR, PROVIDGADGET e PETOOLS por todo
o material disponibilizado para a realizacao 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

iv

Resumo
Atualmente existe um mercado em crescimento para modelos tridimensionais (3D) de
objetos. Da surgiu uma proposta de projeto para desenvolver um sistema que efetuasse
o scan de objetos, para criar tais modelos, utilizando uma camara de baixo custo.
Foi desenvolvido um sistema para digitalizacao 3D, constitudo por uma plataforma rotativa, onde e colocado o objeto, uma camara acoplada a um braco robotico e um com efetuada uma descricao do sistema
putador pessoal (PC) que controla todo o sistema. E
tanto a nvel de hardware como de software.
O sistema desenvolvido permite construir modelos completos (3D + cor) percorrendo uma
trajectoria de varrimento ajustada `a dimensao do objeto.

vi

Indice
Agradecimentos

iii

Resumo

Lista de Figuras

ix

Lista de Tabelas

xi

Lista de Siglas

xiii

1 Introduc
ao

1.1

Enquadramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Visao geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Estrutura do relatorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Conceitos sobre aquisic


ao 3D
2.1

2.2

Metodos de aquisicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1

Contato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.2

Fotometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.3

Luz estruturada . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.4

Time of flight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Tratamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Hardware do sistema

11

3.1

Sistema de aquisicao de informacao 3D . . . . . . . . . . . . . . . . . . . . 11

3.2

Robo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3

Plataforma rotativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.1

Estrutura da plataforma . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3.2

Moto-redutor trifasico . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3.3

Variador eletronico de velocidade . . . . . . . . . . . . . . . . . . . 15

3.3.4

Encoder incremental . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3.5

Hardware de comando . . . . . . . . . . . . . . . . . . . . . . . . . 16
vii

3.4

Referenciais e sistemas de coordenadas . . . . . . . . . . . . . . . . . . . . 18

4 Software do sistema
4.1 Software desenvolvido para o PC . . . . . . . . . . . . . . . . .
4.1.1 Aquisicao e tratamento de dados do modelo 3D . . . . .
4.1.1.1 Inicializacao da estrutura de dados e do sensor
4.1.1.2 Processo de calibracao da plataforma . . . . . .
4.1.1.3 Processo para detecao da altura de um objeto .
4.1.1.4 Processos de scan . . . . . . . . . . . . . . . .
4.1.1.5 Destruicao da estrutura de dados e do sensor .
4.1.2 Controlo do robo e da plataforma rotativa . . . . . . . .
4.2 Software desenvolvido para o robo . . . . . . . . . . . . . . . . .
4.3 Software desenvolvido para a plataforma rotativa . . . . . . . .
4.4 Comunicacoes executadas e seu conte
udo . . . . . . . . . . . . .
4.4.1 Fluxo de dados computador robo . . . . . . . . . . . .
4.4.2 Fluxo de dados computador plataforma rotativa . . . .
4.5 Descricao da interface da aplicacao . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

21
22
23
23
24
24
24
29
29
30
31
33
33
35
36

5 Testes e resultados
41
5.1 Teste com diferentes tipos de luz . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Teste com diferentes resolucoes . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Teste com objeto de superfcie brilhante . . . . . . . . . . . . . . . . . . . 44
6 Conclus
oes e trabalho futuro

47

Bibliografia

49

Ap
endice A Suporte Kinect para garra do rob
o

51

Ap
endice B Desenvolvimento da plataforma
53
B.1 Estrutura projetada para plataforma . . . . . . . . . . . . . . . . . . . . . 53
B.2 Placa para controlar o de motor de passo . . . . . . . . . . . . . . . . . . . 57
B.3 Placa para controlar o variador eletronico de velocidade e encoder . . . . . 59

Lista de Figuras
1.1

Sistema desenvolvido e ambiente envolvente. . . . . . . . . . . . . . . . . .

2.1

Metodos de scan 3D por contato. . . . . . . . . . . . . . . . . . . . . . . .

2.2

Metodo de scan 3D por fotometria [1]. . . . . . . . . . . . . . . . . . . . .

2.3

Exemplo de modelo obtido atraves de luz estruturada.

. . . . . . . . . . .

2.4

Conceito de funcionamento de camaras do tipo TOF [2]. . . . . . . . . . .

2.5

Imagens obtidas atraves de uma camara regular e do tipo TOF. . . . . . .

2.6

Exemplo de diferentes nuvens de pontos. . . . . . . . . . . . . . . . . . . .

3.1

Indentificacao dos diferentes sensores da Kinect [3]. . . . . . . . . . . . . . 12

3.2

Imagens obtidas pela Kinect. . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3

Sistema de controlo do braco robotico. . . . . . . . . . . . . . . . . . . . . 13

3.4

Suporte da camara. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.5

Diagrama de blocos da plataforma rotativa. . . . . . . . . . . . . . . . . . 14

3.6

Plataforma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.7

Variador eletronico 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 eletrico da PCB. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.12 Caixa de derivacao com Arduino Uno e PCB. . . . . . . . . . . . . . . . . 18
3.13 Sistemas de coordenadas do robo e sua ferramenta. . . . . . . . . . . . . . 18
3.14 Sistema de coordenadas da Kinect. . . . . . . . . . . . . . . . . . . . . . . 19
3.15 Sistema de coordenadas do objeto/volume referenciado a` camara. . . . . . 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 inicializacao da estrura de dados e sensor. . . . . . 23

4.4

Imagens obtidas no processo de calibracao da plataforma. . . . . . . . . . . 24

4.5

Metodo utilizado para detecao de altura do objeto. . . . . . . . . . . . . . 25

4.6

Fluxograma das opcoes apos scan principal efetuado. . . . . . . . . . . . . 26

4.7

Processo para diminuicao do n


umero triangulos [5]. . . . . . . . . . . . . . 27
ix

4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22

Exemplo de identificacao de triangulos. . . . . . . . . . . . . . . . . .


Metodo para reposicionar corretamente a camara. . . . . . . . . . . .
Diagrama de blocos de destruicao da estrutura de dados e do sensor.
Fluxograma do software desenvolvido para o controlador do robo. . .
Fluxograma do software desenvolvido para a plataforma rotativa. . .
Diagrama de blocos das comunicacoes efetuadas. . . . . . . . . . . . .
Fluxograma para a comunicacao computador - robo. . . . . . . . . . .
Fluxograma para a comunicacao computador - plataforma rotativa. .
Visualizacao menu principal da aplicacao. . . . . . . . . . . . . . . .
Visualizacao do processo de calibracao plataforma. . . . . . . . . . . .
Visualizacao do processo de detecao da altura maxima do objeto. . .
Visualizacao do menu do processo de scan. . . . . . . . . . . . . . . .
Visualizacao do processo de scan a decorrer. . . . . . . . . . . . . . .
Visualizacao do menu e do modelo por fechar. . . . . . . . . . . . . .
Visualizacao menu guardar. . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

27
28
29
31
32
33
34
35
36
37
37
38
38
39
39

5.1
5.2
5.3
5.4
5.5

Exemplo de um modelo 3D enviado. . . . . . . . .


Resultados obtidos com diferentes iluminacoes. . .
Diferencas entre modelos com resolucoes distintas.
Objeto brilhante utilizado. . . . . . . . . . . . . .
Resultado obtido com objeto brilhante. . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

41
42
43
44
45

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

Lista de Tabelas
4.1
4.2
4.3

Formato das strings enviadas pelo computador. . . . . . . . . . . . . . . . 33


Exemplos da string enviada pelo PC para reposicionamento do robo. . . . 34
Formato da string enviada pelo PC apos criar sensor. . . . . . . . . . . . . 35

5.1
5.2
5.3

Valores obtidos dos diferentes testes efetuados. . . . . . . . . . . . . . . . . 43


Valores obtidos com diferentes resolucoes. . . . . . . . . . . . . . . . . . . . 43
Tempos obtidos com diferentes resolucoes. . . . . . . . . . . . . . . . . . . 44

xi

xii

Lista de Siglas
2D

Duas dimensoes

3D

Tres dimensoes

3DS

3D studio max file

RAPID Linguagem de programacao desenvolvida em 1994 por ABB


ABB Asea Brown Boveri
bps

bits per second

C++ Linguagem de programacao C mais mais


CA

Corrente alternada

CAD Computer Aided Design


CC

Corrente contnua

CMOS Complementary Metal-Oxide Semiconductor


DAC Digital to Analog Converter
fps

frames per second

Hz

Hertz

mm

milmetros

ms

milissegundos

OBJ Wave front file


PC

Personal Computer

PCB Printed Circuit Board


PLY Poligon File Format
xiii

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 eletronico de velocidade

Captulo 1
Introdu
c
ao
O presente projeto tinha como objetivo desenvolver um sistema para efetuar o scan 3D
de uma pessoa ou objeto, atraves de uma camara 3D de baixo custo, com o auxlio de um
braco robotico e de uma plataforma rotativa.

1.1

Enquadramento

Na epoca corrente em que o mercado da criacao e desenvolvimento de objetos tridimensionais (3D) esta em constante crescimento [6] [7], surgem a cada dia novas ideias, processos
e desenvolvimentos nesta mesma area com diferentes objetivos, desde o entretenimento
ate a` medicina. Existem assim diversas aplicacoes que podem ser dadas aos modelos 3D,
sendo algumas delas as seguintes:

- Impressao de objetos 3D;


- Compras/vendas atraves da internet;
- Producao de proteses;
- Producao de equipamentos feitos por medida.

Com a necessidade de replicacao de objetos ja criados, o processo de digitalizacao 3D


torna-se mais rapido e simples em relacao `a modelacao 3D por CAD , surgindo assim por
vezes como alternativa.
1

o
Captulo 1. Introduc
a

1.2

Motivac
ao

Este projeto torna-se bastante interessante e desafiante, pois com recurso a uma camara
de baixo custo e de facil acesso, pretende-se obter um modelo o mais proximo possvel
da realidade. A utilizacao de um braco robotico e de uma plataforma rotativa permite
tornar autonomo o processo de scan, evitando que o utilizador tenha que percorrer o
objeto manualmente.

1.3

Vis
ao geral do sistema

O sistema desenvolvido para efetuar o scan 3D de uma pessoa/objeto e o seu ambiente


envolvente, esta representado na figura 1.1.

Figura 1.1: Sistema desenvolvido e ambiente envolvente.


Este sistema e constitudo por: um PC (a azul), um robo (controlador e braco robotico,
a amarelo), uma camara de baixo custo (Kinect [8], a verde) e uma plataforma rotativa
(a vermelho). Do ambiente envolvente, o aspeto de maior importancia e o estado das
persianas, ou seja, se estas estao abertas ou fechadas.

1.4

Estrutura do relat
orio

O restante relatorio esta estruturado da seguinte forma:


- No captulo 2 e feito um enquadramento teorico sobre alguns dos metodos que

rio
1.4. Estrutura do relato

explicada como e tratada a


existem atualmente para a aquisicao de modelos 3D. E
informacao obtida para criacao de uma superfcie e como esta pode ser melhorada;
- No captulo 3 e descrito todo o hardware constituinte do sistema, desde a componente de aquisicao de imagem ate a plataforma que permite a rotacao do objeto;
- No captulo 4 e descrito todo o software desenvolvido para cada componente integrante do sistema, bem como estes estao interligados;
- No captulo 5 sao apresentados os testes e os respetivos resultados obtidos;
- Por fim, no captulo 6 sao apresentadas as conclusoes do presente projeto.

Captulo 2
Conceitos sobre aquisi
c
ao 3D

2.1

M
etodos de aquisi
c
ao

No mercado existem diferentes metodos para aquisicao de modelos 3D. Cada tipo de
tecnologia tem as suas vantagens, desvantagens e custos associados. As metodologias
mais utilizadas sao descritas de seguida.

2.1.1

Contato

O metodo por contato obtem os valores dos pontos 3D de uma superfcie de um objeto
atraves de uma sonda movimentada por meios mecanicos moveis. A sonda percorre a
superfcie do objeto em estudo e atraves da informacao da sua posicao, sao calculadas as
coordenadas da superfcie. Na figura 2.1 estao representados dois exemplos deste tipo de
tecnologia.

(a)

(b)

Figura 2.1: Metodos de scan 3D por contato.


(a) sistema autonomo [1] e (b) sistema manual [9].
5

o 3D
Captulo 2. Conceitos sobre aquisic
a

A principal vantagem deste metodo e a precisao dos modelos que obtem, enquanto que as
principais desvantagens sao a velocidade do processo, o facto de nao poder ser utilizado
em todas as superfcies devido aos estragos que pode criar no objeto e a sua capacidade
de digitalizacao limitada.

2.1.2

Fotometria

O metodo de fotometria consiste em obter ao mesmo tempo varias fotografias 2D de


diferentes angulos em relacao ao objeto, de modo a criar um modelo 3D atraves do
reconhecimento de pontos comuns entre as imagens. Este tipo de sistema e composto
normalmente por um conjunto entre 50 a 120 camaras fotograficas como representado na
figura 2.2.

Figura 2.2: Metodo de scan 3D por fotometria [1].


A grande vantagem deste processo e que a informacao obtida para a construcao de um
modelo 3D e praticamente instantanea, com uma qualidade que depende das camaras
que sao utilizadas. A desvantagem e que para obter o modelo 3D e necessario criar o
mesmo manualmente atraves de software, o que pode ser um processo moroso devido `a
quantidade de informacao que e necessario aglomerar e tambem por requerer um elevado
n
umero de camaras fotograficas.

2.1.3

Luz estruturada

O metodo de luz estruturada consiste na projecao de um padrao conhecido, normalmente


listado com faixas da mesma espessura, sobre a superfcie do objeto. Analisando a deformacao do padrao e possvel construir o modelo 3D matematicamente, sendo necessario
utilizar diferentes perspetivas. O metodo em questao esta representado na figura 2.3.

todos de aquisic
o
2.1. Me
a

(a)

(b)

Figura 2.3: Exemplo de modelo obtido atraves de luz estruturada.


(a) padrao projetado no objeto e (b) modelo 3D obtido [1].
Tem como vantagens uma boa precisao do modelo obtido, boa resolucao ao longo de dois
eixos e e seguro para a visao humana. Quanto a`s desvantagens, destaca-se o facto de
nao poder ser usado em qualquer stio, pois este tipo de sistema e sensvel a iluminacoes
externas e nao pode ser usado em superfcies brilhantes [10].
importante referir que a camara constituinte do projeto utiliza este metodo de aquisicao
E
de informacao 3D.

2.1.4

Time of flight

O princpio do metodo TOF e baseado no funcionamento de um radar, o qual calcula a


distancia a que o objeto se encontra da camara atraves 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 distancia (emissor ->objeto ->detetor). A distancia entre o detetor
e a superfcie e calculada como indicado na figura 2.4. As diferencas entre as imagens
obtidas atraves de uma camara comum e uma do tipo TOF estao representadas na figura
2.5.

Figura 2.4: Conceito de funcionamento de camaras do tipo TOF [2].

o 3D
Captulo 2. Conceitos sobre aquisic
a

(a)

(b)

Figura 2.5: Imagens obtidas atraves de uma camara regular e do tipo TOF.
(a)camara regular e (b) camara tipo TOF [2].
A vantagem deste metodo e que a solucao implementada e simples e compacta, com a
grande vantagem de ser possvel medir um cenario completo ate uma velocidade 100 fps.
A principal desvantagem e que no caso de utilizar mais do que uma camara em simultaneo,
pode criar interferencia entre elas.

2.2

Tratamento de dados

A partir dos dados obtidos atraves dos metodos referidos, e possvel retirar uma nuvem
de pontos, sendo esta a forma mais comum de representar computacionalmente modelos
geometricos tridimensionais, pois e de facil manipulacao.

(a)

(b)

Figura 2.6: Exemplo de diferentes nuvens de pontos.


(a) informacao (3D) e (b) informacao (3D + COR).

2.2. Tratamento de dados

Uma nuvem de pontos basicamente e constituda por um conjunto de pontos definidos


pelas coordenadas (XYZ), podendo ser constitudos tambem com cor e transparencia
(RGBA), como representa a figura 2.6.
A partir da nuvem de pontos e criado um mapa de voxels, contendo a nuvem de pontos
nesse mapa. Os algoritmos bastantes utilizados sao o Marching Cubes [11] para criar
a superfcie e a reconstrucao de Poisson [12] para tratamento da mesma, no qual as
bibliotecas utilizadas ReconstructMe[13] se baseiam.

10

Captulo 3
Hardware do sistema
Neste captulo sera descrito sucintamente todo o trabalho desenvolvido a nvel do hardware
requerido para o processo. Todo o hardware envolvido e controlado por uma unidade
central de controlo (PC), com as seguintes caractersticas:
- Processador: Intel Celeron CPU G550 2.60 GHz;
- Memoria Ram: 8 GB DDR3;
- Placa Grafica: NVIDIA QUADRO K600 - 1GB DDR3.
De seguida sao apresentadas as especificacoes e caractersticas de todos os elementos
constituintes do sistema, nomeadamente o sitema de aquisicao de informacao 3D, robo e
a plataforma rotativa.

3.1

Sistema de aquisi
c
ao de informa
c
ao 3D

O projeto implementado recorre a uma camara Kinect como sistema de aquisicao de


imagens tridimensionais, cujo o metodo de aquisicao de informacao 3D utilizado e por luz
estruturada como esta referido no subcaptulo 2.1.3. A camara e constituda por diferentes
modulos sendo eles:
- Um projetor infravermelhos;
- Uma camara RGB com uma resolucao de 640*480 pixels;
- Uma camara do tipo CMOS com uma resolucao de 320*240 pixels;
11

Captulo 3. Hardware do sistema

12

- Um conjunto de 4 microfones;
- Um acelerometro.

Os diferentes modulos utilizados da camara, estao representados e diferenciados na figura


3.1, pois a informacao obtida atraves dos microfones e do acelerometro nao e utilizada no
projeto em questao. Este dispositivo tem a capacidade de capturar imagens `a velocidade
de 30 fps. A camara emite uma matriz de pontos infravermelhos, sendo estes capturados

Figura 3.1: Indentificacao dos diferentes sensores da Kinect [3].


por uma camara do tipo CMOS. Atraves da deformacao do padrao projetado, e calculada
a distancia entre a camara e o objeto. As imagens tridimensionais sao construdas a partir
das imagens capturadas pela camara CMOS com auxlio do padrao projetado. A figura
3.2 representa o resultado obtido atraves de cada sensor da camara.

(a)

(b)

(c)

Figura 3.2: Imagens obtidas pela Kinect.


(a) matriz projetada, (b) camara RGB e (c) camara CMOS.

3.2

Rob
o

O movimento vertical e o angulo de inclinacao da camara referente ao objeto e efetuado atraves do robo ABB IRB2400-16kg, constitudo por um controlador e um braco
robotico.


3.2. Robo

13

O controlador e o dispositivo intermedio entre o PC e o braco robotico como esta representado na figura 3.3, sendo este responsavel por executar o programa criado.

Figura 3.3: Sistema de controlo do braco robotico.

O braco robotico contem no seu extremo uma garra mecanica. De forma a ser possvel
acoplar a camara ao braco robotico e para que esta nao fosse danificada com os movimentos
do robo, foi criado um suporte para acoplar a camara a` garra ja existente no robo. O
suporte foi maquinado em alumnio, de modo a que seja suficientemente resistente `a forca
exercida pela garra. Na figura 3.4 esta representado o projeto do suporte, bem como o
seu resultado final.

Figura 3.4: Suporte da camara.


(a) projeto e (b) resultado final.

importante referir que no projeto do suporte foi tido em conta que, futuramente, poE
deriam ser includas outras camaras. O suporte esta devidamente preparado para ser
possvel acoplar diferentes camaras `a garra do robo, inclusive o novo modelo da Kinect
(v2) [14].

Captulo 3. Hardware do sistema

14

3.3

Plataforma rotativa

Foi criada de raiz uma plataforma rotativa controlada atraves do PC, permitindo assim
que a camara obtenha imagens do objeto de diferentes perspetivas. A interligacao de
todos os componentes da plataforma esta representada na figura 3.5.

Figura 3.5: Diagrama de blocos da plataforma rotativa.


Inicialmente a plataforma foi projetada para funcionar com um motor de passo (placa
desenvolvida para controlar o motor de passo disponvel no apendice B.2), visto ser uma
solucao mais economica, pois nao seria necessario o uso de um encoder e de um VEV.
Apos implementar a primeira solucao verificou-se que o motor de passo nao tinha binario
suficiente para rodar a plataforma. De forma a solucionar esta questao, foi entao implementada a solucao, apresentada na figura 3.5. O VEV e alimentado a 230V CA e a parte
de comando a 5V CC (provenientes da linha USB do PC). De seguida serao descritos os
seus aspetos construtivos e respetivos dimensionamentos.

3.3.1

Estrutura da plataforma

A estrutura da plataforma foi projetada atraves do software SolidWorks, sendo esta


baseada no mecanismo de um rolamento, de forma a poder dividir o peso pelo n
umero
de esferas. Com esta solucao foi eliminada a carga axial no veio de tracao e na caixa
redutora. Para que todos os componentes constituintes da plataforma possam estar protegidos, funcionais e nao causem constrangimentos de funcionamento, incluiram-se uns
pes de apoio. Estes pes permitem que todos os componentes fiquem na parte inferior da
plataforma. Na figura 3.6 encontra-se o projeto da plataforma disponvel no apendice B.1
e o seu resultado final.

3.3. Plataforma rotativa

15

Figura 3.6: Plataforma.


(a) projeto e (b) resultado final.

3.3.2

Moto-redutor trif
asico

Por forma a suportar as cargas que a plataforma tem de rodar foi utilizado um motoredutor trifasico com um racio 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 potencia de 120 Watts. O
motor tem como velocidade de sincronismo 1350 rpm com uma frequencia de alimentacao
50 Hz (disponibilizada por distribuidor de energia). Como objetivo final, pretende-se que
a plataforma rode a uma velocidade media de 3 rpm. Com o auxlio da caixa redutora
escolhida, o veio da plataforma tem uma velocidade nominal de 13,5 rpm a` frequencia de
50 Hz.

3.3.3

Variador eletr
onico de velocidade

O VEV permite variar a velocidade do veio da plataforma entre as [0;13,5] rpm atraves
do valor da frequencia de alimentacao do motor, controlada com um sinal analogico de
[0;10] V. A marca do variador usado, representado na figura 3.7, e YASKAWAYA, sendo
o modelo da gama J1000 [16].

Figura 3.7: Variador eletronico de velocidade (YASKAWAYA J1000).

Captulo 3. Hardware do sistema

16

3.3.4

Encoder incremental

O encoder incremental e usado para a medicao da velocidade e da posicao de rotacao da


plataforma, sendo utilizado um OMRON E6B2-CWZ6C acoplado diretamente no veio
do moto-redutor, como representado na figura 3.8.

Figura 3.8: Encoder incremental (OMRON E6B2-CWZ6C) [4].


O encoder e composto por tres sadas digitais, A, B e Z. Este encoder tem uma resolucao
de 1000 pulsos por volta nas sadas A e B e 1 pulso por volta na sada 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 e composto por um Arduino (unidade de processamento 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 eletrico do circuito desenvolvido. Este circuito tem as seguintes funcoes:

1 - Alimentacao do encoder ;
2 - Rececao dos sinais provenientes do encoder ;

3.3. Plataforma rotativa

17

3 - Conversao de um sinal digital de 8 bits proveniente do Arduino para um sinal


analogico;
4 - Condicionamento do sinal analogico da zona do DAC para uma gama de valores de
[0;10] V;
5 - Plano de massa comum entre os tres dispositivos (encoder, Arduino e VEV);
6 - Alimentacao do circuito de condicionamento de sinal atraves do valor fornecido pelo
VEV (10 V);
7 - Controlo do VEV atraves de sinal analogico de [0;10] V.

Figura 3.10: Diagrama de blocos da PCB.

Figura 3.11: Esquema eletrico da PCB.


O Arduino Uno e alimentado a 5V atraves da porta USB, pela qual tambem recebe
informacao do PC. Na figura 3.12 esta representada a caixa com a unidade de controlo
da plataforma.

18

Captulo 3. Hardware do sistema

Figura 3.12: Caixa de derivacao com Arduino Uno e PCB.

3.4

Referenciais e sistemas de coordenadas

O sistema implementado usa varios referenciais de coordenadas. Como representa a figura 3.13, no robo sao utilizados dois referenciais diferentes, sendo que as deslocacoes da
ferramenta estao associadas ao referencial 1 e as rotacoes ao referencial 2.

Figura 3.13: Sistemas de coordenadas do robo e sua ferramenta.


O sistema de coordenadas da camara esta representado na figura 3.14. Neste caso os eixos
XC e YC servem para localizar os pixels das imagens 2D obtidas pelos sensores RGB e
profundidade. O eixo ZC serve para obter a distancia a que se encontra cada pixel da
imagem de profundidade. Cruzando a informacao dos dois tipos de imagens referidos

3.4. Referenciais e sistemas de coordenadas

19

anteriormente, obtem-se uma nuvem de pontos com informacao de cor.

Figura 3.14: Sistema de coordenadas da Kinect.


As funcoes usadas pelas bibliotecas ReconstructMe requerem a definicao de um volume
que engloba o objeto a medir. No centro deste volume esta definido um sistema de
coordenadas com uma orientacao relativa ao sistema de coordenadas da camara tal como
indica a figura 3.15. A origem do sistema de coordenadas e definido apos a primeira
aquisicao da imagem de profundidade.

Figura 3.15: Sistema de coordenadas do objeto/volume referenciado `a camara.

20

Captulo 4
Software do sistema
Neste captulo sera descrito o software desenvolvido, desde o modo como e efetuada toda
a comunicacao entre blocos do hardware, ate `a descricao do funcionamento da aplicacao
criada. Da mesma forma, serao tambem apresentados e descritos os fluxogramas das tres
componentes principais (PC, robo e plataforma). A figura 4.1 apresenta o diagrama de
blocos geral do sistema, onde se pode verificar que o PC e a componente de onde sao
enviados e recebidos todos os dados necessarios para comandar o resto dos elementos
associados ao sistema.

Figura 4.1: Diagrama de blocos geral do sistema.

21

22

4.1

Captulo 4. Software do sistema

Software desenvolvido para o PC

O software desenvolvido para o PC, desde a aquisicao e tratamento do modelo 3D ate ao


controlo do robo e da plataforma rotativa, sera descrito neste subcaptulo.

Figura 4.2: Fluxograma do software desenvolvido para o computador.


Para a comunicacao, aquisicao e tratamento de dados foi necessario desenvolver uma
aplicacao de forma a interligar tudo. Neste modulo a programacao foi efetuada em linguagem C++. Na figura 4.2 esta representado o fluxograma geral do software desenvolvido,

4.1. Software desenvolvido para o PC

23

o qual sera descrito nos subcaptulos seguintes.

4.1.1

Aquisi
c
ao e tratamento de dados do modelo 3D

A aquisicao e tratamento de dados obtidos atraves da camara sao realizados usando as


bibliotecas da ReconstructMe.

4.1.1.1

Inicializac
ao da estrutura de dados e do sensor

Como e mostrado na figura 4.2, para todos os processos criados e necessario o uso da
camara. O processo de inicializacao da camara / sensor e igual para todas as funcionalidades desenvolvidas, logo, por cada vez que e executada alguma delas, o processo de
inicializacao da estrutura de dados e do sensor e o representado na figura 4.3.

Figura 4.3: Diagrama de blocos de inicializacao da estrura de dados e sensor.


A descricao do processo de inicializacao do sensor segue a seguinte ordem:
criada a classe (contexto), onde e guardada toda a informacao relativa a` camara
- E
nomeadamente as opcoes gerais (resolucao usada na obtencao de imagens, dimensao
inicial do volume a criar, obtencao de cor, etc.), a criacao do volume (mapa de
voxels), a criacao do sensor, da superfcie e da janela de visualizacao do processo.
- As opcoes carregadas para a classe referida anteriormente sao obtidas atraves de um
ficheiro de texto (options.txt), sendo que os u
nicos dados que variam na execucao
da aplicacao sao as dimensoes do volume a criar, devido ao facto deste depender
da funcionalidade escolhida pelo utilizador. As opcoes podem ser modificadas pelo
utilizador no ficheiro, fora da aplicacao.
- Com base nas opcoes (resolucao e dimensoes definidas), e criado o volume, ou seja,
o mapa de voxels que vai conter a nuvem de pontos e toda a informacao acerca de
cada voxel (coordenadas, normal e cor dos pontos).
criado o sensor com a informacao da camara utilizada. Tambem e definido o
- E
sistema de coordenadas associado ao objeto/volume, como representado na figura
3.15.

Captulo 4. Software do sistema

24

4.1.1.2

Processo de calibrac
ao da plataforma

Antes de qualquer digitalizacao e conveniente que a plataforma rotativa e a camara estejam centradas. Para efetuar esta verificacao implementou-se um metodo que auxilia a
calibracao da plataforma. Para este metodo e necessario posicionar no centro da plataforma um elemento referenciador. Apos o elemento estar posicionado e com o auxlio de
uma janela composta por uma linha vertical ao centro (criada com recurso das bibliotecas
OpenCV [17]) e a imagem RGB, obtida atraves da camara, e necessario mover a plataforma manualmente ate que esta esteja alinhada com a linha central da imagem. Desta
forma, os eixos verticais da plataforma e da camara ficam alinhados, como representado
na figura 4.4(b).

(a)

(b)

Figura 4.4: Imagens obtidas no processo de calibracao da plataforma.


(a) plataforma descalibrada e (b) plataforma calibrada.

4.1.1.3

Processo para detec


ao da altura de um objeto

Implementou-se igualmente um metodo para detetar a altura do objeto. Com este


pretende-se definir a altura maxima do volume que e criado para o processo de scan
do objeto. Para proceder a essa medicao e movimentado o robo verticalmente desde o
ponto mnimo, dando uma inclinacao `a camara de 21.5o , como representado na figura
4.5, uma vez que o seu angulo de visao e de 43o . Quando a camara deixa de visualizar o
objeto, e gravado o valor do eixo Z1 do robo como altura maxima 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 diferenca do volume

4.1. Software desenvolvido para o PC

(a)

25

(b)

Figura 4.5: Metodo utilizado para detecao de altura do objeto.


(a) altura da camara sem inclinacao e (b) com inclinacao.
criado para o processo, sendo que para o objeto/pessoa completo e criado um volume com
a altura maxima definida. Caso seja o scan de um busto, a altura do volume e por defeito
600 milmetros (mm). Todo o resto do processo e igual, tendo a seguinte ordem:

gerada uma janela de visualizacao de imagens para ser possvel seguir o processo
- E
em tempo real. Nessa janela apenas foram adicionados dois tipos de imagens a
visualizar, sendo elas a imagem RGB e a que contem a evolucao da reconstrucao
(modelo 3D). Seria possvel tambem colocar a imagem de profundidade mas, visto
que da otica do utilizador da aplicacao nao e uma informacao de extrema relevancia,
optou-se por nao a apresentar.
- Para obter as imagens e iniciado um ciclo de scan, sendo que esse so termina quando e
fechada a janela de visualizacao ou quando o scan completo e efetuado. Por cada vez
que se volta ao incio do ciclo, e obtida a informacao dos novos pontos da superfcie
e da posicao da camara. Com esta nova informacao e efetuada a atualizacao do
volume.
- Apos o scan estar efetuado, e gerada uma superfcie com toda a informacao contida
no volume anteriormente criado. Atraves de uma limpezada superfcie, os pontos
isolados sao eliminados.

Atraves do processo descrito, a superfcie obtida e bastante completa. Todavia, em funcao


do trajeto de scan utilizado e do problema das oclusoes, poderao existir zonas desconhecidas levando a` existencia de buracos na superfcie do modelo. Nesta fase do processo o
utilizador pode visualizar a superfcie do modelo 3D de diferentes perspetivas, pois tem

Captulo 4. Software do sistema

26

a possibilidade de rodar e fazer zoom da mesma, atraves de uma nova janela. Apos essa
analise sao propostas tres opcoes:
- Fechar a superfcie atraves do metodo de Poisson;
- Fechar a superfcie atraves do reposicionamento do sistema em relacao a` zona desconhecida;
- Nao fechar o modelo obtido.
Esta representado o fluxograma das opcoes apresentadas na figura 4.6.

Figura 4.6: Fluxograma das opcoes apos scan principal efetuado.


Caso o utilizador selecione a opcao de fechar a superfcie atraves do metodo de Poisson, e
utilizada uma funcao disponvel nas bibliotecas da ReconstructMe que aplica esse metodo
na superfcie obtida. Quando o processo termina e perguntado ao utilizador se deseja
guardar o modelo final.

4.1. Software desenvolvido para o PC

27

Se o utilizador escolher a segunda opcao, e desencadeado um novo processo que consiste na


procura de zonas desconhecidas da superfcie (buracos), de modo a que seja reposicionada
a camara e a plataforma para ser efetuada uma nova leitura sobre essa mesma zona. Este
metodo desencadeia-se da seguinte forma:

- Inicialmente e aplicado um processo para diminuir o n


umero de triangulos da superfcie criada (so para efeitos de analise), pois na fase de procura dos buracos nao
e importante a resolucao do modelo, mas sim a rapidez da mesma. Na figura 4.7,
esta representado o processo descrito.

Figura 4.7: Processo para diminuicao do n


umero triangulos [5].

- Com o n
umero de triangulos reduzido e feita uma procura por todos os triangulos,
comparando as arestas entre eles. Num vetor auxiliar e guardada a informacao, do
n
umero de arestas vizinhas que cada triangulo contem.
efetuada uma pesquisa sobre o vetor auxiliar, dos triangulos que tenham duas ou
- E
menos arestas vizinhas. Os triangulos identificados com essas condicoes encontramse no extremo de uma zona desconhecida, como representados a vermelho na figura
4.8.

Figura 4.8: Exemplo de identificacao de triangulos.

- Durante a pesquisa referida anteriormente, para todos os triangulos que sao identificados, sao colocadas as respetivas coordenadas e as normais dos pontos constituintes
do triangulo num mapa de voxels auxiliar. Esse mapa tem as mesmas dimensoes
que o volume inicial, diferindo somente o tamanho de cada voxel, sendo este maior.
Como os voxels sao maiores, vao conter um n
umero maior de pontos.

Captulo 4. Software do sistema

28

- Apos todos os triangulos serem analisados e efetuada uma procura sobre o novo mapa
criado, para determinar o voxel com maior n
umero de pontos guardados. Importa
referir que o voxel com o maior n
umero de pontos nao engloba necessariamente a
zona desconhecida de maior dimensao. Este e o metodo adotado para selecionar
zonas desconhecidas.

Com uma zona desconhecida encontrada, a camara e a plataforma sao reposicionadas


atraves da media dos valores guardados no voxel encontrado.
Na figura 4.9 esta representado o metodo utilizado para reposicionar corretamente a
camara. Verificar a figura 3.15 onde estao identificados os sistemas de coordenadas.

Figura 4.9: Metodo para reposicionar corretamente a camara.


Para calcular o reposicionamento da plataforma e aplicada a equacao 4.1.

Angulo
de rotacao da plataforma(Z) = atan

X1
Y1


(4.1)

Caso o valor obtido atraves de 4.1 seja inferior a 0o , e somado 360o pois a plataforma so
roda no sentido horario.
Para reposicionar a camara e necessario mover o robo segundo o eixo dos Zs, mas antes
e necessario saber qual a distancia a percorrer. Para tal e aplicado o seguinte raciocnio
com as equacoes 4.2, 4.3, 4.4, 4.5 e 4.6 .

= atan

N ormalZ1
N ormalY1


(4.2)

= 90o

(4.3)

A = L tan()

(4.4)

4.1. Software desenvolvido para o PC

29

C = 230 cos() = 230 sin()

(4.5)

B = A + Z1

(4.6)

Na equacao 4.5, o valor 230 e a distancia aproximada da falange do robo `a camara. Atraves
da soma de C com B obtem-se a altura final, e com o valor de o angulo que a camara
deve tomar.
Apos ser executada a reposicao, e efetuada uma nova leitura, cuja a finalidade e a atua de referir que este processo de procura so e efetuado para uma u
lizacao do volume. E
nica
zona desconhecida, ou seja, caso existam mais zonas e o utilizador as deseje fechar atraves
deste metodo, o processo ira ser executado novamente, com a nova superfcie atualizada
e assim sucessivamente.
Por fim a terceira opcao permite ao utilizador sair do processo de scan sem que o modelo
3D obtido seja completamente fechado. De seguida e colocada a questao se o utilizador deseja gravar o modelo, o qual e gravado em quatro formatos diferentes: PLY, STL,
OBJ e 3DS. Os dois primeiros formatos sao os formatos mais utilizados, correspondendo
respetivamente, ao modelo com cor e ao modelo em escala de cinza.

4.1.1.5

Destruic
ao da estrutura de dados e do sensor

Ao terminar qualquer um dos processos referidos anteriormente e necessario destruir todos


os dados guardados, para que estes nao interfiram com futuros processos. Esse processo
e identico ao de criar a estrutura de dados e do sensor como esta representado na figura
4.10.

Figura 4.10: Diagrama de blocos de destruicao da estrutura de dados e do sensor.

4.1.2

Controlo do rob
o e da plataforma rotativa

Para o controlo do robo e da plataforma rotativa foi criada uma classe que contem os
seguintes metodos/funcoes:
- Func
ao de iniciac
ao da comunicac
ao: funcao na qual sao definidas quais as
portas a utilizar para o robo e a plataforma, bem como as configuracoes das mesmas

Captulo 4. Software do sistema

30

(BaudRate, etc.).
- Func
ao que envia a informac
ao: funcao que envia a informacao (descritas no
subcaptulo 4.4.1) para o robo e plataforma, consoante a funcao que se pretende
realizar.
- Func
ao de interrupc
ao: funcao utilizada unicamente para receber a informacao
enviada pelo robo. Foi criada esta interrupcao para garantir que o PC nao perde a
informacao enviada pelo robo. Sendo assim, a interrupcao desperta sempre que o
robo envia alguma informacao, ficando esta guardada numa variavel.

4.2

Software desenvolvido para o rob


o

De seguida sera descrito todo o software desenvolvido para o controlador do robo.


A programacao deste modulo esta realizada em linguagem RAPID.
O fluxograma associado ao robo esta representado na figura 4.11.
O robo esta programado para efetuar movimentos lineares em Z e para rodar a ferramenta,
de modo a dar a inclinacao pretendida a` camara. Inicialmente sao definidos os limites
que o robo pode atingir no eixo dos Zs, em relacao ao referencial situado na sua base, de
modo a funcionar sempre dentro do seu volume de trabalho, sendo eles:
- Limite mnimo igual a 450 mm, pois nao e necessario atingir valores inferiores,
devido ao angulo de visao da camara;
- Limite maximo igual a 1980 mm.
Para efetuar o alinhamento da plataforma com a camara, o robo e movido para o ponto
fixo com uma inclinacao na ferramenta de 0o sendo esta a posicao home.
Para efetuar a medicao da altura do objeto, inicialmente e garantido que a camara se en dada uma inclinacao `a ferramenta
contra na posicao home e que o sensor ja esta criado. E
de 21.5o , e a partir da o controlo do robo e efetuado atraves do PC, o qual da ordem
ao robo para este se movimentar 50mm no eixo dos Zs, enquanto o objeto esta dentro
do campo de visao da camara. Apos o objeto deixar de ser visualizado, o robo guarda e
devolve para o PC o valor atual da sua posicao em Z. Por fim, este e reposicionado ao
centro da cota maxima do objeto com uma inclinacao na ferramenta de 0o .
Quando e iniciado um scan de corpo completo ou de um busto o processo e identico, sendo
au
nica diferenca o ponto de partida. Um scan completo e iniciado numa cota igual `a do
centro do objeto e o do busto tem incio numa cota 300 mm abaixo do valor da altura
do objeto. O restante processo e semelhante para ambos os casos. Quando o movimento

4.3. Software desenvolvido para a plataforma rotativa

31

Figura 4.11: Fluxograma do software desenvolvido para o controlador do robo.


pre-definido do robo chega ao fim e enviada a informacao que ja foi efetuado o scan.
O processo de reposicionamento da camara para obter uma zona desconhecida, passa por,
o robo receber a informacao da nova posicao e inclinacao, efetuando o movimento desejado
e apos isto, indicar ao PC que a camara esta reposicionada.

4.3

Software desenvolvido para a plataforma rotativa

O software desenvolvido para a plataforma rotativa sera descrito neste subcaptulo. A


programacao deste modulo e baseada em linguagem Wiring [18] [19]. Na figura 4.12 esta
representado o funcionamento geral do software desenvolvido.

32

Captulo 4. Software do sistema

Figura 4.12: Fluxograma do software desenvolvido para a plataforma rotativa.

associada uma interrupcao ao pin da sada A do encoder para efetuar a contagem de


E
pulsos emitidos pelo mesmo, de modo a ser possvel medir o angulo da rotacao efetuado
e o controlo da malha.
Esta implementado um sistema de controlo de malha fechada para ser possvel manter
velocidade de rotacao constante com diferentes cargas. Para efetuar o controlo da malha,
o valor de setpoint da velocidade de rotacao da plataforma esta definido como 3 rpm. A
velocidade referida anteriormente e equivalente a um n
umero de pulsos por segundo do
encoder. Atraves da diferenca do setpoint com a contagem de pulsos efetuada e possvel
controlar o valor do DAC. A plataforma ao receber o valor de um angulo 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,
e calculada a diferenca entre o ponto atual e o ponto inicial de rotacao, rodando apenas
essa diferenca calculada.
Atraves da interrupcao que e despertada a uma cadencia de 100 ms, e controlado todo
o processo de rotacao: gerar as rampas de aceleracao e desaceleracao, ligar/desligar ou
efetuar o controlo da malha e escrever o valor digital para as sadas associadas ao DAC. O
VEV usado tem a funcionalidade de criacao de rampas pre-definidas, as quais nao foram
usadas pois a precisao do angulo de rotacao efetuado obtido era inferior.

es executadas e seu conteu


do
4.4. Comunicac
o

4.4

33

Comunicaco
es executadas e seu conte
udo

As comunicacoes executadas entre o PC, controlador do robo e a plataforma rotativa,


assim como seu conte
udo serao descritas neste subcaptulo. A informacao trocada entre
todos os dispositivos e efetuada atraves de comunicacao serie. A comunicacao efetuada
entre o PC e o controlador do robo e bidirecional, entre o PC e a plataforma rotativa e
unidirecional tal como mostra a figura 4.13.

Figura 4.13: Diagrama de blocos das comunicacoes efetuadas.

4.4.1

Fluxo de dados computador rob


o

O protocolo comunicacao entre o PC e o robo esta descrito na figura 4.14. Inicialmente


ambos os dispositivos sao inicializados, ou seja, e definido qual o canal usado e a velocidade
de comunicacao como 9600 bps.
Durante o decorrer de toda a aplicacao e necessario o uso do robo para diferentes tarefas.
Quando e iniciado um processo e enviada a ordem contida numa string, constituda por
29 caracteres, de forma a adaptar-se para todas as situacoes do projeto. Na tabela 4.1
estao representadas as diversas strings para os diferentes processos, a verde esta indicado
o ndice posicao da string.

Tabela 4.1: Formato das strings enviadas pelo computador.

34

Captulo 4. Software do sistema

Figura 4.14: Fluxograma para a comunicacao computador - robo.


Au
nica string que contem informacao diferente e a que pertence `a funcao de reposicionamento da camara, contendo 5 caracteres para cada eixo de deslocacao. Sao necessarios
5 caracteres devido a` existencia de sinal e por poder haver deslocacoes superiores a 1000
mm. A inclinacao da camara ocupa 4 caracteres, 3 destinados para o angulo e 1 para o
sentido de rotacao. Na tabela 4.2 estao representados exemplos de alguns possveis casos.
importante referir que o robo so esta a receber informacao, proveniente do PC, para
E
deslocacoes no eixo dos Zs e inclinacao da camara. 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 robo.


Apos o robo se reposicionar para a funcao que foi requerida, este envia uma string contendo

es executadas e seu conteu


do
4.4. Comunicac
o

35

EMPOS, para o PC poder continuar o processo.


O PC ao receber a informacao referida anteriormente, efetua a inicializacao da estrutura
de dados e do sensor referido no subcaptulo 4.1.1. Apos essa acao estar concluda envia
uma string a informar que o sensor esta criado, representada na tabela 4.3.

Tabela 4.3: Formato da string enviada pelo PC apos criar sensor.


Por fim ao ser executada a funcao pelo robo, e enviada uma string com FINAL, exceto
no processo de detecao da altura onde apenas e retornado o valor da altura do objeto.

4.4.2

Fluxo de dados computador plataforma rotativa

Na figura 4.15 esta representada a comunicacao entre o PC e a plataforma.

Figura 4.15: Fluxograma para a comunicacao computador - plataforma rotativa.


O PC envia para a plataforma o n
umero de graus que a pretende rodar, estando esta
sempre disponvel a receber um valor. Cada vez que recebe um valor, este e substitudo
pelo anterior e executada nova ordem.

36

Captulo 4. Software do sistema

A comunicacao com a plataforma e unidirecional, ou seja, apenas recebe valores, pois nao
e necessario o PC receber informacao proveniente desta.

4.5

Descric
ao da interface da aplica
c
ao

Com a aplicacao desenvolvida, pretende-se que esta seja intuitiva para o utilizador, contendo uma breve explicacao do que cada opcao faz. No menu principal e dado a escolher
uma das tres funcionalidades principais ou entao a possibilidade de fechar a aplicacao.
Como mostra a figura 4.16, e possvel verificar as opcoes com a respetiva informacao sobre
o processo assinalado.

Figura 4.16: Visualizacao menu principal da aplicacao.


(a) calibrar plataforma, (b) detetar altura maxima, (c) iniciar scan e (d)sair.
Ao ser selecionada a opcao Calibrar Plataforma do menu principal, surgem duas janelas
distintas (figura 4.17): a janela do programa e uma nova janela para efetuar a inspecao
visual se a plataforma esta centrada com a camara. O utilizador pode encerrar o processo
atraves da opcao Voltar, como apresentado na janela principal do programa.

o da interface da aplicac
o
4.5. Descric
a
a

37

Figura 4.17: Visualizacao do processo de calibracao plataforma.


(a) janela principal do programa e (b) janela de inspecao.
Ao ser selecionada a opcao Calibrar Altura do menu principal, surge uma janela como
representado na figura 4.18, que permite ao utilizador cancelar o processo de detecao de
altura do objeto. Caso o processo nao seja cancelado, ao ser finalizado e retornado para
o menu principal.

Figura 4.18: Visualizacao do processo de detecao da altura maxima do objeto.


Ao ser selecionada a opcao Iniciar Scan do menu principal, surge um novo menu que
permite selecionar o tipo de scan que e pretendido, ou entao voltar ao menu inicial, como
representado na figura 4.19.
Durante qualquer processo de scan sao apresentadas duas janelas distintas, como representa a figura 4.20, a janela do programa principal e uma outra para visualizacao da
evolucao processo. Durante o scan e possvel ao utilizador parar o processo, sendo que
quando esta opcao for escolhida, a reconstrucao do volume ira deixar de ser atualizada,

38

Captulo 4. Software do sistema

Figura 4.19: Visualizacao do menu do processo de scan.


(a) scan completo e (b) scan do busto.
pois nao sao obtidas imagens enquanto este nao se retomar. Apos o mesmo ser retomado,
a reconstrucao do objeto continua normalmente. Para alem de parar e retomar o scan
tambem existe uma opcao Reset volume, em que esta elimina toda a informacao obtida
ate ao momento, recomecando de novo.

Figura 4.20: Visualizacao do processo de scan a decorrer.


(a) janela principal do programa e (b) janela visualizacao da evolucao.
Apos qualquer processo de scan ser concludo, surge uma outra janela onde se pode inspecionar o modelo obtido. Esta permite ao utilizador escolher como e fechado o modelo,
podendo ser atraves do reposicionamento do sistema desenvolvido ou entao com a reconstrucao de Poisson, como representado na figura 4.21.
Quando o procedimento estiver concludo ou a opcao Nao fechar modeloseja selecionada,

o da interface da aplicac
o
4.5. Descric
a
a

39

Figura 4.21: Visualizacao do menu e do modelo por fechar.


(a) janela principal do programa e (b) janela inspecao 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: Visualizacao menu guardar.

40

Captulo 5
Testes e resultados
Neste captulo sao apresentados testes em termos de desempenho, diferencas de resolucao
e limitacoes do sistema. Em todos os testes efetuados, foi utilizado o PC descrito no
captulo 3.
importante referir que durante o decorrer do projeto, foram efetuados testes exaustivos
E
ao sistema desenvolvido, nomeadamente no evento Dia Aberto 2015[20] realizado nos
dias 18,19 e 21 de marco 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 referencia do Instituto Politecnico de
Leiria.

Figura 5.1: Exemplo de um modelo 3D enviado.


41

Captulo 5. Testes e resultados

42

Com os testes realizados foram detetadas principalmente duas falhas:


- A velocidade da plataforma nao era constante, sendo por vezes lenta ao ponto de
parar ou rapida de mais. Para resolver esse problema esta implementado o controlo
de malha fechada no software da plataforma.
- Durante o scan, caso a pessoa fosse pequena, em certa altura esta deixava de estar no
campo de visao da camara, pois o percurso efetuado pelo robo nao estava adequado
ao caso. Como solucao esta implementado o metodo para detetar a altura maxima
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 localizacao os resultados obtidos diferem, utilizando sempre o mesmo objeto.
Como luz localizada, foi utilizado um holofote posicionado na parte de tras da camara.
Na figura 5.2 estao os resultados obtidos com diferentes tipos de iluminacao.

(a)

(b)

(c)

(d)

Figura 5.2: Resultados obtidos com diferentes iluminacoes.


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 diferenca na cor do modelo. Para tentar melhorar, foi colocado
o holofote em contraluz, ou seja, na parte de tras da camara, uma vez que esta esta
voltada para a luz vinda das janelas, modelos em (b) e (d). Foram obtidos melhores
resultados em ambas as situacoes, mas os resultados de quando as persianas estavam
abertas continuam a ser de qualidade inferior. Posto isto, o ambiente onde foram obtidos

es
5.2. Teste com diferentes resoluc
o

43

Tabela 5.1: Valores obtidos dos diferentes testes efetuados.


melhores resultados, relativamente a` cor do modelo obtido, e com as persianas fechadas e
com o holofote na parte de tras da camara. A informacao de cor so se torna importante
consuante a aplicacao que e dada ao modelo 3D obtido.

5.2

Teste com diferentes resolu


co
es

No teste com diferentes resolucoes foram realizados dois scans, um com a resolucao mnima
((128128128) voxels) e outro com a resolucao maxima ((512512512) voxels). Na
figura 5.3 estao representados os dois modelos obtidos, seguido da tabela 5.2 onde se pode
verificar que a diferenca do n
umero de triangulos entre as resolucoes e grande.

(a)

(b)

Figura 5.3: Diferencas entre modelos com resolucoes distintas.


(a) resolucao mnima e (b) resolucao maxima.

Tabela 5.2: Valores obtidos com diferentes resolucoes.


De forma a testar o tempo de execucao dos processos, foi efetuado o scan completo. Foi
escolhido o scan completo devido ao facto deste ter um maior volume para analise e por

44

Captulo 5. Testes e resultados

o percurso do robo ser o mais longo, logo este processo torna-se o mais demorado. O
modelo utilizado para esta medicao foi uma pessoa com uma altura aproximadamente de
1.65 m, obtendo os tempos que estao descritos na tabela 5.3.

Tabela 5.3: Tempos obtidos com diferentes resolucoes.


Atraves da tabela 5.3 podemos verificar que a resolucao apenas influencia os tempos de
gerar a superfcie e de procurar um buraco. Isto deve-se ao facto da diferenca de triangulos
entre um e outro ser elevada.

5.3

Teste com objeto de superfcie brilhante

Como foi referido no subcaptulo 2.1.3, outro problema da luz estruturada sao as superfcies brilhantes. De forma a comprovar o problema foi utilizado como objeto brilhante
uma placa de acrlico preta, como representa a figura 5.4.

Figura 5.4: Objeto brilhante utilizado.


Apos ser realizado um scan com o objeto brilhante, verifica-se que em toda a zona da
placa nao foi obtida nenhuma informacao 3D, tal como representado na figura 5.5.

5.3. Teste com objeto de superfcie brilhante

(a)

45

(b)

Figura 5.5: Resultado obtido com objeto brilhante.


(a) imagem RGB com o objeto e (b) modelo 3D obtido com buraco.

46

Captulo 6
Conclus
oes e trabalho futuro
A realizacao deste projeto revelou-se um grande desafio uma vez que nao era do nosso conhecimento o funcionamento de reconstrucao 3D. Atraves das pesquisas efetuadas adquiriuse uma base de bibliotecas, o que foi bastante importante no desenvolvimento do projeto.
Apos as pesquisas efetuadas, foi construdo um suporte para a camara 3D de forma a
acopla-la `a ferramenta do robo industrial. Este suporte foi projetado e construdo a pensar em trabalhos futuros, pois permite adaptar diferentes camaras.
Para a familiarizacao com a camara 3D, foram encontrados durante as pesquisas alguns
programas que nos facilitaram na compreensao do funcionamento da mesma.
De modo a ser possvel rodar o modelo, foi construda uma plataforma rotativa com recurso a um motor e a um Arduino Uno, para poder ser controlada pelo PC.
A aquisicao, integracao e geracao 3D e efetuada com recurso a`s bibliotecas da ReconstructMe. Estas bibliotecas auxiliaram bastante o desenvolvimento do programa a nvel
da manipulacao da informacao 3D adquirida.
Para o funcionamento do robo foram criadas duas trajetorias (scan completo e scan busto),
que se adequam a` altura do objeto.
Sabendo que a tecnologia esta em constante desenvolvimento e evolucao, segue algum do
trabalho que consideramos ser uma mais-valia numa proxima evolucao do projeto:
- Utilizacao de uma camara de melhor qualidade, como por exemplo a Kinect V2.
Esta camara tem uma melhor resolucao e e mais precisa;
- Criacao de uma interface grafica, criando um ambiente grafico mais apelativo e
integrando todas as janelas numa so, entre outras possibilidades;
- Otimizacao do processo da procura de buracos, pois por vezes ainda e suscetvel a
erros.
47

48

es e trabalho futuro
Captulo 6. Concluso

A nvel pessoal, este projeto tornou-se bastante enriquecedor, pois para alem das competencias aplicadas, foram desenvolvidas e cimentadas novas capacidades no ambito de
pesquisa e selecao de informacao, trabalho em equipa e interacao com empresas exteriores,
sendo estas competencias uma mais-valia para o nosso futuro.

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:
kinect-to-remain-an-important-aspect-of-xbox/

https://wholesgame.com/news/

[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:
cs comps/0405/shape/decimation.html

http://www.cs.carleton.edu/

[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:
applications/

http://www.kreon3d.com/

[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

50

[13] Consultado em 21-07-2015.


reconstructme-sdk/

Bibliografia

[Online].

Available:

http://reconstructme.net/

[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:
Wiring (development platform)

https://en.wikipedia.org/wiki/

[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

Ap
endice A
Suporte Kinect para garra do rob
o

51

Ap
endice B
Desenvolvimento da plataforma

B.1

Estrutura projetada para plataforma

53

PROJ.
DES.
VERIF.
APROV.
ORIENTADORES
Professor Fernando Martins
Professor Carlos Simplcio

ESCALA

1/5

DESENHO ASSISTIDO POR COMPUTADOR - CAD

Projeto de Licenciatura
3D Scanning com Kinect
acoplada a Rob
PLATAFORMA ROTATIVA

ALUNOS:
Joo Valente N2103373
Lus Cristvo N2103373

DESENHO N 1
Pgina 1
Maro 2015

PROJ.
DES.
VERIF.
APROV.
ORIENTADORES
Professor Fernando Martins
Professor Carlos Simplcio

ESCALA

1/5

DESENHO ASSISTIDO POR COMPUTADOR - CAD

Projeto de Licenciatura
3D Scanning com Kinect
acoplada a Rob
PLATAFORMA ROTATIVA

ALUNOS:
Joo Valente N2103373
Lus Cristvo N2103373

DESENHO N 2
Pgina 2
Maro 2015

C
SECTION C-C
SCALE 1 : 5

PROJ.
DES.
VERIF.
APROV.
ORIENTADORES
Professor Fernando Martins
Professor Carlos Simplcio

ESCALA

1/10

DESENHO ASSISTIDO POR COMPUTADOR - CAD

Projeto de Licenciatura
3D Scanning com Kinect
acoplada a Rob
PLATAFORMA ROTATIVA

ALUNOS:
Joo Valente N2103373
Lus Cristvo N2103373

DESENHO N 3
Pgina 3
Maro 2015

B.2. Placa para controlar o de motor de passo

B.2

Placa para controlar o de motor de passo

57

VCC
U6
BDX33C

U5
BDX33C
R5

R10

220

220

BLUE

BLUE/WHITE

Arduino Pin2

R1

174

Arduino Pin3

R2

10

11

12

13

14

15

R6

R9

220

220
U7
BDX33C

U8
BDX33C

174

Arduino Pin4

Arduino Pin6
Arduino GND

R3

GND
VCC

174
R4
174
8

16

R7

U2
BDX33C

U1
BDX33C

R11
220

220

TLP521-4
RED/WHITE

RED

R12

R8

220

220
U4
BDX33C

U3
BDX33C

GND

PROJ.
DES.
VERIF.
APROV.
ORIENTADORES
Professor Fernando Martins
Professor Carlos Simplcio

ESCALA
DESENHO ASSISTIDO POR COMPUTADOR - ALTIUM

Projeto de Licenciatura
3D Scanning com Kinect
acoplada a Rob
Esquema Placa Motor Passo Bipolar

ALUNOS:
Joo Valente N2103373
Lus Cristvo N2103373

DESENHO N4
Pgina 1
Fevereiro 2015

nico de velocidade e encoder


B.3. Placa para controlar o variador eletro

B.3

59

Placa para controlar o variador eletr


onico de velocidade e encoder

Encoder OUT A
Encoder OUT B
Arduino Pin 2

5V

Arduino Pin 3
R1

22K

R9

R2

22K

R10 10K

R3

22K

R11 10K

R4

22K

R12 10K

R5

22K

R13 10K

R6

22K

R14 10K

R18
750

10K

Arduino Pin 4

R19
750

Encoder 5V
Encoder 0(Common)

5V
GND

R20 33K

Arduino Pin 5

GND

Arduino Pin 6
8
2

Arduino Pin 8

R15 10K

22K

R16 10K

U2B
OPA2241
7

VEV A1

6
4

Arduino Pin 10

10V
8

22K

R8

1
R17
10K

Arduino Pin 9
R7

U1A
OPA2241

10V

Arduino Pin 7

VEV V+
VEV GND

10V

Arduino Pin 11

Arduino GND
GND
GND

PROJ.
DES.
VERIF.
APROV.
ORIENTADORES
Professor Fernando Martins
Professor Carlos Simplcio

ESCALA
DESENHO ASSISTIDO POR COMPUTADOR - ALTIUM

GND

Projeto de Licenciatura
3D Scanning com Kinect
acoplada a Rob
Esquema Placa Variador e Encoder

GND
5V

Arduino 5V

ALUNOS:
Joo Valente N2103373
Lus Cristvo N2103373

DESENHO N 5
Pgina 1
Fevereiro 2015

S-ar putea să vă placă și