Inhoudsopgave:

3D Body Scanner met Raspberry Pi-camera's - Ajarnpa
3D Body Scanner met Raspberry Pi-camera's - Ajarnpa

Video: 3D Body Scanner met Raspberry Pi-camera's - Ajarnpa

Video: 3D Body Scanner met Raspberry Pi-camera's - Ajarnpa
Video: 176-cameras 3d-scan full-body photogrammetry demo 2024, Juli-
Anonim
Image
Image
De Raspberry Pis coderen
De Raspberry Pis coderen

Deze 3D-scanner is een samenwerkingsproject van BuildBrighton Makerspace met als doel digitale technologie betaalbaar te maken voor gemeenschapsgroepen. Scanners worden gebruikt in de mode-industrie, om kleding aan te passen, in de game-industrie voor virtual reality en in sportscholen om de gezondheid te monitoren. Als ze ook beschikbaar zijn in makerspaces, die toegang bieden tot tools voor productie, kan er meer potentieel zijn voor sociale innovatie.

Ik ga de scanner gebruiken om kleding te ontwerpen. Om te beginnen heb ik mijn model gesneden met behulp van gratis software, en lasergesneden een naaisters dummy uit karton dat mijn exacte persoonlijke lichaamsvorm is. Vervolgens ben ik van plan om te zien hoe kleding eruitziet op een 3D-model in VR, voordat ik me ertoe verbind ze te maken.

Santander gaf me een subsidie van £ 1000 om de scanner te bouwen, als een University of Brighton Digital Award. We hebben meer dan dat uitgegeven om verschillende opties te prototypen, maar als onderdeel van onze ontwerpopdracht hebben we ervoor gezorgd dat de definitieve versie binnen dat budget kon worden gerepliceerd. Tegen die prijs kunnen andere gemeenschapsgroepen mogelijk geld inzamelen om iets soortgelijks te bouwen.

Let op: dit project maakt gebruik van netstroom en vereist kennis van bedrading, dus om veiligheidsredenen laten de secties over het bouwen van de scanner zien wat we hebben gedaan, met een detailniveau dat bedoeld is als referentie in plaats van kopiëren, en de secties over codering en het gebruik van de scanner zijn geschreven als 'How to'-handleidingen. Het is een lopend project, dus ik hoop binnenkort volledige plannen voor een batterijversie te kunnen geven. Kijk op mijn website of neem contact met mij op als je meer wilt weten.

Om milieuredenen kozen we voor PLA voor de 3D-geprinte connectoren en kartonnen buizen voor de structuur. Karton is gemakkelijk te hervormen als de onderdelen niet perfect passen, dus het is een geweldig hulpmiddel voor het maken van prototypes, en met een dikte van 3 mm zijn de buizen sterk en stijf.

Het was geweldig om aan dit samenwerkingsproject te werken. Met dank aan Arthur Guy voor het schrijven van de code en andere leden van BuildBrighton die op woensdagavond kwamen helpen, of die toevallig kwamen opdagen wanneer ze maar nodig waren.

De materialen voor dit project waren:

27 Raspberry Pi Nul W

27 Raspberry Pi-cameramodules

27 Raspberry Pi nul camerakabels

27 USB-naar-micro-USB-kabels

20 kartonnen buizen 125 cm lang x 32 mm diameter met een kern van 29 mm

8 Eindkappen voor de buizen

PLA 3D-printfilament

8 Deksels van wegwerpbiervaten

2 x A3-vellen 3 mm laserkwaliteit berkenmultiplex

230v-12v Stroomomvormer (omdat de netspanning 230v is in het VK)

12 CRT 5v stroomregelaars

3 x 30 Amp bladzekeringen en houders

Elektrische kabel

Een doos met draadconnectoren met 2, 3 en 5 hendels

50 adereindhulzen

Kabelmodem router

ethernetkabel

27 SD-kaarten (16GB)

5 mm enkelwandig golfkarton

2 m zelfklevend klittenband®

4 x USB-batterijpakketten

