Projet

Général

Profil

Wiki » Historique » Révision 11

Révision 10 (Baptiste Pelouas, 03/01/2015 12:15) → Révision 11/46 (Baptiste Pelouas, 03/01/2015 12:28)

Wiki
====

Présentation
============

Le principe de base
-------------------

Un peu de géométrie (niveau collège/lycée): la triangulation...
[cf. http://fr.wikipedia.org/wiki/Résolution_d'un_triangle]

<img src="http://redmine.acolab.fr/attachments/download/43/Resolve_triangle_with_c_alpha_beta.png" title="Deux src="http://www.redmine.org/attachments/7069/Redmine_logo.png" title="Redmine web site" alt="Redmine web site">

Deux
angles et le côté commun" alt="Deux angles et le côté commun"> commun

!Resolve_triangle_with_c_alpha_beta.png!

On considère 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 :

a = \frac {c\sin\alpha}{\sin(\alpha+\beta)}
b = \frac {c\sin\beta}{ \sin(\alpha+\beta)}
\gamma = \pi-\alpha-\beta\,
S = \frac12 c^2 \, \frac{\sin\alpha\sin\beta}{\sin(\alpha+\beta)}

Vue de dessus, le point focal de la webcam {A}, l'axe de rotation du faisceau laser (plan) {B} et un point sur l'objet {C}, forme un triangle.

Les données connues:

* <img src="http://redmine.acolab.fr/attachments/download/43/calc_C.png" title="calc_C.png" alt="calc_C.png"> distance: dist(AB)
* <img src="http://redmine.acolab.fr/attachments/download/43/calc_a.png" title="calc_a.png" alt="calc_a.png"> angles: ang(CAB) et ang(ABC) (! tout les 2 inférieurs a Pi/2 !)

Les inconnues:

* distances: dist(AC) et dist(BC)

* <img src="http://redmine.acolab.fr/attachments/download/43/calc_b.png" title="calc_b.png" alt="calc_b.png">

angle: ang(ACB)

Le calcul:

* ang(ACB) = Pi - ang(CAB) - ang(ABC)
* soit H la projection de C sur [AB], donc

Le résultat escompté
--------------------

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

Les composants
--------------

* 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.
* 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).