Environnement 3D Laser Scanner à partir de zéro (5 / 7 étapes)

Étape 5: 2e programme de traitement

N’oubliez pas de maths de vecteur 3D tout ce qui de l’école, vous pensiez que vous n’utiliseriez jamais ? Nous allons vous n’avez pas encore utiliser car je l’ai fait pour vous.

Dans cette dernière partie, nous allons écrire une autre esquisse de traitement qui prend ces coordonnées en pixels blancs et projets sur le plan créés par le laser linéaire. Chaque pixel blanc devient une ligne imaginaire qui sortent de la caméra dans l’espace 3D. Où chaque ligne croise le plan laser imaginaire, un point de données est tracé. Cela est répété pour chaque pixel blanc dans chaque image de la webcam, finit par constituer un nuage de points 3D. Il suffit de regarder la vidéo...

La seule partie de l’installation que je mentionnerai ici est le paramètre « rotcam ». C’est où vous devez insérer l’angle de la webcam, où 0deg est face vers l’avant, et 90deg est à la recherche sur le laser. Il devrait s’asseoir entre 10 et 40 degrés selon ce que vous numérisez. Petits angles pour loin des objets et des angles plus grands pour les proches.

D’abord dans la boucle de dessin, que nous avons besoin d’élargir les plans de délimitation à l’aide de « perspectives » c’est arrêt de loin et choses de très près de disparaître. Nous devons créer 3 lignes pour représenter les X, Y et z et les rendre rouge, vert et bleu.

Ensuite nous pouvons mettre en place notre caméra qui nous permet de regarder autour de l’espace 3D. Nous pouvons utiliser sin et cos ainsi que de la position X de la souris sur l’écran pour créer un effet de plateau tournant pour afficher l’objet plus facilement. Jouer avec cela en conséquence pour obtenir quelque chose de confortable à utiliser.

Alors maintenant, nous allons sauter dans la boucle qui fait tous les maths. Cependant nous voulons uniquement s’exécuter si une touche est enfoncée. Autrement dit, qu'il n’a qu’à faire les calculs une fois au lieu de répéter encore et encore.

Ici, nous avons besoin de charger le fichier de texte avec les coordonnées du pixel blanc et enregistrez-le à un vecteur de string « maChaîne ». Honnêtement, je ne sais pas pourquoi il doit être un vecteur, il prend seulement le premier élément, mais il refuse de travailler si c’est seulement une chaîne. BON, nous devons ensuite faire des vecteurs massifs flotteur vide pour X, Y et Z coordonnées où chacun sera remplie avec le composant correspondant de XYZ de chaque point de données unique dans le nuage de points.

« myString « doit réparti à chaque image de la webcam en utilisant splitTokens pour »; ». Il a ré-écrit « myString » comme un vecteur avec les coordonnées d’une image de la caméra dans chaque élément.

Nous pouvons maintenant sauter dans une boucle qui se répète une fois pour chaque image de la caméra enregistré dans myString.

Ensuite, nous devons faire un autre vecteur de chaîne appelé « stringPart », qui se scinde « myString » encore plus loin. Elle elle divise en particulier X et Y blanc coordonnées en pixels maintenant contenues dans chaque élément. C’est seulement enregistre une image à la fois.

Angle actuel du moteur est enregistré dans « rotmot » et vient du premier élément de la « stringPart », vecteur converti en float.

Pour ce prochain bit, notre espace 3D point (0,0,0) de départ est le centre de l’arbre du moteur sur la surface du bras.

Ici, nous utilisons une fonction appelée pushMatrix. Cela sert à modifier notre position local dans l’espace 3D, il change fondamentalement où est le centre de notre univers 3D. Nous pouvons ensuite utiliser fonctions modelX, Y, Z pour trouver le vrai coordonnées globales d’un point après pushMatrix translations et rotations. Trucs très utiles ! Donc dans ce premier pushMatrix, nous faites tourner en Y de l’angle actuel de moteurs.

Ensuite aller dans un autre pushMatrix (l’un dans l’autre) et du centre de l’arbre du moteur le long du bras se traduisent par le laser. Ici, nous pouvons créer l’équation dans le plan linéaire lasers. Quand je dis plan laser, je veux parler un plan où le laser peut briller sur un point quelconque le long du plan. Alors le plan passe par le laser et par le biais de n’importe quoi, il brille sur.

