Escaner 3D

Hola amantes de la electrónica, en esta sección explicaremos como funciona la tecnología que permite escanear objetos, piezas, personas... en 3D y como construir vuestro propio escaner 3D de alta precisión.

Además detallaremos diferentes maneras de obtener un escaner 3D como el uso de Kinect de Xbox con bajo coste o mediante el uso de varias cámaras simultáneas en distintos ángulos.


Introducción:

Las aplicaciones gráficas que utilizan un escaner 3D intentar generar objetos de calidad a partir de un modelo real.
Esta tecnología permite encontrar coordenadas (X,Y,Z) de cualquier punto en la superficie de un objeto. Para obtener este resultado emplean sensores de posición: de contacto o sin contacto.

Las técnicas de escaner 3D son diversas según su aplicación, como medicina, industria, ingeniería, robótica...

Los métodos de digitalización que utilizaremos serán ópticos, aquellos clasificados como activos y el método de triangulación es el que emplearemos en la construcción de nuestro escaner 3D. 



Método de triangulación: 

Un escaner 3D activo utiliza un láser que su haz(luz visible) incide en el objeto y se utiliza una cámara para buscar la ubicación del punto láser. La cámara recoge cada punto donde el haz del láser se refleja en la superficie del objeto. 


Esta tecnología utiliza para la medición una triangulación entre el punto láser, la cámara y el emisor láser. La longitud de un lado del triángulo entre la cámara y el emisor láser y los angulos entre el vértice del emisor de láser se conocen. Estos tres valores permiten determinar el resto de dimensiones del triángulo, y por tanto, la posición de cada punto en el espacio.


El escaner de triángulación solo captura las zonas visibles simultáneamente por el emisor láser y la cámara.



Obtención de Nube de Puntos y modelado de malla:

Una vez reconocidos los puntos, si utilizamos dos emisores láser simultáneos creamos nubes de puntos independientes que posteriormente al escaneo, se realiza una fusión de ambas nubes de puntos, obteniendo un conjunto de puntos que forman la imagen.


 El escaner 3D nos devuelve una nube de puntos independientes, para formar una superficie y obtener una malla de el objeto escaneado, unimos varios puntos y formamos una malla.

 A veces, no todos los puntos crean una resolución óptima y desestimamos algunos puntos para formar la malla o añadimos nuevos puntos de unión para mejorar la resolución.


La representación del objeto con diferentes triángulos que forman una malla añaden o eliminan resolución.


La necesidad de puntos se reduce si la superficie es uniforme, si la superficie presenta rugosidades necesita mayor cantidad representación por triángulos.
Esta información se guarda en arrays con información de cada punto.





Resumen:

Con estos pasos, obtenemos una malla completa del objeto escaneado.

1º Captura de puntos
2º Triangulación
3º Fusión de nube de puntos
4º Unir mallas, crear nuevas mallas, eliminar ruido
5º Aplicación de textura


Componentes de un escaner 3D:

Una vez entendemos el funcionamiento de la tecnología para la obtención de puntos, pasamos a describir los componentes que forman nuestro escaner 3D.

Laser Lineal: 
Su función es proyectar un haz sobre el objeto a escanear para determinar una medición de distancia en la dirección que apunta.


Sensor de imagen:
Se implenta con una webcam comercial para PC, pues todas las cámaras digitales suelen llevar integrado un sensor de este tipo.
Su función es reconocer la incidencia de luz en el objeto gracias a componentes sensibles a la luz como fotodiodos y fototransisotres que lleva incorporado.
El sensor forma una matriz de elementos fotosensibles que se denomina pixel.(Un incremento de los pixeles se asocia a un incremento de resolución de imagen)

En las cámaras convencionales suelen incorporar dos tipos de sensores muy extendidos: sensor CCD o CMOS.

Sensores CCD: Son sensibles según la cantidad de fotones que capte cada detector, induce una determinada corriente eléctrica que se transfiere al detector individual.
En este tipo de sensores aumenta el ruido electrónico con el aumento de temperatura.

Sensores CMOS: Estos sensores permiten mayor control de funciones como luminosidad, corrector de contraste... etc. Estos sensores incorporan un amplificador de la señal en cada detector de fotones.


Control de movimiento:
Este sistema permite rotar el objeto o  desplazar el escaner para detectar todas superficies.

Software:
Permite la lectura de datos procedente del escaner 3D para situar la nube de puntos en un entorno visual para el usuario.
Otro tipo de esoftware también permiten crear la malla a partir de la nube de puntos y modificar parámetros.


Construcción de nuestro escaner 3D

Nuestro modelo de partida para el escaner 3D fue a partir de un prototipo  funcional llamado FabScan, que implementaba un escaner 3D basado en un solo láser:



 También el escaner 3D Cyclop y su software de manejo Horus (basados en código abierto) permiten obtenner los planos y diseño para su construcción.



Estos dos modelos han servido como punto de partida para el CebScan, un híbrido que tiene ciertas mejoras como un eje Z para ampliar la altura de escaneo, una cámara con mejor resolución y soportes laterales para los láser con movimiento para poder regularlos.


 












