Laser Scanner 3D SkanDal Développement

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


Ce principe de scanner n'est pas cher, il y a de nombreux projet qui ont exploré cette piste. Mais ...


Faiblesse intrinsèque du principe

  • Ne scanne pas les zones de la pièce sur le plateau
  • Ne scanne pas les surfaces horizontales à hauteur de l'axe de la caméra
  • Le cône: mauvais scanne de la pointe: ce stl est le stl brut de meshlab !

Cone blender.png La pointe est mal scannée, le cône n'est pas centré parfaitement sur le plateau, le rayon ne passe par la pointe que sur une petite partie des images. La base est arrondie par meshlab car il n'y a pas de points sous le cône. On peut l’aplatir dans Blender, ce serait mieux en auto.

  • La boule: ne scanne pas le bas et le haut de la boule

Boule blender.png Le calcul des coordonnées 3D des points est bidouillé, il y a une erreur dans la théorie:

    def get_world_coord(self, point, frame_points):
        (AM, sin_cam_ang, y, teta) = point

        # Bidouille intuitive
        # Correction because cube face are curved
        AM = AM - float(AM * AM) / 1720.0

Cette correction permet d'avoir une shère sphèrique et des cubes avec des faces plates !

Une deuxième caméra

Sans algorithme de Monte Carlo.

Un laser, une caméra qui se déplace verticalement

http://www.david-3d.com/

Piste d'amélioration, développements

Matériels

Ce scanner a été réalisé en pièces imprimées 3D. C'est fun mais pas du tout assez rigides. Ça permet de voir ce qu'il est possible de concevoir, mais pas fonctionnel !

Réglage

  • Concevoir une procédure plus simple, plus précise.

Interface

  • Créer une interface graphique.
  • Dans le menu en terminal, ajouter des modifications de réglages.

Python

  • Nettoyer, éclaircir le code.

Principe

  • Diminuer l'angle des lasers à 30°.
  • Pouvoir placer la caméra verticalement.
  • Idem avec les lasers.

Lasers

  • Avoir un trait plus fin, tester d'autres laser.
  • Faire tourner le laser verticalement pour balayer le plateau, puis correspondance des points avec un algorithme de Monte Carlo. Cela améliorerait le résultat dans l'entre jambe du bonhomme en mousse, ou donnerait une pointe de cône correcte !

Webcam

  • 2 Webcams mais il faudra trouver la correspondance des points entre les 2 webcams avec un algorithme de Monte Carlo. La 2ème webcam serait au dessus de la 1ère, orientée vers le bas.

Process

  • Comprendre pourquoi il faut ajouter cette bidouille: AM = AM - float(AM * AM) / 2500.0
  • Utiliser le retour de thickness dans la fonction group(), pour supprimer les zones trop large qui correspondent à des reflection directes.
  • Ajouter des points correspondants aux points de l'objet sur la surface du plateau.
  • Créer un étalonnage qui permette de mettre en correspondance les meshs gauche et droit
  • Faire les calculs sur la carte graphique avec des scripts en C##, gérer en module importé dans le python.