Pour rendre l’équation de l’avion, nous avons besoin des deux points qui font une ligne perpendiculaire au plan du laser. Il s’agit de vecteur NORMAL de l’avion. L’équation est dérivée de ceci et un moment donné dans l’avion.

Nous utilisons ensuite popMatrix à défaire ce qu’a fait le pushMatrix. Nous avons seulement utiliser une fois donc nous revenons vers le centre de moteurs mais toujours avec sa transformation de rotation.

Dans cette prochaine partie, nous travaillons dans une autre boucle que s’exécute une fois pour chaque pixel blanc, donc rend la longueur du stringPart mais incrémente dans deux. C’est parce que nous voulons utiliser les coordonnées X et Y dans cette boucle en même temps.

Alors maintenant, nous travaillons avec un seul pixel blanc qui deviendra un point de données unique. Dans cette boucle, nous devons tout d’abord de transformer les coordonnées XY de pixel blanc dans les angles qui agissent comme le XY angles pour la ligne de projection imaginaire vue de centre de la caméra... vérifier les images pour voir de quoi je parle.

Maintenant nous avons besoin d’utiliser pushMatrix à nouveau et de passer d’arbre du moteur le long du bras jusqu’au centre de caméras. Puis nous faire tourner en Y de l’angle de la caméra et enfin nous faire tourner en X et Y à nouveau en utilisant les angles, j’ai décrit dans le dernier paragraphe. Alors maintenant nos coordonnées locales sont dans la caméra, visant directement le long de la ligne de projection d’un pixel blanc.

Maintenant, nous faisons de la ligne de projection de la même manière, nous avons fait le vecteur normal à l’avion. Faire un point au centre de l’appareil photo et un autre point à quelque distance le long de la ligne de projection. De là, nous faisons l’équation de la ligne.

Ici nous pop la matrice pour retourner à l’arbre du moteur avec la rotation du moteur.

Maintenant, nous utilisons une version réarrangée de l’équation de plan avec l’équation de la ligne insérée dedans et résoudre pour ' t '. Voir l’équation réorganisée dans les images. Farcir ensuite le résultat pour ' t ' dans les équations de la ligne pour XY et Z. Alors maintenant, nous avons nos coordonnées XYZ pour un point de données unique ! Le pousser dans les « pointe à tracer » des vecteurs qui détiennent tous les points.

Utilisez popMatrix à nouveau pour renvoyer vers le début du système de coordonnées mondial sans traductions ou des transformations de rotation.

Alors maintenant, nous avons 3 vecteurs énormes pour XY et Z éléments de chaque donnée point mais n’ont pas en fait tiré aucun point pour le nuage de points. Si nous pouvons le faire maintenant. Utilisez une boucle for pour passer par chaque point de données rend en tant que « drawpointX » et dans la boucle, utilisez ' point(drawpointX[i],drawpointY[i],drawpointZ[i]). Il trace un point à chaque intersection entre la ligne de projection d’un pixel blanc et le plan laser.

C’est ça, Bravo ! Hit juste executer et appuyez sur une touche quelconque pour restituer la scène. Assurez-vous que le fichier que vous essayez de lire à partir est enregistré dans le dossier de cette esquisse.

Articles Liés

3D Laser Scanner

3D Laser Scanner

créer votre propre scanner laser 3D super Hi-Tech. En utilisant simplement un pointeur laser, un verre de vin, rotation plate-forme et une caméra vidéo numérique, vous pouvez faire des modèles 3D précis d'un objet ou une personne.On sait maintenant c
Bâton de A-10 alimenté par Arduino grip distance w / d’urgence bouton parti !

Bâton de A-10 alimenté par Arduino grip distance w / d’urgence bouton parti !

je suis tombé build "bouton parti d'urgence" de Plama2002 un peu en arrière et voulait quelque chose de similaire pour mon bar. J'ai aussi eu une poignée de bâton USAF B-8 vieux d'un A-10 a qui j'ai ramassé dans ma vie antérieure. J'ai pensé au
Ajouter des fonctionnalités à une usine CnC de gravure au Laser

Ajouter des fonctionnalités à une usine CnC de gravure au Laser