De tools die we gebruikten waren:

Apple®-computer (de cameraserversoftware is geschreven voor het Apple®-besturingssysteem, maar werkt mogelijk ook onder Linux)

Pc-computer omdat Autodesk Remake™ halverwege dit project stopte met het bieden van ondersteuning aan Mac-gebruikers

Internet (bedraad en draadloos)

De gratis versie van Autodesk Remake™

3D-printer

Lasersnijder

Ferrule crimper

Kabelknipper

Hakzaag en lintzaag

Schuurmachine

Stap 1: De Raspberry Pis coderen

Deze stap vereist enige kennis van coderen met Raspberry Pi.

Installeer de Lite-versie van het Raspbian-besturingssysteem op elke Raspberry Pi en schakel de camera en SSH in.

De software, nodejs, is vooraf geïnstalleerd op Raspbian, maar kan een verouderde versie zijn.

De volgende opdrachten zullen het upgraden. Opmerking: de hyperlink in de tweede regel code is automatisch ingekort door Instructables®. De volledige link voor het kopiëren van de code vindt u door erop te klikken.

Upgraden naar node v7

cd ~wget https://nodejs.org/dist/v7.9.0/node-v7.9.0-linux-… tar -xvf node-v7.9.0-linux-armv6l.tar.gz cd node-v7.9.0-linux -armv6l/ sudo cp -R * /usr/local/ sudo reboot # Ruim cd op ~ rm node-v7.9.0-linux-armv6l.tar.gz.gz rm -r node-v7.9.0-linux-armv6l.tar.gz # Update NPM sudo npm install -g npm

Nadat nodejs is geïnstalleerd, uploadt u de bestanden voor de clientsoftware:

cd ~git kloon

Installeer vervolgens de software met behulp van de volgende opdrachten:

cd 3dCamera

npm installeren

Test de software door deze uit te voeren met de volgende opdracht:

node app.js

De software draaiende houden

Het opstarten en draaiende houden van de software is de taak van 'supervisor'. Dit programma zorgt ervoor dat de camerasoftware altijd draait en werd geïnstalleerd met het volgende commando:

sudo apt-get install git supervisor

Supervisor werd vervolgens ingesteld met de 3D-scannertoepassing door het meegeleverde configuratiebestand naar de uiteindelijke locatie te kopiëren met behulp van de volgende opdracht:

cp /home/pi/3dCamera/camera.conf /etc/supervisor/conf.d/camera.conf

Om de supervisor te vertellen het nieuwe configuratiebestand te identificeren en te starten:

sudo supervisorctl herlezen

sudo supervisorctl update sudo service supervisor herstart

Daarna, wanneer het systeem opstart, start 'supervisor' de camera-applicatie die automatisch verbinding maakt met de serversoftware.

Optionele extra

De software kan worden bijgewerkt met behulp van een update-opdracht die is ingebouwd in de webgebruikersinterface, een alternatief is om een update te forceren wanneer de Raspberry Pi opstart. Om dit te doen, vervangt u het standaard opstartscript door een script dat een update uitvoert:

cp /home/pi/3dCamera/rc.local /etc/rc.local

Stap 2: De cameraserver instellen

De cameraserver instellen
De cameraserver instellen

De scannerserversoftware is een knooppunttoepassing waarvoor nodejs vereist is, de clients voeren ook een knooppunt uit en maken verbinding met de server via websockets.

Opstelling

Controleer of het knooppunt actief is door een Terminal-venster te openen en te typen:

knoop -v

Als node niet is geïnstalleerd, kan deze worden gedownload van NodeJS.

Download de bestanden

Deze repository moet worden gedownload naar een map op een computer. Dit kan met het volgende commando:

git kloon

Installeer de afhankelijkheden

Deze moeten in een nieuwe map staan met daarin de gedownloade code:

cd 3dCameraServer

npm installeren

Voer ten slotte de code uit