Comenzamos el montaje imprimiendo las piezas que forman la estructura del escaner 3D.

Las piezas de la base donde se aloja Arduino y el motor paso a paso que mueve la plataforma giratoria:

 
 Las piezas de soporte de la cámara y los brazos laterales donde van alojados los dos láser lineales, junto con la base y la plataforma giratoria:

 El soporte de la cámara lo hemos modificado del diseño original para colocar la cámara de forma vertical, ya que utilizaremos el software Horus(de BQ) que implementa la cámara en posición vertical.



Una vez tenemos todas las piezas, preparamos la webCam para su colocación en el escaner 3D.


Retiramos la carcasa superior:


Pasamos el cable USB por la carcasa una vez retirada la ultima parte.


Introducimos la webCam en la carcasa:



La electrónica que utilizaremos esta basada en Arduino (Open Source).
Para el CebScan, utilizamos Arduino UNO y la placa de expansión FabScan.

La placa de expansión (o Shield) FabScan, podemos encontarla por internet a un precio mucho menor si la adquirimos por piezas y la emsamblamos nosotros. Para emsamblar los componentes, utilizaremos un soldador y estaño.


Cuando tenemos todo preparado, desplegamos los componentes y nos aseguramos de colocar cada compoentes en su lugar.



Empezamos a instroducir las patillas de cada componente y vamos soldando.


Terminamos todos los conectores y cortamos el sobrante de patillas.


Debemos tener en cuenta mantener los conectores paraleos para que los compoentes puedan conectarse correctamente.



 Ensamblamos la placa FabScan en Arduino UNO.



Ahora pasamos a emsamblar los componentes. Comenzamos por el motor en la plataforma giratoria:


Debemos pasar el cableado por la parte que tiene doble perforación, el otro orificio, es algo más estrecho, para que unicamente pase la varilla roscada que une las partes.


Montamos los soportes laterales de los láser en el eje Z:


 Introducimos los rodamientos lineales que guian el eje Z mediante dos varillas lisas.


 Las piezas tienen aperturas para pasar el cableado de todos los componentes.


Colocamos los láser y fijamos su posición con silicona.


Sellamos el conjunto con las piezas superiores.



Por la parte inferior, salen los cables hacia la placa de control(Arduino + FabScan Shield)


Colocación del motor del eje Z:


Fijamos con tornillos el motor del eje Z a su posición.


Este motor, lleva un acople hacia una varilla roscada, para desplazar el eje Z.


La electrónica se coloca con cuidado de no dañar los cables en su caja.


Cerramos la tapa superior y ya casi tenemos listo nuestro escaner 3D.



Ya tenemos nuestro escaner 3D preparado para comenzar a funcionar.


Antes de realizar un escaneo, debemos calibrar mediante el software(Horus) todos los parámetros para asegurarnos que los niveles de iluminación, giros del motor, y volumen de escaneo son adecuados.


Para resolver probblemas de escaneo por falta de luz, hemos impreso soportes de iluminación para repartir de manera homogenea la luz alrededor del objeto a escanear.


Las luces, tienen un regulador de intensidad para adecuar la cantidad de luz y mejorar la calidad en el escaner y la obtención de la nube de puntos.


Las torres de iluminación se pueden colocar según las necesidad del objeto, pero no es recomendable situarlas por detras de la plataforma de giro, por que la luz puede incidir en la cámara, dificultando que la lente capte la luz del láser.


A continuación mostramos un ejemplo de como nuestro escaner 3D es capaz de escanear con alta precisión esculturas de barro donde el cada detalle es importante si queremos conservar el modelo original.

Escultura Original:


Obtención de nube de puntos:


 Objeto en formato .stl listo para imprimir con nuestra impresora 3D:














