Wiki

Sous Pages Wiki

logiciel l'application software AppPlatine3D, l'interface utilisateur, les algorithmes de traitements de l'image, les connections series et usb.
hardware la Platine3D in real life, la mécanique, l'électronique mais aussi le code de l'arduino.
logo pour ce projet...

Présentation

Le projet MakerScanner, qui est la base de ce projet:

Le principe illustré test_du_makerscanner.png ...
Il permet d'obtenir un nuage de point coloré(format .ply) du coté d'un objet. Il faut tourner manuellement le laser pour balayer l'objet.
La présence d'un plan vertical derrière l'objet permet de déduire l'angle entre le faisceau laser et la base (axe de rotation & centre optique de la webcam).
Si l'on veut un scan complet, il faut donc faire plusieurs fois le processus en faisant tourner un peu l'objet a chaque fois, puis assembler les fichier avec un logiciel (par exemple meshlab)... C'est compliqué et très vite fastidieux. De plus une calibration précise est nécessaire (optique et mécanique).

Le concept du présent projet est :

  • d'automatiser la rotation du laser et retenir l'angle.
  • d'automatiser les rotations de l'objet et de retenir l'angle de rotation effectué par ce dernier.
  • d'automatiser l'assemblage des fichiers dans un logiciel.
  • (optionnel) automatiser la calibration d'un maximum de paramètres.
  • (optionnel) création d'un fichier maillé (format .stl) optimisé & cohérent pour une imprimante 3d.

schema rapide

Le principe de base géométrique

Un peu de géométrie (niveau collège/lycée): la triangulation..."Deux angles et le côté commun"
[cf. http://fr.wikipedia.org/wiki/Résolution_d'un_triangle]

Deux angles et le côté commun

Vue de dessus, soit A l'axe de rotation du faisceau laser, B le point focal de la webcam, C le point de l'objet éclairé par le faisceau.

On considère donc un triangle dont un côté c et les deux angles α et β qui le bordent sont connus. Le dernier angle s'obtient par complément à π et les deux autres côtés par la loi des sinus :

α β γ
calc_a.png calc_b.png calc_C.png

Il faudra ensuite convertir ces données en coordonées cartésiennes et donc choisir un référentiel. L'axe de rotation (A) aura les coordonnées {x=0,y=0} et le point focal (B) {x=0,y=c}. Donc le point éclairé (C) aura pour coordonnées {x=b*cos(α),y=b*sin(α)}...

C'est très bien mais ça reste de la 2D !
Voici un dessin (sans les formules) qui permet d'extrapoler en 3d le système vu ci-dessus.
2d_TO_3d.png

Le résultat escompté

  • un nuage de points 3D coloré (format .ply)
  • ? un maillage 3D (coloré)? (format .stl)

Les composants

On cherche a rester le moins onéreux évidement... Donc, mode récupération activé!

  • un plateau circulaire ou l'on pose l'objet a scanner, dont on pilote l'angle de rotation.
  • un laser (rouge classe 1 voir 2) plan vertical, dont on pilote l'angle de rotation.
  • une webcam pour visualiser le trait(rouge) déformé émis par le laser sur l'objet. La précision du scan dépendra directement de sa résolution.
  • un arduino Uno (actuellement: un YABBAS), et divers composants électroniques pour piloter les objets ci-dessus, et faire la liaison avec le logiciel de traitement.
  • une alimentation de pc ( 5 Volt principalement utilisé)
  • un logiciel de traitement pour effectuer les calculs ( et calibrations ), et fournir le résultat. Écrit en JAVA (au vu de mes compétences en programmation et de l'espoir d'une portabilité accru).

La dimension maximum devrait permettre d'avoir un système facilement transportable.
J'ai donc choisi de regrouper l'hardware dans une platine vynile (trouver dans une casse) et d'utilisé son plateau a priori fait pour tourné rond. On aurrai aussi partir d'un micro-onde ayant un plateau tournant, mais ils ne sont pas conçus pour une rotation stable (a discuter).

Références

A voir

  • CloudCompare : inspection de mesh, présentation sur Wikipedia
  • VisualSFM : de la photogrammétrie "pure" et open source, pour obtenir de la 3D a partir de simple photographie.
  • SCIENCES POUR TOUS : trés bon site de bidouillage pour être précis, merci les astronomes

Resolve_triangle_with_c_alpha_beta.png (3,512 ko) Baptiste Pelouas, 03/01/2015 11:59

calc_a.png (815 octet) Baptiste Pelouas, 03/01/2015 12:26

calc_b.png (859 octet) Baptiste Pelouas, 03/01/2015 12:26

calc_C.png (468 octet) Baptiste Pelouas, 03/01/2015 12:26

2d_TO_3d.png (422,233 ko) Baptiste Pelouas, 03/01/2015 13:13

test_du_makerscanner.png (1,537 Mo) Baptiste Pelouas, 03/01/2015 15:17

iso_schema.png (12,505 ko) Baptiste Pelouas, 03/01/2015 16:28