De servertoepassing moet worden gestart met behulp van de onderstaande opdracht, hierdoor wordt een websocket-server op poort 3000 en een webserver op poort 8080 opgestart.

node server.js

Als alles is gelukt, verschijnt de melding '3D Camera-app luistert op poort 8080 en 3000'. Om de applicatie te gebruiken, opent u een browser en gebruikt u de volgende URL

Het systeem gebruiken

De server gebruikt een vast IP-adres waardoor de camera's weten waar ze de foto's naartoe moeten sturen.

De clientsoftware verwacht verbinding te maken met een server op het IP-adres 192.168.10.100. We gebruiken een speciale router met een vaste IP-adrestoewijzing, maar om de scanner zonder te gebruiken, zou het nodig zijn om dit IP-adres handmatig in te stellen. Om de zaken te vereenvoudigen, stelt u het mac-adres van de computer in op de router, zodat deze automatisch het opgegeven IP-adres krijgt toegewezen.

De router is van het type kabelmodem (geen ADSL-router). Hierdoor blijven de camera's binnen handbereik, maar kunnen ze ook verbinding maken met internet om software-updates op te halen. Het DHCP-bereik van de router moet worden gewijzigd van de standaardwaarde, zodat het IP-adressen zal toewijzen in het bereik 192.168.10.1 - 192.168.10.255.

Als de clients online komen, verschijnen de verbindingsberichten in het terminalvenster en in het browservenster.

Wanneer de clients verbinding hebben gemaakt, kunnen ze worden opgedragen om een foto te maken met behulp van de knop 'Foto maken' in de koptekst, waarmee het proces voor het vastleggen van de foto wordt gestart en binnen 30 seconden moeten ze allemaal de afbeeldingen terug naar de computer hebben gestuurd. Deze worden weergegeven in de browser en opgeslagen in een map in de installatiemap, te vinden door te zoeken naar de map 3dCameraServer.

De code die van GitHub is gehaald, bevat een vooraf gebouwde afbeelding die zal proberen verbinding te maken met een wifi-netwerk met de naam 3DScanner. Het wachtwoord hiervoor is: poppykalayana.

Stap 3: lasersnijden en 3D-printen

Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen
Lasersnijden en 3D-printen

Lasersnijden Raspberry Pi-behuizingen

We hebben onderstaande bestanden gedownload en uitgeknipt:

27 x Pi-hoesjes met enkelwandig golfkarton van 5 mm. We gebruiken geen dubbelwandig karton omdat dit sneller vlam vat onder de laser.

3D-afdrukbuisconnectoren

We hebben de onderstaande bestanden 3D geprint: 8 x Cross Joint4 x T Junction

en eventueel ondersteunend materiaal met een tang en schuurpapier verwijderd.

Vooruit plannen voor een dakuitbreiding

Deze informatie is voor de meest elementaire versie van de scanner die werkte. Het produceert een model dat geschikt is voor het maken van een dummy van een kleermaker of voor het 3D-printen van een hoofd (Autodesk Remake™-software vult de kruin van het hoofd waar een opening is). Extra camera's in extra lagen, of boven het hoofd op dakdragers, zouden het mogelijk maken om het hele lichaam te scannen, dus om de scanner gemakkelijk te upgraden, heeft de bovenste laag van de rechtopstaande stokken kruisverbindingen en korte verlengstokken met eindkappen. 3D-connectoren om dakstokken te bevestigen zijn beschikbaar om te downloaden met de andere verbindingen. Chuck Sommerville heeft een zespuntige ster gemaakt waarvan het formaat kan worden aangepast om de palen aan de bovenkant te verbinden.

Stap 4: Aansluiten en testen van de Raspberry Pis

De Raspberry Pis aansluiten en testen
De Raspberry Pis aansluiten en testen
De Raspberry Pis aansluiten en testen
De Raspberry Pis aansluiten en testen
De Raspberry Pis aansluiten en testen
De Raspberry Pis aansluiten en testen

Voor deze stap moet de router aan staan en verbonden zijn met internet.

De computer verbinden met de server