Cet Instructable va vous montrer comment vous pouvez facilement ajouter des fonctionnalités à votre usine existante de CnC de gravure au laser. Après avoir suivi ce Instructable, vous aurez accès à un gravure laser ainsi qu'une broche de fraisage tra
AutoCAD à Laser Trotec - je l’ai fait à TechShop !

AutoCAD à Laser Trotec - je l’ai fait à TechShop !

En tant que membre Techshop, j'ai vu beaucoup de conceptions génial créé sur le graveur de Trotec. Ces projets comprennent des dessins qui sont coupés et gravé à l'eau-forte dans divers matériaux, y compris le contreplaqué, lucite et le verre. Après
Miroirs en verre gravure au laser

Miroirs en verre gravure au laser

vous cherchez un cadeau unique pour un ami ou un proche ?Ou un élément unique pour votre propre maison ?Eh bien, c'est l'instructable pour vous !Étape 1: Matériel requis Les seuls éléments nécessaires à cette construction sont ;Ruban - trouver cela c
Pinceau pour peindre avec la lumière laser linéaire

Pinceau pour peindre avec la lumière laser linéaire

si vous aimez la photographie et à expérimenter avec des effets spéciaux, vous serez heureux de savoir qu'avec un circuit très simple et un laser à bas prix vous pouvez facilement créer une sorte de laser « scanner » pour prendre des photos impressio
AEP7 Laser pistolet (Fallout 3)

AEP7 Laser pistolet (Fallout 3)

INTRODUCTIONCeci est une version comme mes autres builds, la façon la plus rentable de faire quelque chose qui n'a pas besoin un immense atelier. Dans ce cas, un accessoire pistolet Laser du jeu Fallout 3. (apparaît également dans Fallout New Vegas)L
Comment faire un viseur de point rouge laser pointeur

Comment faire un viseur de point rouge laser pointeur

il s'agit d'une instructable sur comment faire un viseur de point rouge laser pointeur pour jouer aux jeux vidéos. C'est une façon pratique de tirer votre arme accuratly lorsque les sites fournis sont difficiles à viser, ou non prévus. J'ai utiliser
Comment peindre un laser gravé bois signe à TechShop

Comment peindre un laser gravé bois signe à TechShop

il s'agit d'un moyen facile pour améliorer l'aspect de votre signe gravé laser à l'aide de ruban de transfert et de la peinture en aérosol. Le ruban de transfert agit comme un masque afin que toute la pièce peut être gravé au laser, vaporisées, le ma
Presse-papiers de bois gravé au laser

Presse-papiers de bois gravé au laser

il s'agit d'un petit projet que je voulais faire pour rentrer dans l'atelier de menuiserie et d'utiliser certaines des nouvelles compétences que j'apprenais à TechShop. J'ai se concentrera surtout sur l'atelier de menuiserie et laser gravure parties,
Machine de gravure Laser de DIY

Machine de gravure Laser de DIY

J'ai récemment construit un machine de gravure au laser, et ce Instructable couvre le processus que j'ai suivi tout en la rendant, comme base ainsi que quelques conseils d'utilisation !J'ai entré quelques concours avec ce Instructable, donc si vous a
Cercle de bricolage carte lampe à partir de zéro

Cercle de bricolage carte lampe à partir de zéro

[Aperçu]Bonjour à tous ! Cette instructable vous guidera à travers quelques étapes pour créer ce (ou similaire) lampe de table. Modèle de la lampe est une image au microscope électronique d'une feuille. Les zones sombres de l'image se traduisent par
Découpé au laser électronique Kindle eReader Etui

Découpé au laser électronique Kindle eReader Etui

* il s'agit de mon premier instructable...  C'est aussi une entrée pour le 3ème Concours de défi épilogue.  Si je gagne le laser Epilog, je sera probablement obtenir parlé dans la fabrication des pièces de maison poupée miniature et pièces, gravure d
Rénovation d’un pointeur Laser pour un Nitefinder

Rénovation d’un pointeur Laser pour un Nitefinder

enlever le Nitefinder EX-3 de « faisceau de lumière » et remplacez-le par un faisceau « Laser ». N° brasage ou vastes connaissances électriques nécessaires. Sortez la LED rouge, lumière dans le Nitefinder et le remplacer par un pointeur de laser de m