Laser Scanner 3D SkanDal

Ce wiki a été archivé en 2018.

Le nouveau wiki se trouve à: ressources.labomedia.org

Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia.

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher


Les lasers sont dangereux: Laser Scanner 3D SkanDal Sécurité.


Le premier Scanner 3D totalement documenté, à 2 Lasers piloté par des scripts en Python, sous Licence GPL V2. Copyright Labomedia.


3D Scanner, with 2 Laser and python scripts, made with only 3D Printing pieces.


Pour lancer, double clic sur scan, lancer dans un terminal.

Des commentaires peuvent être déposé sur la page de discussion.

Le STL dans Blender
Le fichier STL de test: Fichier:Mousse1piedaplati.stl
Le scanner

Principe

Une image enregistrée
L'angle de 45° doit être réglé très précisément

2 laser ligne génèrent des plans verticaux à 45° par rapport à l'axe vertical de la caméra, coupe la pièce suivant 2 lignes. Les points de ces lignes permettent de calculer la position dans l'espace de tous les points sur l'objet.

L'objet est fixe sur un plateau fixé en direct sur un moteur pas à pas de 200 pas par tour. Le moteur fait 2 tours dans le même sens, un tour avec le laser gauche seul allumé, un tour avec le laser droit allumé.

Le scanner est dans une chambre noire pour ne voir que la ligne laser.

  • laser gauche on
  • moteur fixe, shot
  • avance d'un pas
  • attente une seconde pour qu'il n'y ai plus de vibration
  • enregistrement de l'image caméra
  • avance d'un pas
  • etc ...

jusqu'à 200 pas

  • avance d'un pas
  • laser gauche off, laser droit on
  • enregistrement de l'image caméra
  • etc ...

jusqu'à 200 pas

Galerie

Galerie laser rouge et webcam horizontale

Galerie laser bleu et webcam verticale

Galerie des protos

Les étapes du logiciel pour un scan

  1. Enregistrement de 400 images en niveau de gris dans le dossier /work/image/p_monprojet, 400 images.
  2. Lecture des images, calcul des coordonnées des points des lignes laser de toutes les images, enregistrement des x, y dans des fichiers txt dossier /work/txt/p_monprojet.
  3. Lecture des fichiers txt, calcul des coordonnées dans l'espace de tous les points, génération du fichier PLY /work/ply/m_monprojet.ply.

Ces étapes enregistrées permettent de reprendre une étape pour améliorer l'ensemble, sans avoir besoin de tout refaire.

Un scan peut aussi se faire en un clic.

Théorie

Les calculs ne sont pas compliqués mais les explications parfois un peu ardues.

Précision

La position horizontale du point vue par la caméra est multiplié par un nombre > 1 et proche de 2, pour obtenir la position réelle. Le calcul diminue la précision de la vue caméra.

Précision théorique avec une caméra 1280 x 800

En hauteur, 600 pixels pour 100 mm, 1 pixel = 0.16 mm

En largeur, 1280 / 2 = 640 pixels pour 50 mm, mais avec le cadrage sur la hauteur, il reste 300 pixels pour 50 mm final soit 50/300 = 0.16 mm pour 1 pixel. Les points au delà de 300 sont supprimé dans le calcul.

La précision théorique est au mieux + ou - 0.2 mm. Le matériau scanné, la réflexion du faisceau laser, ou son absorption (comme avec un lego rouge) influe beaucoup.

Précision due au moteur 200 pas

Pour un cylindre de diamètre 100 mm:

  • 200 step pour 360°, donne 1.8° entre 2 frames
  • 1.8° sur 100 mm, donne pi * 100 * 1.8 / 360 = 1.5 mm

Les points horizontaux scannés sur un cercle de diamètre 100 mm sont espacés de 1.5 mm.

Objectif de précision

L'objectif est de + ou - 0.5 mm. La précision globale est limite, il faut être très soigneux dans la réalisation: Détails des réglages.

Axe 1.jpg Axe 2.jpg Axe cam tige.png

Pièce avec zones concaves

Les zones concaves ou cachées derrière une autre partie de l'objet ont de fortes chances de ne pas être scannées. Scannez un cube par curiosité: la moitié des faces est cachée et ne sera pas modélisée ! Installer un deuxième laser ne coûte quasi rien, par contre il faut que les 2 meshs obtenus se superpose le mieux possible.

2 lasers et et 2 tours

Pour que les 2 meshs soient bien imbriqués, la géométrie du montage doit être parfaite, en pratique cela veut dire à 2 ou 3 dixièmes de mm près. Les laser, l'axe de la caméra doivent tomber pile poil sur l'axe du moteur sur toutes la hauteur de vision de la caméra.

Principe

  • Un deuxième tour dans la continuité du premier.
  • "Off" sur le laser gauche, "On" sur le laser droit, juste après le shot 199.
  • Flip horizontal des images enregistrées.
  • Calcul de la ligne laser pour toutes les images de la même manière.
  • Ajout des points de la frame n et de la frame 200 + n + 1/4 de tour (2 * 45°).
  • Pour toutes les lignes y, calcul de la moyenne des x. Si un seul point, le point est compté tel.
  • Calcul des coordonnées x y z.

Caractéristiques des pièces à scanner

  • Dimension: La pièce doit tenir dans un cylindre de diamètre 100 hauteur x 100 mm
  • Poids: 300 grammes maxi

Zen of scan

  • La pièce n'a pas à être centrée sur le plateau.
  • La caméra et le laser pointent pile-poil vers l'axe de rotation du plateau.
  • Les scripts enregistrent toutes les images, les résultats des traitement de ces images, et sort un fichier *.PLY exploitable dans Meshlab. Calculer les faces est compliqué, il faut laisser ce travail à un spécialiste, Meshlab, qui est sous License GPL V2.

Matériel

La liste du matériel nécéssaire, mais il faut récupérer le maximum possible.

Les pièces à fabriquer sur une Imprimante 3D.

Logiciel

Les sources, l'installation, l'utilisation.

Conversion du fichier PLY en STL dans Meshlab

Nous conseillons un logiciel performant pour construire un STL à partir des points, licence GPL, Meshlab:

Essai en cours avec meshlabserver et un script .mlx

Ressources

Nettoyer le mesh

Construction des normales

Filters -> Point Set -> Compute Normals for point set

Options:

  • Number of neighbors = 50
  • Flip normals w.r.t viewpoint enable
  • Get: View Dir

Création des faces

Filters -> Point Set-> Surface Reconstruction: Poisson

  • Octree Depth = 6
  • Solver Divide = 6
  • Samples per Nodes = 1
  • Surface offstting = 1

Laser bleu, webcam verticale, développemnt

Laser Scanner 3D SkanDal Laser Bleu, Webcam verticale, Développement

Ressources

Commentaires

La page de Discussion est faite pour ça.