ciclop_destacada

Apresentamos Ciclop, o primeiro scanner 3D DIY da bq, e Horus, um software de scaneamento 3D.

Tal como todos os outros produtos DIY, o Ciclop e o Horus possuem uma licença livre, porque pertencem ao Património Tecnológico da Humanidade. Toda a informação sobre o desenho mecânico, a electrónica, o software, os algoritmos, as matemáticas e as experiências realizadas, estarão disponíveis livremente para a comunidade.

Isto permite não só estudar e entender o funcionamento do scanner, mas também realizar modificações, melhorias e evoluções a partir dele próprio. Queremos com isto contribuir e impulsionar o desenvolvimento destes dispositivos.

open

O scanner é baseado em diversos outros grandes projectos do nosso Património Tecnológico, desenvolvidos pela comunidade, como GNU/Linux1, Python2, Reprap3 e Arduino4 entre muitos outros. Têm toda a nossa admiração, reconhecimento e agradecimento já que foram fundamentais para a realização deste projecto.

ciclop-banner

Nível técnico actual

Existem várias alternativas para capturar a geometria tridimensional de um objecto: triangulação laser, luz estruturada e visão estereoscópica, entre outras. A primeira é a que possui (comparativamente), uma maior precisão e uma maior resolução, mas possui também limitações relativamente aos materiais dos objectos a scanear. Baseia-se na captura da projecção de um feixe laser sobre um objeto, com uma câmara.

No mercado já existem scanners laser com preços que variam desde 500€ até acima de 20.000€, mas … não são livres, e por isso o utilizador não pode estudar o seu funcionamento, nem realizar modificações.

Entre os scanners livres, destacam-se o FabScan5 e o MakerScanner6, mas não estão disponíveis como kits para compra. É preciso procurar e obter os seus componentes e materiais em separado.

Ciclop


Ciclop é um kit de scanner 3D livre. Por um lado, permite ao usuário a liberdade de poder estudá-lo e modificá-lo. Por outro, facilita a compra de todos os componentes num kit, a um preço justo.

Design

A estrutura do Ciclop é composta por peças impressas em 3D, varetas roscadas M8, parafusos M8, parafusos M3, porcas e anilhas. Dispõe de uma plataforma giratória em metacrilato de 20 cm de diâmetro (onde se coloca a peça a scanear), que está coberta de uma superfície antideslizante para evitar que os objectos se movam durante o scaneamento.

A plataforma apoia-se num rolamento de esferas de 110 mm de diâmetro. O movimento é accionado por um motor de passo Nema 17.

Electrónica

O sensor é formado por uma câmara web HD Logitech C270 no centro, dois módulos laser de linha classe 17 situados em ambos os lados e pela placa controladora ZUM BT-3288 no interior da parte frontal.

zum-bt328

ZUM BT-328

A ZUM BT-328 é uma placa baseada em Arduino que executa o firmware de controlo do motor e dos laseres. Comunica com o PC através de um cabo micro-USB ou Bluetooth. Na sua parte superior, está conectada a ZUM SCAN: um shield derivado do Arduino CNC Shield9, que contém 2 drivers de controlo de motores a passo, e pinos de conexão para 4 laseres e 2 sensores analógicos de luz (LDRs).

zum-scan

ZUM SCAN Shield

 Horus


Firmware

O firmware foi desenvolvido a partir do GRBL10, utilizado noutros projectos como o Marlin11 (o firmware das impressoras 3D livres). Permite ligar e desligar os laseres, assim como controlar a posição, velocidade e aceleração do motor a passo mediante comandos G-code.

Software

O programa principal é uma aplicação multi-plataforma desenvolvida em Python2. Utiliza wxPython12, NumPy13, SciPy14, Matplotlib15, OpenGL16, e uma versão optimizada para Linux do OpenCV17.

Esta aplicação é o núcleo do scaneamento. Gere as comunicações, a captura e a sincronização dos dados, o processamento de imagem e a geração e visualização da nuvem de pontos.

Foi desenvolvido e optimizado para GNU/Linux (Ubuntu18), Windows e Mac. O Horus é composto por três bancos de trabalho, seleccionáveis pelo usuário.

Controlo