19 comentarios:

  1. Genial , muy barbaro, me encantaria probar a construir uno, si es posible podriais facilitar la descarga de los .STL de las piezas , lista de materiales y descarga del Horus, me naca como proyecto.

    ResponderEliminar
  2. Hola Scrackk,

    Para que el resto de lectores tengan resueltas también tus mismas dudas, publicamos en este comentario la solución a tus preguntas.

    La descarga de los archivos en stl del modelo original CEBSCAN:

    http://www.thingiverse.com/thing:284142

    Modificación de algunas de las partes por Ingenio Triana:
    -Adaptador para cámara en posición vertical:

    http://www.thingiverse.com/thing:1152832

    La lista de materiales la iremos actualizando conforme avanza el proyecto, pero para el montaje de un escaner básico, necesitas:

    -Cámara webcan Logitech C920
    -Láser rojo Lineal 5mW
    -Arduino UNO
    -Placa expansión o Shield FabScan para Arduino
    -Varillas lisas M8
    -Varillas roscadas M8
    -Motores paso a paso NEMA 17, 1,8º, 12V
    -Drivers para motores paso a paso A4988 con disipador de calor.
    -Rodamientos lineales para el eje Z
    -Tornillería M3

    El software de control Horus, puedes descargárlo de la página de BQ, donde esta empresa tiene un gran compromiso con el software libre y proporciona de manera gratuita la descarga e implementación. Accede a la descarga desde el siguiente enlace:

    https://github.com/bqlabs/horus

    Para que todo esto funcione, es necesario implementar un firmware, para ello, puedes optar por utilizar Arduino, o en sustitución una placa de similares caracteristicas, ZUMBq, además de los drivers de la cámara que utiliza el ciclop de BQ(Logitech C290)

    https://www.bq.com/es/support/ciclop/support-sheet

    Con esto, podrás montar tu escaner 3D, pero desde Ingenio Triana, optamos por implementar la placa Arduino en lugar de la ZUMBQ. Para realizar este cambio, es necesario modificar parámetros del firmware, que sólo se aconseja para usuarios avanzados que tengan conocimientos de programación.


    Un saludo,
    Ingenio Triana.



    ResponderEliminar
  3. yo tengo un a camara generica y el Horus no lo detecta, que puedo hacer ? . hay que modificar alguna linea de codigo para que permita hacerlo ?

    ResponderEliminar
  4. Utiliza una cámara compatible. Nosotros en lugar de usar una logitech C290, utilizamos una logitech C920, pero siempre utilizando cámaras con drivers compatibles con el software.

    Utilizar otro tipo de dispositivos, implica el uso de drivers diferentes, con lo que el programa no funcionará correctamente.

    Desconocemos si es posible modificar el software para adaptarlo a otro tipo de dispositivos.


    Un saludo,
    Ingenio Triana.

    ResponderEliminar
    Respuestas
    1. buen dia, estoy armandome un escaner ciclops y tengo que comprar la webcam, vale la pena ponerle la c920 en lugar de la c290? mejora la calidad del escaneo? el software tiene soporte de todas las opciones para esa camara? saludos!

      Eliminar
  5. amigo buenas noches, estoy interesado en hacer el escaner 3d con arduino, que tendria que cambiar en el firware y que mas cosas tengo que tener encuenta?

    ResponderEliminar
  6. Hola, cuales son las dimensiones de escaneo que permite esta version del escaner?? Busco un escaner con una amplia superficie de escaneo. Muchisimas gracias por adelantado

    ResponderEliminar
  7. Las dimensiones son en la base del cilindro con diámetro de 20 cm y de altura 60 cm

    ResponderEliminar
  8. Las dimensiones son en la base del cilindro con diámetro de 20 cm y de altura 60 cm

    ResponderEliminar
  9. Buenas, cuales serian los cambios en el firmware que se deberian hacer? Saludos

    ResponderEliminar
  10. En el firmware no debes realizar cambios si mantienes una cámara con drivers compatibles. Para el caso del firmware del escaner 3D de BQ, el Ciclop, necesita su placa electrónica propia. Si queréis utilizar una placa arduino, debéis modificar la libreria pins, que es la que contiene las entradas y salidas de cada placa electrónica. El utilizar una placa electrónica distinta a la del fabricante, necesita adaptadar la libreria pins.h a tu nueva placa electronica. En nuestro caso, hemos utilizado Arduino UNO.

    ResponderEliminar
  11. ¡Hola! Estamos intentando hacer la escaneadora 3D con vuestra página, y nos gustaría preguntaros una cosa, ¿ Cuál es el largo de las varillas y tornillos que utilizáis, y cuantas unidades usáis?
    ¡Muchas gracias!

    ResponderEliminar
  12. Hola, buenas:
    Estoy interesado en la construcción y montaje de este dispositivo, aparte de los rodamientos lineales para las varillas de 8 mm, lleva algún tipo de rodamiento mas?.
    Aparte de esto con el software de control se puede gobernar el motor del eje Z?
    En espera de vuestras noticias, recibid un cordial saludo

    ResponderEliminar
  13. Hola mi pregunta es si no utilizan ninguna programación con Arduino, es únicamente el software de Horus?

    ResponderEliminar
  14. This is a really informative knowledge, Thanks for posting this informative Information. ESCANER LASER

    ResponderEliminar
  15. Escaneo rápido de una persona en 30 segundos en cualquier posición. Preservando el color y la antropometría del cuerpo humano. Fácil de usar y altamente móvil para escanear en cualquier lugar.
    https://texel.graphics/es/

    ResponderEliminar
  16. Hola, me he montado un escaner 3D Ciclop. He utilizado un Arduino Uno y un Shield Bq Scan Zum, mediante el cual podemos trabajar con 2 motores y 4 láseres. He conseguido modificar mediante software los láseres mediante G-code M70 T3 y T4 para utilizar esos pines y añadirles un relé para controlar un foco led. El problema está en seleccionar el segundo motor ya que al activar los Motores con M17 solamente me detecta el de la plataforma.¿Cómo he de hacer para activar el segundo motor para el eje Z? No consigo activar dicho motor en software, ¿Habría que activarlo en el firmware de Arduino o en el código de Horus mediante Python, y en qué sitio concreto sería? Gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola,tengo el mismo problema con los motores solo que a mi no me detecta ninguno sera que me puedes ayudar

      Eliminar
    2. Hola.
      Si quieres mándame un correo a juanky91@gmail.com y podemos intentar solucionar el problema.
      Yo he conseguido grandes avances.

      Eliminar