Verbind de computer met de wifi genaamd 3DCamera Open Terminal. Typ bij de prompt 3Dcamera en druk op Enter. Typ bij de volgende prompt 3Dcamera-start en druk vervolgens op Enter Open een webbrowser en typ https://localhost:8080/ in de adresbalk om het dashboard te openen

De Raspberry Pis testen

Gebruik de camerakabel om de camera op de Raspberry Pi aan te sluiten. Sluit een Raspberry Pi aan op een 5V-stroombron (bijv. de computer) met behulp van een micro-USB-kabel. Na een paar minuten moet de Raspberry Pi verbinding maken met het systeem en op het dashboard verschijnen met een automatisch toegewezen Marvel-personagenaam. Klik op 'Foto maken' om test of de Raspberry Pi werkt. De kolom Status op het dashboard moet aangeven wanneer een foto wordt gemaakt en verzonden en vervolgens moet de foto bovenaan het dashboard verschijnen. Als het niet werkt, controleer dan of de camera goed is aangesloten en het groene lampje op de Pi brandt, en probeer het opnieuw.

De foto's worden automatisch opgeslagen in een map met de naam 'Afbeeldingen', die zich in de 3dCameraServer-map bevindt die in een vorige stap is ingesteld.

De Raspberry Pi-behuizingen in elkaar zetten

We lijmden de 5 lagen kartonnen Pi-behuizing aan elkaar, plaatsten de Raspberry Pi met laag 2, vouwden de camera op zijn plaats op laag 3, die op zijn plaats wordt gehouden met laag 4, en duwden de lens door op laag 5. Dit werd herhaald voor alle camera's.

De Raspberry Pis labelen

Vanaf het dashboard hebben we de Marvel-personagenaam die aan elke Pi is toegewezen, vervangen door een nummer in het tekstveld te typen en vervolgens op Enter te drukken.

Het is handig om het nummer op de behuizing van elke Pi te schrijven voor het oplossen van problemen.

Herhaal dit proces voor elke Raspberry Pi die elk een ander nummer toewijst

Stap 5: bereid de structuur en het elektrische circuit voor

Bereid de structuur en het elektrische circuit voor
Bereid de structuur en het elektrische circuit voor
Bereid de structuur en het elektrische circuit voor
Bereid de structuur en het elektrische circuit voor
Bereid de structuur en het elektrische circuit voor
Bereid de structuur en het elektrische circuit voor

Voorbereiding

De kartonnen kokers werden op de volgende lengtes gesneden en voorbereid:

6 x 80 cm buizen voor basis van staanders met 1,2 cm gat 2 cm omhoog vanaf één uiteinde

6 buizen van 40 cm voor midden van staanders

6 buizen van 10 cm voor bovenkant van staanders, met doppen aan één uiteinde

10 x 125 cm buizen voor horizontale stangen met een gat van 0,5 cm in het midden

2 x 125cm buizen voor vrijstaande staanders met klittenband waar Raspberry Pis en batterijen zullen gaan

Bedrading

Waarschuwing: probeer de elektriciteit niet uit tenzij u gekwalificeerd bent om dit te doen. We geven niet alle details over de bedrading omdat ze bedoeld zijn als voorbeeld van hoe we dit hebben gedaan, niet als instructies om te volgen. Fouten kunnen de Raspberry Pi verbranden, brand veroorzaken of iemand elektrocuteren!

Tip: We ontdekten dat de camera's die zich het verst in de rij bevonden niet werkten toen we ze aan elkaar koppelden, dus we hebben 3 zekeringen aangesloten op 3 afzonderlijke circuits van de 12V-voeding met 4 x 5V-regelaars die van elk komen. Elk van deze kan tot 3 Raspberry Pi-nullen aansturen. Dat betekende dat we aan elke paal 2 elektrische kabels hadden met de capaciteit om 6 kabels voor camera's aan te sluiten. We hadden er maar 4 nodig voor hoofd en schouders, maar het is handig om extra capaciteit te hebben om meer camera's toe te voegen voor andere doeleinden.