Nesta secção, é possível controlar livremente cada um dos elementos que compõem o scanner: os parâmetros da câmara, os lasers, os motores, etc… Está pensado para que os makers e os programadores possam realizar testes e experiências a cada componente do dispositivo, individualmente.

Calibração

O banco de calibração contém as ferramentas necessárias para calibrar o dispositivo, desde o ajuste da câmara, até à triangulação dos lasers e à detecção da plataforma giratória.

Este sistema está desenhado para calcular automaticamente os parâmetros internos do scanner a partir da estrutura montada pelo usuário. Isto é muito importante, pois por ser um scanner DIY, nunca se montarão dois scanners exactamente iguais. É impossível determinar a priori as dimensões e orientações que o utilizador dará na montagem. Além disso,o usuário pode montar um scanner com diferentes dimensões e posições dos lasers e da câmara. O Horus encarrega-se de se auto-calibrar correctamente, para conseguir um scaneamento perfeito.

calibration

Horus: fases da calibração

Scaneamento

Esta secção permite seleccionar o tipo de scaneamento: com/sem textura, um/dois lasers, passos por volta, etc. Disponibiliza também, um ambiente 3D que permite a visualização da nuvem de pontos em tempo real e uma janela de vídeo que mostra as diferentes partes do processamento da imagem.

scanning

Os tempos de scaneamento dependem do algoritmo utilizado, e da aceleração e do passo do motor. Para 800 passos por volta (0.45º), os tempos vão de 2 min (mais rápido) até 6 min (mais lento com laser duplo) em Linux.

O resultado deste processo é um ficheiro PLY19. Podemos ver aqui alguns exemplos:

scansAssistente

Além do referido anteriormente, o Horus inclui um assistente que simplifica o processo de calibração e scaneamento, através de um guia passo a passo.

Malha

Para realizar a malha a partir da nuvem de pontos, existem diversos programas livres como o Blender20 ou o MeshLab21, que permitem passar de PLY a STL22. STL é um formato que define uma malha 3D composta por triângulos. Este ficheiro pode ser impresso em 3D, utilizando programas como o Cura23.

meshlab

Malha com MeshLab: cálculo das normais

Uma vez convertido para STL, o modelo pode ser visualizado no Horus.

mesh

Trabalho futuro

Neste projecto, queremos continuar a evoluir e a melhorar. Uma das nossas linhas de trabalho principal será a incorporação dos mecanismos de pós-processamento 3D e malha no Horus.

Interessa-nos a opinião da comunidade, e por isso estamos abertos a sugestões e melhoramentos através do nosso Grupo ou do GitHub.

Desafiamos todos a unirem-se ao projecto!

Publicações

Nas próximas semanas iremos publicar com detalhe, todos os desenvolvimentos, documentos e manuais relacionados com este projecto, sob uma licença Creative Commons BY-SA  e GPL v2.

Estão preparados?

Referências

  1. Sistema operativo GNU/Linux
  2. Linguagem de programação Python
  3. Comunidade RepRap
  4. Comunidade Arduino
  5. Projecto FabScan
  6. Projecto MakerScanner
  7. Certificado de segurança Classe 1 IEC60825-1:2014
  8. Placa controladora ZUM BT-328
  9. Placa de potência Arduino CNC Shield
  10. Software de controlo CNC GRBL
  11. Firmware Marlin
  12. Biblioteca gráfica wxPython
  13. Biblioteca de cálculo matricial NumPy
  14. Biblioteca de cálculo científico SciPy
  15. Biblioteca de geração de gráficos Matplotlib
  16. Biblioteca de gráficos 3D OpenGL
  17. Biblioteca de visão artificial OpenCV
  18. Sistema operativo UbuntuUbuntu GNOME,  Kubuntu
  19. Formato de malha PLY
  20. Editor tridimensional Blender
  21. Processador avançado de malhas MeshLab
  22. Formato de malha STL
  23. Assistente de impressão 3D Cura

Um comentário

  1. Caros,

    Podem informar-me sobre 2 coisas, por favor?

    1 – as imagens obtidas pelo scanner são a cores?

    2 – quais os formatos em que se podem guardar as imagens 3D?

    Muito obrigado,

    José Kullberg

Os comentários estão fechados.