3d scan with kinnect

Upload: luis

Post on 07-Jul-2018

219 views

Category:

Documents


0 download

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