We knippen de grote USB van het uiteinde van 22 USB-kabels en knippen er 6 korter, tot ongeveer 30 cm. Vervolgens hebben we alle datadraden genegeerd en adereindhulzen aan het uiteinde van de stroom- en aardingsdraden bevestigd.

We namen de korte kabels en duwden een paar adereindhulzen in elk van de 12 x 3D-geprinte connectoren totdat de draad aan de onderkant naar buiten kwam.

We gebruikten dezelfde techniek met de langere snoeren, waarbij we een paar adereindhulzen door het gat in het midden van elke horizontale balk duwden totdat ze aan het einde van de buis verschenen.

De bases maken en bedraden

We hebben 16 ringen gesneden om het gat in het midden van de deksels van 8 wegwerpbiervaten te passen, met een gat van 3,2 cm in het midden van elk. Kroegen in onze omgeving geven deze vaatjes graag weg en het ronde deel komt goed van pas bij projecten. De deksels worden meestal weggegooid, maar ze vormen een zeer stabiele standaard.

We hebben een ring heet gelijmd aan de boven- en onderkant van het schroefgedeelte in het midden van een deksel van een biervat, herhalend met een tweede deksel. Daarna plaatsten we in elke paal een paal van 125 cm en bevestigden we een camera aan de bovenkant van elke paal met Velcro®

en nog eens 40 cm eronder. We hebben een USB-batterij op elke camera aangesloten en de batterij met klittenband aan de paal bevestigd waar het snoer reikt.

Basis berichten

Voor de andere 6 deksels hebben we voor elk 2 ringen van multiplex genomen en deze warm gelijmd, boven en onder alle componenten. In de opening tussen de ringen van elk waren 2 x 5V-regelaars, de kabels en hun connectoren, waaraan we 2 x 80 cm kabel bevestigden, en beide kabels door het 1,2 cm-gat en door de buis gestoken. Alle componenten pasten precies rond een basispaal die we in het midden opstonden.

Ze zouden er waarschijnlijk beter geschilderd uitzien!

Stap 6: Bouw de structuur en het elektrische circuit

Bouw de structuur en het elektrische circuit
Bouw de structuur en het elektrische circuit
Bouw de structuur en het elektrische circuit
Bouw de structuur en het elektrische circuit
Bouw de structuur en het elektrische circuit
Bouw de structuur en het elektrische circuit

We hebben 5 van de horizontale buizen op de vloer geplaatst om 5 zijden van een zeshoek te markeren en op elke kruising een basispaal geplaatst.

Vervolgens hebben we het frame voor de camera's gemaakt door de kartonnen buizen aan de 3D-geprinte connectoren te bevestigen, de uitstekende draden, met ferrules eraan bevestigd, door de palen in de richting van de basisposten te halen en de hefboomdraadconnectoren aan de bovenkant van elke basispost te bevestigen voordat ze worden vastgezet de delen van het frame op hun plaats.

Vervolgens hebben we de camera's aangesloten op de micro-USB's, halverwege elke horizontale balk. De kartonnen Pi Case is zo ontworpen dat de USB deels aan de binnenkant verborgen is en het andere deel van de USB iets in de kartonnen buis kan worden geduwd, zodat de camera vlak op de paal zit. De USB houdt het op zijn plaats.

We hebben camera's aangesloten op de USB-kabels in de hoekverbindingen, met behulp van zelfklevend klittenband, om de camera's op hun plaats te houden.

Vervolgens plaatsten we de vrijstaande rechtopstaande camerapalen op gelijke afstand van elkaar over de opening.

Ten slotte hebben we de camera's zo afgesteld dat ze allemaal naar het midden wijzen.

Er is één reservecamera voor het geval er een stopt met werken.

Stap 7: Foto's maken

Foto's nemen
Foto's nemen

Om de scanner te gebruiken, staat of zit u in het frame, precies in het midden.

Vraag iemand om op het dashboard op 'Foto maken' te drukken. Alle foto's moeten op hetzelfde moment worden gemaakt, maar omdat het signaal over wifi wordt verzonden, hebben een of meer foto's soms een kleine vertraging. Blijf dus een paar seconden stil totdat alle foto's zijn verzonden.

De foto's worden opgeslagen in de map afbeeldingen in de map 3DCameraServer

Zie deze video voor tips over het maken van goede foto's

Stap 8: Verwerk de foto's tot een 3D-model

Verwerk de foto's tot een 3D-model
Verwerk de foto's tot een 3D-model
Verwerk de foto's tot een 3D-model
Verwerk de foto's tot een 3D-model
Verwerk de foto's tot een 3D-model
Verwerk de foto's tot een 3D-model

De volgende instructies zijn voor Autodesk Remake™ (versie 17.25.31). Het is een freemium-product, maar ik vond de gratis modus voldoende. Hier is een lijst met meer software voor het naaien van foto's.

Opzetten

Maak een Autodesk®-account aan

Installeer Autodesk Remake™ op een pc-computer

De foto's omzetten in een 3D-model

Breng de foto's over van de Mac-computer naar een pc met behulp van een USB-stick of upload de foto's naar de Autodesk®-cloudopslag, A360 Drive genaamd, met de inloggegevens van uw Autodesk®-account.

Open Autodesk Remake™

Klik op de cameraknop onder 3D maken

Klik in het pop-upscherm dat verschijnt op Online (tenzij je een krachtige computer hebt die voldoet aan de minimale specificaties om offline te verwerken).

Kies in het volgende pop-upscherm Selecteer foto's van: Lokale schijf, als je de foto's via USB naar de pc hebt overgebracht of klik op A360 Schijf als je de foto's hebt geüpload.

Selecteer de foto's en klik vervolgens op Openen

Wanneer alle foto's op het scherm zijn verschenen, klikt u op Model maken

Typ een naam in het tekstvak in het menu Opties dat verschijnt. Kies Kwaliteit: Standaard, Automatisch bijsnijden: Uit en Slimme structuur: Uit (of speel wat met deze instellingen)

Verwerken

Het scherm keert terug naar het Remake™-dashboard en er is een vak met de voortgang van uw model onder My Cloud Drive. In onze ervaring duurt de verwerking ongeveer 10 minuten, maar het kan lijken alsof het niet meer reageert omdat het percentage niet meer stijgt, en na een tijdje zal het aantal plotseling toenemen. U ontvangt een e-mail van Autodesk® wanneer de verwerking is voltooid.

Wanneer in het vak Klaar om te downloaden staat, beweeg je je muis over het vak en er verschijnt een blauwe downloadpijl. Klik op de blauwe pijl en kies waar u het model wilt opslaan.

Het model wordt vervolgens gedownload en weergegeven in het gedeelte Deze computer van het Remake®-dashboard. Klik erop om het te openen.

Nabewerking

Gebruik de navigatiehulpmiddelen onder aan het scherm om uw lichaamsmodel te vinden.

Gebruik de selectietools om de ongewenste onderdelen van het model te verwijderen door onderdelen te selecteren en op Delete te drukken.

Naarmate u onderdelen verwijdert, wordt de blauwe cirkel aan de basis van het model kleiner. Als de cirkel groter is dan een omtrek rond het model zou zijn, betekent dit dat er nog delen moeten worden verwijderd.

Als het model ondersteboven staat, gaat u naar het tabblad Modelinstellingen aan de linkerkant van het scherm en volgt u de instellingen onder Scène rechtop instellen.

Om een vlak oppervlak voor uw model te maken, gaat u naar Bewerken - Slice & Fill

Om te controleren op gaten en reparaties, gaat u naar het tabblad Analyseren en klikt u op Modelproblemen detecteren en oplossen

Besparing

Ga naar Export - Export Model om het model op te slaan.

Ga naar Exporteren - Video exporteren om een video van uw roterend model te maken.

Aanbevolen: